import { NotificationService } from '../services/ui/notification.service';
import { BehaviorSubject, Observable } from 'rxjs';
import { UiService } from '../services/ui/ui.service';
+import { NoTypePolicyInstanceDialogComponent } from './no-type-policy-instance-dialog.component';
class PolicyTypeInfo {
constructor(public type: PolicyType) { }
}
createPolicyInstance(policyType: PolicyType): void {
- const dialogRef = this.dialog.open(PolicyInstanceDialogComponent, getPolicyDialogProperties(policyType, null, this.darkMode));
+ let dialogRef;
+ if (this.isSchemaEmpty(policyType)) {
+ dialogRef = this.dialog.open(NoTypePolicyInstanceDialogComponent,
+ getPolicyDialogProperties(policyType, null, this.darkMode));
+ } else {
+ dialogRef = this.dialog.open(PolicyInstanceDialogComponent,
+ getPolicyDialogProperties(policyType, null, this.darkMode));
+ }
const info: PolicyTypeInfo = this.getPolicyTypeInfo(policyType);
dialogRef.afterClosed().subscribe(
- (result: any) => {
+ (_) => {
info.isExpanded.next(info.isExpanded.getValue());
}
);
info.isExpanded.next(!info.isExpanded.getValue());
}
+ private isSchemaEmpty(policyType: PolicyType): boolean {
+ return Object.keys(policyType.schemaObject).length === 0;
+ }
+
getPolicyTypeInfo(policyType: PolicyType): PolicyTypeInfo {
let info: PolicyTypeInfo = this.policyTypeInfo.get(policyType.name);
if (!info) {
return info;
}
- getName(policyType: PolicyType): string {
- if (policyType.schemaObject.title) { return policyType.schemaObject.title; }
- return policyType.name;
+ getDisplayName(policyType: PolicyType): string {
+ if (policyType.schemaObject.title) {
+ return policyType.schemaObject.title;
+ }
+ return '< No type >';
}
isInstancesShown(policyType: PolicyType): boolean {
getExpandedObserver(policyType: PolicyType): Observable<boolean> {
return this.getPolicyTypeInfo(policyType).isExpanded.asObservable();
}
+
+ refreshTables() {
+ this.policyTypesDataSource.loadTable();
+ }
}