diff --git a/api/js/etemplate/Et2Select/SearchMixin.ts b/api/js/etemplate/Et2Select/SearchMixin.ts index ea3918b009..1bc8700e42 100644 --- a/api/js/etemplate/Et2Select/SearchMixin.ts +++ b/api/js/etemplate/Et2Select/SearchMixin.ts @@ -195,7 +195,7 @@ export const Et2WithSearchMixin = dedupeMixin( /* Hide options that do not match current search text */ - .no-match { + [searching] .no-match { display: none; } /* Different cursor for editable tags */ @@ -1043,6 +1043,8 @@ export const Et2WithSearchMixin = dedupeMixin( // Stop timeout timer clearTimeout(this._searchTimeout); + this.setAttribute("searching", ""); + // Show a spinner let spinner = document.createElement("sl-spinner"); spinner.slot = "expand-icon"; @@ -1066,6 +1068,7 @@ export const Et2WithSearchMixin = dedupeMixin( this.remoteSearch(this._searchInputNode.value, this.searchOptions) ]).then(async() => { + this.removeAttribute("searching"); // Remove spinner spinner.remove(); @@ -1102,7 +1105,7 @@ export const Et2WithSearchMixin = dedupeMixin( let target = this._optionTargetNode || this; this._keepSelectedRemote(); - + this._remote_options = []; // Not searching anymore, clear flag diff --git a/calendar/js/CalendarOwner.ts b/calendar/js/CalendarOwner.ts index 3600370a56..01abd84f41 100644 --- a/calendar/js/CalendarOwner.ts +++ b/calendar/js/CalendarOwner.ts @@ -64,9 +64,8 @@ export class CalendarOwner extends Et2StaticSelectMixin(Et2Select) return html``; } - // Tag used must match this.optionTag, but you can't use the variable directly. - // Pass option along so SearchMixin can grab it if needed const value = (option.value).replaceAll(" ", "___"); + const classes = option.class ? Object.fromEntries((option.class).split(" ").map(k => [k, true])) : {}; return html` [k, true])) + ...classes })} .option=${option} .selected=${this.getValueAsArray().some(v => v == value)} @@ -88,22 +87,6 @@ export class CalendarOwner extends Et2StaticSelectMixin(Et2Select) `; } - /** - * Customise how tags are rendered. Overridden from parent to add email to title for hover - * - * @param item - * @protected - */ - protected _createTagNode(item) - { - const tag = super._createTagNode(item); - if(item.title) - { - tag.title = item.title; - } - return tag; - } - /** * Override parent to handle our special additional data types (c#,r#,etc.) when they * are not available client side. diff --git a/calendar/templates/default/sidebox.xet b/calendar/templates/default/sidebox.xet index 77ae090e78..f7a40644ed 100644 --- a/calendar/templates/default/sidebox.xet +++ b/calendar/templates/default/sidebox.xet @@ -21,7 +21,7 @@ Egroupware - +