diff --git a/ui-ngx/src/app/modules/home/components/dashboard/dashboard.component.ts b/ui-ngx/src/app/modules/home/components/dashboard/dashboard.component.ts index 46255cfc57..cb60b5338c 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard/dashboard.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard/dashboard.component.ts @@ -248,8 +248,15 @@ export class DashboardComponent extends PageComponent implements IDashboardCompo defaultItemCols: 8, defaultItemRows: 6, displayGrid: this.displayGrid, - resizable: {enabled: this.isEdit && !this.isEditingWidget, delayStart: 50}, - draggable: {enabled: this.isEdit && !this.isEditingWidget}, + resizable: { + enabled: this.isEdit && !this.isEditingWidget, + delayStart: 50, + stop: (_, itemComponent) => {(itemComponent.item as DashboardWidget).updatePosition(itemComponent.$item.x, itemComponent.$item.y);} + }, + draggable: { + enabled: this.isEdit && !this.isEditingWidget, + stop: (_, itemComponent) => {(itemComponent.item as DashboardWidget).updatePosition(itemComponent.$item.x, itemComponent.$item.y);} + }, itemChangeCallback: () => this.dashboardWidgets.sortWidgets(), itemInitCallback: (_, itemComponent) => { (itemComponent.item as DashboardWidget).gridsterItemComponent = itemComponent; diff --git a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts index 19838773cf..65c6c23004 100644 --- a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts +++ b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts @@ -706,15 +706,7 @@ export class DashboardWidget implements GridsterItem, IDashboardWidget { return Math.floor(res); } - set x(x: number) { - if (!this.dashboard.isMobileSize && this.dashboard.isEdit) { - if (this.widgetLayout) { - this.widgetLayout.col = x; - } else { - this.widget.col = x; - } - } - } + set x(_: number) {} @enumerable(true) get y(): number { @@ -727,15 +719,7 @@ export class DashboardWidget implements GridsterItem, IDashboardWidget { return Math.floor(res); } - set y(y: number) { - if (!this.dashboard.isMobileSize && this.dashboard.isEdit) { - if (this.widgetLayout) { - this.widgetLayout.row = y; - } else { - this.widget.row = y; - } - } - } + set y(_: number) {} get preserveAspectRatio(): boolean { if (!this.dashboard.isMobileSize && this.widgetLayout) { @@ -833,4 +817,14 @@ export class DashboardWidget implements GridsterItem, IDashboardWidget { } return order; } + + updatePosition(x: number, y: number) { + if (this.widgetLayout) { + this.widgetLayout.col = x; + this.widgetLayout.row = y; + } else { + this.widget.col = x; + this.widget.row = y; + } + } }