X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fpolicy-control%2Fpolicy-instance-dialog.component.ts;h=72a2041af9356724f4b932836fec72156c1d4aa4;hb=a3e0f85eff3e8203612c547045e11f8d83639df1;hp=781efcaaea0d2351bc0e19320c70c8d3677840a5;hpb=9872b8b01da34a6677844ebd56352c9d8c3ec09b;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-frontend/src/app/policy-control/policy-instance-dialog.component.ts b/webapp-frontend/src/app/policy-control/policy-instance-dialog.component.ts index 781efca..72a2041 100644 --- a/webapp-frontend/src/app/policy-control/policy-instance-dialog.component.ts +++ b/webapp-frontend/src/app/policy-control/policy-instance-dialog.component.ts @@ -23,13 +23,15 @@ import { MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/materia import { MatMenuTrigger } from '@angular/material/menu'; import { JsonPointer } from 'angular6-json-schema-form'; import * as uuid from 'uuid'; -import { PolicyInstance, PolicyTypeSchema } from '../interfaces/policy.types'; +import { CreatePolicyInstance, PolicyInstance, PolicyTypeSchema } from '../interfaces/policy.types'; import { PolicyService } from '../services/policy/policy.service'; import { ErrorDialogService } from '../services/ui/error-dialog.service'; import { NotificationService } from './../services/ui/notification.service'; import { UiService } from '../services/ui/ui.service'; import { HttpErrorResponse } from '@angular/common/http'; import { FormGroup, FormControl, Validators } from '@angular/forms'; +import { ChangeDetectorRef } from '@angular/core'; +import { Ric } from '../interfaces/ric'; @Component({ @@ -84,14 +86,14 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { policyTypeName: string; darkMode: boolean; ric: string; - allRics: string[]; + allRics: Ric[]; private fetchRics() { console.log('fetchRics ' + this.policyTypeName); const self: PolicyInstanceDialogComponent = this; this.dataService.getRics(this.policyTypeName).subscribe( { - next(value) { + next(value: Ric[]) { self.allRics = value; console.log(value); }, @@ -103,6 +105,7 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { } constructor( + private cdr: ChangeDetectorRef, private dataService: PolicyService, private errorService: ErrorDialogService, private notificationService: NotificationService, @@ -113,7 +116,7 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { this.policyInstanceId = data.instanceId; this.policyTypeName = data.name; this.jsonSchemaObject = data.createSchema; - this.jsonObject = this.parseJson(data.instanceJson); + this.jsonObject = data.instanceJson; this.ric = data.ric; } @@ -134,6 +137,7 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { } ngAfterViewInit() { + this.cdr.detectChanges(); } get ricSelector() { return this.instanceForm.get('ricSelector'); } @@ -144,11 +148,12 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { } const policyJson: string = this.prettyLiveFormData; const self: PolicyInstanceDialogComponent = this; - this.dataService.putPolicy(this.policyTypeName, this.policyInstanceId, policyJson, this.ric).subscribe( + let createPolicyInstance = this.createPolicyInstance(policyJson); + this.dataService.putPolicy(createPolicyInstance).subscribe( { next(_) { self.notificationService.success('Policy ' + self.policyTypeName + ':' + self.policyInstanceId + - ' submitted'); + ' submitted'); }, error(error: HttpErrorResponse) { self.errorService.displayError('Submit failed: ' + error.error); @@ -157,6 +162,16 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { }); } + private createPolicyInstance(policyJson: string) { + let createPolicyInstance = {} as CreatePolicyInstance; + createPolicyInstance.policy_data = JSON.parse(policyJson); + createPolicyInstance.policy_id = this.policyInstanceId; + createPolicyInstance.policytype_id = this.policyTypeName; + createPolicyInstance.ric_id = (!this.ricSelector.value.ric_id) ? this.ric : this.ricSelector.value.ric_id; + createPolicyInstance.service_id = 'controlpanel'; + return createPolicyInstance; + } + onClose() { this.dialogRef.close(); } @@ -225,10 +240,10 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { export function getPolicyDialogProperties(policyTypeSchema: PolicyTypeSchema, instance: PolicyInstance, darkMode: boolean): MatDialogConfig { const createSchema = policyTypeSchema.schemaObject; - const instanceId = instance ? instance.id : null; - const instanceJson = instance ? instance.json : null; + const instanceId = instance ? instance.policy_id : null; + const instanceJson = instance ? instance.policy_data : null; const name = policyTypeSchema.name; - const ric = instance ? instance.ric : null; + const ric = instance ? instance.ric_id : null; return { maxWidth: '1200px', maxHeight: '900px',