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 2022/05/27 10:03:59 UTC

[incubator-streampipes] branch STREAMPIPES-537-NEW updated: [STREAMPIPES-537] Support navigation in dashboard view

This is an automated email from the ASF dual-hosted git repository.

riemer pushed a commit to branch STREAMPIPES-537-NEW
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git


The following commit(s) were added to refs/heads/STREAMPIPES-537-NEW by this push:
     new 914641f33 [STREAMPIPES-537] Support navigation in dashboard view
914641f33 is described below

commit 914641f33ed8a6757b9e376166b8e376a491fcfa
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Fri May 27 12:03:47 2022 +0200

    [STREAMPIPES-537] Support navigation in dashboard view
---
 ui/deployment/modules.yml                          |  2 +-
 .../src/lib/apis}/dashboard.service.ts             | 19 +++++++++---------
 .../lib/model}/measurement-unit/MeasurementUnit.ts |  0
 .../platform-services/src/public-api.ts            |  2 ++
 .../components/view-asset/view-asset.component.ts  |  3 +--
 .../overview/dashboard-overview.component.ts       |  3 +--
 .../components/panel/dashboard-panel.component.ts  |  4 ++--
 .../standalone/standalone-dashboard.component.ts   |  3 +--
 .../widget/dashboard-widget.component.ts           |  2 +-
 .../widgets/number/number-widget.component.ts      |  3 +--
 ui/src/app/dashboard/dashboard.component.ts        | 12 ++++++-----
 ui/src/app/dashboard/dashboard.module.ts           | 23 +++++++++++++++++++---
 .../add-visualization-dialog.component.ts          |  2 +-
 .../edit-dashboard-dialog.component.ts             |  3 +--
 14 files changed, 48 insertions(+), 33 deletions(-)

diff --git a/ui/deployment/modules.yml b/ui/deployment/modules.yml
index 67c0c9a55..78011fad9 100644
--- a/ui/deployment/modules.yml
+++ b/ui/deployment/modules.yml
@@ -98,7 +98,7 @@ spAppOverview:
   admin: false
   pageNames: 'PageName.APPS'
 spDashboard:
-  componentImport: True
+  componentImport: False
   ng5_moduleName: 'DashboardModule'
   ng5_component: 'DashboardComponent'
   ng5_componentPath: './dashboard/dashboard.component'
diff --git a/ui/src/app/dashboard/services/dashboard.service.ts b/ui/projects/streampipes/platform-services/src/lib/apis/dashboard.service.ts
similarity index 92%
rename from ui/src/app/dashboard/services/dashboard.service.ts
rename to ui/projects/streampipes/platform-services/src/lib/apis/dashboard.service.ts
index bcb694070..e06d5486b 100644
--- a/ui/src/app/dashboard/services/dashboard.service.ts
+++ b/ui/projects/streampipes/platform-services/src/lib/apis/dashboard.service.ts
@@ -20,16 +20,15 @@ import { HttpClient } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 import { map } from 'rxjs/operators';
 import { Observable } from 'rxjs';
-import { MeasurementUnit } from '../../core-model/measurement-unit/MeasurementUnit';
-import {
-  Dashboard,
-  DashboardWidgetModel,
-  Pipeline,
-  VisualizablePipeline,
-  PlatformServicesCommons
-} from '@streampipes/platform-services';
-
-@Injectable()
+import { MeasurementUnit } from '../model/measurement-unit/MeasurementUnit';
+import { PlatformServicesCommons } from './commons.service';
+import { DashboardWidgetModel, Pipeline, VisualizablePipeline } from '../model/gen/streampipes-model';
+import { Dashboard } from '../model/dashboard/dashboard.model';
+
+
+@Injectable({
+  providedIn: 'root'
+})
 export class DashboardService {
 
 
diff --git a/ui/src/app/core-model/measurement-unit/MeasurementUnit.ts b/ui/projects/streampipes/platform-services/src/lib/model/measurement-unit/MeasurementUnit.ts
similarity index 100%
rename from ui/src/app/core-model/measurement-unit/MeasurementUnit.ts
rename to ui/projects/streampipes/platform-services/src/lib/model/measurement-unit/MeasurementUnit.ts
diff --git a/ui/projects/streampipes/platform-services/src/public-api.ts b/ui/projects/streampipes/platform-services/src/public-api.ts
index 7e959d8e1..bfa046db6 100644
--- a/ui/projects/streampipes/platform-services/src/public-api.ts
+++ b/ui/projects/streampipes/platform-services/src/public-api.ts
@@ -26,6 +26,7 @@ export * from './lib/platform-services.module';
 export * from './lib/apis/commons.service';
 export * from './lib/apis/data-view-data-explorer.service';
 export * from './lib/apis/datalake-rest.service';
+export * from './lib/apis/dashboard.service';
 export * from './lib/apis/files.service';
 export * from './lib/apis/general-config.service';
 export * from './lib/apis/mail-config.service';
@@ -48,6 +49,7 @@ export * from './lib/model/datalake/DatalakeQueryParameters';
 export * from './lib/model/dashboard/dashboard.model';
 export * from './lib/model/email-config.model';
 export * from './lib/model/general-config.model';
+export * from './lib/model/measurement-unit/MeasurementUnit';
 export * from './lib/model/gen/streampipes-model-client';
 export * from './lib/model/gen/streampipes-model';
 
diff --git a/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts b/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
index 8a88fbf40..ca435e336 100644
--- a/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
+++ b/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
@@ -21,8 +21,7 @@ import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Outpu
 import Konva from 'konva';
 import { DashboardConfiguration } from '../../model/dashboard-configuration.model';
 import { RestService } from '../../services/rest.service';
-import { DashboardService } from '../../../dashboard/services/dashboard.service';
-import { DatalakeQueryParameterBuilder, DatalakeRestService, SpQueryResult } from '@streampipes/platform-services';
+import { DatalakeQueryParameterBuilder, DatalakeRestService, SpQueryResult, DashboardService } from '@streampipes/platform-services';
 import { Subscription, timer } from 'rxjs';
 import { switchMap } from 'rxjs/operators';
 
diff --git a/ui/src/app/dashboard/components/overview/dashboard-overview.component.ts b/ui/src/app/dashboard/components/overview/dashboard-overview.component.ts
index 86387fc5e..b5bb1f380 100644
--- a/ui/src/app/dashboard/components/overview/dashboard-overview.component.ts
+++ b/ui/src/app/dashboard/components/overview/dashboard-overview.component.ts
@@ -17,10 +17,9 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { Dashboard } from '@streampipes/platform-services';
+import { Dashboard, DashboardService } from '@streampipes/platform-services';
 import { MatTableDataSource } from '@angular/material/table';
 import { MatDialog } from '@angular/material/dialog';
-import { DashboardService } from '../../services/dashboard.service';
 import { EditDashboardDialogComponent } from '../../dialogs/edit-dashboard/edit-dashboard-dialog.component';
 import { Tuple2 } from '../../../core-model/base/Tuple2';
 import { Router } from '@angular/router';
diff --git a/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts b/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts
index 4ca676d3a..a063450eb 100644
--- a/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts
+++ b/ui/src/app/dashboard/components/panel/dashboard-panel.component.ts
@@ -17,12 +17,12 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { Dashboard, ClientDashboardItem, DashboardWidgetModel } from '@streampipes/platform-services';
+import { Dashboard, ClientDashboardItem, DashboardWidgetModel, DashboardService } from '@streampipes/platform-services';
 import { forkJoin, Observable, Subscription } from 'rxjs';
 import { AddVisualizationDialogComponent } from '../../dialogs/add-widget/add-visualization-dialog.component';
-import { DashboardService } from '../../services/dashboard.service';
 import { RefreshDashboardService } from '../../services/refresh-dashboard.service';
 import { PanelType, DialogService } from '@streampipes/shared-ui';
+
 @Component({
     selector: 'dashboard-panel',
     templateUrl: './dashboard-panel.component.html',
diff --git a/ui/src/app/dashboard/components/standalone/standalone-dashboard.component.ts b/ui/src/app/dashboard/components/standalone/standalone-dashboard.component.ts
index ca41c440f..7d51e881f 100644
--- a/ui/src/app/dashboard/components/standalone/standalone-dashboard.component.ts
+++ b/ui/src/app/dashboard/components/standalone/standalone-dashboard.component.ts
@@ -16,8 +16,7 @@
  */
 
 import { Component, OnInit } from '@angular/core';
-import { Dashboard } from '@streampipes/platform-services';
-import { DashboardService } from '../../services/dashboard.service';
+import { Dashboard, DashboardService } from '@streampipes/platform-services';
 import { ActivatedRoute } from '@angular/router';
 
 @Component({
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 35213ac13..a202201b3 100644
--- a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
+++ b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
@@ -17,10 +17,10 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { DashboardService } from '../../services/dashboard.service';
 import { AddVisualizationDialogComponent } from '../../dialogs/add-widget/add-visualization-dialog.component';
 import {
   DashboardItem,
+  DashboardService,
   DashboardWidgetModel,
   DataLakeMeasure, DatalakeRestService,
   DataViewDataExplorerService,
diff --git a/ui/src/app/dashboard/components/widgets/number/number-widget.component.ts b/ui/src/app/dashboard/components/widgets/number/number-widget.component.ts
index 1c3632607..fd5cba492 100644
--- a/ui/src/app/dashboard/components/widgets/number/number-widget.component.ts
+++ b/ui/src/app/dashboard/components/widgets/number/number-widget.component.ts
@@ -21,8 +21,7 @@ import { BaseStreamPipesWidget } from '../base/base-widget';
 import { StaticPropertyExtractor } from '../../../sdk/extractor/static-property-extractor';
 import { NumberConfig } from './number-config';
 import { ResizeService } from '../../../services/resize.service';
-import { DashboardService } from '../../../services/dashboard.service';
-import { DatalakeRestService, EventPropertyPrimitive } from '@streampipes/platform-services';
+import { DashboardService, DatalakeRestService, EventPropertyPrimitive } from '@streampipes/platform-services';
 
 @Component({
   selector: 'number-widget',
diff --git a/ui/src/app/dashboard/dashboard.component.ts b/ui/src/app/dashboard/dashboard.component.ts
index a8d11f472..a9624d814 100644
--- a/ui/src/app/dashboard/dashboard.component.ts
+++ b/ui/src/app/dashboard/dashboard.component.ts
@@ -17,12 +17,11 @@
  */
 
 import { Component, OnInit } from '@angular/core';
-import { Dashboard } from '@streampipes/platform-services';
-import { DashboardService } from './services/dashboard.service';
+import { Dashboard, DashboardService } from '@streampipes/platform-services';
 import { RefreshDashboardService } from './services/refresh-dashboard.service';
 import { Tuple2 } from '../core-model/base/Tuple2';
 import { EditModeService } from './services/edit-mode.service';
-import { ActivatedRoute } from '@angular/router';
+import { ActivatedRoute, Router } from '@angular/router';
 import { AuthService } from '../services/auth.service';
 import { UserPrivilege } from '../_enums/user-privilege.enum';
 
@@ -49,12 +48,13 @@ export class DashboardComponent implements OnInit {
                 private refreshDashboardService: RefreshDashboardService,
                 private editModeService: EditModeService,
                 private route: ActivatedRoute,
+                private router: Router,
                 private authService: AuthService) {}
 
     ngOnInit() {
         this.hasDashboardWritePrivileges = this.authService.hasRole(UserPrivilege.PRIVILEGE_WRITE_DASHBOARD);
-        this.route.queryParams.subscribe(params => {
-            this.getDashboards(params['dashboardId']);
+        this.route.params.subscribe(params => {
+            this.getDashboards(params.id);
         });
         this.refreshDashboardService.refreshSubject.subscribe(currentDashboardId => {
             this.getDashboards(currentDashboardId);
@@ -75,9 +75,11 @@ export class DashboardComponent implements OnInit {
         this.selectedIndex = index;
         if (index === 0) {
             this.dashboardTabSelected = false;
+            this.router.navigate(['dashboard']);
         } else {
             this.dashboardTabSelected = true;
             this.selectedDashboard = this.dashboards[(index - 1)];
+            this.router.navigate(['dashboard', this.selectedDashboard._id]);
         }
     }
 
diff --git a/ui/src/app/dashboard/dashboard.module.ts b/ui/src/app/dashboard/dashboard.module.ts
index 3072ee187..8a02f0320 100644
--- a/ui/src/app/dashboard/dashboard.module.ts
+++ b/ui/src/app/dashboard/dashboard.module.ts
@@ -29,7 +29,7 @@ import { FormsModule } from '@angular/forms';
 import { ColorPickerModule } from 'ngx-color-picker';
 import { AddVisualizationDialogComponent } from './dialogs/add-widget/add-visualization-dialog.component';
 import { MatGridListModule } from '@angular/material/grid-list';
-import { DashboardService } from './services/dashboard.service';
+import { DashboardService } from '../../../projects/streampipes/platform-services/src/lib/apis/dashboard.service';
 import { NumberWidgetComponent } from './components/widgets/number/number-widget.component';
 import { DashboardOverviewComponent } from './components/overview/dashboard-overview.component';
 import { EditDashboardDialogComponent } from './dialogs/edit-dashboard/edit-dashboard-dialog.component';
@@ -61,6 +61,9 @@ import { ReloadPipelineService } from './services/reload-pipeline.service';
 import { PlatformServicesModule } from '@streampipes/platform-services';
 import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
 import { ServicesModule } from "../services/services.module";
+import { RouterModule } from '@angular/router';
+import { DataExplorerDashboardOverviewComponent } from '../data-explorer/components/overview/data-explorer-dashboard-overview.component';
+import { DataExplorerDashboardPanelComponent } from '../data-explorer/components/panel/data-explorer-dashboard-panel.component';
 
 @NgModule({
     imports: [
@@ -85,7 +88,22 @@ import { ServicesModule } from "../services/services.module";
         CdkTableModule,
         LeafletModule,
         PlatformServicesModule,
-        ServicesModule
+        ServicesModule,
+        RouterModule.forChild([
+            {
+                path: 'dashboard',
+                children: [
+                    {
+                        path: '',
+                        component: DashboardComponent
+                    },
+                    {
+                        path: ':id',
+                        component: DashboardComponent
+                    },
+                ]
+            }
+        ]),
     ],
     declarations: [
         BarRaceWidgetComponent,
@@ -112,7 +130,6 @@ import { ServicesModule } from "../services/services.module";
         StandaloneDashboardComponent
     ],
     providers: [
-        DashboardService,
         EditModeService,
         ReloadPipelineService,
         ResizeService,
diff --git a/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts b/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
index 2b65f4725..538408d89 100644
--- a/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
+++ b/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
@@ -21,9 +21,9 @@ import { ElementIconText } from '../../../services/get-element-icon-text.service
 import { WidgetConfigBuilder } from '../../registry/widget-config-builder';
 import { WidgetRegistry } from '../../registry/widget-registry';
 import { MappingPropertyGenerator } from '../../sdk/matching/mapping-property-generator';
-import { DashboardService } from '../../services/dashboard.service';
 import {
   Dashboard,
+  DashboardService,
   DashboardWidgetModel,
   DashboardWidgetSettings,
   DataLakeMeasure, DatalakeRestService,
diff --git a/ui/src/app/dashboard/dialogs/edit-dashboard/edit-dashboard-dialog.component.ts b/ui/src/app/dashboard/dialogs/edit-dashboard/edit-dashboard-dialog.component.ts
index 26be5b47f..a9461f056 100644
--- a/ui/src/app/dashboard/dialogs/edit-dashboard/edit-dashboard-dialog.component.ts
+++ b/ui/src/app/dashboard/dialogs/edit-dashboard/edit-dashboard-dialog.component.ts
@@ -17,8 +17,7 @@
  */
 
 import { Component, Input } from '@angular/core';
-import { DashboardService } from '../../services/dashboard.service';
-import { Dashboard } from '@streampipes/platform-services';
+import { Dashboard, DashboardService } from '@streampipes/platform-services';
 import { DialogRef } from '@streampipes/shared-ui';
 
 @Component({