diff options
Diffstat (limited to 'html/options_main.js')
-rw-r--r-- | html/options_main.js | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/html/options_main.js b/html/options_main.js index e1e6cbe..026b9ba 100644 --- a/html/options_main.js +++ b/html/options_main.js @@ -38,7 +38,7 @@ function item_li_id(prefix, item) return `li_${prefix}_${item}`; } -/* Insert into list of bags/pages/scripts */ +/* Insert into list of bags/pages/scripts/repos */ function add_li(prefix, item, at_the_end=false) { let ul = ul_by_prefix[prefix]; @@ -58,6 +58,8 @@ function add_li(prefix, item, at_the_end=false) let export_button = remove_button.nextElementSibling; export_button.addEventListener("click", () => export_item(prefix, item)); + if (prefix === TYPE_PREFIX.REPO) + export_button.remove(); if (!at_the_end) { for (let element of ul.ul.children) { @@ -89,7 +91,7 @@ function radio_li_id(prefix, item) function add_chbx_li(prefix, name) { - if (prefix === TYPE_PREFIX.PAGE) + if (![TYPE_PREFIX.BAG, TYPE_PREFIX.SCRIPT].includes(prefix)) return; let li = chbx_component_li_template.cloneNode(true); @@ -109,7 +111,7 @@ var radio_component_none_li = by_id("radio_component_none_li"); function add_radio_li(prefix, name) { - if (prefix === TYPE_PREFIX.PAGE) + if (![TYPE_PREFIX.BAG, TYPE_PREFIX.SCRIPT].includes(prefix)) return; let li = radio_component_li_template.cloneNode(true); @@ -125,6 +127,18 @@ function add_radio_li(prefix, name) radio_components_ul.insertBefore(li, radio_component_none_li); } +/* Used to reset edited repo. */ +function reset_work_repo_li(ul, item, _) +{ + ul.work_name_input.value = maybe_string(item); +} + +/* Used to get repo data for saving */ +function work_repo_li_data(ul) +{ + return [ul.work_name_input.value, {}]; +} + const page_payload_span = by_id("page_payload"); function set_page_components(components) @@ -461,6 +475,15 @@ const UL_STATE = { }; const ul_by_prefix = { + [TYPE_PREFIX.REPO] : { + ul : by_id("repos_ul"), + work_li : by_id("work_repo_li"), + work_name_input : by_id("repo_url_field"), + reset_work_li : reset_work_repo_li, + get_work_li_data : work_repo_li_data, + state : UL_STATE.IDLE, + edited_item : undefined, + }, [TYPE_PREFIX.PAGE] : { ul : by_id("pages_ul"), work_li : by_id("work_page_li"), @@ -727,7 +750,7 @@ async function main() discard_but.addEventListener("click", () => cancel_work(prefix)); save_but.addEventListener("click", () => save_work(prefix)); - if (prefix === TYPE_PREFIX.SCRIPT) + if ([TYPE_PREFIX.REPO, TYPE_PREFIX.SCRIPT].includes(prefix)) continue; let ul = ul_by_prefix[prefix]; @@ -772,7 +795,7 @@ function handle_change(change) let uls_creators = [[ul.ul, item_li_id]]; - if (change.prefix !== TYPE_PREFIX.PAGE) { + if ([TYPE_PREFIX.BAG, TYPE_PREFIX.SCRIPT].includes(change.prefix)) { uls_creators.push([chbx_components_ul, chbx_li_id]); uls_creators.push([radio_components_ul, radio_li_id]); } |