X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dashboard%2Fwebapp-frontend%2Fsrc%2Fapp%2Fpolicy-control%2Fpolicy-control.component.ts;h=a81fb2e6989f1d90f486d7646f7e3d6506764d9c;hb=7b13df75d4cec0e9e4b2042bd08207842f6e1544;hp=3bfe5eaae70111b3377b75792e0fa0a7dd77a27e;hpb=dbb8ebab82ddbace4c6feb7180a4c6eff5697493;p=nonrtric.git diff --git a/dashboard/webapp-frontend/src/app/policy-control/policy-control.component.ts b/dashboard/webapp-frontend/src/app/policy-control/policy-control.component.ts index 3bfe5eaa..a81fb2e6 100644 --- a/dashboard/webapp-frontend/src/app/policy-control/policy-control.component.ts +++ b/dashboard/webapp-frontend/src/app/policy-control/policy-control.component.ts @@ -33,13 +33,13 @@ import { PolicyInstance } from '../interfaces/policy.types'; import { NotificationService } from '../services/ui/notification.service'; import { ErrorDialogService } from '../services/ui/error-dialog.service'; import { ConfirmDialogService } from './../services/ui/confirm-dialog.service'; -import { Subject } from 'rxjs'; +import { BehaviorSubject, Observable } from 'rxjs'; import { UiService } from '../services/ui/ui.service'; class PolicyTypeInfo { - constructor(public type: PolicyType, public isExpanded: boolean) { } + constructor(public type: PolicyType) { } - isExpandedObservers: Subject = new Subject(); + isExpanded: BehaviorSubject = new BehaviorSubject(false); } @Component({ @@ -48,18 +48,20 @@ class PolicyTypeInfo { styleUrls: ['./policy-control.component.scss'], animations: [ trigger('detailExpand', [ - state('collapsed', style({ height: '0px', minHeight: '0', visibility: 'hidden' })), - state('expanded', style({ height: '*', visibility: 'visible' })), + 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)')) ]), ], }) export class PolicyControlComponent implements OnInit { + policyTypesDataSource: PolicyTypeDataSource; @ViewChild(MatSort, { static: true }) sort: MatSort; - expandedTypes = new Map(); + policyTypeInfo = new Map(); darkMode: boolean; constructor( @@ -83,39 +85,35 @@ export class PolicyControlComponent implements OnInit { const info: PolicyTypeInfo = this.getPolicyTypeInfo(policyType); dialogRef.afterClosed().subscribe( (result: any) => { - info.isExpandedObservers.next(info.isExpanded); + info.isExpanded.next(info.isExpanded.getValue()); } ); } toggleListInstances(policyType: PolicyType): void { const info = this.getPolicyTypeInfo(policyType); - info.isExpanded = !info.isExpanded; - info.isExpandedObservers.next(info.isExpanded); + info.isExpanded.next(!info.isExpanded.getValue()); } getPolicyTypeInfo(policyType: PolicyType): PolicyTypeInfo { - let info: PolicyTypeInfo = this.expandedTypes.get(policyType.name); + let info: PolicyTypeInfo = this.policyTypeInfo.get(policyType.name); if (!info) { - info = new PolicyTypeInfo(policyType, false); - this.expandedTypes.set(policyType.name, info); + info = new PolicyTypeInfo(policyType); + this.policyTypeInfo.set(policyType.name, info); } return info; } - isInstancesShown(policyType: PolicyType): boolean { - return this.getPolicyTypeInfo(policyType).isExpanded; + getName(policyType: PolicyType): string { + if (policyType.schemaObject.title) { return policyType.schemaObject.title; } + return policyType.name; } - getPolicyTypeName(type: PolicyType): string { - const schema = JSON.parse(type.create_schema); - if (schema.title) { - return schema.title; - } - return type.name; + isInstancesShown(policyType: PolicyType): boolean { + return this.getPolicyTypeInfo(policyType).isExpanded.getValue(); } - getObservable(policyType: PolicyType): Subject { - return this.getPolicyTypeInfo(policyType).isExpandedObservers; + getExpandedObserver(policyType: PolicyType): Observable { + return this.getPolicyTypeInfo(policyType).isExpanded.asObservable(); } }