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/05/21 21:48:01 UTC

[incubator-streampipes] 03/03: [STREAMPIPES-369] Improve reloading of widgets after updates

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 40dbfd4b4f3e93f46caa574cfc2af880d1995fbf
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Fri May 21 23:47:29 2021 +0200

    [STREAMPIPES-369] Improve reloading of widgets after updates
---
 .../components/widget/dashboard-widget.component.ts          | 12 ++++++++++--
 ui/src/app/dashboard/dashboard.module.ts                     |  2 ++
 ui/src/app/dashboard/services/edit-mode.service.ts           |  4 ++--
 ui/src/app/dashboard/services/refresh-dashboard.service.ts   |  6 +++---
 .../{edit-mode.service.ts => reload-pipeline.service.ts}     | 10 +++++-----
 ui/src/app/dashboard/services/resize.service.ts              |  6 +++---
 6 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
index e005f22..7f19700 100644
--- a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
+++ b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
@@ -29,6 +29,7 @@ import {PanelType} from "../../../core-ui/dialog/base-dialog/base-dialog.model";
 import {DialogService} from "../../../core-ui/dialog/base-dialog/base-dialog.service";
 import {PipelineService} from "../../../platform-services/apis/pipeline.service";
 import {EditModeService} from "../../services/edit-mode.service";
+import {ReloadPipelineService} from "../../services/reload-pipeline.service";
 
 @Component({
   selector: 'dashboard-widget',
@@ -57,11 +58,15 @@ export class DashboardWidgetComponent implements OnInit {
   constructor(private dashboardService: DashboardService,
               private dialogService: DialogService,
               private pipelineService: PipelineService,
-              private editModeService: EditModeService) {
+              private editModeService: EditModeService,
+              private reloadPipelineService: ReloadPipelineService) {
   }
 
   ngOnInit(): void {
     this.loadWidget();
+    this.reloadPipelineService.reloadPipelineSubject.subscribe(() => {
+      this.loadWidget();
+    })
   }
 
   loadWidget() {
@@ -95,7 +100,10 @@ export class DashboardWidgetComponent implements OnInit {
     if (!this.pipelineRunning) {
       this.pipelineService
           .startPipeline(this.pipeline._id)
-          .subscribe(status => this.loadWidget());
+          .subscribe(status => {
+            //this.loadWidget();
+            this.reloadPipelineService.reloadPipelineSubject.next();
+          });
     }
   }
 
diff --git a/ui/src/app/dashboard/dashboard.module.ts b/ui/src/app/dashboard/dashboard.module.ts
index fcb638f..4e388fa 100644
--- a/ui/src/app/dashboard/dashboard.module.ts
+++ b/ui/src/app/dashboard/dashboard.module.ts
@@ -59,6 +59,7 @@ import {StatusWidgetComponent} from "./components/widgets/status/status-widget.c
 import {BarRaceWidgetComponent} from "./components/widgets/bar-race/bar-race-widget.component";
 import {StackedLineChartWidgetComponent} from "./components/widgets/stacked-line-chart/stacked-line-chart-widget.component";
 import {EditModeService} from "./services/edit-mode.service";
+import {ReloadPipelineService} from "./services/reload-pipeline.service";
 
 @NgModule({
     imports: [
@@ -110,6 +111,7 @@ import {EditModeService} from "./services/edit-mode.service";
     providers: [
         DashboardService,
         EditModeService,
+        ReloadPipelineService,
         ResizeService,
         RefreshDashboardService,
         SemanticTypeUtilsService,
diff --git a/ui/src/app/dashboard/services/edit-mode.service.ts b/ui/src/app/dashboard/services/edit-mode.service.ts
index b8de16e..c915c1f 100644
--- a/ui/src/app/dashboard/services/edit-mode.service.ts
+++ b/ui/src/app/dashboard/services/edit-mode.service.ts
@@ -16,14 +16,14 @@
  *
  */
 
-import {ReplaySubject} from "rxjs";
+import {ReplaySubject, Subject} from "rxjs";
 import {Injectable} from "@angular/core";
 import {GridsterInfo} from "../models/gridster-info.model";
 
 @Injectable()
 export class EditModeService {
 
-  public editModeSubject: ReplaySubject<boolean> = new ReplaySubject<boolean>();
+  public editModeSubject: Subject<boolean> = new Subject<boolean>();
 
   public notify(editMode: boolean): void {
     this.editModeSubject.next(editMode);
diff --git a/ui/src/app/dashboard/services/refresh-dashboard.service.ts b/ui/src/app/dashboard/services/refresh-dashboard.service.ts
index 4f9c0e3..0d7374f 100644
--- a/ui/src/app/dashboard/services/refresh-dashboard.service.ts
+++ b/ui/src/app/dashboard/services/refresh-dashboard.service.ts
@@ -17,14 +17,14 @@
  */
 
 import {Injectable} from "@angular/core";
-import {ReplaySubject} from "rxjs";
+import {ReplaySubject, Subject} from "rxjs";
 
 @Injectable()
 export class RefreshDashboardService {
 
-    public refreshSubject: ReplaySubject<string> = new ReplaySubject<string>();
+    public refreshSubject: Subject<string> = new Subject<string>();
 
     public notify(currentDashboard: string): void {
         this.refreshSubject.next(currentDashboard);
     }
-}
\ No newline at end of file
+}
diff --git a/ui/src/app/dashboard/services/edit-mode.service.ts b/ui/src/app/dashboard/services/reload-pipeline.service.ts
similarity index 80%
copy from ui/src/app/dashboard/services/edit-mode.service.ts
copy to ui/src/app/dashboard/services/reload-pipeline.service.ts
index b8de16e..2fad54d 100644
--- a/ui/src/app/dashboard/services/edit-mode.service.ts
+++ b/ui/src/app/dashboard/services/reload-pipeline.service.ts
@@ -16,16 +16,16 @@
  *
  */
 
-import {ReplaySubject} from "rxjs";
+import {ReplaySubject, Subject} from "rxjs";
 import {Injectable} from "@angular/core";
 import {GridsterInfo} from "../models/gridster-info.model";
 
 @Injectable()
-export class EditModeService {
+export class ReloadPipelineService {
 
-  public editModeSubject: ReplaySubject<boolean> = new ReplaySubject<boolean>();
+  public reloadPipelineSubject: Subject<void> = new Subject<void>();
 
-  public notify(editMode: boolean): void {
-    this.editModeSubject.next(editMode);
+  public notify(): void {
+    this.reloadPipelineSubject.next();
   }
 }
diff --git a/ui/src/app/dashboard/services/resize.service.ts b/ui/src/app/dashboard/services/resize.service.ts
index 9c53041..1604bf0 100644
--- a/ui/src/app/dashboard/services/resize.service.ts
+++ b/ui/src/app/dashboard/services/resize.service.ts
@@ -16,16 +16,16 @@
  *
  */
 
-import {ReplaySubject} from "rxjs";
+import {ReplaySubject, Subject} from "rxjs";
 import {Injectable} from "@angular/core";
 import {GridsterInfo} from "../models/gridster-info.model";
 
 @Injectable()
 export class ResizeService {
 
-    public resizeSubject: ReplaySubject<GridsterInfo> = new ReplaySubject<GridsterInfo>();
+    public resizeSubject: Subject<GridsterInfo> = new Subject<GridsterInfo>();
 
     public notify(info: GridsterInfo): void {
         this.resizeSubject.next(info);
     }
-}
\ No newline at end of file
+}