From 2e833586f75e845c7c23564e2b4d2c69a834a8d6 Mon Sep 17 00:00:00 2001 From: nathan Date: Thu, 11 May 2023 14:14:47 -0600 Subject: [PATCH] Calendar: Only check group once per group --- calendar/js/app.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/calendar/js/app.ts b/calendar/js/app.ts index 2bdfc2148f..80bda93d8c 100644 --- a/calendar/js/app.ts +++ b/calendar/js/app.ts @@ -3751,6 +3751,8 @@ export class CalendarApp extends EgwApp ); } + private _group_query_cache = {}; + /** * Pre-fetch the members of any group participants * @@ -3791,14 +3793,22 @@ export class CalendarApp extends EgwApp } // Find missing groups - if(groups.length) + const cache_key = groups.join("_"); + if(groups.length && typeof this._group_query_cache[cache_key] === "undefined") { - return this.egw.request("calendar.calendar_owner_etemplate_widget.ajax_owner", [groups]).then((data) => + this._group_query_cache[cache_key] = this.egw.request("calendar.calendar_owner_etemplate_widget.ajax_owner", [groups]).then((data) => { options = options.concat(Object.values(data)); option_owner.select_options = options; + }).finally(() => + { + delete this._group_query_cache[cache_key]; }); } + if(typeof this._group_query_cache[cache_key] !== "undefined") + { + return this._group_query_cache[cache_key]; + } else { return null;