Merge pull request #7658 from engix-ltd/hide_widget_in_desktop

[3.4.2] UI: Make possible to hide widget in desktop mode.
This commit is contained in:
Igor Kulikov 2022-11-23 12:15:02 +02:00 committed by GitHub
commit 9830896893
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 25 additions and 6 deletions

View File

@ -395,7 +395,8 @@ export class DashboardUtilsService {
sizeY: originalSize ? originalSize.sizeY : widget.sizeY, sizeY: originalSize ? originalSize.sizeY : widget.sizeY,
mobileOrder: widget.config.mobileOrder, mobileOrder: widget.config.mobileOrder,
mobileHeight: widget.config.mobileHeight, mobileHeight: widget.config.mobileHeight,
mobileHide: widget.config.mobileHide mobileHide: widget.config.mobileHide,
desktopHide: widget.config.desktopHide
}; };
if (isUndefined(originalColumns)) { if (isUndefined(originalColumns)) {
originalColumns = 24; originalColumns = 24;

View File

@ -140,6 +140,7 @@ export class AddWidgetDialogComponent extends DialogComponent<AddWidgetDialogCom
this.widget.config.mobileOrder = widgetConfig.layout.mobileOrder; this.widget.config.mobileOrder = widgetConfig.layout.mobileOrder;
this.widget.config.mobileHeight = widgetConfig.layout.mobileHeight; this.widget.config.mobileHeight = widgetConfig.layout.mobileHeight;
this.widget.config.mobileHide = widgetConfig.layout.mobileHide; this.widget.config.mobileHide = widgetConfig.layout.mobileHide;
this.widget.config.desktopHide = widgetConfig.layout.desktopHide;
this.dialogRef.close(this.widget); this.dialogRef.close(this.widget);
} }
} }

View File

@ -492,6 +492,9 @@
<mat-slide-toggle formControlName="mobileHide" (click)="$event.stopPropagation()" fxLayoutAlign="center"> <mat-slide-toggle formControlName="mobileHide" (click)="$event.stopPropagation()" fxLayoutAlign="center">
{{ 'widget-config.mobile-hide' | translate }} {{ 'widget-config.mobile-hide' | translate }}
</mat-slide-toggle> </mat-slide-toggle>
<mat-slide-toggle formControlName="desktopHide" (click)="$event.stopPropagation()" fxLayoutAlign="center">
{{ 'widget-config.desktop-hide' | translate }}
</mat-slide-toggle>
</mat-panel-title> </mat-panel-title>
<mat-panel-description fxLayoutAlign="end center" fxHide.xs translate> <mat-panel-description fxLayoutAlign="end center" fxHide.xs translate>
widget-config.advanced-settings widget-config.advanced-settings

View File

@ -255,7 +255,8 @@ export class WidgetConfigComponent extends PageComponent implements OnInit, Cont
this.layoutSettings = this.fb.group({ this.layoutSettings = this.fb.group({
mobileOrder: [null, [Validators.pattern(/^-?[0-9]+$/)]], mobileOrder: [null, [Validators.pattern(/^-?[0-9]+$/)]],
mobileHeight: [null, [Validators.min(1), Validators.max(10), Validators.pattern(/^\d*$/)]], mobileHeight: [null, [Validators.min(1), Validators.max(10), Validators.pattern(/^\d*$/)]],
mobileHide: [false] mobileHide: [false],
desktopHide: [false]
}); });
this.actionsSettings = this.fb.group({ this.actionsSettings = this.fb.group({
actionsData: [null, []] actionsData: [null, []]
@ -554,7 +555,8 @@ export class WidgetConfigComponent extends PageComponent implements OnInit, Cont
{ {
mobileOrder: layout.mobileOrder, mobileOrder: layout.mobileOrder,
mobileHeight: layout.mobileHeight, mobileHeight: layout.mobileHeight,
mobileHide: layout.mobileHide mobileHide: layout.mobileHide,
desktopHide: layout.desktopHide
}, },
{emitEvent: false} {emitEvent: false}
); );
@ -563,7 +565,8 @@ export class WidgetConfigComponent extends PageComponent implements OnInit, Cont
{ {
mobileOrder: null, mobileOrder: null,
mobileHeight: null, mobileHeight: null,
mobileHide: false mobileHide: false,
desktopHide: false
}, },
{emitEvent: false} {emitEvent: false}
); );

View File

@ -116,8 +116,12 @@ export class DashboardWidgets implements Iterable<DashboardWidget> {
} }
get activeDashboardWidgets(): Array<DashboardWidget> { get activeDashboardWidgets(): Array<DashboardWidget> {
if (this.dashboard.isMobileSize && !this.dashboard.isEdit) { if (!this.dashboard.isEdit) {
return this.dashboardWidgets.filter(w => !w.mobileHide); if (this.dashboard.isMobileSize) {
return this.dashboardWidgets.filter(w => !w.mobileHide);
} else {
return this.dashboardWidgets.filter(w => !w.desktopHide);
}
} }
return this.dashboardWidgets; return this.dashboardWidgets;
} }
@ -358,6 +362,10 @@ export class DashboardWidget implements GridsterItem, IDashboardWidget {
return this.widgetLayout ? this.widgetLayout.mobileHide === true : false; return this.widgetLayout ? this.widgetLayout.mobileHide === true : false;
} }
get desktopHide(): boolean {
return this.widgetLayout ? this.widgetLayout.desktopHide === true : false;
}
set gridsterItemComponent(item: GridsterItemComponentInterface) { set gridsterItemComponent(item: GridsterItemComponentInterface) {
this.gridsterItemComponentValue = item; this.gridsterItemComponentValue = item;
this.gridsterItemComponentSubject.next(this.gridsterItemComponentValue); this.gridsterItemComponentSubject.next(this.gridsterItemComponentValue);

View File

@ -36,6 +36,7 @@ export interface DashboardInfo extends BaseData<DashboardId>, ExportableEntity<D
export interface WidgetLayout { export interface WidgetLayout {
sizeX?: number; sizeX?: number;
sizeY?: number; sizeY?: number;
desktopHide?: boolean;
mobileHide?: boolean; mobileHide?: boolean;
mobileHeight?: number; mobileHeight?: number;
mobileOrder?: number; mobileOrder?: number;

View File

@ -606,6 +606,7 @@ export interface WidgetConfig {
showLegend?: boolean; showLegend?: boolean;
legendConfig?: LegendConfig; legendConfig?: LegendConfig;
timewindow?: Timewindow; timewindow?: Timewindow;
desktopHide?: boolean;
mobileHide?: boolean; mobileHide?: boolean;
mobileHeight?: number; mobileHeight?: number;
mobileOrder?: number; mobileOrder?: number;

View File

@ -3707,6 +3707,7 @@
"order": "Order", "order": "Order",
"height": "Height", "height": "Height",
"mobile-hide": "Hide widget in mobile mode", "mobile-hide": "Hide widget in mobile mode",
"desktop-hide": "Hide widget in desktop mode",
"units": "Special symbol to show next to value", "units": "Special symbol to show next to value",
"decimals": "Number of digits after floating point", "decimals": "Number of digits after floating point",
"timewindow": "Timewindow", "timewindow": "Timewindow",