summaryrefslogtreecommitdiff
path: root/ext/bg/js
diff options
context:
space:
mode:
authorAlex Yatskov <alex@foosoft.net>2016-11-10 19:36:45 -0800
committerAlex Yatskov <alex@foosoft.net>2016-11-10 19:36:45 -0800
commit0ff41d5843b3bf39994ae32e4ab623bfe0e4e3ca (patch)
treeb1eb44335b0004c9e5243db8db5ed90b4a52a942 /ext/bg/js
parent8b5ee629311065bc53537d5684931dbf775c4e3e (diff)
Delete dictionary deletion
Diffstat (limited to 'ext/bg/js')
-rw-r--r--ext/bg/js/database.js73
-rw-r--r--ext/bg/js/options-form.js33
-rw-r--r--ext/bg/js/templates.js6
3 files changed, 4 insertions, 108 deletions
diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js
index e3a62886..24ee7c03 100644
--- a/ext/bg/js/database.js
+++ b/ext/bg/js/database.js
@@ -141,79 +141,6 @@ class Database {
return this.db.dictionaries.toArray();
}
- deleteDictionary(title, callback) {
- if (this.db === null) {
- return Promise.reject('database not initialized');
- }
-
- return this.db.dictionaries.where('title').equals(title).first(info => {
- if (!info) {
- return;
- }
-
- let termCounter = Promise.resolve(0);
- if (info.hasTerms) {
- termCounter = this.db.terms.where('dictionary').equals(title).count();
- }
-
- let kanjiCounter = Promise.resolve(0);
- if (info.hasKanji) {
- kanjiCounter = this.db.kanji.where('dictionary').equals(title).count();
- }
-
- return Promise.all([termCounter, kanjiCounter]).then(([termCount, kanjiCount]) => {
- const totalCount = termCount + kanjiCount;
- let deletedCount = 0;
-
- let termDeleter = Promise.resolve();
- if (info.hasTerms) {
- const termDeleterFunc = () => {
- return this.db.terms.where('dictionary').equals(title).limit(1000).delete().then(count => {
- if (count === 0) {
- return Promise.resolve();
- }
-
- deletedCount += count;
- if (callback) {
- callback(totalCount, deletedCount);
- }
-
- return termDeleterFunc();
- });
- };
-
- termDeleter = termDeleterFunc();
- }
-
- let kanjiDeleter = Promise.resolve();
- if (info.hasKanji) {
- const kanjiDeleterFunc = () => {
- return this.db.kanji.where('dictionary').equals(title).limit(1000).delete().then(count => {
- if (count === 0) {
- return Promise.resolve();
- }
-
- deletedCount += count;
- if (callback) {
- callback(totalCount, deletedCount);
- }
-
- return kanjiDeleterFunc();
- });
- };
-
- kanjiDeleter = kanjiDeleterFunc();
- }
-
- return Promise.all([termDeleter, kanjiDeleter]);
- });
- }).then(() => {
- return this.db.entities.where('dictionary').equals(title).delete();
- }).then(() => {
- return this.db.dictionaries.where('title').equals(title).delete();
- });
- }
-
importDictionary(indexUrl, callback) {
if (this.db === null) {
return Promise.reject('database not initialized');
diff --git a/ext/bg/js/options-form.js b/ext/bg/js/options-form.js
index 1f64f8d0..501848ad 100644
--- a/ext/bg/js/options-form.js
+++ b/ext/bg/js/options-form.js
@@ -141,7 +141,6 @@ function populateDictionaries(opts) {
});
$('.dict-enable-terms, .dict-enable.kanji').change(onOptionsChanged);
- $('.dict-delete').click(onDictionaryDelete);
}).catch(error => {
dictError.show().find('span').text(error);
}).then(() => {
@@ -149,36 +148,6 @@ function populateDictionaries(opts) {
});
}
-function onDictionaryDelete() {
- const dictGroup = $(this).closest('.dict-group');
-
- const dictError = $('#dict-error');
- dictError.hide();
-
- const dictSpinner = $('#dict-spinner');
- dictSpinner.show();
-
- const dictProgress = dictGroup.find('.dict-delete-progress');
- dictProgress.show();
-
- const dictControls = dictGroup.find('.dict-controls');
- dictControls.hide();
-
- const callback = (total, current) => {
- dictProgress.find('div').css('width', `${current / total * 100.0}%`);
- };
-
- database().deleteDictionary(dictGroup.data('title'), callback).then(() => {
- dictGroup.slideUp();
- }).catch(error => {
- dictError.show().find('span').text(error);
- }).then(() => {
- dictSpinner.hide();
- dictProgress.hide();
- dictControls.show();
- });
-}
-
function onDictionaryImport() {
const dictImport = $(this);
dictImport.prop('disabled', true);
@@ -186,7 +155,7 @@ function onDictionaryImport() {
const dictError = $('#dict-error');
dictError.hide();
- const dictProgress = $('.dict-import-progress');
+ const dictProgress = $('.dict-progress');
dictProgress.show();
const dictSpinner = $('#dict-spinner');
diff --git a/ext/bg/js/templates.js b/ext/bg/js/templates.js
index f80824f9..988533fb 100644
--- a/ext/bg/js/templates.js
+++ b/ext/bg/js/templates.js
@@ -9,17 +9,17 @@ templates['dictionary.html'] = template({"1":function(container,depth0,helpers,p
return "<div class=\"dict-group well well-sm\" data-title=\""
+ alias4(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"title","hash":{},"data":data}) : helper)))
- + "\">\n <div class=\"row\">\n <div class=\"col-xs-8\">\n <h4><span class=\"text-muted glyphicon glyphicon-book\"></span> "
+ + "\">\n <h4><span class=\"text-muted glyphicon glyphicon-book\"></span> "
+ alias4(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"title","hash":{},"data":data}) : helper)))
+ " <small>v."
+ alias4(((helper = (helper = helpers.version || (depth0 != null ? depth0.version : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"version","hash":{},"data":data}) : helper)))
- + "</small></h4>\n </div>\n <div class=\"col-xs-4 text-right disabled\">\n <button type=\"button\" class=\"dict-controls dict-delete btn btn-danger\">Delete</button>\n </div>\n </div>\n <div class=\"dict-delete-progress\">Dictionary data is being deleted, please be patient...</div>\n <div class=\"progress dict-delete-progress\">\n <div class=\"progress-bar progress-bar-striped progress-bar-danger\" style=\"width: 0%\"></div>\n </div>\n <div class=\"checkbox dict-controls "
+ + "</small></h4>\n <div class=\"checkbox "
+ ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasTerms : depth0),{"name":"unless","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ "\">\n <label><input type=\"checkbox\" class=\"dict-enable-terms\" "
+ ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasTerms : depth0),{"name":"unless","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ " "
+ ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.enableTerms : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
- + "> Enable term search</label>\n </div>\n <div class=\"checkbox dict-controls "
+ + "> Enable term search</label>\n </div>\n <div class=\"checkbox "
+ ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasKanji : depth0),{"name":"unless","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ "\">\n <label><input type=\"checkbox\" class=\"dict-enable-kanji\" "
+ ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasKanji : depth0),{"name":"unless","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")