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,
         };
     }
 

Reply via email to