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/08/22 14:04:32 UTC
[incubator-streampipes] 05/06: [STREAMPIPES-402] Connect data
explorer widgets to new API
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 dbb7a9d3b2826344f0d97c9008a2a5a411de630b
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Sun Aug 22 16:04:03 2021 +0200
[STREAMPIPES-402] Connect data explorer widgets to new API
---
.../datalake/DatalakeQueryParameterBuilder.ts | 91 ++++++++++++++++++++++
.../datalake/DatalakeQueryParameters.ts | 3 +
.../datadownloadDialog/dataDownload.dialog.ts | 13 ++--
...data-explorer-widget-data-settings.component.ts | 9 ++-
.../widgets/base/base-data-explorer-widget.ts | 2 +-
.../widgets/image/image-widget.component.ts | 28 ++++---
.../line-chart/line-chart-widget.component.ts | 75 +++++++++++-------
.../config/table-widget-config.component.html | 7 ++
.../widgets/table/model/table-widget.model.ts | 8 +-
.../widgets/table/table-widget.component.ts | 12 ++-
.../app/data-explorer/data-explorer.component.ts | 2 -
ui/src/app/data-explorer/data-explorer.module.ts | 8 +-
.../services/data-view-data-explorer.service.ts | 10 +--
.../apis/datalake-rest.service.ts | 17 ++--
14 files changed, 215 insertions(+), 70 deletions(-)
diff --git a/ui/src/app/core-services/datalake/DatalakeQueryParameterBuilder.ts b/ui/src/app/core-services/datalake/DatalakeQueryParameterBuilder.ts
new file mode 100644
index 0000000..9854137
--- /dev/null
+++ b/ui/src/app/core-services/datalake/DatalakeQueryParameterBuilder.ts
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+import { DatalakeQueryParameters } from './DatalakeQueryParameters';
+
+export class DatalakeQueryParameterBuilder {
+
+ private queryParams: DatalakeQueryParameters;
+
+ static create(startTime: number,
+ endTime: number): DatalakeQueryParameterBuilder {
+
+ return new DatalakeQueryParameterBuilder(startTime, endTime);
+ }
+
+ private constructor(startTime: number,
+ endTime: number) {
+ this.queryParams = new DatalakeQueryParameters();
+ this.queryParams.startDate = startTime;
+ this.queryParams.endDate = endTime;
+ }
+
+ public withAutoAggregation(aggregationFunction: string) {
+ this.queryParams.autoAggregate = true;
+ this.queryParams.aggregationFunction = aggregationFunction;
+
+ return this;
+ }
+
+ public withAggregation(aggregationFunction: string,
+ aggregationTimeUnit: string,
+ aggregationTimeValue: number) {
+ this.queryParams.aggregationFunction = aggregationFunction;
+ this.queryParams.timeInterval = aggregationTimeValue + aggregationTimeUnit;
+
+ return this;
+ }
+
+ public withGrouping(groupBy: string,
+ aggregationFunction: string,
+ aggregationTimeUnit: string,
+ aggregationTimeValue: number): DatalakeQueryParameterBuilder {
+
+ this.queryParams.groupBy = groupBy;
+ this.queryParams.aggregationFunction = aggregationFunction;
+ this.queryParams.timeInterval = aggregationTimeValue + aggregationTimeUnit;
+
+ return this;
+ }
+
+ public withPaging(page: number,
+ limit: number): DatalakeQueryParameterBuilder {
+ this.queryParams.page = page;
+ this.queryParams.limit = limit;
+
+ return this;
+ }
+
+ public withOffset(offset: number,
+ limit: number): DatalakeQueryParameterBuilder {
+ this.queryParams.offset = offset;
+ this.queryParams.limit = limit;
+
+ return this;
+ }
+
+ public withColumnFilter(columns: string[]): DatalakeQueryParameterBuilder {
+ this.queryParams.columns = columns.toString();
+
+ return this;
+ }
+
+ public build(): DatalakeQueryParameters {
+ return this.queryParams;
+ }
+}
diff --git a/ui/src/app/core-services/datalake/DatalakeQueryParameters.ts b/ui/src/app/core-services/datalake/DatalakeQueryParameters.ts
index 6859b0c..f4c4fce 100644
--- a/ui/src/app/core-services/datalake/DatalakeQueryParameters.ts
+++ b/ui/src/app/core-services/datalake/DatalakeQueryParameters.ts
@@ -27,5 +27,8 @@ export class DatalakeQueryParameters {
public order: string;
public aggregationFunction: string;
public timeInterval: string;
+ public countOnly: boolean;
+ public autoAggregate: boolean;
+
}
diff --git a/ui/src/app/data-explorer/components/datadownloadDialog/dataDownload.dialog.ts b/ui/src/app/data-explorer/components/datadownloadDialog/dataDownload.dialog.ts
index 060e6ea..25a601c 100644
--- a/ui/src/app/data-explorer/components/datadownloadDialog/dataDownload.dialog.ts
+++ b/ui/src/app/data-explorer/components/datadownloadDialog/dataDownload.dialog.ts
@@ -16,11 +16,11 @@
*
*/
-import {HttpEventType} from '@angular/common/http';
-import {Component, Inject, ViewChild} from '@angular/core';
-import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
-import {MatStepper} from '@angular/material/stepper';
-import {DatalakeRestService} from '../../../core-services/datalake/datalake-rest.service';
+import { HttpEventType } from '@angular/common/http';
+import { Component, Inject, ViewChild } from '@angular/core';
+import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import { MatStepper } from '@angular/material/stepper';
+import { DatalakeRestService } from '../../../core-services/datalake/datalake-rest.service';
@Component({
selector: 'sp-data-download-dialog',
@@ -44,7 +44,8 @@ export class DataDownloadDialog {
constructor(public dialogRef: MatDialogRef<DataDownloadDialog>,
- @Inject(MAT_DIALOG_DATA) public data, private restService: DatalakeRestService, ) {
+ @Inject(MAT_DIALOG_DATA) public data,
+ private restService: DatalakeRestService) {
this.dateRange[0] = new Date();
this.dateRange[1] = new Date(this.dateRange[0].getTime() + 60000 * 60 * 24);
}
diff --git a/ui/src/app/data-explorer/components/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts b/ui/src/app/data-explorer/components/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
index 9dfc2fd..a86571d 100644
--- a/ui/src/app/data-explorer/components/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
+++ b/ui/src/app/data-explorer/components/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
@@ -17,11 +17,14 @@
*/
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { DataExplorerWidgetModel, DataLakeMeasure } from '../../../../core-model/gen/streampipes-model';
+import {
+ DataExplorerWidgetModel,
+ DataLakeMeasure
+} from '../../../../core-model/gen/streampipes-model';
import { DataViewDataExplorerService } from '../../../services/data-view-data-explorer.service';
-import { DatalakeRestService } from '../../../../core-services/datalake/datalake-rest.service';
import { MatSelectChange } from '@angular/material/select';
import { Tuple2 } from '../../../../core-model/base/Tuple2';
+import { DatalakeRestService } from '../../../../platform-services/apis/datalake-rest.service';
@Component({
selector: 'sp-data-explorer-widget-data-settings',
@@ -61,7 +64,7 @@ export class DataExplorerWidgetDataSettingsComponent implements OnInit {
}
loadAvailableMeasurements() {
- this.datalakeRestService.getAllInfos().subscribe(response => {
+ this.datalakeRestService.getAllMeasurementSeries().subscribe(response => {
this.availableMeasurements = response;
});
}
diff --git a/ui/src/app/data-explorer/components/widgets/base/base-data-explorer-widget.ts b/ui/src/app/data-explorer/components/widgets/base/base-data-explorer-widget.ts
index 504bf06..23544e1 100644
--- a/ui/src/app/data-explorer/components/widgets/base/base-data-explorer-widget.ts
+++ b/ui/src/app/data-explorer/components/widgets/base/base-data-explorer-widget.ts
@@ -28,7 +28,6 @@ import {
} from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { GridsterItem, GridsterItemComponent } from 'angular-gridster2';
-import { DatalakeRestService } from '../../../../core-services/datalake/datalake-rest.service';
import {
DataExplorerWidgetModel,
DataLakeMeasure,
@@ -37,6 +36,7 @@ import {
import { WidgetConfigurationService } from '../../../services/widget-configuration.service';
import { DashboardItem, TimeSettings } from '../../../../dashboard/models/dashboard.model';
import { ResizeService } from '../../../services/resize.service';
+import { DatalakeRestService } from '../../../../platform-services/apis/datalake-rest.service';
@Directive()
export abstract class BaseDataExplorerWidget<T extends DataExplorerWidgetModel> implements OnInit, OnChanges, OnDestroy {
diff --git a/ui/src/app/data-explorer/components/widgets/image/image-widget.component.ts b/ui/src/app/data-explorer/components/widgets/image/image-widget.component.ts
index 2ab2a16..cec0800 100644
--- a/ui/src/app/data-explorer/components/widgets/image/image-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/image/image-widget.component.ts
@@ -16,16 +16,18 @@
*
*/
-import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
-import {MatSort} from '@angular/material/sort';
-import {DataResult} from '../../../../core-model/datalake/DataResult';
-import {DatalakeRestService} from '../../../../core-services/datalake/datalake-rest.service';
-import {BaseDataExplorerWidget} from '../base/base-data-explorer-widget';
-import {MatDialog} from '@angular/material/dialog';
-import {EventPropertyUnion, EventSchema} from '../../../../core-model/gen/streampipes-model';
-import {ImageWidgetModel} from "./model/image-widget.model";
-import {WidgetConfigurationService} from "../../../services/widget-configuration.service";
+import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
+import { MatSort } from '@angular/material/sort';
+import { DataResult } from '../../../../core-model/datalake/DataResult';
+import { BaseDataExplorerWidget } from '../base/base-data-explorer-widget';
+import { MatDialog } from '@angular/material/dialog';
+import { EventPropertyUnion, EventSchema } from '../../../../core-model/gen/streampipes-model';
+import { ImageWidgetModel } from './model/image-widget.model';
+import { WidgetConfigurationService } from '../../../services/widget-configuration.service';
import { ResizeService } from '../../../services/resize.service';
+import { DatalakeRestService } from '../../../../platform-services/apis/datalake-rest.service';
+import { DatalakeQueryParameters } from '../../../../core-services/datalake/DatalakeQueryParameters';
+import { DatalakeQueryParameterBuilder } from '../../../../core-services/datalake/DatalakeQueryParameterBuilder';
@Component({
selector: 'sp-data-explorer-image-widget',
@@ -74,8 +76,8 @@ export class ImageWidgetComponent extends BaseDataExplorerWidget<ImageWidgetMode
refreshData() {
this.setShownComponents(false, false, true);
- this.dataLakeRestService.getDataAutoAggregation(
- this.dataLakeMeasure.measureName, this.timeSettings.startTime, this.timeSettings.endTime)
+ this.dataLakeRestService.getData(
+ this.dataLakeMeasure.measureName, this.buildQuery())
.subscribe(
(res: DataResult) => {
// this.availableImageData = res;
@@ -93,4 +95,8 @@ export class ImageWidgetComponent extends BaseDataExplorerWidget<ImageWidgetMode
refreshView() {
}
+
+ buildQuery(): DatalakeQueryParameters {
+ return DatalakeQueryParameterBuilder.create(this.timeSettings.startTime, this.timeSettings.endTime).build();
+ }
}
diff --git a/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.ts b/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.ts
index 3ad9196..36a0aec 100644
--- a/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.ts
@@ -20,7 +20,6 @@ import { Component, OnInit, Renderer2 } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { DataResult } from '../../../../core-model/datalake/DataResult';
import { GroupedDataResult } from '../../../../core-model/datalake/GroupedDataResult';
-import { DatalakeRestService } from '../../../../core-services/datalake/datalake-rest.service';
import { ColorService } from './services/color.service';
import { BaseDataExplorerWidget } from '../base/base-data-explorer-widget';
import { Label } from '../../../../core-model/gen/streampipes-model';
@@ -28,6 +27,9 @@ import { ResizeService } from '../../../services/resize.service';
import { LabelService } from '../../../../core-ui/labels/services/label.service';
import { LineChartWidgetModel } from './model/line-chart-widget.model';
import { WidgetConfigurationService } from '../../../services/widget-configuration.service';
+import { DatalakeRestService } from '../../../../platform-services/apis/datalake-rest.service';
+import { DatalakeQueryParameters } from '../../../../core-services/datalake/DatalakeQueryParameters';
+import { DatalakeQueryParameterBuilder } from '../../../../core-services/datalake/DatalakeQueryParameterBuilder';
@Component({
selector: 'sp-data-explorer-line-chart-widget',
@@ -123,14 +125,14 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget<LineChartWi
}
],
direction: 'left',
- pad: { 'r': 10, 't': 10 },
+ pad: {'r': 10, 't': 10},
showactive: true,
type: 'buttons',
x: 0.0,
xanchor: 'left',
y: 1.3,
yanchor: 'top',
- font: { color: this.dataExplorerWidget.baseAppearanceConfig.textColor },
+ font: {color: this.dataExplorerWidget.baseAppearanceConfig.textColor},
bgcolor: this.dataExplorerWidget.baseAppearanceConfig.backgroundColor,
bordercolor: '#000'
}];
@@ -178,7 +180,7 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget<LineChartWi
this.data = this.displayGroupedData(tmp);
if (this.data !== undefined &&
- this.data['colorPropertyStringValues'] !== undefined && this.data['colorPropertyStringValues'].length > 0) {
+ this.data['colorPropertyStringValues'] !== undefined && this.data['colorPropertyStringValues'].length > 0) {
this.addInitialColouredShapesToGraph(this.colorPropertyStringValues, this.colorService.getColor);
}
@@ -470,7 +472,7 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget<LineChartWi
// fetching path of labeling button icon
const path = modeBarButtons[i].getElementsByClassName('icon').item(0)
- .getElementsByTagName('path').item(0);
+ .getElementsByTagName('path').item(0);
// adding 'clicked' to class list
modeBarButtons[i].classList.add('clicked');
@@ -495,7 +497,7 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget<LineChartWi
// fetching path of labeling button icon
const path = modeBarButtons[i].getElementsByClassName('icon').item(0)
- .getElementsByTagName('path').item(0);
+ .getElementsByTagName('path').item(0);
// removing 'clicked' from class list
modeBarButtons[i].classList.remove('clicked');
@@ -515,19 +517,19 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget<LineChartWi
const startdate = new Date(start_X).getTime() - 1;
const enddate = new Date(end_X).getTime() + 1;
- this.dataLakeRestService.saveLabelsInDatabase(
- this.data['measureName'],
- 'sp_internal_label',
- startdate,
- enddate,
- label,
- this.dataExplorerWidget.dataConfig.xKey
- ).subscribe(
- res => {
- // TODO add pop up similar to images
- // console.log('Successfully wrote label ' + currentLabel + ' into database.');
- }
- );
+ // this.dataLakeRestService.saveLabelsInDatabase(
+ // this.data['measureName'],
+ // 'sp_internal_label',
+ // startdate,
+ // enddate,
+ // label,
+ // this.dataExplorerWidget.dataConfig.xKey
+ // ).subscribe(
+ // res => {
+ // // TODO add pop up similar to images
+ // // console.log('Successfully wrote label ' + currentLabel + ' into database.');
+ // }
+ // );
}
private addInitialColouredShapesToGraph(newColorPropertyStringValues, getColor) {
@@ -641,20 +643,19 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget<LineChartWi
this.graph.layout.shapes = [];
if (!this.advancedSettingsActive) {
this.setShownComponents(false, false, true);
- this.dataLakeRestService.getDataAutoAggregation(
- this.dataLakeMeasure.measureName, this.timeSettings.startTime, this.timeSettings.endTime)
- .subscribe((res: DataResult) => {
- this.processNonGroupedData(res);
- });
+ this.dataLakeRestService.getData(
+ this.dataLakeMeasure.measureName, this.buildQuery())
+ .subscribe((res: DataResult) => {
+ this.processNonGroupedData(res);
+ });
} else {
if (this.dataExplorerWidget.dataConfig.groupValue === 'None') {
this.setShownComponents(false, false, true);
this.dataLakeRestService.getData(
- this.dataLakeMeasure.measureName, this.timeSettings.startTime, this.timeSettings.endTime,
- this.dataExplorerWidget.dataConfig.aggregationTimeUnit, this.dataExplorerWidget.dataConfig.aggregationValue)
- .subscribe((res: DataResult) => {
- this.processNonGroupedData(res);
- });
+ this.dataLakeMeasure.measureName, this.buildAggregationQuery())
+ .subscribe((res: DataResult) => {
+ this.processNonGroupedData(res);
+ });
} else {
// this.dataLakeRestService.getGroupedData(
// this.dataExplorerWidget.dataLakeMeasure.measureName, this.viewDateRange.startDate.getTime(), this.viewDateRange.endDate.getTime(),
@@ -682,4 +683,20 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget<LineChartWi
}
//this.toggleLabelingMode();
}
+
+ buildQuery(): DatalakeQueryParameters {
+ return DatalakeQueryParameterBuilder
+ .create(this.timeSettings.startTime, this.timeSettings.endTime)
+ .withAutoAggregation('FIRST')
+ .build();
+ }
+
+ buildAggregationQuery(): DatalakeQueryParameters {
+ return DatalakeQueryParameterBuilder
+ .create(this.timeSettings.startTime, this.timeSettings.endTime)
+ .withPaging(1, 100)
+ .withGrouping(undefined, undefined,
+ this.dataExplorerWidget.dataConfig.aggregationTimeUnit, this.dataExplorerWidget.dataConfig.aggregationValue)
+ .build();
+ }
}
diff --git a/ui/src/app/data-explorer/components/widgets/table/config/table-widget-config.component.html b/ui/src/app/data-explorer/components/widgets/table/config/table-widget-config.component.html
index b859db8..0dd6270 100644
--- a/ui/src/app/data-explorer/components/widgets/table/config/table-widget-config.component.html
+++ b/ui/src/app/data-explorer/components/widgets/table/config/table-widget-config.component.html
@@ -31,5 +31,12 @@
[availableProperties]="currentlyConfiguredWidget.dataConfig.availableColumns"
[selectedProperties]="currentlyConfiguredWidget.dataConfig.selectedColumns">
</sp-select-properties>
+
+ <mat-form-field fxFlex="100" color="accent">
+ <mat-label>
+ <mat-icon>search</mat-icon>
+ <span> Limit</span></mat-label>
+ <input [(ngModel)]="currentlyConfiguredWidget.dataConfig.limit" matInput (input)="onFilterChange($event.target.value)">
+ </mat-form-field>
</div>
diff --git a/ui/src/app/data-explorer/components/widgets/table/model/table-widget.model.ts b/ui/src/app/data-explorer/components/widgets/table/model/table-widget.model.ts
index 268e03c..8e22145 100644
--- a/ui/src/app/data-explorer/components/widgets/table/model/table-widget.model.ts
+++ b/ui/src/app/data-explorer/components/widgets/table/model/table-widget.model.ts
@@ -16,13 +16,19 @@
*
*/
-import { DataExplorerWidgetModel, EventPropertyUnion } from '../../../../../core-model/gen/streampipes-model';
+import {
+ DataExplorerWidgetModel,
+ EventPropertyUnion
+} from '../../../../../core-model/gen/streampipes-model';
export interface TableDataConfig {
availableColumns: EventPropertyUnion[];
selectedColumns: EventPropertyUnion[];
searchValue: string;
columnNames: string[];
+ page: number;
+ limit: number;
+ offset: number;
}
export interface TableWidgetModel extends DataExplorerWidgetModel {
diff --git a/ui/src/app/data-explorer/components/widgets/table/table-widget.component.ts b/ui/src/app/data-explorer/components/widgets/table/table-widget.component.ts
index 4187022..ab31955 100644
--- a/ui/src/app/data-explorer/components/widgets/table/table-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/table/table-widget.component.ts
@@ -25,7 +25,9 @@ import { BaseDataExplorerWidget } from '../base/base-data-explorer-widget';
import { WidgetConfigurationService } from '../../../services/widget-configuration.service';
import { TableWidgetModel } from './model/table-widget.model';
import { ResizeService } from '../../../services/resize.service';
-import { DatalakeRestService } from '../../../../core-services/datalake/datalake-rest.service';
+import { DatalakeRestService } from '../../../../platform-services/apis/datalake-rest.service';
+import { DatalakeQueryParameters } from '../../../../core-services/datalake/DatalakeQueryParameters';
+import { DatalakeQueryParameterBuilder } from '../../../../core-services/datalake/DatalakeQueryParameterBuilder';
@Component({
selector: 'sp-data-explorer-table-widget',
@@ -100,8 +102,8 @@ export class TableWidgetComponent extends BaseDataExplorerWidget<TableWidgetMode
public refreshData() {
this.setShownComponents(false, false, true);
- this.dataLakeRestService.getDataAutoAggregation(
- this.dataLakeMeasure.measureName, this.timeSettings.startTime, this.timeSettings.endTime)
+ this.dataLakeRestService.getData(
+ this.dataLakeMeasure.measureName, this.buildQuery())
.subscribe(
(res: DataResult) => {
this.dataSource.data = this.transformData(res);
@@ -113,4 +115,8 @@ export class TableWidgetComponent extends BaseDataExplorerWidget<TableWidgetMode
this.dataSource.filter = this.dataExplorerWidget.dataConfig.searchValue;
}
+ buildQuery(): DatalakeQueryParameters {
+ return DatalakeQueryParameterBuilder.create(this.timeSettings.startTime, this.timeSettings.endTime).build();
+ }
+
}
diff --git a/ui/src/app/data-explorer/data-explorer.component.ts b/ui/src/app/data-explorer/data-explorer.component.ts
index ac5c66d..9333daa 100644
--- a/ui/src/app/data-explorer/data-explorer.component.ts
+++ b/ui/src/app/data-explorer/data-explorer.component.ts
@@ -23,7 +23,6 @@ import { DataExplorerDashboardPanelComponent } from './components/panel/data-exp
import { Dashboard, TimeSettings } from '../dashboard/models/dashboard.model';
import { Tuple2 } from '../core-model/base/Tuple2';
import { ActivatedRoute } from '@angular/router';
-import { TimeRangeSelectorComponent } from './components/time-selector/timeRangeSelector.component';
@Component({
selector: 'sp-data-explorer',
@@ -54,7 +53,6 @@ export class DataExplorerComponent implements OnInit {
public ngOnInit() {
this.route.queryParams.subscribe(params => {
this.routeParams = {startTime: params['startTime'], endTime: params['endTime'], dashboardId: params['dashboardId']};
- console.log(this.routeParams);
this.getDashboards();
});
this.refreshDashboardService.refreshSubject.subscribe(currentDashboardId => {
diff --git a/ui/src/app/data-explorer/data-explorer.module.ts b/ui/src/app/data-explorer/data-explorer.module.ts
index 9025740..535ab6b 100644
--- a/ui/src/app/data-explorer/data-explorer.module.ts
+++ b/ui/src/app/data-explorer/data-explorer.module.ts
@@ -29,12 +29,15 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatSliderModule } from '@angular/material/slider';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatTabsModule } from '@angular/material/tabs';
-import { OWL_DATE_TIME_FORMATS, OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';
+import {
+ OWL_DATE_TIME_FORMATS,
+ OwlDateTimeModule,
+ OwlNativeDateTimeModule
+} from '@danielmoncada/angular-datetime-picker';
import { NgxChartsModule } from '@swimlane/ngx-charts';
import { GridsterModule } from 'angular-gridster2';
import { PlotlyViaWindowModule } from 'angular-plotly.js';
import { ColorPickerModule } from 'ngx-color-picker';
-import { DatalakeRestService } from '../core-services/datalake/datalake-rest.service';
import { SemanticTypeUtilsService } from '../core-services/semantic-type/semantic-type-utils.service';
import { SharedDatalakeRestService } from '../core-services/shared/shared-dashboard.service';
import { CoreUiModule } from '../core-ui/core-ui.module';
@@ -67,6 +70,7 @@ import { DataExplorerWidgetDataSettingsComponent } from './components/designer-p
import { WidgetConfigurationService } from './services/widget-configuration.service';
import { LineChartWidgetConfigComponent } from './components/widgets/line-chart/config/line-chart-widget-config.component';
import { ImageWidgetConfigComponent } from './components/widgets/image/config/image-widget-config.component';
+import { DatalakeRestService } from '../platform-services/apis/datalake-rest.service';
const dashboardWidgets = [];
diff --git a/ui/src/app/data-explorer/services/data-view-data-explorer.service.ts b/ui/src/app/data-explorer/services/data-view-data-explorer.service.ts
index 876d997..e8a7100 100644
--- a/ui/src/app/data-explorer/services/data-view-data-explorer.service.ts
+++ b/ui/src/app/data-explorer/services/data-view-data-explorer.service.ts
@@ -19,15 +19,12 @@
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
-import { DatalakeRestService } from '../../core-services/datalake/datalake-rest.service';
import { SharedDatalakeRestService } from '../../core-services/shared/shared-dashboard.service';
import { AuthStatusService } from '../../services/auth-status.service';
-import {
- DataExplorerWidgetModel,
- DataLakeMeasure,
-} from '../../core-model/gen/streampipes-model';
+import { DataExplorerWidgetModel, DataLakeMeasure, } from '../../core-model/gen/streampipes-model';
import { Dashboard } from '../../dashboard/models/dashboard.model';
import { Injectable } from '@angular/core';
+import { DatalakeRestService } from '../../platform-services/apis/datalake-rest.service';
@Injectable()
@@ -42,8 +39,7 @@ export class DataViewDataExplorerService {
}
getVisualizableData(): Observable<DataLakeMeasure[]> {
-
- return this.dataLakeRestService.getAllInfos().pipe(map(data => {
+ return this.dataLakeRestService.getAllMeasurementSeries().pipe(map(data => {
return (data as any[]).map(d => DataLakeMeasure.fromData(d as DataLakeMeasure));
}));
}
diff --git a/ui/src/app/platform-services/apis/datalake-rest.service.ts b/ui/src/app/platform-services/apis/datalake-rest.service.ts
index d8cfd0d..2b4857d 100644
--- a/ui/src/app/platform-services/apis/datalake-rest.service.ts
+++ b/ui/src/app/platform-services/apis/datalake-rest.service.ts
@@ -48,17 +48,24 @@ export class DatalakeRestService {
}));
}
- getData(index, startDate, endDate, columns, aggregationFunction, aggregationTimeUnit, aggregationTimeValue): Observable<DataResult> {
+ getData(index: string,
+ queryParams: DatalakeQueryParameters): Observable<DataResult> {
const url = this.dataLakeUrl + '/measurements/' + index;
- const timeInterval = aggregationTimeValue + aggregationTimeUnit;
-
- const queryParams: DatalakeQueryParameters = this.getQueryParameters(columns, startDate, endDate, undefined, undefined,
- undefined, undefined, undefined, aggregationFunction, timeInterval);
// @ts-ignore
return this.http.get<DataResult>(url, {params: queryParams});
}
+ // getData(index, startDate, endDate, columns, aggregationFunction, aggregationTimeUnit, aggregationTimeValue): Observable<DataResult> {
+ // const timeInterval = aggregationTimeValue + aggregationTimeUnit;
+ //
+ // const queryParams: DatalakeQueryParameters = this.getQueryParameters(columns, startDate, endDate, undefined, undefined,
+ // undefined, undefined, undefined, aggregationFunction, timeInterval);
+ //
+ // // @ts-ignore
+ // return this.http.get<DataResult>(url, {params: queryParams});
+ // }
+
getPagedData(index: string, itemsPerPage: number, page: number, columns?: string, order?: string): Observable<PageResult> {
const url = this.dataLakeUrl + '/measurements/' + index;