MatDialogRef,
MAT_DIALOG_DATA,
} from "@angular/material/dialog";
-import { PolicyService } from "../../services/policy/policy.service";
-import { NotificationService } from "../../services/ui/notification.service";
-import { UiService } from "../../services/ui/ui.service";
-import { HttpErrorResponse } from "@angular/common/http";
-import { ErrorDialogService } from "../../services/ui/error-dialog.service";
+import { PolicyService } from "@services/policy/policy.service";
+import { NotificationService } from "@services/ui/notification.service";
+import { UiService } from "@services/ui/ui.service";
import * as uuid from "uuid";
import {
CreatePolicyInstance,
PolicyInstance,
PolicyTypeSchema,
-} from "../../interfaces/policy.types";
-import { formatJsonString } from "../no-type-policy-editor/no-type-policy-editor.component";
+} from "@interfaces/policy.types";
@Component({
selector: "nrcp-policy-instance-dialog",
private cdr: ChangeDetectorRef,
public dialogRef: MatDialogRef<PolicyInstanceDialogComponent>,
private policySvc: PolicyService,
- private errorService: ErrorDialogService,
private notificationService: NotificationService,
@Inject(MAT_DIALOG_DATA) private data,
private ui: UiService
) {
this.policyInstance.policy_id = data.instanceId;
- this.policyInstance.policytype_id = data.name;
+ this.policyInstance.policytype_id = data.name ? data.name : "";
this.policyInstance.policy_data = data.instanceJson;
this.policyJson = data.instanceJson;
this.jsonSchemaObject = data.createSchema;
this.policyInstance.ric_id = data.ric;
+ this.policyInstance.service_id = "controlpanel";
}
ngOnInit() {
this.ui.darkModeState.subscribe((isDark) => {
this.darkMode = isDark;
});
- this.formatNoTypePolicyJson();
}
// Do not remove! Needed to avoid "Expression has changed after it was checked" warning
this.cdr.detectChanges();
}
- private formatNoTypePolicyJson() {
- if (!this.typeHasSchema()) {
- if (this.policyInstance.policy_data) {
- this.policyJson = formatJsonString(this.policyInstance.policy_data);
- } else {
- this.policyJson = "{}";
- }
- }
- }
-
onSelectedRicChanged(newRic: string): void {
this.policyInstance.ric_id = newRic;
}
onJsonChanged(newJson: string): void {
- this.policyInstance.policy_data = newJson;
+ this.policyInstance.policy_data = newJson ? JSON.parse(newJson) : null;
}
onSubmit() {
self.notificationService.success(
"Policy " + self.policyInstance.policy_id + " submitted"
);
- self.dialogRef.close();
- },
- error(error: HttpErrorResponse) {
- self.errorService.displayError("Submit failed: " + error.error);
+ self.dialogRef.close("ok");
},
complete() {},
});
}
typeHasSchema(): boolean {
- return this.jsonSchemaObject !== "{}";
+ return this.jsonSchemaObject.description ? true : false;
}
isFormValid(): boolean {
const instanceJson = instance ? instance.policy_data : null;
const name = policyTypeSchema.name;
const ric = instance ? instance.ric_id : null;
- return {
+ const data = {
maxWidth: "1200px",
maxHeight: "900px",
width: "900px",
name,
ric,
},
- };
+ } as MatDialogConfig;
+ return data;
}