Adding refresh buttons
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / policy-control / policy-control.component.ts
index cd8d948..c287438 100644 (file)
@@ -30,6 +30,7 @@ import { PolicyInstanceDialogComponent } from './policy-instance-dialog.componen
 import { NotificationService } from '../services/ui/notification.service';
 import { BehaviorSubject, Observable } from 'rxjs';
 import { UiService } from '../services/ui/ui.service';
+import { NoTypePolicyInstanceDialogComponent } from './no-type-policy-instance-dialog.component';
 
 class PolicyTypeInfo {
     constructor(public type: PolicyType) { }
@@ -74,10 +75,17 @@ export class PolicyControlComponent implements OnInit {
     }
 
     createPolicyInstance(policyType: PolicyType): void {
-        const dialogRef = this.dialog.open(PolicyInstanceDialogComponent, getPolicyDialogProperties(policyType, null, this.darkMode));
+        let dialogRef;
+        if (this.isSchemaEmpty(policyType)) {
+            dialogRef = this.dialog.open(NoTypePolicyInstanceDialogComponent,
+                getPolicyDialogProperties(policyType, null, this.darkMode));
+        } else {
+            dialogRef = this.dialog.open(PolicyInstanceDialogComponent,
+                getPolicyDialogProperties(policyType, null, this.darkMode));
+        }
         const info: PolicyTypeInfo = this.getPolicyTypeInfo(policyType);
         dialogRef.afterClosed().subscribe(
-            (result: any) => {
+            (_) => {
                 info.isExpanded.next(info.isExpanded.getValue());
             }
         );
@@ -88,6 +96,10 @@ export class PolicyControlComponent implements OnInit {
         info.isExpanded.next(!info.isExpanded.getValue());
     }
 
+    private isSchemaEmpty(policyType: PolicyType): boolean {
+        return Object.keys(policyType.schemaObject).length === 0;
+    }
+
     getPolicyTypeInfo(policyType: PolicyType): PolicyTypeInfo {
         let info: PolicyTypeInfo = this.policyTypeInfo.get(policyType.name);
         if (!info) {
@@ -97,9 +109,11 @@ export class PolicyControlComponent implements OnInit {
         return info;
     }
 
-    getName(policyType: PolicyType): string {
-        if (policyType.schemaObject.title) { return policyType.schemaObject.title; }
-        return policyType.name;
+    getDisplayName(policyType: PolicyType): string {
+        if (policyType.schemaObject.title) {
+            return policyType.schemaObject.title;
+        }
+        return '< No type >';
     }
 
     isInstancesShown(policyType: PolicyType): boolean {
@@ -109,4 +123,8 @@ export class PolicyControlComponent implements OnInit {
     getExpandedObserver(policyType: PolicyType): Observable<boolean> {
         return this.getPolicyTypeInfo(policyType).isExpanded.asObservable();
     }
+
+    refresh() {
+        location.reload();
+    }
 }