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() {