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/streampipes.git
The following commit(s) were added to refs/heads/dev by this push:
new 588e7e0db2 feat: Remove pipeline selection from data explorer query
selector (#3958)
588e7e0db2 is described below
commit 588e7e0db2c2c77b718ead8e4cca9030cde9e12e
Author: Dominik Riemer <[email protected]>
AuthorDate: Tue Nov 25 13:28:56 2025 +0100
feat: Remove pipeline selection from data explorer query selector (#3958)
---
.../utils/dataExplorer/DataExplorerUtils.ts | 14 +-
.../dataDownloadDialogTest.smoke.spec.ts | 5 +-
.../tests/dataExplorer/charts/heatmap.spec.ts | 7 +-
.../tests/dataExplorer/charts/histogram.spec.ts | 3 +-
.../tests/dataExplorer/charts/indicator.spec.ts | 3 +-
ui/cypress/tests/dataExplorer/charts/map.spec.ts | 7 +-
.../dataExplorer/charts/scatter.smoke.spec.ts | 3 +-
ui/cypress/tests/dataExplorer/charts/table.spec.ts | 3 +-
.../dataExplorer/charts/timeSeriesSave.spec.ts | 12 +-
.../dataExplorer/deleteViewAndDashboard.spec.ts | 5 +-
.../dataExplorer/missingDataInDataLake.spec.ts | 5 +-
.../widgetDataConfiguration.smoke.spec.ts | 5 +-
.../model/datalake/data-lake-query-config.model.ts | 1 -
.../data-explorer-chart-container.component.html | 242 +++++++++++----------
.../data-explorer-chart-container.component.scss | 2 +-
.../data-explorer-designer-panel.component.scss | 1 +
...ta-explorer-widget-data-settings.component.html | 233 +++-----------------
...data-explorer-widget-data-settings.component.ts | 113 ++--------
18 files changed, 237 insertions(+), 427 deletions(-)
diff --git a/ui/cypress/support/utils/dataExplorer/DataExplorerUtils.ts
b/ui/cypress/support/utils/dataExplorer/DataExplorerUtils.ts
index bfc3d20bd1..c3d8557890 100644
--- a/ui/cypress/support/utils/dataExplorer/DataExplorerUtils.ts
+++ b/ui/cypress/support/utils/dataExplorer/DataExplorerUtils.ts
@@ -29,6 +29,8 @@ import { GeneralUtils } from '../GeneralUtils';
import { DataExplorerBtns } from './DataExplorerBtns';
export class DataExplorerUtils {
+ public static ADAPTER_NAME = 'datalake_configuration';
+
public static goToDatalake() {
cy.visit('#/dataexplorer');
}
@@ -123,7 +125,7 @@ export class DataExplorerUtils {
FileManagementUtils.addFile(dataSet);
const adapter = this.getDataLakeTestSetAdapter(
- 'datalake_configuration',
+ DataExplorerUtils.ADAPTER_NAME,
true,
format,
);
@@ -197,7 +199,10 @@ export class DataExplorerUtils {
) {
DataExplorerUtils.goToDatalake();
- DataExplorerUtils.addDataViewAndTableWidget(dataView, 'Persist');
+ DataExplorerUtils.addDataViewAndTableWidget(
+ dataView,
+ DataExplorerUtils.ADAPTER_NAME,
+ );
DataExplorerUtils.saveDataViewConfiguration();
@@ -712,7 +717,10 @@ export class DataExplorerUtils {
DataExplorerUtils.loadDataIntoDataLake('datalake/sample.csv');
// Create Diagram
- DataExplorerUtils.addDataViewAndTableWidget('NewWidget', 'Persist');
+ DataExplorerUtils.addDataViewAndTableWidget(
+ 'NewWidget',
+ DataExplorerUtils.ADAPTER_NAME,
+ );
//Save
DataExplorerUtils.addChartsToAsset(assetNames);
DataExplorerUtils.saveDataViewConfiguration();
diff --git
a/ui/cypress/tests/dataDownloadDialog/dataDownloadDialogTest.smoke.spec.ts
b/ui/cypress/tests/dataDownloadDialog/dataDownloadDialogTest.smoke.spec.ts
index 618c96c8d3..8762f9a5b2 100644
--- a/ui/cypress/tests/dataDownloadDialog/dataDownloadDialogTest.smoke.spec.ts
+++ b/ui/cypress/tests/dataDownloadDialog/dataDownloadDialogTest.smoke.spec.ts
@@ -29,7 +29,10 @@ describe('Test data explorer data download dialog', () => {
'json_array',
);
- DataExplorerUtils.addDataViewAndTableWidget(dataViewName, 'Persist');
+ DataExplorerUtils.addDataViewAndTableWidget(
+ dataViewName,
+ PrepareTestDataUtils.dataName,
+ );
DataExplorerUtils.saveDataViewConfiguration();
});
diff --git a/ui/cypress/tests/dataExplorer/charts/heatmap.spec.ts
b/ui/cypress/tests/dataExplorer/charts/heatmap.spec.ts
index 080176a99f..54d25c3b43 100644
--- a/ui/cypress/tests/dataExplorer/charts/heatmap.spec.ts
+++ b/ui/cypress/tests/dataExplorer/charts/heatmap.spec.ts
@@ -17,6 +17,7 @@
*/
import { DataExplorerUtils } from
'../../../support/utils/dataExplorer/DataExplorerUtils';
+import { PrepareTestDataUtils } from
'../../../support/utils/PrepareTestDataUtils';
describe('Test Heatmap View in Data Explorer', () => {
beforeEach('Setup Test', () => {
@@ -24,7 +25,11 @@ describe('Test Heatmap View in Data Explorer', () => {
});
it('Perform Test', () => {
- DataExplorerUtils.addDataViewAndWidget('view', 'Persist', 'heatmap');
+ DataExplorerUtils.addDataViewAndWidget(
+ 'view',
+ PrepareTestDataUtils.dataName,
+ 'heatmap',
+ );
// Check checkbox
DataExplorerUtils.openVisualizationConfig();
diff --git a/ui/cypress/tests/dataExplorer/charts/histogram.spec.ts
b/ui/cypress/tests/dataExplorer/charts/histogram.spec.ts
index 6e955a5097..86feafeecd 100644
--- a/ui/cypress/tests/dataExplorer/charts/histogram.spec.ts
+++ b/ui/cypress/tests/dataExplorer/charts/histogram.spec.ts
@@ -17,6 +17,7 @@
*/
import { DataExplorerUtils } from
'../../../support/utils/dataExplorer/DataExplorerUtils';
+import { PrepareTestDataUtils } from
'../../../support/utils/PrepareTestDataUtils';
describe('Test Histogram View in Data Explorer', () => {
beforeEach('Setup Test', () => {
@@ -26,7 +27,7 @@ describe('Test Histogram View in Data Explorer', () => {
it('Perform Test', () => {
DataExplorerUtils.addDataViewAndWidget(
'view',
- 'Persist',
+ PrepareTestDataUtils.dataName,
'histogram-chart',
);
diff --git a/ui/cypress/tests/dataExplorer/charts/indicator.spec.ts
b/ui/cypress/tests/dataExplorer/charts/indicator.spec.ts
index 047206a4a6..3fd353f5eb 100644
--- a/ui/cypress/tests/dataExplorer/charts/indicator.spec.ts
+++ b/ui/cypress/tests/dataExplorer/charts/indicator.spec.ts
@@ -17,6 +17,7 @@
*/
import { DataExplorerUtils } from
'../../../support/utils/dataExplorer/DataExplorerUtils';
+import { PrepareTestDataUtils } from
'../../../support/utils/PrepareTestDataUtils';
describe('Test Indicator View in Data Explorer', () => {
beforeEach('Setup Test', () => {
@@ -26,7 +27,7 @@ describe('Test Indicator View in Data Explorer', () => {
it('Perform Test', () => {
DataExplorerUtils.addDataViewAndWidget(
'view',
- 'Persist',
+ PrepareTestDataUtils.dataName,
'indicator-chart',
);
diff --git a/ui/cypress/tests/dataExplorer/charts/map.spec.ts
b/ui/cypress/tests/dataExplorer/charts/map.spec.ts
index 574628226c..1d3f87f835 100644
--- a/ui/cypress/tests/dataExplorer/charts/map.spec.ts
+++ b/ui/cypress/tests/dataExplorer/charts/map.spec.ts
@@ -17,6 +17,7 @@
*/
import { DataExplorerUtils } from
'../../../support/utils/dataExplorer/DataExplorerUtils';
+import { PrepareTestDataUtils } from
'../../../support/utils/PrepareTestDataUtils';
describe('Test Map View in Data Explorer', () => {
beforeEach('Setup Test', () => {
@@ -24,7 +25,11 @@ describe('Test Map View in Data Explorer', () => {
});
it('Perform Test', () => {
- DataExplorerUtils.addDataViewAndWidget('view', 'Persist', 'map');
+ DataExplorerUtils.addDataViewAndWidget(
+ 'view',
+ PrepareTestDataUtils.dataName,
+ 'map',
+ );
// Change marker positions
DataExplorerUtils.openVisualizationConfig();
diff --git a/ui/cypress/tests/dataExplorer/charts/scatter.smoke.spec.ts
b/ui/cypress/tests/dataExplorer/charts/scatter.smoke.spec.ts
index c402f928b4..b6c5d61e89 100644
--- a/ui/cypress/tests/dataExplorer/charts/scatter.smoke.spec.ts
+++ b/ui/cypress/tests/dataExplorer/charts/scatter.smoke.spec.ts
@@ -17,6 +17,7 @@
*/
import { DataExplorerUtils } from
'../../../support/utils/dataExplorer/DataExplorerUtils';
+import { PrepareTestDataUtils } from
'../../../support/utils/PrepareTestDataUtils';
describe('Test Scatter View in Data Explorer', () => {
beforeEach('Setup Test', () => {
@@ -26,7 +27,7 @@ describe('Test Scatter View in Data Explorer', () => {
it('Perform Test', () => {
DataExplorerUtils.addDataViewAndWidget(
'view',
- 'Persist',
+ PrepareTestDataUtils.dataName,
'scatter-chart',
);
diff --git a/ui/cypress/tests/dataExplorer/charts/table.spec.ts
b/ui/cypress/tests/dataExplorer/charts/table.spec.ts
index 8149e021d6..932da3fbd3 100644
--- a/ui/cypress/tests/dataExplorer/charts/table.spec.ts
+++ b/ui/cypress/tests/dataExplorer/charts/table.spec.ts
@@ -19,6 +19,7 @@
import { DataExplorerUtils } from
'../../../support/utils/dataExplorer/DataExplorerUtils';
import { DataExplorerWidgetTableUtils } from
'../../../support/utils/dataExplorer/DataExplorerWidgetTableUtils';
import { DataExplorerWidget } from '../../../support/model/DataExplorerWidget';
+import { PrepareTestDataUtils } from
'../../../support/utils/PrepareTestDataUtils';
describe('Test Table View in Data Explorer', () => {
beforeEach('Setup Test', () => {
@@ -28,7 +29,7 @@ describe('Test Table View in Data Explorer', () => {
it('Perform Test', () => {
DataExplorerUtils.addDataViewAndWidget(
'view',
- 'Persist',
+ PrepareTestDataUtils.dataName,
DataExplorerWidget.TABLE,
);
diff --git a/ui/cypress/tests/dataExplorer/charts/timeSeriesSave.spec.ts
b/ui/cypress/tests/dataExplorer/charts/timeSeriesSave.spec.ts
index d789f280f1..6eed74bd68 100644
--- a/ui/cypress/tests/dataExplorer/charts/timeSeriesSave.spec.ts
+++ b/ui/cypress/tests/dataExplorer/charts/timeSeriesSave.spec.ts
@@ -17,22 +17,28 @@
*/
import { DataExplorerUtils } from
'../../../support/utils/dataExplorer/DataExplorerUtils';
+import { PrepareTestDataUtils } from
'../../../support/utils/PrepareTestDataUtils';
const testView1 = 'TestView1';
const testView2 = 'TestView2';
-const dataSet = 'Persist';
describe('Test if widget configuration is updated correctly', () => {
beforeEach('Setup Test', () => {
DataExplorerUtils.initDataLakeTests();
// Create first test data view with one time series widget
- DataExplorerUtils.addDataViewAndTimeSeriesWidget(testView1, dataSet);
+ DataExplorerUtils.addDataViewAndTimeSeriesWidget(
+ testView1,
+ PrepareTestDataUtils.dataName,
+ );
DataExplorerUtils.saveDataViewConfiguration();
cy.wait(1000);
// Create second test data view with one time series widget
- DataExplorerUtils.addDataViewAndTimeSeriesWidget(testView2, dataSet);
+ DataExplorerUtils.addDataViewAndTimeSeriesWidget(
+ testView2,
+ PrepareTestDataUtils.dataName,
+ );
DataExplorerUtils.saveDataViewConfiguration();
});
diff --git a/ui/cypress/tests/dataExplorer/deleteViewAndDashboard.spec.ts
b/ui/cypress/tests/dataExplorer/deleteViewAndDashboard.spec.ts
index 8dbef56943..d868fd31a5 100644
--- a/ui/cypress/tests/dataExplorer/deleteViewAndDashboard.spec.ts
+++ b/ui/cypress/tests/dataExplorer/deleteViewAndDashboard.spec.ts
@@ -29,7 +29,10 @@ describe('Test Deletion of Data View and Dashboard', () => {
DataExplorerUtils.goToDatalake();
- DataExplorerUtils.addDataViewAndTableWidget(dataView, 'Persist');
+ DataExplorerUtils.addDataViewAndTableWidget(
+ dataView,
+ DataExplorerUtils.ADAPTER_NAME,
+ );
DataExplorerUtils.saveDataViewConfiguration();
diff --git a/ui/cypress/tests/dataExplorer/missingDataInDataLake.spec.ts
b/ui/cypress/tests/dataExplorer/missingDataInDataLake.spec.ts
index f8327105f4..32877a46fb 100644
--- a/ui/cypress/tests/dataExplorer/missingDataInDataLake.spec.ts
+++ b/ui/cypress/tests/dataExplorer/missingDataInDataLake.spec.ts
@@ -32,7 +32,10 @@ describe('Test missing properties in data lake', () => {
});
it('Test table with missing properties', () => {
- DataExplorerUtils.addDataViewAndTableWidget(dataViewName, 'Persist');
+ DataExplorerUtils.addDataViewAndTableWidget(
+ dataViewName,
+ PrepareTestDataUtils.dataName,
+ );
DataExplorerWidgetTableUtils.checkAmountOfRows(5);
diff --git
a/ui/cypress/tests/dataExplorer/widgetDataConfiguration.smoke.spec.ts
b/ui/cypress/tests/dataExplorer/widgetDataConfiguration.smoke.spec.ts
index 91ee753bb0..19789e700d 100644
--- a/ui/cypress/tests/dataExplorer/widgetDataConfiguration.smoke.spec.ts
+++ b/ui/cypress/tests/dataExplorer/widgetDataConfiguration.smoke.spec.ts
@@ -30,7 +30,10 @@ describe('Test Table View in Data Explorer', () => {
/**
* Prepare tests
*/
- DataExplorerUtils.addDataViewAndTableWidget('NewWidget', 'Persist');
+ DataExplorerUtils.addDataViewAndTableWidget(
+ 'NewWidget',
+ DataExplorerUtils.ADAPTER_NAME,
+ );
// Validate that X lines are available
DataExplorerWidgetTableUtils.checkAmountOfRows(10);
diff --git
a/ui/projects/streampipes/platform-services/src/lib/model/datalake/data-lake-query-config.model.ts
b/ui/projects/streampipes/platform-services/src/lib/model/datalake/data-lake-query-config.model.ts
index 27dcfe1c21..f2bc4c9e39 100644
---
a/ui/projects/streampipes/platform-services/src/lib/model/datalake/data-lake-query-config.model.ts
+++
b/ui/projects/streampipes/platform-services/src/lib/model/datalake/data-lake-query-config.model.ts
@@ -67,7 +67,6 @@ export interface SourceConfig {
measure?: DataLakeMeasure;
queryConfig: QueryConfig;
queryType: 'raw' | 'aggregated' | 'single';
- sourceType: 'pipeline' | 'measurement';
}
export interface DataExplorerDataConfig {
diff --git
a/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html
b/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html
index f0fb79ee9e..1b01151a56 100644
---
a/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html
+++
b/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html
@@ -33,139 +33,149 @@
>
@if (!previewMode) {
<div class="widget-header h-40">
- <div
- fxFlex="100"
- fxLayout="row"
- fxLayoutAlign="start center"
- class="widget-header-text"
- >
- {{ configuredWidget.baseAppearanceConfig.widgetTitle }}
- </div>
- @if (!kioskMode) {
- <div fxFlex="100" fxLayout="row" fxLayoutAlign="end
center">
- @if (editMode) {
- @if (timerActive) {
- <mat-spinner
- [diameter]="20"
- color="primary"
+ <div fxFlex="100" fxLayout="row">
+ <div
+ fxFlex
+ fxLayout="row"
+ fxLayoutAlign="start center"
+ class="widget-header-text"
+ >
+ {{ configuredWidget.baseAppearanceConfig.widgetTitle }}
+ </div>
+ @if (!kioskMode) {
+ <div
+ fxFlex="100"
+ fxLayout="row"
+ fxLayoutAlign="end center"
+ >
+ @if (editMode) {
+ @if (timerActive) {
+ <mat-spinner
+ [diameter]="20"
+ color="primary"
+ class="mr-10"
+ >
+ </mat-spinner>
+ }
+ <sp-label
+ size="small"
+ [labelBackground]="
+ configuredWidget.baseAppearanceConfig
+ .textColor
+ "
+ [labelText]="loadingTime + 's'"
class="mr-10"
- >
- </mat-spinner>
+ ></sp-label>
}
- <sp-label
- size="small"
- [labelBackground]="
- configuredWidget.baseAppearanceConfig
- .textColor
- "
- [labelText]="loadingTime + 's'"
- class="mr-10"
- ></sp-label>
- }
- @if (!dataViewMode) {
- <button
- mat-icon-button
- [matMenuTriggerFor]="menu"
- [matTooltip]="'More options' | translate"
- [attr.data-cy]="
- 'more-options-' +
-
configuredWidget.baseAppearanceConfig.widgetTitle.replaceAll(
- ' ',
- ''
- )
- "
- >
- <mat-icon>more_vert</mat-icon>
- </button>
- }
- <mat-menu #menu="matMenu">
- <button
- mat-menu-item
- (click)="downloadDataAsFile()"
- >
- <mat-icon>get_app</mat-icon>
- <span>{{ 'Download data' | translate }}</span>
- </button>
- @if (hasDataExplorerWritePrivileges) {
+ @if (!dataViewMode) {
<button
- mat-menu-item
- (click)="startEditMode()"
+ mat-icon-button
+ [matMenuTriggerFor]="menu"
+ [matTooltip]="'More options' | translate"
[attr.data-cy]="
- 'start-edit-' +
+ 'more-options-' +
configuredWidget.baseAppearanceConfig.widgetTitle.replaceAll(
' ',
''
)
"
>
- <mat-icon>edit</mat-icon>
- <span>{{ 'Edit Chart' | translate }}</span>
+ <mat-icon>more_vert</mat-icon>
</button>
}
- </mat-menu>
- @if (!globalTimeEnabled) {
- <button
- mat-icon-button
- [matMenuTriggerFor]="optMenu"
- data-cy="options-data-explorer"
- #menuTrigger="matMenuTrigger"
- [matTooltip]="tooltipText"
- matTooltipClass="no-wrap-tooltip"
- >
- <mat-icon
- [color]="
- timeSettingsModified
- ? 'primary'
- : 'default'
- "
- >alarm_clock</mat-icon
- >
- </button>
- }
- <mat-menu #optMenu="matMenu" class="large-menu">
- @if (quickSelections) {
- <sp-time-selector-menu
- #timeSelectorMenu
- [timeSettings]="clonedTimeSettings"
- [quickSelections]="quickSelections"
- [enableTimePicker]="enableTimePicker"
- [maxDayRange]="maxDayRange"
- [labels]="labels"
- (timeSettingsEmitter)="
- modifyWidgetTimeSettings($event)
- "
- class="w-100"
+ <mat-menu #menu="matMenu">
+ <button
+ mat-menu-item
+ (click)="downloadDataAsFile()"
>
+ <mat-icon>get_app</mat-icon>
+ <span>{{
+ 'Download data' | translate
+ }}</span>
+ </button>
+ @if (hasDataExplorerWritePrivileges) {
<button
- mat-flat-button
- class="mat-basic"
- (click)="resetWidgetTimeSettings()"
+ mat-menu-item
+ (click)="startEditMode()"
+ [attr.data-cy]="
+ 'start-edit-' +
+
configuredWidget.baseAppearanceConfig.widgetTitle.replaceAll(
+ ' ',
+ ''
+ )
+ "
>
- {{ 'Reset' | translate }}
+ <mat-icon>edit</mat-icon>
+ <span>{{
+ 'Edit Chart' | translate
+ }}</span>
</button>
- </sp-time-selector-menu>
+ }
+ </mat-menu>
+ @if (!globalTimeEnabled) {
+ <button
+ mat-icon-button
+ [matMenuTriggerFor]="optMenu"
+ data-cy="options-data-explorer"
+ #menuTrigger="matMenuTrigger"
+ [matTooltip]="tooltipText"
+ matTooltipClass="no-wrap-tooltip"
+ >
+ <mat-icon
+ [color]="
+ timeSettingsModified
+ ? 'primary'
+ : 'default'
+ "
+ >alarm_clock</mat-icon
+ >
+ </button>
}
- </mat-menu>
- @if (
- !dataViewMode &&
- editMode &&
- hasDashboardWritePrivileges
- ) {
- <button
- mat-icon-button
- (click)="removeWidget()"
- [matTooltip]="'Delete Chart' | translate"
- [attr.data-cy]="
- 'remove-' +
- configuredWidget.baseAppearanceConfig
- .widgetTitle
- "
- >
- <mat-icon>clear</mat-icon>
- </button>
- }
- </div>
- }
+ <mat-menu #optMenu="matMenu" class="large-menu">
+ @if (quickSelections) {
+ <sp-time-selector-menu
+ #timeSelectorMenu
+ [timeSettings]="clonedTimeSettings"
+ [quickSelections]="quickSelections"
+ [enableTimePicker]="enableTimePicker"
+ [maxDayRange]="maxDayRange"
+ [labels]="labels"
+ (timeSettingsEmitter)="
+ modifyWidgetTimeSettings($event)
+ "
+ class="w-100"
+ >
+ <button
+ mat-flat-button
+ class="mat-basic"
+ (click)="resetWidgetTimeSettings()"
+ >
+ {{ 'Reset' | translate }}
+ </button>
+ </sp-time-selector-menu>
+ }
+ </mat-menu>
+ @if (
+ !dataViewMode &&
+ editMode &&
+ hasDashboardWritePrivileges
+ ) {
+ <button
+ mat-icon-button
+ (click)="removeWidget()"
+ [matTooltip]="'Delete Chart' | translate"
+ [attr.data-cy]="
+ 'remove-' +
+ configuredWidget.baseAppearanceConfig
+ .widgetTitle
+ "
+ >
+ <mat-icon>clear</mat-icon>
+ </button>
+ }
+ </div>
+ }
+ </div>
</div>
}
<div
diff --git
a/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.scss
b/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.scss
index 875f5fed06..592687545c 100644
---
a/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.scss
+++
b/ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.scss
@@ -52,7 +52,7 @@
}
.widget-header-text {
- font-size: var(--mat-sys-body-small-font);
+ font-size: var(--mat-sys-body-large-size);
font-weight: bold;
}
diff --git
a/ui/src/app/data-explorer/components/chart-view/designer-panel/data-explorer-designer-panel.component.scss
b/ui/src/app/data-explorer/components/chart-view/designer-panel/data-explorer-designer-panel.component.scss
index dfd4e95fca..4869604b4a 100644
---
a/ui/src/app/data-explorer/components/chart-view/designer-panel/data-explorer-designer-panel.component.scss
+++
b/ui/src/app/data-explorer/components/chart-view/designer-panel/data-explorer-designer-panel.component.scss
@@ -21,6 +21,7 @@
height: 100%;
overflow-y: hidden;
overflow-x: hidden;
+ margin-left: 5px;
}
.designer-panel-config {
diff --git
a/ui/src/app/data-explorer/components/chart-view/designer-panel/data-settings/data-explorer-widget-data-settings.component.html
b/ui/src/app/data-explorer/components/chart-view/designer-panel/data-settings/data-explorer-widget-data-settings.component.html
index 206b183efb..6babd4b6a5 100644
---
a/ui/src/app/data-explorer/components/chart-view/designer-panel/data-settings/data-explorer-widget-data-settings.component.html
+++
b/ui/src/app/data-explorer/components/chart-view/designer-panel/data-settings/data-explorer-widget-data-settings.component.html
@@ -64,34 +64,8 @@
</div>
</mat-expansion-panel-header>
<div fxFlex="100" fxLayout="column" class="mt-10">
- <sp-configuration-box [title]="'Data Source' | translate">
- <div header fxFlex class="header-container">
- <span fxFlex></span>
- <button
- mat-icon-button
- class="pull-btn-right"
- [matTooltip]="
- expandFieldsDataSource
- ? ('Expand Less' | translate)
- : ('Expand More' | translate)
- "
- (click)="toggleExpandFieldsDataSource()"
- [disabled]="
- availablePipelines.length === 0 &&
- availableMeasurements.length === 0
- "
- >
- <mat-icon>{{
- expandFieldsDataSource
- ? 'expand_less'
- : 'expand_more'
- }}</mat-icon>
- </button>
- </div>
- @if (
- availablePipelines.length === 0 &&
- availableMeasurements.length === 0
- ) {
+ <sp-configuration-box [title]="'Dataset' | translate">
+ @if (availableMeasurements.length === 0) {
<div
class="warning-container"
fxLayout="column"
@@ -139,186 +113,37 @@
</div>
</div>
}
- @if (
- availablePipelines.length !== 0 ||
- availableMeasurements.length !== 0
- ) {
- <div>
- <mat-radio-group
- class="selection-radio-group"
- [(ngModel)]="sourceConfig.sourceType"
+ @if (availableMeasurements.length !== 0) {
+ <mat-form-field
+ color="accent"
+ fxFlex="100"
+ appearance="outline"
+ subscriptSizing="dynamic"
+ >
+ <mat-select
+ data-cy="data-explorer-select-data-set"
+ [(value)]="sourceConfig.measureName"
+ (selectionChange)="
+ updateMeasure(
+ sourceConfig,
+ $event.value
+ )
+ "
>
- @if (
- expandFieldsDataSource ||
- sourceConfig.sourceType === 'pipeline'
- ) {
- <div
- class="radio-option-box"
- fxLayout="column"
- [ngClass]="{
- 'radio-option-box-accent':
- sourceConfig.sourceType ===
- 'pipeline'
- }"
- >
- <mat-radio-button
- class="selection-radio-button"
- [value]="'pipeline'"
- [disabled]="
- availablePipelines.length
===
- 0
- "
- >
- <b>{{
- 'Pipeline' | translate
- }}</b>
- </mat-radio-button>
- <p class="description">
- {{
- 'Select this option if you
want to use data from one of your pipelines.'
- | translate
- }}
- </p>
- @if (
- sourceConfig.sourceType ===
- 'pipeline' &&
- availablePipelines.length !== 0
- ) {
- <div
-
class="selection-form-field"
- >
- <mat-form-field
- color="accent"
- fxFlex="100"
- appearance="outline"
- >
- <mat-select
- [panelClass]="
-
'form-field-small'
- "
- [(value)]="
-
sourceConfig.measureName
- "
- (selectionChange)="
- updateMeasure(
-
sourceConfig,
-
$event.value
- )
- "
-
data-cy="data-explorer-select-data-set"
- >
- @for (
- pipeline of
availablePipelines;
- track pipeline
- ) {
- <mat-option
- [value]="
-
pipeline.measureName
- "
- >
- <span
-
class="pipeline-name"
- >{{
-
pipeline.pipelineName
-
}}</span
- ><br />
- <span
-
class="measure-name"
- >{{
-
pipeline.measureName
-
}}</span
- >
- </mat-option>
- }
- </mat-select>
- </mat-form-field>
- </div>
- }
- </div>
- }
- @if (
- expandFieldsDataSource ||
- sourceConfig.sourceType ===
- 'measurement'
+ @for (
+ measurement of availableMeasurements;
+ track measurement
) {
- <div
- class="radio-option-box"
- fxLayout="column"
- [ngClass]="{
- 'radio-option-box-accent':
- sourceConfig.sourceType ===
- 'measurement'
- }"
+ <mat-option
+ [value]="measurement.measureName"
>
- <mat-radio-button
- class="selection-radio-button"
- [value]="'measurement'"
- [disabled]="
-
availableMeasurements.length ===
- 0
- "
- >
- <b>{{
- 'Database Identifier'
- | translate
- }}</b>
- </mat-radio-button>
- <p class="description">
- {{
- 'Choose this option to
work with individual measurements from a Data Lake.'
- | translate
- }}
- </p>
- @if (
- sourceConfig.sourceType ===
- 'measurement' &&
- availableMeasurements.length
!==
- 0
- ) {
- <div
-
class="selection-form-field"
- >
- <mat-form-field
- color="accent"
- fxFlex="100"
- appearance="outline"
- >
- <mat-select
- [(value)]="
-
sourceConfig.measureName
- "
- (selectionChange)="
- updateMeasure(
-
sourceConfig,
-
$event.value
- )
- "
- >
- @for (
- measurement of
availableMeasurements;
- track
measurement
- ) {
- <mat-option
- [value]="
-
measurement.measureName
- "
- >
- <span
-
class="pipeline-name"
- >{{
-
measurement.measureName
-
}}</span
- >
- </mat-option>
- }
- </mat-select>
- </mat-form-field>
- </div>
- }
- </div>
+ <span class="pipeline-name">{{
+ measurement.measureName
+ }}</span>
+ </mat-option>
}
- </mat-radio-group>
- </div>
+ </mat-select>
+ </mat-form-field>
}
</sp-configuration-box>
@if (sourceConfig.measureName) {
diff --git
a/ui/src/app/data-explorer/components/chart-view/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
b/ui/src/app/data-explorer/components/chart-view/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
index b98d442633..8a1f195b13 100644
---
a/ui/src/app/data-explorer/components/chart-view/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
+++
b/ui/src/app/data-explorer/components/chart-view/designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
@@ -25,7 +25,6 @@ import {
ViewChild,
} from '@angular/core';
import {
- ChartService,
DataExplorerDataConfig,
DataExplorerWidgetModel,
DataLakeMeasure,
@@ -33,7 +32,6 @@ import {
SourceConfig,
} from '@streampipes/platform-services';
import { Tuple2 } from '../../../../../core-model/base/Tuple2';
-import { zip } from 'rxjs';
import { Router } from '@angular/router';
import { ChartConfigurationService } from
'../../../../../data-explorer-shared/services/chart-configuration.service';
import { FieldSelectionPanelComponent } from
'./field-selection-panel/field-selection-panel.component';
@@ -70,7 +68,6 @@ export class DataExplorerWidgetDataSettingsComponent
implements OnInit {
@ViewChild('groupSelectionPanel')
groupSelectionPanel: GroupSelectionPanelComponent;
- availablePipelines: DataLakeMeasure[] = [];
availableMeasurements: DataLakeMeasure[] = [];
step = 0;
@@ -79,7 +76,6 @@ export class DataExplorerWidgetDataSettingsComponent
implements OnInit {
expandFieldsQuery = true;
constructor(
- private dataExplorerService: ChartService,
private datalakeRestService: DatalakeRestService,
private widgetConfigService: ChartConfigurationService,
private fieldProviderService: DataExplorerFieldProviderService,
@@ -92,85 +88,36 @@ export class DataExplorerWidgetDataSettingsComponent
implements OnInit {
}
loadPipelinesAndMeasurements() {
- zip(
- this.dataExplorerService.getAllPersistedDataStreams(),
- this.datalakeRestService.getAllMeasurementSeries(),
- ).subscribe(response => {
- this.availablePipelines = response[0].filter(
- p =>
- response[1].find(m => m.measureName === p.measureName) !==
- undefined,
- );
- this.availableMeasurements = response[1];
-
- this.availablePipelines.sort((a, b) =>
- a.pipelineName.localeCompare(b.pipelineName),
- );
- this.availableMeasurements.sort((a, b) =>
- a.measureName.localeCompare(b.measureName),
- );
-
- // replace pipeline event schemas. Reason: Available measures do
not contain field for timestamp
- this.availablePipelines.forEach(p => {
- const measurement = this.availableMeasurements.find(m => {
- return m.measureName === p.measureName;
- });
- p.eventSchema = measurement.eventSchema;
- });
-
- if (!this.dataConfig.sourceConfigs) {
- const defaultConfigs = this.findDefaultConfig();
- this.addDataSource(
- defaultConfigs.measureName,
- defaultConfigs.sourceType,
+ this.datalakeRestService
+ .getAllMeasurementSeries()
+ .subscribe(response => {
+ this.availableMeasurements = response;
+ this.availableMeasurements.sort((a, b) =>
+ a.measureName.localeCompare(b.measureName),
);
- if (defaultConfigs.measureName !== undefined) {
- this.updateMeasure(
- this.dataConfig.sourceConfigs[0],
- defaultConfigs.measureName,
- );
- }
- } else {
- this.checkSourceTypes();
- }
- });
- }
- checkSourceTypes() {
- this.dataConfig.sourceConfigs.forEach(sourceConfig => {
- if (
- sourceConfig.sourceType === 'pipeline' &&
- !this.existsPipelineWithMeasure(sourceConfig.measureName)
- ) {
- sourceConfig.sourceType = 'measurement';
- }
- });
- }
-
- existsPipelineWithMeasure(measureName: string) {
- return (
- this.availablePipelines.find(
- pipeline => pipeline.measureName === measureName,
- ) !== undefined
- );
+ if (!this.dataConfig.sourceConfigs) {
+ const defaultConfigs = this.findDefaultConfig();
+ this.addDataSource(defaultConfigs.measureName);
+ if (defaultConfigs.measureName !== undefined) {
+ this.updateMeasure(
+ this.dataConfig.sourceConfigs[0],
+ defaultConfigs.measureName,
+ );
+ }
+ }
+ });
}
findDefaultConfig(): {
measureName: string;
- sourceType: 'pipeline' | 'measurement';
} {
- if (this.availablePipelines.length > 0) {
- return {
- measureName: this.availablePipelines[0].measureName,
- sourceType: 'pipeline',
- };
- } else if (this.availableMeasurements.length > 0) {
+ if (this.availableMeasurements.length > 0) {
return {
measureName: this.availableMeasurements[0].measureName,
- sourceType: 'measurement',
};
} else {
- return { measureName: undefined, sourceType: undefined };
+ return { measureName: undefined };
}
}
@@ -189,11 +136,8 @@ export class DataExplorerWidgetDataSettingsComponent
implements OnInit {
}
findMeasure(measureName: string) {
- return (
- this.availablePipelines.find(
- pipeline => pipeline.measureName === measureName,
- ) ||
- this.availableMeasurements.find(m => m.measureName === measureName)
+ return this.availableMeasurements.find(
+ m => m.measureName === measureName,
);
}
@@ -206,22 +150,14 @@ export class DataExplorerWidgetDataSettingsComponent
implements OnInit {
this.triggerDataRefresh();
}
- addDataSource(
- measureName = '',
- sourceType: 'pipeline' | 'measurement' = 'pipeline',
- ) {
+ addDataSource(measureName = '') {
if (!this.dataConfig.sourceConfigs) {
this.dataConfig.sourceConfigs = [];
}
- this.dataConfig.sourceConfigs.push(
- this.makeSourceConfig(measureName, sourceType),
- );
+ this.dataConfig.sourceConfigs.push(this.makeSourceConfig(measureName));
}
- makeSourceConfig(
- measureName = '',
- sourceType: 'pipeline' | 'measurement' = 'pipeline',
- ): SourceConfig {
+ makeSourceConfig(measureName = ''): SourceConfig {
return {
measureName,
queryConfig: {
@@ -232,7 +168,6 @@ export class DataExplorerWidgetDataSettingsComponent
implements OnInit {
aggregationValue: 1,
},
queryType: 'raw',
- sourceType,
};
}