formValidationErrors: any;
formIsValid = false;
-
@ViewChild(MatMenuTrigger, { static: true }) menuTrigger: MatMenuTrigger;
- public policyInstanceId: string;
- public policyTypeName: string;
+ policyInstanceId: string; // null if not yet created
+ policyTypeName: string;
darkMode: boolean;
- private policyTypeId: number;
+ ric: string;
+ allRics: string[];
+ private fetchRics() {
+ console.log('fetchRics ' + this.policyTypeName);
+ const self: PolicyInstanceDialogComponent = this;
+ this.dataService.getRics(this.policyTypeName).subscribe(
+ {
+ next(value) {
+ self.allRics = value;
+ console.log(value);
+ },
+ error(error) {
+ self.errorService.displayError('Fetching of rics failed: ' + error.message);
+ },
+ complete() { }
+ });
+ }
constructor(
private dataService: PolicyService,
private dialogRef: MatDialogRef<PolicyInstanceDialogComponent>,
private ui: UiService) {
this.formActive = false;
- this.policyInstanceId = this.data.instanceId;
- this.policyTypeName = this.data.name;
- this.policyTypeId = this.data.policyTypeId;
- this.parseJson(data.createSchema, data.instanceJson);
+ this.policyInstanceId = data.instanceId;
+ this.policyTypeName = data.name;
+ this.jsonSchemaObject = data.createSchema;
+ this.jsonObject = this.parseJson(data.instanceJson);
+ this.ric = data.ric;
}
ngOnInit() {
this.ui.darkModeState.subscribe((isDark) => {
this.darkMode = isDark;
});
+ if (!this.policyInstanceId) {
+ this.fetchRics();
+ }
}
ngAfterViewInit() {
}
const policyJson: string = this.prettyLiveFormData;
const self: PolicyInstanceDialogComponent = this;
- this.dataService.putPolicy(this.policyTypeId, this.policyInstanceId, policyJson).subscribe(
+ this.dataService.putPolicy(this.policyTypeName, this.policyInstanceId, policyJson, this.ric).subscribe(
{
next(value) {
self.notificationService.success('Policy ' + self.policyTypeName + ':' + self.policyInstanceId + ' submitted');
this.dialogRef.close();
}
- public onChanges(data: any) {
- this.liveFormData = data;
+ public onChanges(formData: any) {
+ this.liveFormData = formData;
}
get prettyLiveFormData() {
this.formIsValid = isValid;
}
- validationErrors(data: any): void {
- this.formValidationErrors = data;
+ validationErrors(validationErrors: any): void {
+ this.formValidationErrors = validationErrors;
}
get prettyValidationErrors() {
return errorArray.join('<br>');
}
- private parseJson(createSchema: string, instanceJson: string): void {
+ private parseJson(str: string): string {
try {
- this.jsonSchemaObject = JSON.parse(createSchema);
- if (this.data.instanceJson != null) {
- this.jsonObject = JSON.parse(instanceJson);
+ if (str != null) {
+ return JSON.parse(str);
}
} catch (jsonError) {
this.jsonFormStatusMessage =
'Invalid JSON\n' +
'parser returned:\n\n' + jsonError;
- return;
}
+ return null;
}
public toggleVisible(item: string) {
}
export function getPolicyDialogProperties(policyType: PolicyType, instance: PolicyInstance, darkMode: boolean): MatDialogConfig {
- const policyTypeId = policyType.policy_type_id;
- const createSchema = policyType.create_schema;
- const instanceId = instance ? instance.instanceId : null;
- const instanceJson = instance ? instance.instance : null;
+ const createSchema = policyType.schemaObject;
+ const instanceId = instance ? instance.id : null;
+ const instanceJson = instance ? instance.json : null;
const name = policyType.name;
+ const ric = instance ? instance.ric : null;
return {
maxWidth: '1200px',
maxHeight: '900px',
disableClose: false,
panelClass: darkMode ? 'dark-theme' : '',
data: {
- policyTypeId,
createSchema,
instanceId,
instanceJson,
- name
+ name,
+ ric
}
};
}