Add test of typed policy editor component
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / policy / policy-instance-dialog / policy-instance-dialog.component.html
index 76a9ae0..695dc6d 100644 (file)
@@ -19,7 +19,7 @@
   -->
 
 <div class="text-muted logo" fxLayout="row" fxLayoutGap="50px" fxLayoutAlign="space-around center">
-    <div *ngIf="policyInstanceId">[{{this.ric}}] Instance ID: {{policyInstanceId}}</div>
+    <div *ngIf="policyInstanceId">[{{ric}}] Instance ID: {{policyInstanceId}}</div>
 </div>
 <div class="mat-elevation-z8 header row" [ngClass]="{'header-dark': darkMode}">
     <div class="logo">
@@ -27,9 +27,9 @@
         <svg class="logo__icon" viewBox="150.3 22.2 1000 50">
             <text class="logo__text" [ngClass]="{'logo__text-dark': darkMode}" font-size="30" font-weight="600"
                 letter-spacing=".1em" transform="translate(149 56)">
-                <tspan *ngIf="!this.policyInstanceId">Create new policy instance of type </tspan>
-                <tspan *ngIf="jsonSchemaObject.title"> {{this.jsonSchemaObject.title}}</tspan>
-                <tspan *ngIf="!jsonSchemaObject.title"> {{this.policyTypeName}}</tspan>
+                <tspan *ngIf="!policyInstanceId">Create new policy instance of type </tspan>
+                <tspan *ngIf="jsonSchemaObject.title"> {{jsonSchemaObject.title}}</tspan>
+                <tspan *ngIf="!jsonSchemaObject.title"> {{policyTypeName}}</tspan>
             </text>
         </svg>
     </div>
     fxLayoutAlign.lt-sm="flex-start center">
 
     <mat-card class="card" [ngClass]="{'card-dark': darkMode}">
-        <mat-form-field *ngIf="!this.policyInstanceId" appearance="fill">
-            <mat-select id="ricSelector" formControlName="ricSelector" matInput required [(value)]="this.ric"
+        <mat-form-field *ngIf="!policyInstanceId" appearance="fill">
+            <mat-select id="ricSelector" formControlName="ricSelector" matInput required [(value)]="ric"
                 placeholder="Target"
                 matTooltip="Element where the policy instance resides, e.g. a gNodeB or Near-RT RIC">
-                <mat-option *ngFor="let ric of this.allRics" [value]="ric">
+                <mat-option *ngFor="let ric of allRics" [value]="ric">
                     {{ric.ric_id}}
                 </mat-option>
             </mat-select>
             </div>
         </mat-form-field>
 
-        <h4 class="default-cursor" (click)="toggleVisible('form')">
-            <mat-icon matTooltip="Properties">{{isVisible.form ? 'expand_less' : 'expand_more'}}</mat-icon>
-            Properties
-        </h4>
-        <div *ngIf="isVisible.form" class="json-schema-form" [@expandSection]="true">
-            <div *ngIf="!formActive">{{jsonFormStatusMessage}}</div>
-
-            <json-schema-form *ngIf="formActive" loadExternalAssets="true" [form]="jsonSchemaObject"
-                [(data)]="jsonObject" [options]="jsonFormOptions" [framework]="'material-design'" [language]="'en'"
-                (onChanges)="onChanges($event)" (onSubmit)="onSubmit($event)" (isValid)="isValid($event)"
-                (validationErrors)="validationErrors($event)">
-            </json-schema-form>
-        </div>
+        <nrcp-typed-policy-editor [jsonSchemaObject]="jsonSchemaObject" [jsonObject]="data.instanceJson" [darkMode]="darkMode"></nrcp-typed-policy-editor>
         <hr />
-        <button mat-raised-button (click)="this.onClose()">Close</button>
-        <button mat-raised-button (click)="this.onSubmit()" [disabled]="!this.formIsValid || !this.ric"
+        <button mat-raised-button (click)="onClose()">Close</button>
+        <button mat-raised-button (click)="onSubmit()" [disabled]="!isJsonFormValid || !ric"
             class="submitBtn">Submit</button>
         <hr />
-        <h4 [class.text-danger]="!formIsValid && !isVisible.json" [class.default-cursor]="formIsValid || isVisible.json"
-            (click)="toggleVisible('json')">
-            <mat-icon matTooltip="Json">{{isVisible.json ? 'expand_less' : 'expand_more'}}</mat-icon>
-            Json
-        </h4>
-        <div *ngIf="isVisible.json" fxLayout="column" [@expandSection]="true">
-            <div>
-                <strong *ngIf="formIsValid || prettyValidationErrors" [class.text-muted]="formIsValid"
-                    [class.text-danger]="!formIsValid">
-                    {{formIsValid ? 'Json' : 'Not valid'}}
-                </strong>
-                <span *ngIf="!formIsValid && !prettyValidationErrors">Invalid form</span>
-                <span *ngIf="prettyValidationErrors">— errors:</span>
-                <div *ngIf="prettyValidationErrors" class="text-danger" [innerHTML]="prettyValidationErrors"></div>
-            </div>
-            <div>
-                <pre [class.text__dark]="this.darkMode">{{prettyLiveFormData}}</pre>
-            </div>
-        </div>
-
-        <h4 class="default-cursor" (click)="toggleVisible('schema')">
-            <mat-icon matTooltip="Json Schema">{{isVisible.schema ? 'expand_less' : 'expand_more'}}</mat-icon>
-            Json Schema
-        </h4>
-        <div *ngIf="isVisible.schema" fxLayout="column" [@expandSection]="true">
-            <strong class="text-muted">Schema</strong>
-            <pre [class.text__dark]="this.darkMode">{{schemaAsString}}</pre>
-        </div>
     </mat-card>
 </div>
\ No newline at end of file