summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2019-03-15 12:21:43 +0300
committerAndrew Dolgov <[email protected]>2019-03-15 12:21:43 +0300
commitcdd2b47348d58c8a83b5fd66d8f1bc462b31714b (patch)
treef346d24b18dcb6c9fdd9dc50214a81dba3fbb7bb
parentc144501f085dea1a31f33c69f0c715d02286a617 (diff)
sync state on quit
-rwxr-xr-xreader.js34
1 files changed, 32 insertions, 2 deletions
diff --git a/reader.js b/reader.js
index d16f595..251611f 100755
--- a/reader.js
+++ b/reader.js
@@ -60,7 +60,9 @@ function Model() {
console.log('tcrsync_set', resp);
resolve(page);
- });
+ }).fail(() => {
+ reject(null);
+ })
});
},
get: function() {
@@ -86,7 +88,7 @@ function Model() {
},
};
- self.closeFile = function() {
+ self._closeFile = function() {
self._zipEntries.removeAll();
self._zip = null;
self.fileName("");
@@ -94,6 +96,19 @@ function Model() {
localforage.setItem("TTC:LAST-OPENED-FILE", null);
};
+ self.closeFile = function() {
+ return new Promise((resolve, reject) => {
+ self.syncClient.set(model.currentPage()).then(() => {
+ self._closeFile();
+ resolve(null);
+
+ }).catch(() => {
+ self._closeFile();
+ resolve(null);
+ });
+ });
+ };
+
self.openFile = function (file) {
self.isLoading(true);
console.log('openFile', file);
@@ -569,6 +584,21 @@ $(document).ready(function () {
fixColumnWidths();
});
+ $(window).on("beforeunload", (e) => {
+ if (model.fileName() && model.currentPage() > 0 && !window._readyToQuit) {
+ e.preventDefault();
+ window._readyToQuit = true;
+
+ model.syncClient.set(model.currentPage()).then(() => {
+ require('electron').remote.app.quit();
+ }).catch(() => {
+ require('electron').remote.app.quit();
+ });
+
+ return false;
+ }
+ });
+
$(window).on("wheel", function(evt) {
if ($(".modal").is(":visible"))
return;