,
+ protected widgetConfigComponent: WidgetConfigComponent,
+ private utils: UtilsService,
+ private fb: UntypedFormBuilder) {
+ super(store, widgetConfigComponent);
+ }
+
+ protected configForm(): UntypedFormGroup {
+ return this.alarmCountWidgetConfigForm;
+ }
+
+ protected setupDefaults(configData: WidgetConfigComponentData) {
+ let datasources = configData.config.datasources;
+ if (!datasources || !datasources.length) {
+ datasources = [{}];
+ configData.config.datasources = datasources;
+ }
+ datasources[0].type = DatasourceType.alarmCount;
+ datasources[0].alarmFilterConfig = {statusList: [AlarmSearchStatus.ACTIVE]};
+ datasources[0].dataKeys = [this.utils.createKey({name: 'count'}, DataKeyType.count)];
+ }
+
+ protected onConfigSet(configData: WidgetConfigComponentData) {
+ const settings: CountWidgetSettings = {...countDefaultSettings(true), ...(configData.config.settings || {})};
+ this.alarmCountWidgetConfigForm = this.fb.group({
+ alarmFilterConfig: [getAlarmFilterConfig(configData.config.datasources), []],
+
+ settings: [settings, []],
+
+ backgroundColor: [configData.config.backgroundColor, []],
+ cardButtons: [this.getCardButtons(configData.config), []],
+ borderRadius: [configData.config.borderRadius, []],
+
+ actions: [configData.config.actions || {}, []]
+ });
+ }
+
+ protected prepareOutputConfig(config: any): WidgetConfigComponentData {
+ setAlarmFilterConfig(config.alarmFilterConfig, this.widgetConfig.config.datasources);
+
+ this.widgetConfig.config.settings = {...(this.widgetConfig.config.settings || {}), ...config.settings};
+
+ this.widgetConfig.config.backgroundColor = config.backgroundColor;
+ this.setCardButtons(config.cardButtons, this.widgetConfig.config);
+ this.widgetConfig.config.borderRadius = config.borderRadius;
+
+ this.widgetConfig.config.actions = config.actions;
+ return this.widgetConfig;
+ }
+
+ private getCardButtons(config: WidgetConfig): string[] {
+ const buttons: string[] = [];
+ if (isUndefined(config.enableFullscreen) || config.enableFullscreen) {
+ buttons.push('fullscreen');
+ }
+ return buttons;
+ }
+
+ private setCardButtons(buttons: string[], config: WidgetConfig) {
+ config.enableFullscreen = buttons.includes('fullscreen');
+ }
+}
diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/alarm/alarms-table-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/alarm/alarms-table-basic-config.component.html
index e343ac9b81..d2d9fc5e8f 100644
--- a/ui-ngx/src/app/modules/home/components/widget/config/basic/alarm/alarms-table-basic-config.component.html
+++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/alarm/alarms-table-basic-config.component.html
@@ -49,7 +49,7 @@
formControlName="columns">
+
+
+