diff --git a/javascript/clusterize.js b/javascript/clusterize.js index 5f85b9da0..c5fc92263 100644 --- a/javascript/clusterize.js +++ b/javascript/clusterize.js @@ -409,13 +409,17 @@ class Clusterize { async #insertToDOM() { if (!this.options.cluster_height || !this.options.cluster_width) { + // We need to fetch a single item so that we can calculate the dimensions + // for our list. const rows = await this.fetchData(0, 1); if (!Array.isArray(rows) || !rows.length) { - console.error(`Failed to fetch data for idx range (0, 1)`); + // This implies there is no data for this list. Not an error. + // Errors should be handled in the fetchData callback, not here. this.#html(this.#generateEmptyRow().join("")); return; } else { this.#exploreEnvironment(rows, this.#cache); + // Remove the temporary item from the data since we calculated its size. this.#html(this.#generateEmptyRow("Loading...").join("")); } } diff --git a/javascript/extraNetworks.js b/javascript/extraNetworks.js index 684a71889..1a3e1fc1b 100644 --- a/javascript/extraNetworks.js +++ b/javascript/extraNetworks.js @@ -427,7 +427,10 @@ class ExtraNetworksTab { const timeout = EXTRA_NETWORKS_REQUEST_GET_TIMEOUT_MS; try { const response = await requestGetPromise(url, payload, timeout); - return response.response; + if (response.response.missing_div_ids.length) { + console.warn(`Failed to fetch multiple div_ids: ${response.response.missing_div_ids}`); + } + return response.response.data; } catch (error) { console.error(JSON.stringify(error)); return {}; @@ -447,7 +450,10 @@ class ExtraNetworksTab { const timeout = EXTRA_NETWORKS_REQUEST_GET_TIMEOUT_MS; try { const response = await requestGetPromise(url, payload, timeout); - return response.response; + if (response.response.missing_div_ids.length) { + console.warn(`Failed to fetch multiple div_ids: ${response.response.missing_div_ids}`); + } + return response.response.data; } catch (error) { console.error(JSON.stringify(error)); return {}; diff --git a/modules/ui_extra_networks.py b/modules/ui_extra_networks.py index 194ad4735..31278f8e7 100644 --- a/modules/ui_extra_networks.py +++ b/modules/ui_extra_networks.py @@ -901,11 +901,14 @@ def fetch_tree_data( page = get_page_by_name(extra_networks_tabname) res = {} + missed = [] for div_id in div_ids.split(","): if div_id in page.tree: res[div_id] = page.tree[div_id].html + else: + missed.append(div_id) - return JSONResponse(res) + return JSONResponse({"data": res, "missing_div_ids": missed}) def fetch_cards_data( @@ -924,11 +927,14 @@ def fetch_cards_data( page = get_page_by_name(extra_networks_tabname) res = {} + missed = [] for div_id in div_ids.split(","): if div_id in page.cards: res[div_id] = page.cards[div_id].html + else: + missed.append(div_id) - return JSONResponse(res) + return JSONResponse({"data": res, "missing_div_ids": missed}) def init_cards_data(tabname: str = "", extra_networks_tabname: str = "") -> JSONResponse: