Change prefix to match application name
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / policy-control / policy-instance.component.ts
index 55d9dcb..94cdb05 100644 (file)
@@ -21,7 +21,7 @@
 import { MatSort } from '@angular/material';
 import { Component, OnInit, ViewChild, Input, AfterViewInit } from '@angular/core';
 import { MatDialog } from '@angular/material/dialog';
-import { PolicyType } from '../interfaces/policy.types';
+import { PolicyTypeSchema } from '../interfaces/policy.types';
 import { PolicyInstanceDataSource } from './policy-instance.datasource';
 import { ErrorDialogService } from '../services/ui/error-dialog.service';
 import { NotificationService } from '../services/ui/notification.service';
@@ -36,7 +36,7 @@ import { Observable } from 'rxjs';
 import { UiService } from '../services/ui/ui.service';
 
 @Component({
-    selector: 'rd-policy-instance',
+    selector: 'nrcp-policy-instance',
     templateUrl: './policy-instance.component.html',
     styleUrls: ['./policy-instance.component.scss']
 })
@@ -44,7 +44,7 @@ import { UiService } from '../services/ui/ui.service';
 
 export class PolicyInstanceComponent implements OnInit, AfterViewInit {
     instanceDataSource: PolicyInstanceDataSource;
-    @Input() policyType: PolicyType;
+    @Input() policyTypeSchema: PolicyTypeSchema;
     @Input() expanded: Observable<boolean>;
     @ViewChild(MatSort, { static: true }) sort: MatSort;
     darkMode: boolean;
@@ -59,7 +59,7 @@ export class PolicyInstanceComponent implements OnInit, AfterViewInit {
     }
 
     ngOnInit() {
-        this.instanceDataSource = new PolicyInstanceDataSource(this.policySvc, this.sort, this.notificationService, this.policyType);
+        this.instanceDataSource = new PolicyInstanceDataSource(this.policySvc, this.sort, this.notificationService, this.policyTypeSchema);
         this.expanded.subscribe((isExpanded: boolean) => this.onExpand(isExpanded));
         this.ui.darkModeState.subscribe((isDark) => {
             this.darkMode = isDark;
@@ -72,26 +72,35 @@ export class PolicyInstanceComponent implements OnInit, AfterViewInit {
 
     private onExpand(isExpanded: boolean) {
         if (isExpanded) {
-            this.instanceDataSource.loadTable();
+            this.instanceDataSource.getPolicyInstances();
         }
     }
 
     private isSchemaEmpty(): boolean {
-        return Object.keys(this.policyType.schemaObject).length === 0;
+        return this.policyTypeSchema.schemaObject === '{}';
     }
 
     modifyInstance(instance: PolicyInstance): void {
-        this.policySvc.getPolicy(this.policyType.name, instance.id).subscribe(
+        this.policySvc.getPolicyInstance(instance.policy_id).subscribe(
             (refreshedJson: any) => {
-                instance.json = JSON.stringify(refreshedJson);
+                instance = refreshedJson;
                 if (this.isSchemaEmpty()) {
                     this.dialog.open(
                         NoTypePolicyInstanceDialogComponent,
-                        getPolicyDialogProperties(this.policyType, instance, this.darkMode));
+                        getPolicyDialogProperties(this.policyTypeSchema, instance, this.darkMode)).afterClosed().subscribe(
+                            (_: any) => {
+                                this.instanceDataSource.getPolicyInstances();
+                            }
+                        );
                 } else {
                     this.dialog.open(
                         PolicyInstanceDialogComponent,
-                        getPolicyDialogProperties(this.policyType, instance, this.darkMode));
+                        getPolicyDialogProperties(this.policyTypeSchema, instance, this.darkMode)).afterClosed().subscribe(
+                            (_: any) => {
+                                this.instanceDataSource.getPolicyInstances();
+                            }
+                        );
+
                 }
             },
             (httpError: HttpErrorResponse) => {
@@ -117,13 +126,13 @@ export class PolicyInstanceComponent implements OnInit, AfterViewInit {
             .afterClosed().subscribe(
                 (res: any) => {
                     if (res) {
-                        this.policySvc.deletePolicy(this.policyType.name, instance.id)
+                        this.policySvc.deletePolicy(instance.policy_id)
                             .subscribe(
                                 (response: HttpResponse<Object>) => {
                                     switch (response.status) {
-                                        case 200:
+                                        case 204:
                                             this.notificationService.success('Delete succeeded!');
-                                            this.instanceDataSource.loadTable();
+                                            this.instanceDataSource.getPolicyInstances();
                                             break;
                                         default:
                                             this.notificationService.warn('Delete failed ' + response.status + ' ' + response.body);
@@ -135,7 +144,4 @@ export class PolicyInstanceComponent implements OnInit, AfterViewInit {
                     }
                 });
     }
-
-
-
 }