From 3d6ffa57e8a901bd61c2d95fbb6d1ca16d811898 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Wed, 9 Feb 2022 18:29:49 +0100 Subject: make resource dependency specifier an object --- html/install.js | 10 +++++----- html/item_preview.js | 8 ++++++-- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'html') diff --git a/html/install.js b/html/install.js index 68033bc..df63626 100644 --- a/html/install.js +++ b/html/install.js @@ -211,15 +211,15 @@ function InstallView(tab_id, on_view_show, on_view_hide) { delete response.json.api_schema_version; delete response.json.api_schema_revision; - const files = response.json.source_copyright - .concat(item_type === "resource" ? response.json.scripts : []); + const scripts = item_type === "resource" && response.json.scripts; + const files = response.json.source_copyright.concat(scripts || []); if (item_type === "mapping") { - for (const res_ref of Object.values(response.json.payloads)) + for (const res_ref of Object.values(response.json.payloads || {})) process_item(work, "resource", res_ref.identifier); } else { - for (const res_id of (response.json.dependencies || [])) - process_item(work, "resource", res_id); + for (const res_ref of (response.json.dependencies || [])) + process_item(work, "resource", res_ref.identifier); } /* diff --git a/html/item_preview.js b/html/item_preview.js index bd4fd68..1da9492 100644 --- a/html/item_preview.js +++ b/html/item_preview.js @@ -82,7 +82,10 @@ function resource_preview(resource, preview_object, link_cb=make_file_link) { preview_object.source_name.innerText = resource.source_name; [...preview_object.dependencies.childNodes].forEach(n => n.remove()); - populate_list(preview_object.dependencies, resource.dependencies); + + const deps_refs = resource.dependencies || []; + populate_list(preview_object.dependencies, + deps_refs.map(res_ref => res_ref.identifier)); const link_maker = file_ref => link_cb(preview_object, file_ref); @@ -109,7 +112,8 @@ function mapping_preview(mapping, preview_object, link_cb=make_file_link) { preview_object.source_name.innerText = mapping.source_name; [...preview_object.payloads.childNodes].forEach(n => n.remove()); - for (const [pattern, payload] of Object.entries(mapping.payloads).sort()) { + const payload_entries = Object.entries(mapping.payloads || {}).sort(); + for (const [pattern, payload] of payload_entries) { /* We use a non-breaking space because normal space would be ignored. */ const [nbsp, rarrow] = [160, 0x2192].map(n => String.fromCodePoint(n)); const texts = [`${pattern}${nbsp}`, `${rarrow} ${payload.identifier}`]; -- cgit v1.2.3