Tweaks for Policy Control UI
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / policy / policy-control.component.ts
index de3f578..feb4cfb 100644 (file)
  * limitations under the License.
  * ========================LICENSE_END===================================
  */
-import { animate, state, style, transition, trigger } from '@angular/animations';
-import { Component, OnInit } from '@angular/core';
-import { MatDialog } from '@angular/material/dialog';
+import { Component, OnInit } from "@angular/core";
 
-import { BehaviorSubject, Observable } from 'rxjs';
-
-import { PolicyTypes, PolicyTypeSchema } from '@interfaces/policy.types';
-import { PolicyTypeDataSource } from './policy-type/policy-type.datasource';
-import { getPolicyDialogProperties } from './policy-instance-dialog/policy-instance-dialog.component';
-import { PolicyInstanceDialogComponent } from './policy-instance-dialog/policy-instance-dialog.component';
-import { UiService } from '@services/ui/ui.service';
-import { PolicyService } from '@services/policy/policy.service';
-import { PolicyTypeComponent } from './policy-type/policy-type.component';
-
-class PolicyTypeInfo {
-    constructor(public type: PolicyTypeSchema) { }
-
-    isExpanded: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
-}
+import { PolicyTypes } from "@interfaces/policy.types";
+import { PolicyService } from "@services/policy/policy.service";
+import { PolicyTypeComponent } from "./policy-type/policy-type.component"
 
 @Component({
-    selector: 'nrcp-policy-control',
-    templateUrl: './policy-control.component.html',
-    styleUrls: ['./policy-control.component.scss'],
-    animations: [
-        trigger('detailExpand', [
-            state('collapsed, void', style({ height: '0px', minHeight: '0', display: 'none' })),
-            state('expanded', style({ height: '*' })),
-            transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
-            transition('expanded <=> void', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))
-        ]),
-    ],
+  selector: "nrcp-policy-control",
+  templateUrl: "./policy-control.component.html",
+  styleUrls: ["./policy-control.component.scss"]
 })
-export class PolicyControlComponent implements OnInit {
-
-    policyTypeInfo = new Map<string, PolicyTypeInfo>();
-    policyTypeIds: Array<string>;
-    policyTypeComponent = new PolicyTypeComponent(this.policyTypesDataSource);
-    darkMode: boolean;
-
-    constructor(
-        public policyTypesDataSource: PolicyTypeDataSource,
-        private dialog: MatDialog,
-        private policyService: PolicyService,
-        private ui: UiService) { }
 
-    ngOnInit() {
-        this.policyTypesDataSource.getPolicyTypes();
-        this.ui.darkModeState.subscribe((isDark) => {
-            this.darkMode = isDark;
-        });
-        this.policyService.getPolicyTypes().subscribe((policyType: PolicyTypes) => {
-            this.policyTypeIds = policyType.policytype_ids;
-            }
-        );
-    }
-
-    toggleListInstances(policyTypeSchema: PolicyTypeSchema): void {
-        const info = this.getPolicyTypeInfo(policyTypeSchema);
-        info.isExpanded.next(!info.isExpanded.getValue());
-    }
-
-    getPolicyTypeInfo(policyTypeSchema: PolicyTypeSchema): PolicyTypeInfo {
-        let info: PolicyTypeInfo = this.policyTypeInfo.get(policyTypeSchema.name);
-        if (!info) {
-            info = new PolicyTypeInfo(policyTypeSchema);
-            this.policyTypeInfo.set(policyTypeSchema.name, info);
-        }
-        return info;
-    }
-
-    getDisplayName(policyTypeSchema: PolicyTypeSchema): string {
-        if (policyTypeSchema.schemaObject.title) {
-            return policyTypeSchema.schemaObject.title;
-        }
-        return '< No type >';
-    }
-
-    getExpandedObserver(policyTypeSchema: PolicyTypeSchema): Observable<boolean> {
-        return this.getPolicyTypeInfo(policyTypeSchema).isExpanded.asObservable();
-    }
-
-    refreshTables() {
-        this.policyTypesDataSource.getPolicyTypes();
-        this.policyTypeComponent.setIsVisible(false);
-    }
+export class PolicyControlComponent implements OnInit {
+  policyTypeIds = [];
+  ptComponent: PolicyTypeComponent;
+
+  constructor(private policyService: PolicyService) {
+    this.ptComponent = new PolicyTypeComponent(policyService);
+  }
+
+  ngOnInit() {
+    this.refreshTables();
+  }
+
+  refreshTables() {
+    this.policyService.getPolicyTypes().subscribe((policyType: PolicyTypes) => {
+      this.policyTypeIds = policyType.policytype_ids.sort();
+    });
+    this.ptComponent.toggleVisible();
+  }
 }