aboutsummaryrefslogtreecommitdiff
path: root/html/options_main.js
diff options
context:
space:
mode:
Diffstat (limited to 'html/options_main.js')
-rw-r--r--html/options_main.js33
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]);
}