You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2021/08/20 21:35:28 UTC
[incubator-streampipes] 03/03: [STREAMPIPES-402] Properly delete
widgets from database
This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
commit 3847209b0f63ec14681ca76b590eb753dbbdd564
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Fri Aug 20 23:35:13 2021 +0200
[STREAMPIPES-402] Properly delete widgets from database
---
.../data-explorer-dashboard-grid.component.html | 3 +-
.../grid/data-explorer-dashboard-grid.component.ts | 4 +--
.../data-explorer-dashboard-panel.component.ts | 38 ++++++----------------
.../data-explorer-dashboard-widget.component.html | 12 +++----
.../data-explorer-dashboard-widget.component.ts | 15 ++++-----
5 files changed, 25 insertions(+), 47 deletions(-)
diff --git a/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.html b/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.html
index ee37ae3..12f2e98 100644
--- a/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.html
+++ b/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.html
@@ -28,8 +28,7 @@
(updateCallback)="propagateItemUpdate($event)"
(deleteCallback)="propagateItemRemoval($event)"
(configureWidgetCallback)="propagateWidgetSelection($event)"
- [item]="item"
- [widget]="item"
+ [dashboardItem]="item"
[configuredWidget]="configuredWidgets.get(item.id)"
[dataLakeMeasure]="dataLakeMeasures.get(item.id)"
[editMode]="editMode"
diff --git a/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.ts b/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.ts
index 72b10c0..33a9f88 100644
--- a/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.ts
+++ b/ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.ts
@@ -60,7 +60,7 @@ export class DataExplorerDashboardGridComponent implements OnInit, OnChanges {
@Input()
timeSettings: TimeSettings;
- @Output() deleteCallback: EventEmitter<DashboardItem> = new EventEmitter<DashboardItem>();
+ @Output() deleteCallback: EventEmitter<DataExplorerWidgetModel> = new EventEmitter<DataExplorerWidgetModel>();
@Output() updateCallback: EventEmitter<DataExplorerWidgetModel> = new EventEmitter<DataExplorerWidgetModel>();
@Output() configureWidgetCallback: EventEmitter<Tuple2<DataExplorerWidgetModel, DataLakeMeasure>> = new EventEmitter<Tuple2<DataExplorerWidgetModel, DataLakeMeasure>>();
@@ -137,7 +137,7 @@ export class DataExplorerDashboardGridComponent implements OnInit, OnChanges {
}
}
- propagateItemRemoval(widget: DashboardItem) {
+ propagateItemRemoval(widget: DataExplorerWidgetModel) {
this.deleteCallback.emit(widget);
}
diff --git a/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.ts b/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.ts
index f7c1548..84c3ed8 100644
--- a/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.ts
+++ b/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.ts
@@ -92,31 +92,17 @@ export class DataExplorerDashboardPanelComponent implements OnInit {
this.dashboardGrid.loadWidgetConfig(widget._id);
}
- updateDashboard(closeEditMode?: boolean) {
+ updateDashboard() {
this.dataViewDataExplorerService.updateDashboard(this.dashboard).subscribe(result => {
this.dashboard._rev = result._rev;
- //this.refreshDashboardService.notify(this.dashboard._id);
- // TODO delete widgets
+ if (this.widgetIdsToRemove.length > 0) {
+ this.deleteWidgets();
+ }
this.dashboardGrid.updateAllWidgets();
this.editModeChange.emit(false);
- // if (this.widgetsToUpdate.size > 0) {
- // forkJoin(this.prepareWidgetUpdates()).subscribe(result => {
- // this.closeEditModeAndReloadDashboard(closeEditMode);
- // });
- // } else {
- // this.deleteWidgets();
- // this.closeEditModeAndReloadDashboard(false);
- // }
});
}
- closeEditModeAndReloadDashboard(closeEditMode: boolean) {
- if (closeEditMode) {
- this.editModeChange.emit(!(this.editMode));
- }
- this.refreshDashboardService.notify(this.dashboard._id);
- }
-
prepareWidgetUpdates(): Array<Observable<any>> {
const promises: Array<Observable<any>> = [];
this.widgetsToUpdate.forEach((widget, key) => {
@@ -126,18 +112,14 @@ export class DataExplorerDashboardPanelComponent implements OnInit {
return promises;
}
- discardChanges() {
- this.editModeChange.emit(!(this.editMode));
- this.refreshDashboardService.notify(this.dashboard._id);
- }
-
- removeAndQueueItemForDeletion(widget: DashboardItem) {
- this.dashboard.widgets.splice(this.dashboard.widgets.indexOf(widget), 1);
- this.widgetIdsToRemove.push(widget.id);
+ removeAndQueueItemForDeletion(widget: DataExplorerWidgetModel) {
+ const index = this.dashboard.widgets.findIndex(item => item.id === widget._id);
+ this.dashboard.widgets.splice(index, 1);
+ this.widgetIdsToRemove.push(widget._id);
}
- updateAndQueueItemForDeletion(dataExlporerWidget: DataExplorerWidgetModel) {
- this.widgetsToUpdate.set(dataExlporerWidget._id, dataExlporerWidget);
+ updateAndQueueItemForDeletion(widget: DataExplorerWidgetModel) {
+ this.widgetsToUpdate.set(widget._id, widget);
}
deleteWidgets() {
diff --git a/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.html b/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.html
index 928181f..7e6a507 100644
--- a/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.html
+++ b/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.html
@@ -47,10 +47,10 @@
<sp-data-explorer-table-widget
(removeWidgetCallback)="removeWidget()"
[timeSettings]="timeSettings"
- [gridsterItem]="item"
+ [gridsterItem]="dashboardItem"
[gridsterItemComponent]="gridsterItemComponent"
[editMode]="editMode"
- [dataViewDashboardItem]="widget"
+ [dataViewDashboardItem]="dashboardItem"
[dataExplorerWidget]="configuredWidget"
[dataLakeMeasure]="dataLakeMeasure"
class="h-100">
@@ -60,10 +60,10 @@
<sp-data-explorer-line-chart-widget
(removeWidgetCallback)="removeWidget()"
[timeSettings]="timeSettings"
- [gridsterItem]="item"
+ [gridsterItem]="dashboardItem"
[gridsterItemComponent]="gridsterItemComponent"
[editMode]="editMode"
- [dataViewDashboardItem]="widget"
+ [dataViewDashboardItem]="dashboardItem"
[dataExplorerWidget]="configuredWidget"
[dataLakeMeasure]="dataLakeMeasure"
class="h-100">
@@ -73,10 +73,10 @@
<sp-data-explorer-image-widget
(removeWidgetCallback)="removeWidget()"
[timeSettings]="timeSettings"
- [gridsterItem]="item"
+ [gridsterItem]="dashboardItem"
[gridsterItemComponent]="gridsterItemComponent"
[editMode]="editMode"
- [dataViewDashboardItem]="widget"
+ [dataViewDashboardItem]="dashboardItem"
[dataExplorerWidget]="configuredWidget"
[dataLakeMeasure]="dataLakeMeasure"
class="h-100"></sp-data-explorer-image-widget>
diff --git a/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.ts b/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.ts
index 05a5106..34ea154 100644
--- a/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.ts
@@ -27,7 +27,7 @@ import {
} from '../../../core-model/gen/streampipes-model';
import { DataDownloadDialog } from '../datadownloadDialog/dataDownload.dialog';
import { Tuple2 } from '../../../core-model/base/Tuple2';
-import { Dashboard, TimeSettings } from '../../../dashboard/models/dashboard.model';
+import { Dashboard, DashboardItem, TimeSettings } from '../../../dashboard/models/dashboard.model';
@Component({
selector: 'sp-data-explorer-dashboard-widget',
@@ -37,7 +37,7 @@ import { Dashboard, TimeSettings } from '../../../dashboard/models/dashboard.mod
export class DataExplorerDashboardWidgetComponent implements OnInit {
@Input()
- widget: Dashboard;
+ dashboardItem: DashboardItem;
@Input()
configuredWidget: DataExplorerWidgetModel;
@@ -49,9 +49,6 @@ export class DataExplorerDashboardWidgetComponent implements OnInit {
editMode: boolean;
@Input()
- item: GridsterItem;
-
- @Input()
gridsterItemComponent: GridsterItemComponent;
/**
@@ -60,10 +57,10 @@ export class DataExplorerDashboardWidgetComponent implements OnInit {
@Input()
timeSettings: TimeSettings;
- @Output() deleteCallback: EventEmitter<Dashboard> = new EventEmitter<Dashboard>();
+ @Output() deleteCallback: EventEmitter<DataExplorerWidgetModel> = new EventEmitter<DataExplorerWidgetModel>();
@Output() updateCallback: EventEmitter<DataExplorerWidgetModel> = new EventEmitter<DataExplorerWidgetModel>();
- @Output() configureWidgetCallback: EventEmitter<Tuple2<DataExplorerWidgetModel, DataLakeMeasure>> = new EventEmitter<Tuple2<DataExplorerWidgetModel, DataLakeMeasure>>();
-
+ @Output() configureWidgetCallback: EventEmitter<Tuple2<DataExplorerWidgetModel, DataLakeMeasure>>
+ = new EventEmitter<Tuple2<DataExplorerWidgetModel, DataLakeMeasure>>();
title = '';
widgetLoaded = false;
@@ -78,7 +75,7 @@ export class DataExplorerDashboardWidgetComponent implements OnInit {
}
removeWidget() {
- this.deleteCallback.emit(this.widget);
+ this.deleteCallback.emit(this.configuredWidget);
}
downloadDataAsFile() {