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