diff options
Diffstat (limited to 'ext/bg/js/options.js')
-rw-r--r-- | ext/bg/js/options.js | 43 |
1 files changed, 11 insertions, 32 deletions
diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index c3321012..5aa18366 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -140,9 +140,7 @@ $(document).ready(() => { $('#scan-modifier-key').val(options.scanning.modifier); $('#dict-purge').click(onDictionaryPurge); - $('#dict-importer a').click(onDictionarySetUrl); - $('#dict-import').click(onDictionaryImport); - $('#dict-url').on('input', onDictionaryUpdateUrl); + $('#dict-file').change(onDictionaryImport); $('#anki-enable').prop('checked', options.anki.enable); $('#card-tags').val(options.anki.tags.join(' ')); @@ -252,50 +250,31 @@ function onDictionaryPurge(e) { }); } -function onDictionaryImport() { +function onDictionaryImport(e) { dictionaryErrorShow(null); dictionarySpinnerShow(true); - const dictUrl = $('#dict-url'); + const dictFile = $('#dict-file'); const dictImporter = $('#dict-importer').hide(); const dictProgress = $('#dict-import-progress').show(); const setProgress = percent => dictProgress.find('.progress-bar').css('width', `${percent}%`); + const updateProgress = (total, current) => setProgress(current / total * 100.0); setProgress(0.0); optionsLoad().then(options => { - instDb().importDictionary(dictUrl.val(), (total, current) => setProgress(current / total * 100.0)).then(summary => { + return instDb().importDictionary(e.target.files[0], updateProgress).then(summary => { options.dictionaries[summary.title] = {enabled: true, priority: 0}; return optionsSave(options); - }).then(() => dictionaryGroupsPopulate(options)).catch(dictionaryErrorShow).then(() => { - dictionarySpinnerShow(false); - dictProgress.hide(); - dictImporter.show(); - dictUrl.val(''); - dictUrl.trigger('input'); - }); + }).then(() => dictionaryGroupsPopulate(options)); + }).catch(dictionaryErrorShow).then(() => { + dictFile.val(''); + dictionarySpinnerShow(false); + dictProgress.hide(); + dictImporter.show(); }); } -function onDictionarySetUrl(e) { - e.preventDefault(); - - const dictUrl = $('#dict-url'); - const url = $(this).data('url'); - if (url.includes('/')) { - dictUrl.val(url); - } else { - dictUrl.val(chrome.extension.getURL(`bg/lang/dict/${url}/index.json`)); - } - - dictUrl.trigger('input'); -} - -function onDictionaryUpdateUrl() { - $('#dict-import').prop('disabled', $(this).val().length === 0); -} - - /* * Anki */ |