import { PolicyService } from '../services/policy/policy.service';
import { ConfirmDialogService } from './../services/ui/confirm-dialog.service';
import { PolicyInstance } from '../interfaces/policy.types';
+import { NoTypePolicyInstanceDialogComponent } from './no-type-policy-instance-dialog.component';
import { PolicyInstanceDialogComponent } from './policy-instance-dialog.component';
import { getPolicyDialogProperties } from './policy-instance-dialog.component';
import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
}
}
+ private isSchemaEmpty(): boolean {
+ return Object.keys(this.policyType.schemaObject).length === 0;
+ }
+
modifyInstance(instance: PolicyInstance): void {
this.policySvc.getPolicy(this.policyType.name, instance.id).subscribe(
(refreshedJson: any) => {
instance.json = JSON.stringify(refreshedJson);
- this.dialog.open(PolicyInstanceDialogComponent, getPolicyDialogProperties(this.policyType, instance, this.darkMode));
+ if (this.isSchemaEmpty()) {
+ this.dialog.open(
+ NoTypePolicyInstanceDialogComponent,
+ getPolicyDialogProperties(this.policyType, instance, this.darkMode)).afterClosed().subscribe(
+ (_: any) => {
+ this.instanceDataSource.loadTable();
+ }
+ );
+ } else {
+ this.dialog.open(
+ PolicyInstanceDialogComponent,
+ getPolicyDialogProperties(this.policyType, instance, this.darkMode)).afterClosed().subscribe(
+ (_: any) => {
+ this.instanceDataSource.loadTable();
+ }
+ );
+
+ }
},
(httpError: HttpErrorResponse) => {
- this.notificationService.error('Could not refresh instance ' + httpError.message);
- this.dialog.open(PolicyInstanceDialogComponent, getPolicyDialogProperties(this.policyType, instance, this.darkMode));
+ this.notificationService.error('Could not refresh instance. Please try again.' + httpError.message);
}
);
}
this.instanceDataSource.loadTable();
break;
default:
- this.notificationService.warn('Delete failed.');
+ this.notificationService.warn('Delete failed ' + response.status + ' ' + response.body);
}
},
(error: HttpErrorResponse) => {
- this.errorDialogService.displayError(error.message);
+ this.errorDialogService.displayError(error.statusText + ', ' + error.error);
});
}
});