diff options
Diffstat (limited to 'ext/bg/js')
-rw-r--r-- | ext/bg/js/database.js | 12 | ||||
-rw-r--r-- | ext/bg/js/options-form.js | 7 |
2 files changed, 12 insertions, 7 deletions
diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js index f3a9732c..4c8703c3 100644 --- a/ext/bg/js/database.js +++ b/ext/bg/js/database.js @@ -133,7 +133,7 @@ class Database { const promises = []; for (const dictionary of dictionaries) { - if (this.entities.hasOwnProperty(dictionary)) { + if (this.entities[dictionary]) { promises.push(Promise.resolve(this.entities[dictionary])); } else { const entities = this.entities[dictionary] = {}; @@ -146,14 +146,14 @@ class Database { } return Promise.all(promises).then(results => { - const entries = {}; + const entities = {}; for (const result of results) { for (const name in result) { - entries[name] = result[name]; + entities[name] = result[name]; } } - return entries; + return entities; }); } @@ -243,7 +243,9 @@ class Database { return Promise.reject('database not initialized'); } + let summary = null; const indexLoaded = (title, version, entities, hasTerms, hasKanji) => { + summary = {title, hasTerms, hasKanji, version}; return this.db.dictionaries.where('title').equals(title).count().then(count => { if (count > 0) { return Promise.reject(`dictionary "${title}" is already imported`); @@ -301,6 +303,6 @@ class Database { }); }; - return importJsonDb(indexUrl, indexLoaded, termsLoaded, kanjiLoaded); + return importJsonDb(indexUrl, indexLoaded, termsLoaded, kanjiLoaded).then(() => summary); } } diff --git a/ext/bg/js/options-form.js b/ext/bg/js/options-form.js index 81b638b1..736ec023 100644 --- a/ext/bg/js/options-form.js +++ b/ext/bg/js/options-form.js @@ -127,7 +127,7 @@ function populateDictionaries(opts) { return database().getDictionaries().then(rows => { rows.forEach(row => { - const dictOpts = opts.dictionaries[row.title] || {enableTerms: true, enableKanji: false}; + const dictOpts = opts.dictionaries[row.title] || {enableTerms: false, enableKanji: false}; const html = Handlebars.templates['dictionary.html']({ title: row.title, version: row.version, @@ -198,7 +198,10 @@ function onDictionaryImport() { const dictUrl = $('#dict-url'); loadOptions().then(opts => { - database().importDictionary(dictUrl.val(), callback).then(() => { + database().importDictionary(dictUrl.val(), callback).then(summary => { + opts.dictionaries[summary.title] = {hasTerms: summary.hasTerms, hasKanji: summary.hasKanji}; + return saveOptions(opts); + }).then(() => { return populateDictionaries(opts); }).catch(error => { dictError.show().find('span').text(error); |