diff --git a/api/js/etemplate/Et2Link/Et2Link.ts b/api/js/etemplate/Et2Link/Et2Link.ts index 077e23fde9..72c34f0206 100644 --- a/api/js/etemplate/Et2Link/Et2Link.ts +++ b/api/js/etemplate/Et2Link/Et2Link.ts @@ -181,6 +181,7 @@ export class Et2Link extends ExposeMixin(Et2Widget(LitElement)) imple ._parent=${this} href="${link.href}" src=${this.egw().image("" + link.icon)} + ?disabled=${!(link.href || link.icon)} >`; } diff --git a/api/js/etemplate/Expose/ExposeMixin.ts b/api/js/etemplate/Expose/ExposeMixin.ts index 14176fa754..a18db22e60 100644 --- a/api/js/etemplate/Expose/ExposeMixin.ts +++ b/api/js/etemplate/Expose/ExposeMixin.ts @@ -507,7 +507,8 @@ export function ExposeMixin>(superclass : B) // Try for all exposable of the same type in the parent widget try { - this.getParent().getDOMNode().querySelectorAll(this.localName).forEach((exposable, index) => + const others = (this.getParent().closest("[exposable]") || this.getParent().getDOMNode()).querySelectorAll(this.localName); + others.forEach((exposable, index) => { if(exposable === this) { @@ -518,6 +519,10 @@ export function ExposeMixin>(superclass : B) mediaContent.push(...exposable.getMedia(Object.assign({}, IMAGE_DEFAULT, exposable.exposeValue))); } }); + if(!others || others.length == 0) + { + mediaContent = this.getMedia(_value); + } } catch(e) { diff --git a/api/templates/default/etemplate2.css b/api/templates/default/etemplate2.css index 9ddbbafbff..6cb05e1fbc 100644 --- a/api/templates/default/etemplate2.css +++ b/api/templates/default/etemplate2.css @@ -1283,24 +1283,28 @@ div.et2_link_entry input.ui-autocomplete-input { } ul.et2_link_string { - list-style-type: none; - display: inline; - padding: 0px; + list-style-type: none; + display: inline; + padding: 0px; } .et2_link_string li { - display: inline; + display: inline; +} + +et2-link-string et2-link::part(base) { + margin-right: -0.5ex; } .et2_link_string li:not(:last-child):after { - content: '\002C\00A0'; + content: '\002C\00A0'; } .et2_link_list { - border-collapse: collapse; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; + border-collapse: collapse; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;