From b78d2c9ac49341c5354c4e591ee72da320a30481 Mon Sep 17 00:00:00 2001 From: Lathish Date: Mon, 1 Feb 2021 23:10:19 +0000 Subject: [PATCH] Fix Policy Instance Dialog Component Issue-ID: NONRTRIC-420 Change-Id: I20580aced751be3accd027ca39c56607fb698479 Signed-off-by: Lathish --- nonrtric-gateway/config/application.yaml | 2 +- webapp-frontend/.vscode/launch.json | 2 +- webapp-frontend/src/app/interceptor.mock.ts | 28 +++++++++++----------- .../no-type-policy-instance-dialog.component.ts | 14 +++++------ .../policy-instance-dialog.component.ts | 7 ++++-- .../policy-control/policy-instance.component.ts | 16 ++++++------- .../src/app/services/policy/policy.service.ts | 4 ++-- 7 files changed, 38 insertions(+), 35 deletions(-) diff --git a/nonrtric-gateway/config/application.yaml b/nonrtric-gateway/config/application.yaml index ce50c44..cf3c358 100644 --- a/nonrtric-gateway/config/application.yaml +++ b/nonrtric-gateway/config/application.yaml @@ -33,7 +33,7 @@ spring: - id: policies uri: https://localhost:8433 predicates: - - Path=/a1-policy/v2/policies + - Path=/a1-policy/v2/policies/** management: endpoint: gateway: diff --git a/webapp-frontend/.vscode/launch.json b/webapp-frontend/.vscode/launch.json index a67e931..9d1a541 100644 --- a/webapp-frontend/.vscode/launch.json +++ b/webapp-frontend/.vscode/launch.json @@ -5,7 +5,7 @@ "type": "chrome", "request": "launch", "name": "Launch Chrome against localhost", - "url": "http://localhost:9876", + "url": "http://localhost:4200", "webRoot": "${workspaceFolder}" }, { diff --git a/webapp-frontend/src/app/interceptor.mock.ts b/webapp-frontend/src/app/interceptor.mock.ts index de521ca..8a1c3ab 100644 --- a/webapp-frontend/src/app/interceptor.mock.ts +++ b/webapp-frontend/src/app/interceptor.mock.ts @@ -36,59 +36,59 @@ import * as rics from './mock/rics.json'; const urls = [ { - url: 'a1-policy/v2/policy-types', + url: '/a1-policy/v2/policy-types', json: policytypesList }, { - url: 'a1-policy/v2/policy-types/', + url: '/a1-policy/v2/policy-types/', json: policytypes1 }, { - url: 'a1-policy/v2/policy-types/1', + url: '/a1-policy/v2/policy-types/1', json: policytypes1 }, { - url: 'a1-policy/v2/policies?policytype_id=', + url: '/a1-policy/v2/policies?policytype_id=', json: policies }, { - url: 'a1-policy/v2/policies?policytype_id=1', + url: '/a1-policy/v2/policies?policytype_id=1', json: policies }, { - url: 'a1-policy/v2/policies/2000', + url: '/a1-policy/v2/policies/2000', json: policyinstances1 }, { - url: 'a1-policy/v2/policies/2100', + url: '/a1-policy/v2/policies/2100', json: policyinstances2 }, { - url: 'a1-policy/v2/policies/2000/status', + url: '/a1-policy/v2/policies/2000/status', json: policyinstances1Status }, { - url: 'a1-policy/v2/policies/2100/status', + url: '/a1-policy/v2/policies/2100/status', json: policyinstances2Status }, { - url: 'a1-policy/v2/policies/2000?type=', + url: '/a1-policy/v2/policies/2000?type=', json: policyinstanceedit }, { - url: 'a1-policy/v2/policies/2100?type=', + url: '/a1-policy/v2/policies/2100?type=', json: policyinstanceedit }, { - url: 'a1-policy/v2/policies/2000?type=1', + url: '/a1-policy/v2/policies/2000?type=1', json: policyinstanceedit }, { - url: 'a1-policy/v2/policies/2100?type=1', + url: '/a1-policy/v2/policies/2100?type=1', json: policyinstanceedit }, { - url: 'a1-policy/v2/policies/2000?ric=ric1&type=1', + url: '/a1-policy/v2/policies/2000?ric=ric1&type=1', json: '' }, { diff --git a/webapp-frontend/src/app/policy-control/no-type-policy-instance-dialog.component.ts b/webapp-frontend/src/app/policy-control/no-type-policy-instance-dialog.component.ts index 8c2a114..976a4e4 100644 --- a/webapp-frontend/src/app/policy-control/no-type-policy-instance-dialog.component.ts +++ b/webapp-frontend/src/app/policy-control/no-type-policy-instance-dialog.component.ts @@ -76,7 +76,7 @@ export class NoTypePolicyInstanceDialogComponent implements OnInit { onSubmit() { if (this.policyInstanceId == null) { - this.policyInstanceId = uuid.v4(); + this.policyInstanceId = uuid.v4(); } const self: NoTypePolicyInstanceDialogComponent = this; this.policySvc.putPolicy('', this.policyInstanceId, this.policyJsonTextArea.value, this.ric).subscribe( @@ -106,13 +106,13 @@ export class NoTypePolicyInstanceDialogComponent implements OnInit { }); } - private formatJsonString(jsonToFormat: string) { - return JSON.stringify(JSON.parse(jsonToFormat), null, 2); - } + private formatJsonString(jsonToFormat: any) { + return JSON.stringify(jsonToFormat, null, 2); + } - formatJsonInput() { - this.policyJson = this.formatJsonString(this.policyJsonTextArea.value); - } + formatJsonInput() { + this.policyJson = this.formatJsonString(JSON.parse(this.policyJsonTextArea.value)); + } } export function jsonValidator(): ValidatorFn { 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 319efaa..47c95b9 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 @@ -30,6 +30,7 @@ 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'; @Component({ @@ -103,6 +104,7 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { } constructor( + private cdr: ChangeDetectorRef, private dataService: PolicyService, private errorService: ErrorDialogService, private notificationService: NotificationService, @@ -113,7 +115,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 +136,7 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { } ngAfterViewInit() { + this.cdr.detectChanges(); } get ricSelector() { return this.instanceForm.get('ricSelector'); } @@ -148,7 +151,7 @@ export class PolicyInstanceDialogComponent implements OnInit, AfterViewInit { { next(_) { self.notificationService.success('Policy ' + self.policyTypeName + ':' + self.policyInstanceId + - ' submitted'); + ' submitted'); }, error(error: HttpErrorResponse) { self.errorService.displayError('Submit failed: ' + error.error); diff --git a/webapp-frontend/src/app/policy-control/policy-instance.component.ts b/webapp-frontend/src/app/policy-control/policy-instance.component.ts index bc8aa32..b8861d6 100644 --- a/webapp-frontend/src/app/policy-control/policy-instance.component.ts +++ b/webapp-frontend/src/app/policy-control/policy-instance.component.ts @@ -59,7 +59,7 @@ export class PolicyInstanceComponent implements OnInit, AfterViewInit { } ngOnInit() { - this.instanceDataSource = new PolicyInstanceDataSource(this.policySvc, this.sort, this.notificationService,this.policyTypeSchema); + this.instanceDataSource = new PolicyInstanceDataSource(this.policySvc, this.sort, this.notificationService, this.policyTypeSchema); this.expanded.subscribe((isExpanded: boolean) => this.onExpand(isExpanded)); this.ui.darkModeState.subscribe((isDark) => { this.darkMode = isDark; @@ -77,28 +77,28 @@ export class PolicyInstanceComponent implements OnInit, AfterViewInit { } private isSchemaEmpty(): boolean { - return Object.keys(this.policyTypeSchema.schemaObject).length === 0; + return this.policyTypeSchema.schemaObject === '{}'; } modifyInstance(instance: PolicyInstance): void { - this.policySvc.getPolicy(this.policyTypeSchema.name, instance.policy_id).subscribe( + this.policySvc.getPolicyInstance(instance.policy_id).subscribe( (refreshedJson: any) => { - instance.policy_data = JSON.stringify(refreshedJson); + instance = refreshedJson; if (this.isSchemaEmpty()) { this.dialog.open( NoTypePolicyInstanceDialogComponent, getPolicyDialogProperties(this.policyTypeSchema, instance, this.darkMode)).afterClosed().subscribe( - (_: any) => { + (_: any) => { this.instanceDataSource.getPolicyInstances(); - } + } ); } else { this.dialog.open( PolicyInstanceDialogComponent, getPolicyDialogProperties(this.policyTypeSchema, instance, this.darkMode)).afterClosed().subscribe( - (_: any) => { + (_: any) => { this.instanceDataSource.getPolicyInstances(); - } + } ); } diff --git a/webapp-frontend/src/app/services/policy/policy.service.ts b/webapp-frontend/src/app/services/policy/policy.service.ts index dc71a83..50c5449 100644 --- a/webapp-frontend/src/app/services/policy/policy.service.ts +++ b/webapp-frontend/src/app/services/policy/policy.service.ts @@ -33,8 +33,8 @@ import { ControlpanelSuccessTransport } from '../../interfaces/controlpanel.type }) export class PolicyService { - private apiVersion2 = 'v2' - private basePath = '/a1-policy/'; + private apiVersion2 = '/v2' + private basePath = '/a1-policy'; policyTypesPath = 'policy-types'; policyPath = 'policies'; -- 2.16.6