diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-10-27 21:20:26 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-27 21:20:26 -0400 |
commit | ba59327354c5e3465f633839a052b7514c216fd1 (patch) | |
tree | 85eba4c94323b54d99239c1b2f008501afd40b49 | |
parent | 9e57509e25a7d750e7113b1d41f1d3af732ff934 (diff) |
Dictionary controllers update (#965)
* Make purge notification optional
* Support multiple warning nodes
* Add support for optional count info
-rw-r--r-- | ext/bg/js/settings/dictionary-controller.js | 15 | ||||
-rw-r--r-- | ext/bg/js/settings/dictionary-import-controller.js | 4 | ||||
-rw-r--r-- | ext/bg/settings.html | 2 |
3 files changed, 15 insertions, 6 deletions
diff --git a/ext/bg/js/settings/dictionary-controller.js b/ext/bg/js/settings/dictionary-controller.js index f6c9e9f6..49102c5c 100644 --- a/ext/bg/js/settings/dictionary-controller.js +++ b/ext/bg/js/settings/dictionary-controller.js @@ -192,20 +192,21 @@ class DictionaryController { this._dictionaryEntries = []; this._databaseStateToken = null; this._checkingIntegrity = false; - this._warningNode = null; this._checkIntegrityButton = null; this._dictionaryEntryContainer = null; this._integrityExtraInfoContainer = null; + this._dictionaryInstallCountNode = null; this._deleteDictionaryModal = null; this._integrityExtraInfoNode = null; this._isDeleting = false; } async prepare() { - this._warningNode = document.querySelector('#dictionary-warning'); this._checkIntegrityButton = document.querySelector('#dictionary-check-integrity'); this._dictionaryEntryContainer = document.querySelector('#dictionary-list'); this._integrityExtraInfoContainer = document.querySelector('#dictionary-list-extra'); + this._dictionaryInstallCountNode = document.querySelector('#dictionary-install-count'); + this._noDictionariesInstalledWarnings = document.querySelectorAll('.no-dictionaries-installed-warning'); this._deleteDictionaryModal = this._modalController.getModal('dictionary-confirm-delete'); yomichan.on('databaseUpdated', this._onDatabaseUpdated.bind(this)); @@ -238,7 +239,6 @@ class DictionaryController { if (this._databaseStateToken !== token) { return; } this._dictionaries = dictionaries; - this._warningNode.hidden = (dictionaries.length > 0); this._updateMainDictionarySelectOptions(dictionaries); for (const entry of this._dictionaryEntries) { @@ -246,6 +246,15 @@ class DictionaryController { } this._dictionaryEntries = []; + if (this._dictionaryInstallCountNode !== null) { + this._dictionaryInstallCountNode.textContent = `${dictionaries.length}`; + } + + const hasDictionary = (dictionaries.length > 0); + for (const node of this._noDictionariesInstalledWarnings) { + node.hidden = hasDictionary; + } + await this._ensureDictionarySettings(dictionaries); for (const dictionary of dictionaries) { this._createDictionaryEntry(dictionary); diff --git a/ext/bg/js/settings/dictionary-import-controller.js b/ext/bg/js/settings/dictionary-import-controller.js index a603fb82..22146ec1 100644 --- a/ext/bg/js/settings/dictionary-import-controller.js +++ b/ext/bg/js/settings/dictionary-import-controller.js @@ -101,7 +101,7 @@ class DictionaryImportController { this._setModifying(true); this._hideErrors(); this._setSpinnerVisible(true); - purgeNotification.hidden = false; + if (purgeNotification !== null) { purgeNotification.hidden = false; } await api.purgeDatabase(); const errors = await this._clearDictionarySettings(); @@ -113,7 +113,7 @@ class DictionaryImportController { this._showErrors([error]); } finally { prevention.end(); - purgeNotification.hidden = true; + if (purgeNotification !== null) { purgeNotification.hidden = true; } this._setSpinnerVisible(false); this._storageController.updateStats(); this._setModifying(false); diff --git a/ext/bg/settings.html b/ext/bg/settings.html index a412c271..066662e5 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -679,7 +679,7 @@ </div> <div class="text-danger" id="dictionary-delete-all-status" hidden>Dictionary data is being purged, please be patient...</div> - <div class="alert alert-warning" id="dictionary-warning" hidden>No dictionaries have been installed</div> + <div class="alert alert-warning no-dictionaries-installed-warning" hidden>No dictionaries have been installed</div> <div class="alert alert-danger" id="dictionary-error" hidden></div> <div id="dictionary-list"></div> |