WIP
This commit is contained in:
parent
2587b9ae6b
commit
a9eea9f634
@ -159,7 +159,7 @@ class Database {
|
|||||||
let termDeleter = Promise.resolve();
|
let termDeleter = Promise.resolve();
|
||||||
if (info.hasTerms) {
|
if (info.hasTerms) {
|
||||||
const termDeleterFunc = () => {
|
const termDeleterFunc = () => {
|
||||||
return this.db.terms.where('dictionary').equals(title).limit(1000).delete().then(count => {
|
return this.db.terms.where('dictionary').equals(title).limit(500).delete().then(count => {
|
||||||
if (count === 0) {
|
if (count === 0) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
@ -179,7 +179,7 @@ class Database {
|
|||||||
let kanjiDeleter = Promise.resolve();
|
let kanjiDeleter = Promise.resolve();
|
||||||
if (info.hasKanji) {
|
if (info.hasKanji) {
|
||||||
const kanjiDeleterFunc = () => {
|
const kanjiDeleterFunc = () => {
|
||||||
return this.db.kanji.where('dictionary').equals(title).limit(1000).delete().then(count => {
|
return this.db.kanji.where('dictionary').equals(title).limit(500).delete().then(count => {
|
||||||
if (count === 0) {
|
if (count === 0) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
@ -115,40 +115,6 @@ function updateVisibility(opts) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function populateDictionaries(opts) {
|
|
||||||
const dictGroups = $('#dict-groups');
|
|
||||||
dictGroups.empty();
|
|
||||||
|
|
||||||
const dictError = $('#dict-error');
|
|
||||||
dictError.hide();
|
|
||||||
|
|
||||||
const dictSpinner = $('#dict-spinner');
|
|
||||||
dictSpinner.show();
|
|
||||||
|
|
||||||
return database().getDictionaries().then(rows => {
|
|
||||||
rows.forEach(row => {
|
|
||||||
const dictOpts = opts.dictionaries[row.title] || {enableTerms: false, enableKanji: false};
|
|
||||||
const html = Handlebars.templates['dictionary.html']({
|
|
||||||
title: row.title,
|
|
||||||
version: row.version,
|
|
||||||
hasTerms: row.hasTerms,
|
|
||||||
hasKanji: row.hasKanji,
|
|
||||||
enableTerms: dictOpts.enableTerms,
|
|
||||||
enableKanji: dictOpts.enableKanji
|
|
||||||
});
|
|
||||||
|
|
||||||
dictGroups.append($(html));
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.dict-enable-terms, .dict-enable-kanji').change(onOptionsChanged);
|
|
||||||
$('.dict-delete').click(onDictionaryDelete);
|
|
||||||
}).catch(error => {
|
|
||||||
dictError.show().find('span').text(error);
|
|
||||||
}).then(() => {
|
|
||||||
dictSpinner.hide();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function onDictionaryDelete() {
|
function onDictionaryDelete() {
|
||||||
const dictGroup = $(this).closest('.dict-group');
|
const dictGroup = $(this).closest('.dict-group');
|
||||||
|
|
||||||
@ -199,7 +165,7 @@ function onDictionaryImport() {
|
|||||||
const dictUrl = $('#dict-url');
|
const dictUrl = $('#dict-url');
|
||||||
loadOptions().then(opts => {
|
loadOptions().then(opts => {
|
||||||
database().importDictionary(dictUrl.val(), callback).then(summary => {
|
database().importDictionary(dictUrl.val(), callback).then(summary => {
|
||||||
opts.dictionaries[summary.title] = {hasTerms: summary.hasTerms, hasKanji: summary.hasKanji};
|
opts.dictionaries[summary.title] = {enableTerms: summary.hasTerms, enableKanji: summary.hasKanji};
|
||||||
return saveOptions(opts);
|
return saveOptions(opts);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
return populateDictionaries(opts);
|
return populateDictionaries(opts);
|
||||||
@ -302,6 +268,49 @@ function populateAnkiFields(element, opts) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function populateDictionaries(opts) {
|
||||||
|
const dictGroups = $('#dict-groups');
|
||||||
|
dictGroups.empty();
|
||||||
|
|
||||||
|
const dictError = $('#dict-error');
|
||||||
|
dictError.hide();
|
||||||
|
|
||||||
|
const dictWarning = $('#dict-warning');
|
||||||
|
dictWarning.hide();
|
||||||
|
|
||||||
|
const dictSpinner = $('#dict-spinner');
|
||||||
|
dictSpinner.show();
|
||||||
|
|
||||||
|
let dictCount = 0;
|
||||||
|
return database().getDictionaries().then(rows => {
|
||||||
|
rows.forEach(row => {
|
||||||
|
const dictOpts = opts.dictionaries[row.title] || {enableTerms: false, enableKanji: false};
|
||||||
|
const html = Handlebars.templates['dictionary.html']({
|
||||||
|
title: row.title,
|
||||||
|
version: row.version,
|
||||||
|
hasTerms: row.hasTerms,
|
||||||
|
hasKanji: row.hasKanji,
|
||||||
|
enableTerms: dictOpts.enableTerms,
|
||||||
|
enableKanji: dictOpts.enableKanji
|
||||||
|
});
|
||||||
|
|
||||||
|
dictGroups.append($(html));
|
||||||
|
++dictCount;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.dict-enable-terms, .dict-enable-kanji').change(onOptionsChanged);
|
||||||
|
$('.dict-delete').click(onDictionaryDelete);
|
||||||
|
}).catch(error => {
|
||||||
|
dictError.show().find('span').text(error);
|
||||||
|
}).then(() => {
|
||||||
|
if (dictCount === 0) {
|
||||||
|
dictWarning.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
dictSpinner.hide();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function onOptionsChanged(e) {
|
function onOptionsChanged(e) {
|
||||||
if (!e.originalEvent && !e.isTrigger) {
|
if (!e.originalEvent && !e.isTrigger) {
|
||||||
return;
|
return;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="../lib/bootstrap-3.3.6-dist/css/bootstrap-theme.min.css">
|
<link rel="stylesheet" type="text/css" href="../lib/bootstrap-3.3.6-dist/css/bootstrap-theme.min.css">
|
||||||
<style>
|
<style>
|
||||||
#anki-spinner, #anki-general, #anki-error,
|
#anki-spinner, #anki-general, #anki-error,
|
||||||
#dict-spinner, .dict-import-progress, .dict-delete-progress,
|
#dict-spinner, #dict-error, #dict-warning, .dict-import-progress, .dict-delete-progress,
|
||||||
#options-advanced {
|
#options-advanced {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@ -70,6 +70,11 @@
|
|||||||
|
|
||||||
<div id="dict-groups"></div>
|
<div id="dict-groups"></div>
|
||||||
|
|
||||||
|
<div class="alert alert-warning" id="dict-warning">
|
||||||
|
<strong>No dictionaries found:</strong>
|
||||||
|
please use the dropdown below to install packaged and external dictionaries
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="alert alert-danger" id="dict-error">
|
<div class="alert alert-danger" id="dict-error">
|
||||||
<strong>Error:</strong>
|
<strong>Error:</strong>
|
||||||
<span></span>
|
<span></span>
|
||||||
|
Loading…
Reference in New Issue
Block a user