diff options
author | praschke <stel@comfy.monster> | 2023-10-22 17:23:04 +0100 |
---|---|---|
committer | praschke <stel@comfy.monster> | 2023-10-22 19:25:58 +0100 |
commit | 757707539690b6aec45e9de8cd37fdfc907d8843 (patch) | |
tree | dc91bc7516e4e9e9c4cc24cc153f52457d14e8a0 /ext/js | |
parent | f88bded2f05b440a8aa7beb980d8c5d76b150011 (diff) |
warn about custom templates in the welcome page
Diffstat (limited to 'ext/js')
-rw-r--r-- | ext/js/background/backend.js | 20 | ||||
-rw-r--r-- | ext/js/data/options-util.js | 27 | ||||
-rw-r--r-- | ext/js/pages/welcome-main.js | 7 |
3 files changed, 40 insertions, 14 deletions
diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index 565f4abf..755010a3 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -2099,20 +2099,12 @@ class Backend { } async _openWelcomeGuidePageOnce() { - if (isObject(chrome.storage) && isObject(chrome.storage.session)) { - // Chrome - chrome.storage.session.get(['openedWelcomePage']).then((result) => { - if (!result.openedWelcomePage) { - this._openWelcomeGuidePage(); - chrome.storage.session.set({'openedWelcomePage': true}); - } - }); - } else { - // Firefox (storage.session is not supported yet) - // NOTE: This means that the welcome page will repeatedly open in Firefox - // until they support storage.session. - this._openWelcomeGuidePage(); - } + chrome.storage.session.get(['openedWelcomePage']).then((result) => { + if (!result.openedWelcomePage) { + this._openWelcomeGuidePage(); + chrome.storage.session.set({'openedWelcomePage': true}); + } + }); } async _openWelcomeGuidePage() { diff --git a/ext/js/data/options-util.js b/ext/js/data/options-util.js index 7b050416..1f2ffb05 100644 --- a/ext/js/data/options-util.js +++ b/ext/js/data/options-util.js @@ -1001,6 +1001,33 @@ class OptionsUtil { async _updateVersion21(options) { await this._applyAnkiFieldTemplatesPatch(options, '/data/templates/anki-field-templates-upgrade-v21.handlebars'); + + let customTemplates = false; + for (const {options: profileOptions} of options.profiles) { + if (profileOptions.anki.fieldTemplates !== null) { + customTemplates = true; + } + } + + if (customTemplates && isObject(chrome.storage)) { + chrome.storage.session.set({'needsCustomTemplatesWarning': true}); + await this._createTab(chrome.runtime.getURL('/welcome.html')); + chrome.storage.session.set({'openedWelcomePage': true}); + } + return options; } + + _createTab(url) { + return new Promise((resolve, reject) => { + chrome.tabs.create({url}, (tab) => { + const e = chrome.runtime.lastError; + if (e) { + reject(new Error(e.message)); + } else { + resolve(tab); + } + }); + }); + } } diff --git a/ext/js/pages/welcome-main.js b/ext/js/pages/welcome-main.js index 521ce2c2..8039dae5 100644 --- a/ext/js/pages/welcome-main.js +++ b/ext/js/pages/welcome-main.js @@ -58,6 +58,13 @@ async function setupGenericSettingsController(genericSettingController) { setupEnvironmentInfo(); + chrome.storage.session.get({'needsCustomTemplatesWarning': false}).then((result) => { + if (result.needsCustomTemplatesWarning) { + document.documentElement.dataset.warnCustomTemplates = 'true'; + chrome.storage.session.remove(['needsCustomTemplatesWarning']); + } + }); + const preparePromises = []; const modalController = new ModalController(); |