CI: Migrate Sonar Scan job to GHA
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / policy / no-type-policy-editor / no-type-policy-editor.component.ts
index 5fa92d9..ece0175 100644 (file)
 //   ========================LICENSE_END===================================
 //  /
 
-import { Component, Input, OnInit, Output } from '@angular/core';
-import { AbstractControl, ControlContainer, FormBuilder, FormControl, FormGroup, FormGroupDirective, ValidatorFn, Validators } from '@angular/forms';
-import { EventEmitter } from '@angular/core';
+import { Component, Input, OnInit, Output } from "@angular/core";
+import {
+  AbstractControl,
+  ControlContainer,
+  FormControl,
+  FormGroup,
+  FormGroupDirective,
+  ValidatorFn,
+  Validators,
+} from "@angular/forms";
+import { EventEmitter } from "@angular/core";
 
 @Component({
-  selector: 'nrcp-no-type-policy-editor',
-  templateUrl: './no-type-policy-editor.component.html',
-  styleUrls: ['./no-type-policy-editor.component.scss'],
-  viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }]
+  selector: "nrcp-no-type-policy-editor",
+  templateUrl: "./no-type-policy-editor.component.html",
+  styleUrls: ["./no-type-policy-editor.component.scss"],
+  viewProviders: [
+    { provide: ControlContainer, useExisting: FormGroupDirective },
+  ],
 })
 export class NoTypePolicyEditorComponent implements OnInit {
   @Input() policyJson: string = null;
@@ -34,31 +44,41 @@ export class NoTypePolicyEditorComponent implements OnInit {
 
   instanceForm: FormGroup = new FormGroup({});
 
-  constructor(
-    private formBuilder: FormBuilder) { }
+  constructor() {}
 
-    ngOnInit(): void {
-      this.instanceForm.addControl(
-        'policyJsonTextArea', new FormControl(this.policyJson, [
-          Validators.required,
-          this.jsonValidator()
-        ])
-      )
+  ngOnInit(): void {
+    let initialJson: string;
+    if (this.policyJson) {
+      initialJson = formatJsonString(this.policyJson);
+    } else {
+      initialJson = "{}";
     }
+    this.instanceForm.addControl(
+      "policyJsonTextArea",
+      new FormControl(initialJson, [
+        Validators.required,
+        this.jsonValidator(),
+      ])
+    );
+  }
 
-    get policyJsonTextArea(): AbstractControl {
-    return this.instanceForm ? this.instanceForm.get('policyJsonTextArea') : null;
+  get policyJsonTextArea(): AbstractControl {
+    return this.instanceForm
+      ? this.instanceForm.get("policyJsonTextArea")
+      : null;
   }
 
   formatJsonInput(): void {
-    this.policyJson = formatJsonString(JSON.parse(this.policyJsonTextArea.value));
+    let jsonBefore: string = this.policyJsonTextArea.value;
+    let jsonAfter = formatJsonString(JSON.parse(jsonBefore));
+    this.policyJsonTextArea.setValue(jsonAfter);
   }
 
   jsonValidator(): ValidatorFn {
     return (control: AbstractControl): { [key: string]: any } | null => {
       const notValid = !this.isJsonValid(control.value);
       this.handleJsonChangeEvent(notValid, control.value);
-      return notValid ? { 'invalidJson': { value: control.value } } : null;
+      return notValid ? { invalidJson: { value: control.value } } : null;
     };
   }
 
@@ -71,16 +91,14 @@ export class NoTypePolicyEditorComponent implements OnInit {
   }
 
   isJsonValid(json: string): boolean {
+    let valid = false as boolean;
     try {
       if (json != null) {
         JSON.parse(json);
-        return true;
-      } else {
-        return false;
+        valid = true;
       }
-    } catch (jsonError) {
-      return false;
-    }
+    } catch (jsonError) {}
+    return valid;
   }
 }