This is an automated email from the ASF dual-hosted git repository. riemer pushed a commit to branch remove-pipeline-selection-data-explorer in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit d8ff18c11129edf2da2e9936ba28105b8245875e Merge: 6cd1460548 3ebe611381 Author: Dominik Riemer <[email protected]> AuthorDate: Tue Nov 25 12:56:56 2025 +0100 Merge branch 'dev' into remove-pipeline-selection-data-explorer .../export/ObjectStorge/IObjectStorage.java | 1 + .../export/ObjectStorge/LocalFolder.java | 5 + .../dataexplorer/export/ObjectStorge/S3.java | 5 + .../ObjectStorge/TestExportProviderConnection.java | 71 +++++++ .../model/client/user/DefaultPrivilege.java | 14 -- .../manager/setup/CouchDbInstallationStep.java | 2 - .../apache/streampipes/rest/impl/FileResource.java | 5 +- .../admin/ExportProviderConfigurationResource.java | 40 +++- .../streampipes/rest/security/AuthConstants.java | 4 + .../core/migrations/AvailableMigrations.java | 6 +- .../v070/CreateDefaultAssetMigration.java | 50 ----- .../v099/RemoveObsoletePrivilegesMigration.java | 63 +++++++ .../management/authorization/PrivilegeManager.java | 46 +++-- .../user/management/authorization/RoleManager.java | 11 +- .../support/utils/dataExplorer/DataExplorerBtns.ts | 15 +- .../utils/dataExplorer/DataExplorerUtils.ts | 86 +++++++-- .../dataExplorer/addAssetToDashboard.smoke.spec.ts | 2 +- .../testAddAssetOnResourceCreation.ts | 4 +- .../userManagement/testUserRoleCharts.spec.ts | 158 ++++++++++++++++ .../userManagement/testUserRoleDashboard.spec.ts | 204 +++++++++++++++++++++ .../testVariousUserRoles.smoke.spec.ts | 9 +- ui/deployment/i18n/de.json | 72 ++++---- ui/deployment/i18n/en.json | 72 ++++---- .../src/lib/apis/export-provider.service.ts | 10 +- .../model/config/export-provider-config.model.ts | 28 +-- ui/src/app/_enums/user-privilege.enum.ts | 6 - ui/src/app/configuration/configuration.module.ts | 2 + .../datalake-configuration.component.html | 38 ++++ .../datalake-configuration.component.ts | 21 +++ .../export-provider-connection-test.component.html | 79 ++++++++ .../export-provider-connection-test.component.ts | 79 ++++++++ .../file-upload/file-upload-dialog.component.ts | 2 +- .../adapter-details-logs.component.html | 2 +- .../dashboard-overview-table.component.html | 5 +- .../chart-selection/chart-selection.component.html | 20 +- .../chart-selection/chart-selection.component.ts | 12 +- .../panel/dashboard-panel.component.html | 4 +- .../components/panel/dashboard-panel.component.ts | 8 +- .../dashboard-toolbar.component.html | 4 +- .../dashboard-toolbar.component.ts | 2 +- .../data-explorer-chart-container.component.html | 43 ++--- .../data-explorer-chart-container.component.ts | 4 + .../data-explorer-chart-view.component.ts | 26 ++- .../data-explorer-overview-table.component.html | 6 +- .../data-explorer-overview-table.component.ts | 5 +- ui/src/app/data-explorer/data-explorer.routes.ts | 2 +- .../pipeline-details-toolbar.component.html | 26 +-- .../pipeline-details-toolbar.component.ts | 3 + .../pipeline-details.component.html | 1 + .../pipeline-details/pipeline-details.component.ts | 12 +- 50 files changed, 1094 insertions(+), 301 deletions(-) diff --cc ui/src/app/data-explorer-shared/components/chart-container/data-explorer-chart-container.component.html index a2ff19e7a4,f0fb79ee9e..1b01151a56 --- 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,148 -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 fxLayout="row" fxLayoutAlign="end center"> ++ <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) { - @if ( - editMode && hasDataExplorerWritePrivileges - ) { - <button - mat-icon-button - (click)="removeWidget()" - [matTooltip]=" - 'Delete Chart' | translate - " - [attr.data-cy]=" - 'remove-' + - configuredWidget - .baseAppearanceConfig - .widgetTitle - " - > - <mat-icon>clear</mat-icon> - </button> - } ++ @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
