diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-12-06 21:17:05 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-06 21:17:05 -0500 |
commit | 35fbc76df441756e5044bcc9784ab3219a8d6701 (patch) | |
tree | a9f102238ae21836c89ca41e5f93a87a34797e1a /ext/bg/js | |
parent | 88b8191ac2946c02ef8f9a73cd2c4050b1f02f61 (diff) |
Settings v2 testing setup (#1084)
* Add option for using settings v2
* Add options/info about settings v2
* Use settings v2 URL when applicable
* Update tests
Diffstat (limited to 'ext/bg/js')
-rw-r--r-- | ext/bg/js/backend.js | 15 | ||||
-rw-r--r-- | ext/bg/js/context-main.js | 4 | ||||
-rw-r--r-- | ext/bg/js/options.js | 2 |
3 files changed, 19 insertions, 2 deletions
diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index f9c308e5..012036dc 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -790,12 +790,25 @@ class Backend { } _onCommandOptions(params) { + const {useSettingsV2} = this._options.global; const {mode='existingOrNewTab'} = params || {}; if (mode === 'existingOrNewTab') { + if (useSettingsV2) { + (async () => { + const url = chrome.runtime.getURL('/bg/settings2.html'); + const tab = await this._findTab(1000, (url2) => url2.startsWith(url)); + if (tab !== null) { + await this._focusTab(tab); + } else { + chrome.tabs.create({url}); + } + })(); + return; + } chrome.runtime.openOptionsPage(); } else if (mode === 'newTab') { const manifest = chrome.runtime.getManifest(); - const url = chrome.runtime.getURL(manifest.options_ui.page); + const url = chrome.runtime.getURL(useSettingsV2 ? '/bg/settings2.html' : manifest.options_ui.page); chrome.tabs.create({url}); } } diff --git a/ext/bg/js/context-main.js b/ext/bg/js/context-main.js index 93eebe72..b6736fd8 100644 --- a/ext/bg/js/context-main.js +++ b/ext/bg/js/context-main.js @@ -30,12 +30,14 @@ class DisplayController { this._showExtensionInfo(manifest); this._setupEnvironment(); this._setupButtonEvents('.action-open-search', 'search', chrome.runtime.getURL('/bg/search.html')); - this._setupButtonEvents('.action-open-options', 'options', chrome.runtime.getURL(manifest.options_ui.page)); this._setupButtonEvents('.action-open-help', 'help', 'https://foosoft.net/projects/yomichan/'); const optionsFull = await api.optionsGetFull(); this._optionsFull = optionsFull; + const optionsPageUrl = optionsFull.global.useSettingsV2 ? '/bg/settings2.html' : manifest.options_ui.page; + this._setupButtonEvents('.action-open-options', 'options', chrome.runtime.getURL(optionsPageUrl)); + const {profiles, profileCurrent} = optionsFull; const primaryProfile = (profileCurrent >= 0 && profileCurrent < profiles.length) ? profiles[profileCurrent] : null; if (primaryProfile !== null) { diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index dcc8471a..5fb10516 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -613,10 +613,12 @@ class OptionsUtil { // Version 6 changes: // Updated handlebars templates to include "conjugation" definition. // Added global option showPopupPreview. + // Added global option useSettingsV2. // Added anki.checkForDuplicates. // Added general.glossaryLayoutMode; removed general.compactGlossaries. await this._addFieldTemplatesToOptions(options, '/bg/data/anki-field-templates-upgrade-v6.handlebars'); options.global.showPopupPreview = false; + options.global.useSettingsV2 = false; for (const profile of options.profiles) { profile.options.anki.checkForDuplicates = true; profile.options.general.glossaryLayoutMode = (profile.options.general.compactGlossaries ? 'compact' : 'default'); |