You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ze...@apache.org on 2022/05/20 04:22:54 UTC
[incubator-streampipes] branch STREAMPIPES-537 updated: [WIP] new routing data explorer
This is an automated email from the ASF dual-hosted git repository.
zehnder pushed a commit to branch STREAMPIPES-537
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
The following commit(s) were added to refs/heads/STREAMPIPES-537 by this push:
new 532f5a4ab [WIP] new routing data explorer
532f5a4ab is described below
commit 532f5a4ab02eb5b8bb9de5f72beaa4235d6d2d69
Author: Philipp Zehnder <ze...@fzi.de>
AuthorDate: Fri May 20 06:22:44 2022 +0200
[WIP] new routing data explorer
---
.idea/runConfigurations/all_extensions_jvm.xml | 1 +
.idea/runConfigurations/backend.xml | 1 +
ui/deployment/prebuild.js | 2 +-
...data-explorer-dashboard-overview.component.html | 135 +++++++++++----------
.../data-explorer-dashboard-overview.component.ts | 38 ++++--
.../data-explorer-dashboard-panel.component.html | 114 +++++++----------
.../data-explorer-dashboard-panel.component.ts | 18 ++-
.../app/data-explorer/data-explorer.component.html | 6 +-
.../app/data-explorer/data-explorer.component.ts | 15 ++-
ui/src/app/data-explorer/data-explorer.module.ts | 29 ++++-
10 files changed, 202 insertions(+), 157 deletions(-)
diff --git a/.idea/runConfigurations/all_extensions_jvm.xml b/.idea/runConfigurations/all_extensions_jvm.xml
index 20063d047..0a4ca6093 100644
--- a/.idea/runConfigurations/all_extensions_jvm.xml
+++ b/.idea/runConfigurations/all_extensions_jvm.xml
@@ -9,6 +9,7 @@
<env name="SP_DATA_LAKE_HOST" value="localhost" />
<env name="SP_DATA_LAKE_PORT" value="8086" />
<env name="SP_IMAGE_STORAGE_LOCATION" value=".streampipes/spImages/" />
+ <env name="SP_HOST" value="141.21.12.79" />
</envs>
<option name="MAIN_CLASS_NAME" value="org.apache.streampipes.extensions.all.jvm.AllExtensionsInit" />
<module name="streampipes-extensions-all-jvm" />
diff --git a/.idea/runConfigurations/backend.xml b/.idea/runConfigurations/backend.xml
index ff3c77297..36d749c21 100644
--- a/.idea/runConfigurations/backend.xml
+++ b/.idea/runConfigurations/backend.xml
@@ -14,6 +14,7 @@
<env name="SP_JMS_HOST" value="localhost" />
<env name="SP_DEBUG" value="true " />
<env name="SP_PRIORITIZED_PROTOCOL" value="kafka" />
+ <env name="SP_HOST" value="141.21.12.79" />
</envs>
<method v="2">
<option name="Make" enabled="true" />
diff --git a/ui/deployment/prebuild.js b/ui/deployment/prebuild.js
index f104a2e1d..6947f123d 100644
--- a/ui/deployment/prebuild.js
+++ b/ui/deployment/prebuild.js
@@ -83,7 +83,7 @@ for (let module of config.modules) {
// Create necessary JavaScript-Files from Template and move to respective Directory
fs.writeFileSync('src/app/appng5.module.ts', mustache.render(fs.readFileSync('deployment/appng5.module.mst', 'utf8').toString(), modulesActive));
fs.writeFileSync('src/app/home/home.service.ts', mustache.render(fs.readFileSync('deployment/home.service.mst', 'utf8').toString(), modulesActive));
-fs.writeFileSync('src/app/app-routing.module.ts', mustache.render(fs.readFileSync('deployment/app-routing.module.mst', 'utf8').toString(), modulesActive));
+// fs.writeFileSync('src/app/app-routing.module.ts', mustache.render(fs.readFileSync('deployment/app-routing.module.mst', 'utf8').toString(), modulesActive));
fs.writeFileSync('src/app/core/components/base-navigation.component.ts', mustache.render(fs.readFileSync('deployment/base-navigation.component.mst', 'utf8').toString(), modulesActive));
fs.writeFileSync('src/scss/sp/sp-theme.scss', fs.readFileSync('deployment/sp-theme.scss'));
fs.writeFileSync('src/app/services/app.constants.ts', fs.readFileSync('deployment/app-constants.ts', 'utf8'));
diff --git a/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.html b/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.html
index 67d255d85..4b4c60f19 100644
--- a/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.html
+++ b/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.html
@@ -17,79 +17,84 @@
-->
-<div fxFlex="100" fxLayout="column">
+<sp-data-explorer [activeLink]="'overview'" [dashboardsLoaded]="dashboardsLoaded" [dataViewDashboards]="dataViewDashboards">
<div fxFlex="100" fxLayout="column">
- <div fxLayout="row" class="fixed-height options-bar page-container-nav sp-tab-bg">
- <div fxLayoutAlign="start center" fxLayout="row" class="pl-10">
- <button mat-button mat-raised-button color="accent"
- data-cy="open-new-data-view-dialog"
+ <div fxFlex="100" fxLayout="column">
+ <div fxLayout="row" class="fixed-height options-bar page-container-nav sp-tab-bg">
+ <div fxLayoutAlign="start center" fxLayout="row" class="pl-10">
+ <button mat-button mat-raised-button color="accent" data-cy="open-new-data-view-dialog"
(click)="openNewDataViewDialog()" class="mr-10" *ngIf="hasDataExplorerWritePrivileges">
- <i class="material-icons">add</i>
- <span>New Data View</span>
- </button>
+ <i class="material-icons">add</i>
+ <span>New Data View</span>
+ </button>
+ </div>
</div>
</div>
- </div>
- <div *ngIf="!editLabels" fxFlex="100" fxLayout="row wrap" fxLayoutAlign="start stretch" class="m-20">
- <div fxFlex="100" class="assemblyOptions sp-blue-bg p-5">
- <div fxLayout="row" fxLayoutAlign="start center" fxFlex="100">
- <h4>My Data Views</h4>
- <span fxFlex></span>
+ <div fxFlex="100" fxLayout="row wrap" fxLayoutAlign="start stretch" class="m-20">
+ <div fxFlex="100" class="assemblyOptions sp-blue-bg p-5">
+ <div fxLayout="row" fxLayoutAlign="start center" fxFlex="100">
+ <h4>My Data Views</h4>
+ <span fxFlex></span>
+ </div>
</div>
- </div>
- <div fxFlex="100" fxLayout="column" fxLayoutAlign="start start" class="sp-blue-border">
- <div fxFlex="100" fxLayout="column" class="w-100 p-2">
- <table mat-table [dataSource]="dataSource" multiTemplateDataRows>
+ <div fxFlex="100" fxLayout="column" fxLayoutAlign="start start" class="sp-blue-border">
+ <div fxFlex="100" fxLayout="column" class="w-100 p-2">
+ <table mat-table [dataSource]="dataSource" multiTemplateDataRows>
- <ng-container matColumnDef="name">
- <th fxFlex="60" fxLayoutAlign="start center" mat-header-cell *matHeaderCellDef> Data View</th>
- <td fxFlex="60" fxLayoutAlign="start center" mat-cell *matCellDef="let element">
- {{element.name}}<br/>
- {{element.description}}
- </td>
- </ng-container>
+ <ng-container matColumnDef="name">
+ <th fxFlex="60" fxLayoutAlign="start center" mat-header-cell *matHeaderCellDef> Data View
+ </th>
+ <td fxFlex="60" fxLayoutAlign="start center" mat-cell *matCellDef="let element">
+ {{element.name}}<br />
+ {{element.description}}
+ </td>
+ </ng-container>
- <ng-container matColumnDef="actions">
- <th fxFlex="40" fxLayoutAlign="center center" mat-header-cell *matHeaderCellDef> Actions</th>
- <td fxFlex="40" fxLayoutAlign="start center" mat-cell *matCellDef="let element">
- <div fxLayout="row" fxFlex="100">
- <span fxFlex fxFlexOrder="1" fxLayout="row" fxLayoutAlign="center center">
- <button mat-button mat-icon-button color="accent"
- (click)="showDashboard(element, false)">
- <i class="material-icons">visibility</i>
- </button>
- </span>
- <span fxFlex fxFlexOrder="2" fxLayout="row" fxLayoutAlign="center center" *ngIf="hasDataExplorerWritePrivileges">
- <button mat-button mat-icon-button color="accent"
- [attr.data-cy]="'edit-dashboard-' + element.name"
- (click)="showDashboard(element, true)">
- <i class="material-icons">edit</i>
- </button>
- </span>
- <span fxFlex fxFlexOrder="3" fxLayout="row" fxLayoutAlign="center center" *ngIf="isAdmin">
- <button mat-button mat-icon-button color="accent"
- (click)="showPermissionsDialog(element)">
- <i class="material-icons">share</i>
- </button>
- </span>
- <span fxFlex fxFlexOrder="4" fxLayout="row" fxLayoutAlign="center center" *ngIf="hasDataExplorerDeletePrivileges">
- <button mat-button mat-icon-button color="accent"
- [attr.data-cy]="'delete-dashboard-' + element.name"
- (click)="openDeleteDashboardDialog(element)">
- <i class="material-icons">delete</i>
- </button>
- </span>
- </div>
- </td>
- </ng-container>
+ <ng-container matColumnDef="actions">
+ <th fxFlex="40" fxLayoutAlign="center center" mat-header-cell *matHeaderCellDef> Actions
+ </th>
+ <td fxFlex="40" fxLayoutAlign="start center" mat-cell *matCellDef="let element">
+ <div fxLayout="row" fxFlex="100">
+ <span fxFlex fxFlexOrder="1" fxLayout="row" fxLayoutAlign="center center">
+ <button mat-button mat-icon-button color="accent"
+ (click)="showDashboard(element, false)">
+ <i class="material-icons">visibility</i>
+ </button>
+ </span>
+ <span fxFlex fxFlexOrder="2" fxLayout="row" fxLayoutAlign="center center"
+ *ngIf="hasDataExplorerWritePrivileges">
+ <button mat-button mat-icon-button color="accent"
+ [attr.data-cy]="'edit-dashboard-' + element.name"
+ (click)="showDashboard(element, true)">
+ <i class="material-icons">edit</i>
+ </button>
+ </span>
+ <span fxFlex fxFlexOrder="3" fxLayout="row" fxLayoutAlign="center center"
+ *ngIf="isAdmin">
+ <button mat-button mat-icon-button color="accent"
+ (click)="showPermissionsDialog(element)">
+ <i class="material-icons">share</i>
+ </button>
+ </span>
+ <span fxFlex fxFlexOrder="4" fxLayout="row" fxLayoutAlign="center center"
+ *ngIf="hasDataExplorerDeletePrivileges">
+ <button mat-button mat-icon-button color="accent"
+ [attr.data-cy]="'delete-dashboard-' + element.name"
+ (click)="openDeleteDashboardDialog(element)">
+ <i class="material-icons">delete</i>
+ </button>
+ </span>
+ </div>
+ </td>
+ </ng-container>
- <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
- <tr mat-row *matRowDef="let element; columns: displayedColumns;">
- </tr>
- </table>
+ <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
+ <tr mat-row *matRowDef="let element; columns: displayedColumns;">
+ </tr>
+ </table>
+ </div>
</div>
</div>
- </div>
- <sp-configure-labels *ngIf="editLabels"></sp-configure-labels>
-</div>
+ </div>
+</sp-data-explorer>
\ No newline at end of file
diff --git a/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.ts b/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.ts
index d35d4ad59..fe521b035 100644
--- a/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.ts
+++ b/ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.ts
@@ -26,6 +26,7 @@ import { ObjectPermissionDialogComponent } from '../../../core-ui/object-permiss
import { UserRole } from '../../../_enums/user-role.enum';
import { AuthService } from '../../../services/auth.service';
import { UserPrivilege } from '../../../_enums/user-privilege.enum';
+import { Router } from '@angular/router';
@Component({
selector: 'sp-data-explorer-dashboard-overview',
@@ -34,22 +35,25 @@ import { UserPrivilege } from '../../../_enums/user-privilege.enum';
})
export class DataExplorerDashboardOverviewComponent implements OnInit {
- @Input() dataViewDashboards: Dashboard[];
+ dataViewDashboards: Dashboard[] = [];
+ dashboardsLoaded = false;
+
@Output() reloadDashboardsEmitter = new EventEmitter<void>();
@Output() selectDashboardEmitter = new EventEmitter<Tuple2<Dashboard, boolean>>();
dataSource = new MatTableDataSource<Dashboard>();
displayedColumns: string[] = [];
- editLabels: boolean;
isAdmin = false;
hasDataExplorerWritePrivileges = false;
hasDataExplorerDeletePrivileges = false;
- constructor(private dashboardService: DataViewDataExplorerService,
+ constructor(private dataViewService: DataViewDataExplorerService,
+ private dashboardService: DataViewDataExplorerService,
public dialogService: DialogService,
- private authService: AuthService) {
+ private authService: AuthService,
+ private router: Router) {
}
@@ -61,8 +65,7 @@ export class DataExplorerDashboardOverviewComponent implements OnInit {
this.displayedColumns = ['name', 'actions'];
});
- this.dataSource.data = this.dataViewDashboards;
- this.editLabels = false;
+ this.getDashboards();
}
openNewDataViewDialog() {
@@ -71,11 +74,7 @@ export class DataExplorerDashboardOverviewComponent implements OnInit {
this.openDataViewModificationDialog(true, dataViewDashboard);
}
-
- openEditLabelView() {
- this.editLabels = true;
- }
-
+
openDataViewModificationDialog(createMode: boolean, dashboard: Dashboard) {
const dialogRef = this.dialogService.open(DataExplorerEditDataViewDialogComponent, {
panelType: PanelType.STANDARD_PANEL,
@@ -123,7 +122,20 @@ export class DataExplorerDashboardOverviewComponent implements OnInit {
}
showDashboard(dashboard: Dashboard, editMode: boolean) {
- const dashboardSettings: Tuple2<Dashboard, boolean> = { a: dashboard, b: editMode };
- this.selectDashboardEmitter.emit(dashboardSettings);
+ // const dashboardSettings: Tuple2<Dashboard, boolean> = { a: dashboard, b: editMode };
+ // this.selectDashboardEmitter.emit(dashboardSettings);
+ this.router.navigate(['dataexplorer/', dashboard._id]);
+
}
+
+ getDashboards() {
+ this.dashboardsLoaded = false;
+ this.dataViewService.getDataViews().subscribe(data => {
+ this.dataViewDashboards = data.sort((a, b) => a.name.localeCompare(b.name));
+ this.dashboardsLoaded = true;
+ this.dataSource.data = this.dataViewDashboards;
+ });
+ }
+
+
}
diff --git a/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.html b/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.html
index b2c976f08..419cea087 100644
--- a/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.html
+++ b/ui/src/app/data-explorer/components/panel/data-explorer-dashboard-panel.component.html
@@ -16,74 +16,52 @@
~
-->
-<div class="fixed-height data-explorer-options sp-tab-bg page-container-nav" fxLayout="row" *ngIf="(editMode || timeRangeVisible)">
- <div class="data-explorer-options-item pl-10" fxLayoutAlign="start center" fxLayout="row" *ngIf="editMode">
- <button mat-button
- mat-raised-button
- color="accent"
- matTooltip="Save"
- class="edit-menu-btn"
- [matTooltipPosition]="'above'"
- (click)="persistDashboardChanges()"
+<sp-data-explorer [activeLink]="'dashboardview'">
+ <div class="fixed-height data-explorer-options sp-tab-bg page-container-nav" fxLayout="row"
+ *ngIf="(editMode || timeRangeVisible)">
+ <div class="data-explorer-options-item pl-10" fxLayoutAlign="start center" fxLayout="row" *ngIf="editMode">
+ <button mat-button mat-raised-button color="accent" matTooltip="Save" class="edit-menu-btn"
+ [matTooltipPosition]="'above'" (click)="persistDashboardChanges()"
data-cy="save-data-explorer-widget-btn">
- <mat-icon>save</mat-icon> <span>Save</span>
- </button>
- <button mat-button
- mat-raised-button
- class="mat-basic mr-10 edit-menu-btn"
- (click)="discardChanges()">
- <i class="material-icons">clear</i>
- <span> Discard</span>
- </button>
- <button mat-button
- mat-raised-button
- color="accent"
- class="edit-menu-btn"
- (click)="createWidget()"
- [disabled]="!editMode"
- data-cy="add-new-widget">
- <i class="material-icons">add</i>
- <span> Add Widget</span>
- </button>
+ <mat-icon>save</mat-icon> <span>Save</span>
+ </button>
+ <button mat-button mat-raised-button class="mat-basic mr-10 edit-menu-btn" (click)="discardChanges()">
+ <i class="material-icons">clear</i>
+ <span> Discard</span>
+ </button>
+ <button mat-button mat-raised-button color="accent" class="edit-menu-btn" (click)="createWidget()"
+ [disabled]="!editMode" data-cy="add-new-widget">
+ <i class="material-icons">add</i>
+ <span> Add Widget</span>
+ </button>
+ </div>
+ <div class="data-explorer-options-item" fxLayoutAlign="end center" fxFlex fxLayout="row">
+ <sp-time-range-selector (dateRangeEmitter)="updateDateRange($event)" [dateRange]="timeSettings">
+ </sp-time-range-selector>
+ </div>
</div>
- <div class="data-explorer-options-item" fxLayoutAlign="end center" fxFlex fxLayout="row">
- <sp-time-range-selector (dateRangeEmitter)="updateDateRange($event)" [dateRange]="timeSettings">
- </sp-time-range-selector>
- </div>
-</div>
-<div fxFlex="100" fxLayout="column">
- <mat-drawer-container class="designer-panel-container h-100 dashboard-grid">
- <mat-drawer #designerDrawer
- [opened]="showDesignerPanel"
- (opened)="triggerResize()"
- (closed)="triggerResize()"
- mode="side"
- position="end"
- class="designer-panel">
- <div fxLayout="column" fxFlex="100">
- <sp-data-explorer-designer-panel #designerPanel
- [currentlyConfiguredWidget]="currentlyConfiguredWidget"
- [dataLakeMeasure]="dataLakeMeasure"
- [newWidgetMode]="newWidgetMode"
- (addWidgetEmitter)="addWidget($event)"
- (closeDesignerPanelEmitter)="closeDesignerPanel()"
- fxFlex="100">
- </sp-data-explorer-designer-panel>
- </div>
- </mat-drawer>
- <mat-drawer-content class="h-100 dashboard-grid">
- <sp-data-explorer-dashboard-grid
- #dashboardGrid
- [editMode]="editMode"
- [dashboard]="dashboard"
- [timeSettings]="timeSettings"
- [currentlyConfiguredWidgetId]="currentlyConfiguredWidgetId"
- (configureWidgetCallback)="updateCurrentlyConfiguredWidget($event)"
- (updateCallback)="updateAndQueueItemForDeletion($event)"
- (deleteCallback)="removeAndQueueItemForDeletion($event)"
- (startEditModeEmitter)="startEditMode($event)"
- class="h-100 dashboard-grid"></sp-data-explorer-dashboard-grid>
- </mat-drawer-content>
- </mat-drawer-container>
-</div>
+ <div fxFlex="100" fxLayout="column" *ngIf="dashboard">
+ <mat-drawer-container class="designer-panel-container h-100 dashboard-grid">
+ <mat-drawer #designerDrawer [opened]="showDesignerPanel" (opened)="triggerResize()"
+ (closed)="triggerResize()" mode="side" position="end" class="designer-panel">
+ <div fxLayout="column" fxFlex="100">
+ <sp-data-explorer-designer-panel #designerPanel
+ [currentlyConfiguredWidget]="currentlyConfiguredWidget" [dataLakeMeasure]="dataLakeMeasure"
+ [newWidgetMode]="newWidgetMode" (addWidgetEmitter)="addWidget($event)"
+ (closeDesignerPanelEmitter)="closeDesignerPanel()" fxFlex="100">
+ </sp-data-explorer-designer-panel>
+ </div>
+ </mat-drawer>
+ <mat-drawer-content class="h-100 dashboard-grid">
+ <sp-data-explorer-dashboard-grid #dashboardGrid [editMode]="editMode" [dashboard]="dashboard"
+ [timeSettings]="timeSettings" [currentlyConfiguredWidgetId]="currentlyConfiguredWidgetId"
+ (configureWidgetCallback)="updateCurrentlyConfiguredWidget($event)"
+ (updateCallback)="updateAndQueueItemForDeletion($event)"
+ (deleteCallback)="removeAndQueueItemForDeletion($event)"
+ (startEditModeEmitter)="startEditMode($event)" class="h-100 dashboard-grid">
+ </sp-data-explorer-dashboard-grid>
+ </mat-drawer-content>
+ </mat-drawer-container>
+ </div>
+</sp-data-explorer>
\ No newline at end of file
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 3e214d963..b3ab4231b 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
@@ -33,6 +33,7 @@ import {
} from '@streampipes/platform-services';
import { DataExplorerDesignerPanelComponent } from '../designer-panel/data-explorer-designer-panel.component';
import { TimeSelectionService } from '../../services/time-selection.service';
+import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'sp-data-explorer-dashboard-panel',
@@ -41,7 +42,7 @@ import { TimeSelectionService } from '../../services/time-selection.service';
})
export class DataExplorerDashboardPanelComponent implements OnInit {
- @Input() dashboard: Dashboard;
+ dashboard: Dashboard;
/**
* This is the date range (start, end) to view the data and is set in data-explorer.ts
@@ -72,8 +73,13 @@ export class DataExplorerDashboardPanelComponent implements OnInit {
constructor(private dataViewDataExplorerService: DataViewDataExplorerService,
public dialog: MatDialog,
- private refreshDashboardService: RefreshDashboardService,
- private timeSelectionService: TimeSelectionService) {
+ private timeSelectionService: TimeSelectionService,
+ private route: ActivatedRoute,
+ private dataViewService: DataViewDataExplorerService) {
+
+ this.route.params.subscribe( (params) => {
+ this.getDashboard(params.id);
+ });
}
public ngOnInit() {
@@ -208,4 +214,10 @@ export class DataExplorerDashboardPanelComponent implements OnInit {
this.dataLakeMeasure = undefined;
this.currentlyConfiguredWidgetId = undefined;
}
+
+ getDashboard(dashboardId: string) {
+ this.dataViewService.getDataViews().subscribe(data => {
+ this.dashboard = data.filter(dashboard => dashboard._id === dashboardId)[0];
+ });
+ }
}
diff --git a/ui/src/app/data-explorer/data-explorer.component.html b/ui/src/app/data-explorer/data-explorer.component.html
index b4f8b0f11..d9c88ef08 100644
--- a/ui/src/app/data-explorer/data-explorer.component.html
+++ b/ui/src/app/data-explorer/data-explorer.component.html
@@ -66,7 +66,9 @@
<div fxLayout="column" fxFlex="100" *ngIf="dashboardsLoaded">
- <sp-data-explorer-dashboard-overview (selectDashboardEmitter)="openDashboard($event)"
+
+ <ng-content fxFlex="100"></ng-content>
+ <!-- <sp-data-explorer-dashboard-overview (selectDashboardEmitter)="openDashboard($event)"
(reloadDashboardsEmitter)="getDashboards()"
[dataViewDashboards]="dataViewDashboards"
*ngIf="!dashboardTabSelected">
@@ -81,6 +83,6 @@
[timeRangeVisible]="timeRangeVisible"
class="dashboard-panel"
*ngIf="dashboardTabSelected">
- </sp-data-explorer-dashboard-panel>
+ </sp-data-explorer-dashboard-panel> -->
</div>
</div>
diff --git a/ui/src/app/data-explorer/data-explorer.component.ts b/ui/src/app/data-explorer/data-explorer.component.ts
index 214e3dbd1..e32414f14 100644
--- a/ui/src/app/data-explorer/data-explorer.component.ts
+++ b/ui/src/app/data-explorer/data-explorer.component.ts
@@ -16,7 +16,7 @@
*
*/
-import { Component, OnInit, ViewChild } from '@angular/core';
+import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { DataViewDataExplorerService, Dashboard } from '@streampipes/platform-services';
import { RefreshDashboardService } from './services/refresh-dashboard.service';
import { DataExplorerDashboardPanelComponent } from './components/panel/data-explorer-dashboard-panel.component';
@@ -32,17 +32,24 @@ import { UserPrivilege } from '../_enums/user-privilege.enum';
})
export class DataExplorerComponent implements OnInit {
+ @Input()
+ activeLink: string;
+
+ @Input()
+ dataViewDashboards: Dashboard[];
+
+ @Input()
+ dashboardsLoaded: boolean;
+
selectedDataViewDashboard: Dashboard;
selectedIndex = 0;
- dashboardsLoaded = false;
dashboardTabSelected = false;
timeRangeVisible = true;
editMode = true;
- dataViewDashboards: Dashboard[];
- routeParams: any;
+ routeParams: any;
hasDataExplorerWritePrivileges = false;
hasDataExplorerDeletePrivileges = false;
diff --git a/ui/src/app/data-explorer/data-explorer.module.ts b/ui/src/app/data-explorer/data-explorer.module.ts
index 79819b3e0..63e44fc71 100644
--- a/ui/src/app/data-explorer/data-explorer.module.ts
+++ b/ui/src/app/data-explorer/data-explorer.module.ts
@@ -100,6 +100,7 @@ import { TimeSelectionService } from './services/time-selection.service';
import { NgxEchartsModule } from 'ngx-echarts';
import { TooMuchDataComponent } from './components/widgets/utils/too-much-data/too-much-data.component';
import { SpValueHeatmapComponent } from './components/widgets/distribution-chart/value-heatmap/value-heatmap.component';
+import { RouterModule } from "@angular/router";
export const MY_NATIVE_FORMATS = {
fullPickerInput: {
@@ -117,7 +118,7 @@ export const MY_NATIVE_FORMATS = {
monthYearA11yLabel: {year: 'numeric', month: 'long', hour12: false}
};
-
+ //
@NgModule({
imports: [
CommonModule,
@@ -153,6 +154,32 @@ export const MY_NATIVE_FORMATS = {
*/
echarts: () => import('echarts'),
}),
+ RouterModule.forChild([
+ {
+ path: 'dataexplorer',
+ children: [
+ {
+ path: '',
+ redirectTo: 'all',
+ pathMatch: 'full'
+ },
+ {
+ path: 'all',
+ component: DataExplorerDashboardOverviewComponent
+ },
+ {
+ path: ':id',
+ component: DataExplorerDashboardPanelComponent
+ },
+ {
+ path: ':id/edit',
+ component: DataExplorerDashboardPanelComponent
+ }
+
+ ]
+ }
+ ]),
+
],
declarations: [
AggregateConfigurationComponent,