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 <[email protected]> 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 +}
