This is an automated email from the ASF dual-hosted git repository.

zehnder 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 03acc10d4d fix: Set table as default widget type (#3374)
03acc10d4d is described below

commit 03acc10d4d0c08484ebcd3072ae830113904aed5
Author: Marcel Früholz <[email protected]>
AuthorDate: Mon Dec 16 11:09:27 2024 +0100

    fix: Set table as default widget type (#3374)
    
    * Set table as default widget type
    
    * Adjust test to changes
---
 .../datalake/widgetDataConfiguration.smoke.spec.ts |  4 +--
 .../data-explorer-designer-panel.component.html    |  4 +++
 ...ta-explorer-widget-data-settings.component.html |  1 +
 ...data-explorer-widget-data-settings.component.ts | 37 ++++++++++++++++++++++
 .../field-selection-panel.component.ts             |  6 +++-
 .../order-selection-panel.component.ts             |  2 +-
 6 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/ui/cypress/tests/datalake/widgetDataConfiguration.smoke.spec.ts 
b/ui/cypress/tests/datalake/widgetDataConfiguration.smoke.spec.ts
index 040bc3cefc..911cdc6b5a 100644
--- a/ui/cypress/tests/datalake/widgetDataConfiguration.smoke.spec.ts
+++ b/ui/cypress/tests/datalake/widgetDataConfiguration.smoke.spec.ts
@@ -84,10 +84,10 @@ describe('Test Table View in Data Explorer', () => {
         DataLakeUtils.clickGroupBy('randomtext');
         cy.wait(1000);
         cy.dataCy('data-explorer-table-row-randomtext', { timeout: 10000 })
-            .first({ timeout: 10000 })
+            .last({ timeout: 10000 })
             .contains('a', { timeout: 10000 });
         cy.dataCy('data-explorer-table-row-randomtext', { timeout: 10000 })
-            .last({ timeout: 10000 })
+            .first({ timeout: 10000 })
             .contains('c', { timeout: 10000 });
         DataLakeWidgetTableUtils.checkRows(10);
         DataLakeUtils.saveAndReEditWidget('NewWidget');
diff --git 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-explorer-designer-panel.component.html
 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-explorer-designer-panel.component.html
index a57f95d31c..3096802638 100644
--- 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-explorer-designer-panel.component.html
+++ 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-explorer-designer-panel.component.html
@@ -37,6 +37,9 @@
                             #dataSettingsPanel
                             [(dataLakeMeasure)]="dataLakeMeasure"
                             [dataConfig]="currentlyConfiguredWidget.dataConfig"
+                            [currentlyConfiguredWidget]="
+                                currentlyConfiguredWidget
+                            "
                             [newWidgetMode]="newWidgetMode"
                             [widgetId]="currentlyConfiguredWidget.elementId"
                             (createWidgetEmitter)="createNewWidget()"
@@ -55,6 +58,7 @@
                 >
                     <div class="scroll-tab-content">
                         <sp-explorer-visualisation-settings
+                            *ngIf="currentlyConfiguredWidget.widgetType"
                             fxFlex="100"
                             fxLayout="column"
                             [currentlyConfiguredWidget]="
diff --git 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/data-explorer-widget-data-settings.component.html
 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/data-explorer-widget-data-settings.component.html
index e63324da6f..810d702fec 100644
--- 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/data-explorer-widget-data-settings.component.html
+++ 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/data-explorer-widget-data-settings.component.html
@@ -226,6 +226,7 @@
                     <sp-field-selection-panel
                         #fieldSelectionPanel
                         [sourceConfig]="sourceConfig"
+                        (initialFieldSelectionEvent)="createDefaultWidget()"
                     ></sp-field-selection-panel>
 
                     <sp-filter-selection-panel
diff --git 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
index 8823d519b3..c2de37bfd2 100644
--- 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
+++ 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/data-explorer-widget-data-settings.component.ts
@@ -37,6 +37,10 @@ import { zip } from 'rxjs';
 import { WidgetConfigurationService } from 
'../../../../services/widget-configuration.service';
 import { FieldSelectionPanelComponent } from 
'./field-selection-panel/field-selection-panel.component';
 import { GroupSelectionPanelComponent } from 
'./group-selection-panel/group-selection-panel.component';
+import { TableVisConfig } from 
'../../../widgets/table/model/table-widget.model';
+import { DataExplorerFieldProviderService } from 
'src/app/data-explorer/services/data-explorer-field-provider-service';
+import { FieldProvider } from 
'src/app/data-explorer/models/dataview-dashboard.model';
+import { WidgetTypeService } from 
'src/app/data-explorer/services/widget-type.service';
 
 @Component({
     selector: 'sp-data-explorer-widget-data-settings',
@@ -48,6 +52,7 @@ export class DataExplorerWidgetDataSettingsComponent 
implements OnInit {
     @Input() dataLakeMeasure: DataLakeMeasure;
     @Input() newWidgetMode: boolean;
     @Input() widgetId: string;
+    @Input() currentlyConfiguredWidget: DataExplorerWidgetModel;
 
     @Output() createWidgetEmitter: EventEmitter<
         Tuple2<DataLakeMeasure, DataExplorerWidgetModel>
@@ -72,6 +77,8 @@ export class DataExplorerWidgetDataSettingsComponent 
implements OnInit {
         private dataExplorerService: DataViewDataExplorerService,
         private datalakeRestService: DatalakeRestService,
         private widgetConfigService: WidgetConfigurationService,
+        private fieldProviderService: DataExplorerFieldProviderService,
+        private widgetTypeService: WidgetTypeService,
     ) {}
 
     ngOnInit(): void {
@@ -90,6 +97,13 @@ export class DataExplorerWidgetDataSettingsComponent 
implements OnInit {
             );
             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 => {
@@ -216,6 +230,29 @@ export class DataExplorerWidgetDataSettingsComponent 
implements OnInit {
         };
     }
 
+    makeVisualizationConfig(fields: FieldProvider): TableVisConfig {
+        return {
+            configurationValid: true,
+            searchValue: '',
+            selectedColumns: fields.allFields,
+        };
+    }
+
+    createDefaultWidget(): void {
+        if (this.dataConfig.sourceConfigs.length === 1) {
+            const fields = this.fieldProviderService.generateFieldLists(
+                this.dataConfig.sourceConfigs,
+            );
+            this.currentlyConfiguredWidget.visualizationConfig =
+                this.makeVisualizationConfig(fields);
+            this.currentlyConfiguredWidget.widgetType = 'table';
+            this.widgetTypeService.notify({
+                widgetId: this.currentlyConfiguredWidget.elementId,
+                newWidgetTypeId: this.currentlyConfiguredWidget.widgetType,
+            });
+        }
+    }
+
     removeSourceConfig(index: number) {
         this.dataConfig.sourceConfigs.splice(index, 1);
     }
diff --git 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/field-selection-panel/field-selection-panel.component.ts
 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/field-selection-panel/field-selection-panel.component.ts
index bde51d0a56..49a6b64ec3 100644
--- 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/field-selection-panel/field-selection-panel.component.ts
+++ 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/field-selection-panel/field-selection-panel.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 import {
     EventPropertyUnion,
     FieldConfig,
@@ -35,6 +35,9 @@ export class FieldSelectionPanelComponent implements OnInit {
 
     @Input() sourceConfig: SourceConfig;
 
+    @Output()
+    initialFieldSelectionEvent: EventEmitter<void> = new EventEmitter();
+
     expandFields = false;
 
     constructor(
@@ -44,6 +47,7 @@ export class FieldSelectionPanelComponent implements OnInit {
 
     ngOnInit() {
         this.applyDefaultFields();
+        this.initialFieldSelectionEvent.emit();
     }
 
     applyDefaultFields() {
diff --git 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/order-selection-panel/order-selection-panel.component.ts
 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/order-selection-panel/order-selection-panel.component.ts
index 2e9ef62a66..a020e301f9 100644
--- 
a/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/order-selection-panel/order-selection-panel.component.ts
+++ 
b/ui/src/app/data-explorer/components/data-view/data-view-designer-panel/data-settings/order-selection-panel/order-selection-panel.component.ts
@@ -31,7 +31,7 @@ export class OrderSelectionPanelComponent implements OnInit {
     constructor(private widgetConfigService: WidgetConfigurationService) {}
 
     ngOnInit(): void {
-        this.sourceConfig.queryConfig.order ??= 'ASC';
+        this.sourceConfig.queryConfig.order ??= 'DESC';
     }
 
     triggerConfigurationUpdate() {

Reply via email to