X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dashboard%2Fwebapp-frontend%2Fsrc%2Fapp%2Fpolicy-control%2Fpolicy-instance-dialog.component.ts;h=b4ad194bd68a7378bfbed6563bd8ecb2bb4311da;hb=766e6af8d8ddf946ad5cb45a560b040e4857065e;hp=b635418ad5fee0716ca52415c17e6c3cef0dd317;hpb=dbb8ebab82ddbace4c6feb7180a4c6eff5697493;p=nonrtric.git diff --git a/dashboard/webapp-frontend/src/app/policy-control/policy-instance-dialog.component.ts b/dashboard/webapp-frontend/src/app/policy-control/policy-instance-dialog.component.ts index b635418a..b4ad194b 100644 --- a/dashboard/webapp-frontend/src/app/policy-control/policy-instance-dialog.component.ts +++ b/dashboard/webapp-frontend/src/app/policy-control/policy-instance-dialog.component.ts @@ -74,14 +74,29 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { formValidationErrors: any; formIsValid = false; - @ViewChild(MatMenuTrigger, { static: true }) menuTrigger: MatMenuTrigger; - public policyInstanceId: string; - public policyTypeName: string; + policyInstanceId: string; // null if not yet created + policyTypeName: string; darkMode: boolean; - private policyTypeId: number; + ric: string; + allRics: string[]; + private fetchRics() { + console.log('fetchRics ' + this.policyTypeName); + const self: PolicyInstanceDialogComponent = this; + this.dataService.getRics(this.policyTypeName).subscribe( + { + next(value) { + self.allRics = value; + console.log(value); + }, + error(error) { + self.errorService.displayError('Fetching of rics failed: ' + error.message); + }, + complete() { } + }); + } constructor( private dataService: PolicyService, @@ -91,10 +106,11 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { private dialogRef: MatDialogRef, private ui: UiService) { this.formActive = false; - this.policyInstanceId = this.data.instanceId; - this.policyTypeName = this.data.name; - this.policyTypeId = this.data.policyTypeId; - this.parseJson(data.createSchema, data.instanceJson); + this.policyInstanceId = data.instanceId; + this.policyTypeName = data.name; + this.jsonSchemaObject = data.createSchema; + this.jsonObject = this.parseJson(data.instanceJson); + this.ric = data.ric; } ngOnInit() { @@ -103,6 +119,9 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { this.ui.darkModeState.subscribe((isDark) => { this.darkMode = isDark; }); + if (!this.policyInstanceId) { + this.fetchRics(); + } } ngAfterViewInit() { @@ -114,7 +133,7 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { } const policyJson: string = this.prettyLiveFormData; const self: PolicyInstanceDialogComponent = this; - this.dataService.putPolicy(this.policyTypeId, this.policyInstanceId, policyJson).subscribe( + this.dataService.putPolicy(this.policyTypeName, this.policyInstanceId, policyJson, this.ric).subscribe( { next(value) { self.notificationService.success('Policy ' + self.policyTypeName + ':' + self.policyInstanceId + ' submitted'); @@ -130,8 +149,8 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { this.dialogRef.close(); } - public onChanges(data: any) { - this.liveFormData = data; + public onChanges(formData: any) { + this.liveFormData = formData; } get prettyLiveFormData() { @@ -150,8 +169,8 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { this.formIsValid = isValid; } - validationErrors(data: any): void { - this.formValidationErrors = data; + validationErrors(validationErrors: any): void { + this.formValidationErrors = validationErrors; } get prettyValidationErrors() { @@ -174,18 +193,17 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { return errorArray.join('
'); } - private parseJson(createSchema: string, instanceJson: string): void { + private parseJson(str: string): string { try { - this.jsonSchemaObject = JSON.parse(createSchema); - if (this.data.instanceJson != null) { - this.jsonObject = JSON.parse(instanceJson); + if (str != null) { + return JSON.parse(str); } } catch (jsonError) { this.jsonFormStatusMessage = 'Invalid JSON\n' + 'parser returned:\n\n' + jsonError; - return; } + return null; } public toggleVisible(item: string) { @@ -194,11 +212,11 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { } export function getPolicyDialogProperties(policyType: PolicyType, instance: PolicyInstance, darkMode: boolean): MatDialogConfig { - const policyTypeId = policyType.policy_type_id; - const createSchema = policyType.create_schema; - const instanceId = instance ? instance.instanceId : null; - const instanceJson = instance ? instance.instance : null; + const createSchema = policyType.schemaObject; + const instanceId = instance ? instance.id : null; + const instanceJson = instance ? instance.json : null; const name = policyType.name; + const ric = instance ? instance.ric : null; return { maxWidth: '1200px', maxHeight: '900px', @@ -207,11 +225,11 @@ export function getPolicyDialogProperties(policyType: PolicyType, instance: Poli disableClose: false, panelClass: darkMode ? 'dark-theme' : '', data: { - policyTypeId, createSchema, instanceId, instanceJson, - name + name, + ric } }; }