aboutsummaryrefslogtreecommitdiff
path: root/ext/bg/js/settings-dictionaries.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-11-02 17:37:53 -0400
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-11-07 20:30:55 -0500
commitfcb922400add0b9ab5d5b5454c3d6042a2d5b256 (patch)
tree5102b3f49fb72c635cb75d49bc2f46b342a4066f /ext/bg/js/settings-dictionaries.js
parente5dcb418248667e3aa4627d5660ff2f951d58237 (diff)
Prevent page exit while database operations are in progress
Diffstat (limited to 'ext/bg/js/settings-dictionaries.js')
-rw-r--r--ext/bg/js/settings-dictionaries.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/ext/bg/js/settings-dictionaries.js b/ext/bg/js/settings-dictionaries.js
index c40648e0..786fcbd5 100644
--- a/ext/bg/js/settings-dictionaries.js
+++ b/ext/bg/js/settings-dictionaries.js
@@ -222,7 +222,10 @@ class SettingsDictionaryEntryUI {
const progressBar = this.content.querySelector('.progress-bar');
this.isDeleting = true;
+ const prevention = new PageExitPrevention();
try {
+ prevention.start();
+
const onProgress = ({processed, count, storeCount, storesProcesed}) => {
let percent = 0.0;
if (count > 0 && storesProcesed > 0) {
@@ -235,6 +238,7 @@ class SettingsDictionaryEntryUI {
} catch (e) {
dictionaryErrorsShow([e]);
} finally {
+ prevention.end();
this.isDeleting = false;
progress.hidden = true;
@@ -479,7 +483,10 @@ async function onDictionaryPurge(e) {
const dictProgress = document.querySelector('#dict-purge');
dictProgress.hidden = false;
+ const prevention = new PageExitPrevention();
+
try {
+ prevention.start();
dictionaryErrorsShow(null);
dictionarySpinnerShow(true);
@@ -496,6 +503,8 @@ async function onDictionaryPurge(e) {
} catch (err) {
dictionaryErrorsShow([err]);
} finally {
+ prevention.end();
+
dictionarySpinnerShow(false);
dictControls.show();
@@ -513,7 +522,10 @@ async function onDictionaryImport(e) {
const dictProgress = $('#dict-import-progress').show();
const dictImportInfo = document.querySelector('#dict-import-info');
+ const prevention = new PageExitPrevention();
+
try {
+ prevention.start();
dictionaryErrorsShow(null);
dictionarySpinnerShow(true);
@@ -559,6 +571,7 @@ async function onDictionaryImport(e) {
} catch (err) {
dictionaryErrorsShow([err]);
} finally {
+ prevention.end();
dictionarySpinnerShow(false);
dictImportInfo.hidden = false;