diff options
Diffstat (limited to 'html/settings.js')
-rw-r--r-- | html/settings.js | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/html/settings.js b/html/settings.js index 36eeb47..686cc11 100644 --- a/html/settings.js +++ b/html/settings.js @@ -41,8 +41,13 @@ * proprietary program, I am not going to enforce this in court. */ +#IMPORT common/indexeddb.js AS haketilodb #IMPORT html/dialog.js +#IF MOZILLA +#FROM common/browser.js IMPORT browser +#ENDIF + #FROM html/DOM_helpers.js IMPORT by_id #FROM html/text_entry_list.js IMPORT blocking_allowing_lists, repo_list #FROM html/item_list.js IMPORT mapping_list, resource_list @@ -118,8 +123,43 @@ async function set_up_repos_tab() { containers[0].append((await repo_list(dialog_ctx)).main_div); } -set_up_blocking_tab(); -set_up_mappings_tab(); -set_up_resources_tab(); -set_up_new_payload_tab(); -set_up_repos_tab(); +function set_up_settings_view() { + by_id("loader").remove(); + by_id("main_view").classList.remove("hide"); + + set_up_blocking_tab(); + set_up_mappings_tab(); + set_up_resources_tab(); + set_up_new_payload_tab(); + set_up_repos_tab(); +} + +#IF MOZILLA +async function show_indexeddb_error() { + const this_tab = await browser.tabs.getCurrent(); + if (this_tab.incognito) + by_id("indexeddb_private_mode_explanation").classList.remove("hide"); +#ELSE +function show_indexeddb_error() { +#ENDIF + by_id("loader").remove(); + by_id("indexeddb_error").classList.remove("hide"); +} + +async function init_settings_page() { + try { + await haketilodb.get(); + } catch(e) { + console.error(e); + show_indexeddb_error(); + return; + } + + set_up_settings_view(); +} + +#IF UNIT_TEST +window.init_settings_page = init_settings_page; +#ELSE +init_settings_page(); +#ENDIF |