UI: Fixed didn't save widget type filter in widgets selector

This commit is contained in:
Vladyslav_Prykhodko 2021-03-31 16:49:56 +03:00
parent 593f95a7af
commit 74e20e2c68
2 changed files with 11 additions and 6 deletions

View File

@ -90,7 +90,6 @@ import {
} from '@home/components/alias/entity-aliases-dialog.component';
import { EntityAliases } from '@app/shared/models/alias.models';
import { EditWidgetComponent } from '@home/components/dashboard-page/edit-widget.component';
import { WidgetsBundle } from '@shared/models/widgets-bundle.model';
import {
AddWidgetDialogComponent,
AddWidgetDialogData
@ -118,8 +117,7 @@ import { ComponentPortal } from '@angular/cdk/portal';
import {
DISPLAY_WIDGET_TYPES_PANEL_DATA,
DisplayWidgetTypesPanelComponent,
DisplayWidgetTypesPanelData,
WidgetTypes
DisplayWidgetTypesPanelData
} from '@home/components/dashboard-page/widget-types-panel.component';
import { DashboardWidgetSelectComponent } from '@home/components/dashboard-page/dashboard-widget-select.component';
@ -1183,13 +1181,16 @@ export class DashboardPageComponent extends PageComponent implements IDashboardC
overlayRef.dispose();
});
const filterWidgetTypes = this.dashboardWidgetSelectComponent.filterWidgetTypes;
const widgetTypesList = Array.from(this.dashboardWidgetSelectComponent.widgetTypes.values()).map(type => {
return {type, display: filterWidgetTypes === null ? true : filterWidgetTypes.includes(type)};
});
const providers: StaticProvider[] = [
{
provide: DISPLAY_WIDGET_TYPES_PANEL_DATA,
useValue: {
types: Array.from(this.dashboardWidgetSelectComponent.widgetTypes.values()).map(type => {
return {type, display: true};
}),
types: widgetTypesList,
typesUpdated: (newTypes) => {
this.filterWidgetTypes = newTypes.filter(type => type.display).map(type => type.type);
}

View File

@ -77,6 +77,10 @@ export class DashboardWidgetSelectComponent implements OnInit {
this.filterWidgetTypes$.next(widgetTypes);
}
get filterWidgetTypes(): Array<widgetType> {
return this.filterWidgetTypes$.value;
}
@Output()
widgetSelected: EventEmitter<WidgetInfo> = new EventEmitter<WidgetInfo>();