diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js index 6999cae3..bde174c8 100644 --- a/ext/bg/js/util.js +++ b/ext/bg/js/util.js @@ -256,7 +256,7 @@ function optionsSave(options) { * Dictionary */ -function dictEnabled(options) { +function dictEnabledSet(options) { const dictionaries = {}; for (const title in options.dictionaries) { const dictionary = options.dictionaries[title]; @@ -268,6 +268,16 @@ function dictEnabled(options) { return dictionaries; } +function dictConfigured(options) { + for (const title in options.dictionaries) { + if (options.dictionaries[title].enabled) { + return true; + } + } + + return false; +} + function dictRowsSort(rows, options) { return rows.sort((ra, rb) => { const pa = (options.dictionaries[ra.title] || {}).priority || 0; diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index 39105c54..cbbcae63 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -37,17 +37,16 @@ window.yomichan = new class { optionsSet(options) { this.options = options; - let configured = false; - for (const title in options.dictionaries) { - if (options.dictionaries[title].enabled) { - configured = true; - break; - } + if (!options.general.enable) { + chrome.browserAction.setBadgeBackgroundColor({color: '#d9534f'}); + chrome.browserAction.setBadgeText({text: 'off'}); + } else if (!dictConfigured(options)) { + chrome.browserAction.setBadgeBackgroundColor({color: '#f0ad4e'}); + chrome.browserAction.setBadgeText({text: '!'}); + } else { + chrome.browserAction.setBadgeText({text: ''}); } - chrome.browserAction.setBadgeBackgroundColor({color: '#f0ad4e'}); - chrome.browserAction.setBadgeText({text: configured ? '' : '!'}); - if (options.anki.enable) { this.anki = new AnkiConnect(this.options.anki.server); } else { @@ -108,13 +107,13 @@ window.yomichan = new class { this.translator.findTermsGrouped.bind(this.translator) : this.translator.findTerms.bind(this.translator); - return searcher(text, dictEnabled(this.options), this.options.general.softKatakana).then(({definitions, length}) => { + return searcher(text, dictEnabledSet(this.options), this.options.general.softKatakana).then(({definitions, length}) => { return {length, definitions: definitions.slice(0, this.options.general.maxResults)}; }); } kanjiFind(text) { - return this.translator.findKanji(text, dictEnabled(this.options)).then(definitions => { + return this.translator.findKanji(text, dictEnabledSet(this.options)).then(definitions => { return definitions.slice(0, this.options.general.maxResults); }); }