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

SvenO3 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 366787fa37 fix(#4432): Change behavior of context menu on overview 
page (#4450)
366787fa37 is described below

commit 366787fa3764fb0b1ceadde7f9b7d65fc6acd8f2
Author: Sven Oehler <[email protected]>
AuthorDate: Fri May 8 13:46:48 2026 +0200

    fix(#4432): Change behavior of context menu on overview page (#4450)
---
 .../support/utils/DataDownloadDialogUtils.ts       |  1 -
 ui/cypress/support/utils/GeneralUtils.ts           |  6 +---
 ui/cypress/support/utils/connect/ConnectUtils.ts   |  2 --
 .../components/sp-table/sp-table.component.html    | 39 ++++++++--------------
 .../lib/components/sp-table/sp-table.component.ts  | 20 -----------
 5 files changed, 14 insertions(+), 54 deletions(-)

diff --git a/ui/cypress/support/utils/DataDownloadDialogUtils.ts 
b/ui/cypress/support/utils/DataDownloadDialogUtils.ts
index 70c1d81e89..a6a7a10569 100644
--- a/ui/cypress/support/utils/DataDownloadDialogUtils.ts
+++ b/ui/cypress/support/utils/DataDownloadDialogUtils.ts
@@ -31,7 +31,6 @@ export class DataDownloadDialogUtils {
         // const exportDate: Date;
         ChartUtils.goToDatalake();
 
-        GeneralUtils.openMenuForRow(dataViewName);
         // select data view in edit mode
         ChartUtils.editDataView(dataViewName);
 
diff --git a/ui/cypress/support/utils/GeneralUtils.ts 
b/ui/cypress/support/utils/GeneralUtils.ts
index 893240022d..4312da1d9b 100644
--- a/ui/cypress/support/utils/GeneralUtils.ts
+++ b/ui/cypress/support/utils/GeneralUtils.ts
@@ -20,15 +20,11 @@ export class GeneralUtils {
     public static tab(identifier: string) {
         return cy.dataCy(`tab-${identifier}`).click();
     }
-
     public static openMenuForRow(rowText: string) {
         cy.contains('[role="row"], tr, mat-row', rowText) // be flexible on 
row element
             .scrollIntoView()
             .within(() => {
-                // Hover the trigger to open the menu
-                cy.dataCy('more-options').trigger('mouseenter', {
-                    force: true,
-                });
+                cy.dataCy('more-options').click({ force: true });
             });
 
         // Wait for the CDK overlay panel to become visible
diff --git a/ui/cypress/support/utils/connect/ConnectUtils.ts 
b/ui/cypress/support/utils/connect/ConnectUtils.ts
index 60859cfb57..6b412df092 100644
--- a/ui/cypress/support/utils/connect/ConnectUtils.ts
+++ b/ui/cypress/support/utils/connect/ConnectUtils.ts
@@ -517,13 +517,11 @@ export class ConnectUtils {
         cy.wait(waitTime);
 
         ConnectUtils.goToConnect();
-        ConnectBtns.openActionsMenu(adapterName);
         ConnectBtns.stopAdapter().click();
         ConnectBtns.adapterOperationInProgressSpinner().should('not.exist');
 
         cy.wait(waitTime);
 
-        ConnectBtns.openActionsMenu(adapterName);
         ConnectBtns.startAdapter().click();
         ConnectBtns.adapterOperationInProgressSpinner().should('not.exist');
 
diff --git 
a/ui/projects/streampipes/shared-ui/src/lib/components/sp-table/sp-table.component.html
 
b/ui/projects/streampipes/shared-ui/src/lib/components/sp-table/sp-table.component.html
index 7988ffbc0c..4b03c28e64 100644
--- 
a/ui/projects/streampipes/shared-ui/src/lib/components/sp-table/sp-table.component.html
+++ 
b/ui/projects/streampipes/shared-ui/src/lib/components/sp-table/sp-table.component.html
@@ -367,35 +367,22 @@
                 <mat-icon>preview</mat-icon>
             </button>
         }
-        <div
+        <button
+            mat-icon-button
             [matMenuTriggerFor]="menu"
-            #menuTrigger="matMenuTrigger"
-            (mouseenter)="mouseEnter(menuTrigger)"
-            (mouseleave)="mouseLeave(menuTrigger)"
+            (click)="$event.stopPropagation()"
+            [attr.data-cy]="'more-options'"
         >
-            <button
-                mat-icon-button
-                [matMenuTriggerFor]="menu"
-                #menuTrigger="matMenuTrigger"
-                (click)="$event.stopPropagation()"
-                [attr.data-cy]="'more-options'"
+            <mat-icon>more_vert</mat-icon>
+        </button>
+        <mat-menu #menu="matMenu">
+            <ng-container
+                *ngTemplateOutlet="
+                    actionsTemplate;
+                    context: { $implicit: element }
+                "
             >
-                <mat-icon>more_vert</mat-icon>
-            </button>
-        </div>
-        <mat-menu #menu="matMenu" [hasBackdrop]="false">
-            <div
-                (mouseenter)="mouseEnter(menuTrigger)"
-                (mouseleave)="mouseLeave(menuTrigger)"
-            >
-                <ng-container
-                    *ngTemplateOutlet="
-                        actionsTemplate;
-                        context: { $implicit: element }
-                    "
-                >
-                </ng-container>
-            </div>
+            </ng-container>
         </mat-menu>
     </div>
 </ng-template>
diff --git 
a/ui/projects/streampipes/shared-ui/src/lib/components/sp-table/sp-table.component.ts
 
b/ui/projects/streampipes/shared-ui/src/lib/components/sp-table/sp-table.component.ts
index cb0d15a507..379b0c8b9e 100644
--- 
a/ui/projects/streampipes/shared-ui/src/lib/components/sp-table/sp-table.component.ts
+++ 
b/ui/projects/streampipes/shared-ui/src/lib/components/sp-table/sp-table.component.ts
@@ -191,8 +191,6 @@ export class SpTableComponent<T>
     @ContentChild(SpTableMultiActionsDirective, { read: TemplateRef })
     multiActionsTemplate?: TemplateRef<any>;
 
-    timedOutCloser: any;
-    trigger: MatMenuTrigger | undefined = undefined;
     visiblePageRows: T[] = [];
     selectedMultiAction: string | null = null;
     viewMode: SpTableGroupViewMode = 'list';
@@ -289,24 +287,6 @@ export class SpTableComponent<T>
         this.updateCompactLayout();
     }
 
-    mouseEnter(trigger) {
-        if (this.timedOutCloser) {
-            clearTimeout(this.timedOutCloser);
-        }
-        if (this.trigger !== undefined) {
-            this.trigger.closeMenu();
-        }
-        trigger.openMenu();
-        this.trigger = trigger;
-    }
-
-    mouseLeave(trigger) {
-        this.timedOutCloser = setTimeout(() => {
-            trigger.closeMenu();
-            this.trigger = undefined;
-        }, 50);
-    }
-
     onPage(event: PageEvent) {
         this.localStorageService.set('paginator-page-size', event.pageSize);
         if (this.viewMode === 'grouped') {

Reply via email to