*/
import { Component, OnInit, ViewChild } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
-import { MatSort } from '@angular/material/sort';
import { animate, state, style, transition, trigger } from '@angular/animations';
-import { PolicyService } from '../services/policy/policy.service';
import { PolicyType } from '../interfaces/policy.types';
import { PolicyTypeDataSource } from './policy-type.datasource';
import { getPolicyDialogProperties } from './policy-instance-dialog.component';
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) { }
})
export class PolicyControlComponent implements OnInit {
-
- policyTypesDataSource: PolicyTypeDataSource;
- @ViewChild(MatSort, { static: true }) sort: MatSort;
-
policyTypeInfo = new Map<string, PolicyTypeInfo>();
darkMode: boolean;
constructor(
- private policySvc: PolicyService,
+ private policyTypesDataSource: PolicyTypeDataSource,
private dialog: MatDialog,
private notificationService: NotificationService,
private ui: UiService) { }
ngOnInit() {
- this.policyTypesDataSource = new PolicyTypeDataSource(this.policySvc, this.sort, this.notificationService);
this.policyTypesDataSource.loadTable();
this.ui.darkModeState.subscribe((isDark) => {
this.darkMode = isDark;
}
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());
}
);
getExpandedObserver(policyType: PolicyType): Observable<boolean> {
return this.getPolicyTypeInfo(policyType).isExpanded.asObservable();
}
+
+ refreshTables() {
+ this.policyTypesDataSource.loadTable();
+ }
}