aboutsummaryrefslogtreecommitdiff
path: root/ext/bg/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bg/js')
-rw-r--r--ext/bg/js/database.js12
-rw-r--r--ext/bg/js/options-form.js7
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);