From a657ac27d43a38952feab0cdd7ea1137c8a5625e Mon Sep 17 00:00:00 2001 From: nathan Date: Mon, 15 Jul 2024 09:08:37 -0600 Subject: [PATCH] Restore missing click & double click events on tab (cherry picked from commit 041cb3b390c11fbcc7ebd76c04e4e06f97823876) --- api/js/etemplate/Layout/Et2Tabs/Et2Tab.ts | 28 +++++++++++++++------- api/js/etemplate/Layout/Et2Tabs/Et2Tabs.ts | 6 ++++- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/api/js/etemplate/Layout/Et2Tabs/Et2Tab.ts b/api/js/etemplate/Layout/Et2Tabs/Et2Tab.ts index bc2d4ca158..b5adbd69d8 100644 --- a/api/js/etemplate/Layout/Et2Tabs/Et2Tab.ts +++ b/api/js/etemplate/Layout/Et2Tabs/Et2Tab.ts @@ -2,6 +2,7 @@ import {Et2Widget} from "../../Et2Widget/Et2Widget"; import {SlTab} from "@shoelace-style/shoelace"; import shoelace from "../../Styles/shoelace"; import {css} from "lit"; +import {property} from "lit/decorators/property.js"; export class Et2Tab extends Et2Widget(SlTab) { @@ -20,20 +21,31 @@ export class Et2Tab extends Et2Widget(SlTab) ]; } - static get properties() - { - return { - ...super.properties, - - hidden: {type: Boolean, reflect: true} - } - } + @property({type: Function}) + ondblclick; constructor() { super(); this.hidden = false; } + + connectedCallback() + { + super.connectedCallback(); + + if(this.ondblclick) + { + this.addEventListener("dblclick", this.ondblclick); + } + } + + disconnectedCallback() + { + super.disconnectedCallback() + + this.removeEventListener("dblclick", this.ondblclick); + } } customElements.define("et2-tab", Et2Tab); \ No newline at end of file diff --git a/api/js/etemplate/Layout/Et2Tabs/Et2Tabs.ts b/api/js/etemplate/Layout/Et2Tabs/Et2Tabs.ts index d66fa13ae0..aed38f2a9b 100644 --- a/api/js/etemplate/Layout/Et2Tabs/Et2Tabs.ts +++ b/api/js/etemplate/Layout/Et2Tabs/Et2Tabs.ts @@ -302,6 +302,8 @@ export class Et2Tabs extends Et2InputWidget(SlTabGroup) implements et2_IResizeab tabData.push({ "id": index_name, "label": this.egw().lang(et2_readAttrWithDefault(node, "label", "Tab")), + "onclick": et2_readAttrWithDefault(node, "onclick", ''), + "ondblclick": et2_readAttrWithDefault(node, "ondblclick", ''), "widget": null, "widget_options": widget_options, "contentDiv": null, @@ -377,7 +379,9 @@ export class Et2Tabs extends Et2InputWidget(SlTabGroup) implements et2_IResizeab slot: "nav", panel: tab.id, active: index == this._selectedIndex, - hidden: tab.hidden + hidden: tab.hidden, + onclick: tab.onclick, + ondblclick: tab.ondblclick }, this); // Set tab label