X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fpolicy-control%2Fpolicy-control.component.ts;h=4227d7884999aefbdd83104e42036424737e6c5d;hb=refs%2Fchanges%2F68%2F5668%2F5;hp=56c0ec3aac34b6e74d84ec4da75abd987c19d888;hpb=c05471af70b63f26a9e7a722347ad4534f537f43;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-frontend/src/app/policy-control/policy-control.component.ts b/webapp-frontend/src/app/policy-control/policy-control.component.ts index 56c0ec3..4227d78 100644 --- a/webapp-frontend/src/app/policy-control/policy-control.component.ts +++ b/webapp-frontend/src/app/policy-control/policy-control.component.ts @@ -17,29 +17,27 @@ * limitations under the License. * ========================LICENSE_END=================================== */ -import { Component, OnInit, ViewChild } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { MatSort } from '@angular/material/sort'; import { animate, state, style, transition, trigger } from '@angular/animations'; +import { Component, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; -import { PolicyService } from '../services/policy/policy.service'; -import { PolicyType } from '../interfaces/policy.types'; +import { BehaviorSubject, Observable } from 'rxjs'; + +import { NoTypePolicyInstanceDialogComponent } from './no-type-policy-instance-dialog.component'; +import { PolicyTypeSchema } from '../interfaces/policy.types'; import { PolicyTypeDataSource } from './policy-type.datasource'; import { getPolicyDialogProperties } from './policy-instance-dialog.component'; import { PolicyInstanceDialogComponent } from './policy-instance-dialog.component'; -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) { } + constructor(public type: PolicyTypeSchema) { } isExpanded: BehaviorSubject = new BehaviorSubject(false); } @Component({ - selector: 'rd-policy-control', + selector: 'nrcp-policy-control', templateUrl: './policy-control.component.html', styleUrls: ['./policy-control.component.scss'], animations: [ @@ -53,37 +51,31 @@ class PolicyTypeInfo { }) export class PolicyControlComponent implements OnInit { - - policyTypesDataSource: PolicyTypeDataSource; - @ViewChild(MatSort, { static: true }) sort: MatSort; - policyTypeInfo = new Map(); darkMode: boolean; constructor( - private policySvc: PolicyService, + public policyTypesDataSource: PolicyTypeDataSource, private dialog: MatDialog, - private notificationService: NotificationService, private ui: UiService) { } ngOnInit() { - this.policyTypesDataSource = new PolicyTypeDataSource(this.policySvc, this.sort, this.notificationService); - this.policyTypesDataSource.loadTable(); + this.policyTypesDataSource.getPolicyTypes(); this.ui.darkModeState.subscribe((isDark) => { this.darkMode = isDark; }); } - createPolicyInstance(policyType: PolicyType): void { + createPolicyInstance(policyTypeSchema: PolicyTypeSchema): void { let dialogRef; - if (this.isSchemaEmpty(policyType)) { + if (this.isSchemaEmpty(policyTypeSchema)) { dialogRef = this.dialog.open(NoTypePolicyInstanceDialogComponent, - getPolicyDialogProperties(policyType, null, this.darkMode)); + getPolicyDialogProperties(policyTypeSchema, null, this.darkMode)); } else { dialogRef = this.dialog.open(PolicyInstanceDialogComponent, - getPolicyDialogProperties(policyType, null, this.darkMode)); + getPolicyDialogProperties(policyTypeSchema, null, this.darkMode)); } - const info: PolicyTypeInfo = this.getPolicyTypeInfo(policyType); + const info: PolicyTypeInfo = this.getPolicyTypeInfo(policyTypeSchema); dialogRef.afterClosed().subscribe( (_) => { info.isExpanded.next(info.isExpanded.getValue()); @@ -91,40 +83,40 @@ export class PolicyControlComponent implements OnInit { ); } - toggleListInstances(policyType: PolicyType): void { - const info = this.getPolicyTypeInfo(policyType); + toggleListInstances(policyTypeSchema: PolicyTypeSchema): void { + const info = this.getPolicyTypeInfo(policyTypeSchema); info.isExpanded.next(!info.isExpanded.getValue()); } - private isSchemaEmpty(policyType: PolicyType): boolean { - return Object.keys(policyType.schemaObject).length === 0; + private isSchemaEmpty(policyTypeSchema: PolicyTypeSchema): boolean { + return policyTypeSchema.schemaObject === '{}'; } - getPolicyTypeInfo(policyType: PolicyType): PolicyTypeInfo { - let info: PolicyTypeInfo = this.policyTypeInfo.get(policyType.name); + getPolicyTypeInfo(policyTypeSchema: PolicyTypeSchema): PolicyTypeInfo { + let info: PolicyTypeInfo = this.policyTypeInfo.get(policyTypeSchema.name); if (!info) { - info = new PolicyTypeInfo(policyType); - this.policyTypeInfo.set(policyType.name, info); + info = new PolicyTypeInfo(policyTypeSchema); + this.policyTypeInfo.set(policyTypeSchema.name, info); } return info; } - getDisplayName(policyType: PolicyType): string { - if (policyType.schemaObject.title) { - return policyType.schemaObject.title; + getDisplayName(policyTypeSchema: PolicyTypeSchema): string { + if (policyTypeSchema.schemaObject.title) { + return policyTypeSchema.schemaObject.title; } return '< No type >'; } - isInstancesShown(policyType: PolicyType): boolean { - return this.getPolicyTypeInfo(policyType).isExpanded.getValue(); + isInstancesShown(policyTypeSchema: PolicyTypeSchema): boolean { + return this.getPolicyTypeInfo(policyTypeSchema).isExpanded.getValue(); } - getExpandedObserver(policyType: PolicyType): Observable { - return this.getPolicyTypeInfo(policyType).isExpanded.asObservable(); + getExpandedObserver(policyTypeSchema: PolicyTypeSchema): Observable { + return this.getPolicyTypeInfo(policyTypeSchema).isExpanded.asObservable(); } refreshTables() { - this.policyTypesDataSource.loadTable(); + this.policyTypesDataSource.getPolicyTypes(); } }