diff options
author | Andrew Dolgov <[email protected]> | 2019-03-15 12:21:43 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2019-03-15 12:21:43 +0300 |
commit | cdd2b47348d58c8a83b5fd66d8f1bc462b31714b (patch) | |
tree | f346d24b18dcb6c9fdd9dc50214a81dba3fbb7bb | |
parent | c144501f085dea1a31f33c69f0c715d02286a617 (diff) |
sync state on quit
-rwxr-xr-x | reader.js | 34 |
1 files changed, 32 insertions, 2 deletions
@@ -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; |