METRON-2191 [UI] Checkbox selector on Alerts UI is broken (tiborm via sardell) closes apache/metron#1468
diff --git a/metron-interface/metron-alerts/src/app/shared/context-menu/context-menu.component.ts b/metron-interface/metron-alerts/src/app/shared/context-menu/context-menu.component.ts
index 4ae0ad6..f559b2d 100644
--- a/metron-interface/metron-alerts/src/app/shared/context-menu/context-menu.component.ts
+++ b/metron-interface/metron-alerts/src/app/shared/context-menu/context-menu.component.ts
@@ -54,6 +54,10 @@
private popper: Popper;
+ private excludedDomElements = [
+ 'label', 'input', 'button'
+ ];
+
constructor(
private contextMenuSvc: ContextMenuService,
private host: ElementRef
@@ -100,10 +104,14 @@
}
private toggle($event: MouseEvent) {
+ if (this.isElementExcluded($event)) {
+ return;
+ }
+
$event.stopPropagation();
if (!this.isEnabled) {
- this.host.nativeElement.dispatchEvent(new Event(this.ctxMenuItems[0].event));
+ this.dispatchDefaultEvent($event);
return;
}
@@ -134,6 +142,14 @@
);
}
+ private dispatchDefaultEvent($event: MouseEvent) {
+ this.host.nativeElement.dispatchEvent(new Event(this.ctxMenuItems[0].event));
+ }
+
+ private isElementExcluded($event: MouseEvent) {
+ return this.excludedDomElements.find(element => element === ($event.target as HTMLElement).nodeName.toLowerCase());
+ }
+
private getContextMenuOrigin($event: MouseEvent): HTMLElement {
if (($event.currentTarget as HTMLElement).contains($event.target as Node)) {
return $event.target as HTMLElement;