This commit is contained in:
Alex Yatskov 2016-11-06 22:19:48 -08:00
parent 6eab90b89c
commit ed2091ae1b
2 changed files with 28 additions and 4 deletions

View File

@ -131,7 +131,7 @@ class Dictionary {
}); });
} }
getInfo() { getDictionaries() {
if (this.db === null) { if (this.db === null) {
return Promise.reject('database not initialized'); return Promise.reject('database not initialized');
} }
@ -139,6 +139,22 @@ class Dictionary {
return this.db.dictionaries.toArray(); return this.db.dictionaries.toArray();
} }
deleteDictionary(title) {
if (this.db === null) {
return Promise.reject('database not initialized');
}
const tasks = [
this.db.terms.where('dictionary').equals(title).delete(),
this.db.kanji.where('dictionary').equals(title).delete(),
this.db.entities.where('dictionary').equals(title).delete()
];
return Promise.all(tasks).then(() => {
return this.db.dictionaries.where('title').equals(title).delete();
});
}
importDb(indexUrl, callback) { importDb(indexUrl, callback) {
if (this.db === null) { if (this.db === null) {
return Promise.reject('database not initialized'); return Promise.reject('database not initialized');

View File

@ -166,7 +166,7 @@ function populateDictionaries(opts) {
const container = $('.dicts'); const container = $('.dicts');
container.empty(); container.empty();
yomichan().translator.dictionary.getInfo().then(rows => { yomichan().translator.dictionary.getDictionaries().then(rows => {
rows.forEach(row => { rows.forEach(row => {
const dictOpts = opts.dictionaries[row.title] || {enableTerms: true, enableKanji: false}; const dictOpts = opts.dictionaries[row.title] || {enableTerms: true, enableKanji: false};
const html = Handlebars.templates['dictionary.html']({ const html = Handlebars.templates['dictionary.html']({
@ -181,6 +181,13 @@ function populateDictionaries(opts) {
container.append($(html)); container.append($(html));
}); });
const dictDelete = $('.dict-delete');
dictDelete.click(() => {
const dict = dictDelete.closest('.dict');
const title = dict.data('title');
yomichan().translator.dictionary.deleteDictionary(title).then(() => dict.slideUp());
});
container.find('.dict input').change(onOptionsChanged); container.find('.dict input').change(onOptionsChanged);
}); });
} }
@ -301,8 +308,9 @@ $(document).ready(() => {
control.trigger('input'); control.trigger('input');
}); });
$('#dict-import-url').on('input', () => { const dictImportUrl = $('#dict-import-url');
const disable = $('#dict-import-url').val().trim().length === 0; dictImportUrl.on('input', () => {
const disable = dictImportUrl.val().trim().length === 0;
$('#dict-import-start').prop('disabled', disable); $('#dict-import-start').prop('disabled', disable);
}); });