From 7218849ae2f43aee6b3462a30e07caf5bac3d22b Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Sat, 22 Jan 2022 13:49:40 +0100 Subject: add a mapping/resources installation dialog --- html/item_preview.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'html/item_preview.js') diff --git a/html/item_preview.js b/html/item_preview.js index 474766c..dccf2d4 100644 --- a/html/item_preview.js +++ b/html/item_preview.js @@ -55,6 +55,7 @@ function populate_list(ul, items) } } +/* Link click handler used in make_file_link(). */ async function file_link_clicked(preview_object, file_ref, event) { event.preventDefault(); @@ -71,6 +72,10 @@ async function file_link_clicked(preview_object, file_ref, event) } } +/* + * The default function to use to create file preview link. Links it creates can + * be used to view files from IndexedDB. + */ function make_file_link(preview_object, file_ref) { const a = document.createElement("a"); @@ -82,7 +87,8 @@ function make_file_link(preview_object, file_ref) return a; } -function resource_preview(resource, preview_object, dialog_context) +function resource_preview(resource, preview_object, dialog_context, + make_link_cb=make_file_link) { if (preview_object === undefined) preview_object = clone_template("resource_preview"); @@ -98,7 +104,7 @@ function resource_preview(resource, preview_object, dialog_context) [...preview_object.dependencies.childNodes].forEach(n => n.remove()); populate_list(preview_object.dependencies, resource.dependencies); - const link_maker = file_ref => make_file_link(preview_object, file_ref); + const link_maker = file_ref => make_link_cb(preview_object, file_ref); [...preview_object.scripts.childNodes].forEach(n => n.remove()); populate_list(preview_object.scripts, resource.scripts.map(link_maker)); @@ -113,7 +119,8 @@ function resource_preview(resource, preview_object, dialog_context) } #EXPORT resource_preview -function mapping_preview(mapping, preview_object, dialog_context) +function mapping_preview(mapping, preview_object, dialog_context, + make_link_cb=make_file_link) { if (preview_object === undefined) preview_object = clone_template("mapping_preview"); @@ -138,7 +145,7 @@ function mapping_preview(mapping, preview_object, dialog_context) } } - const link_maker = file_ref => make_file_link(preview_object, file_ref); + const link_maker = file_ref => make_link_cb(preview_object, file_ref); [...preview_object.copyright.childNodes].forEach(n => n.remove()); populate_list(preview_object.copyright, -- cgit v1.2.3