diff --git a/www/index.html b/www/index.html index 3992689c..ca1bf478 100644 --- a/www/index.html +++ b/www/index.html @@ -539,7 +539,7 @@
diff --git a/www/js/app.js b/www/js/app.js index 9c0c70c4..dd0e9afc 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -189,20 +189,24 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'q', 'module' params.cssSource = e.target.checked ? "desktop" : "mobile"; params.printIntercept = true; params.printInterception = false; - document.getElementById('confirm-print-continue').disabled = true; - goToArticle(decodeURIComponent(history.state.title)); + var btnContinue = document.getElementById('confirm-print-continue'); + var btnCancel = document.getElementById('confirm-print-cancel'); + btnCancel.disabled = true; + btnContinue.disabled = true; + btnContinue.innerHTML = "Please wait"; + goToArticle(decodeURIComponent(params.lastPageVisit.replace(/@kiwixKey@.+/, ""))); }); function printCleanup() { params.printIntercept = false; params.printInterception = false; - goToArticle(decodeURIComponent(history.state.title)); + goToArticle(decodeURIComponent(params.lastPageVisit.replace(/@kiwixKey@.+/, ""))); setTimeout(function () { //Restore temporarily changed value after page has reloaded params.rememberLastPage = cookies.getItem('rememberLastPage') == "false" ? false : true; if (!params.rememberLastPage) { - params.lastPageVisit = ""; cookies.setItem('lastPageVisit', "", Infinity); if (typeof (Storage) !== "undefined") { - localStorage.setItem('lastPageHTML', ""); + try { htmlContent = localStorage.setItem('lastPageHTML', ""); } + catch (err) { console.log("localStorage not supported: " + err); } } } }, 5000); @@ -213,7 +217,11 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'q', 'module' params.printInterception = params.printIntercept; params.printIntercept = false; document.getElementById('btnAbout').classList.add('active'); - document.getElementById('confirm-print-continue').disabled = false; + var btnContinue = document.getElementById('confirm-print-continue'); + var btnCancel = document.getElementById('confirm-print-cancel'); + btnCancel.disabled = false; + btnContinue.disabled = false; + btnContinue.innerHTML = "Continue"; var printModalContent = document.getElementById('print-modal-content'); printModalContent.classList.remove('dark'); if (params.cssUITheme != "light") { @@ -228,12 +236,14 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'q', 'module' params.rememberLastPage = true; //Re-enable caching to speed up reloading of page params.printIntercept = true; params.printInterception = false; - document.getElementById('confirm-print-continue').disabled = true; + btnCancel.disabled = true; + btnContinue.disabled = true; + btnContinue.innerHTML = "Please wait"; $("#printModal").modal({ backdrop: "static", keyboard: true, }); - goToArticle(decodeURIComponent(history.state.title)); + goToArticle(decodeURIComponent(params.lastPageVisit.replace(/@kiwixKey@.+/, ""))); return; } //Pre-load all images in case user wants to print them @@ -788,7 +798,8 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'q', 'module' cookies.setItem('lastPageVisit', "", Infinity); //Clear localStorage if (typeof (Storage) !== "undefined") { - localStorage.setItem('lastPageHTML', ""); + try { htmlContent = localStorage.setItem('lastPageHTML', ""); } + catch (err) { console.log("localStorage not supported: " + err); } } } }); @@ -1731,11 +1742,12 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'q', 'module' if (!htmlContent) { if (params.rememberLastPage && typeof (Storage) !== "undefined" && dirEntry.namespace + '/' + dirEntry.url == decodeURIComponent(params.lastPageVisit.replace(/@kiwixKey@.+/, ""))) { - htmlContent = localStorage.getItem('lastPageHTML'); + try { htmlContent = localStorage.getItem('lastPageHTML'); } + catch(err) { console.log("localStorage not supported: " + err); } } if (/]*>/.test(htmlContent)) { console.log("Fast article retrieval from localStorage..."); - setTimeout(function () { displayArticleInForm(dirEntry, htmlContent); }, 1); + setTimeout(function () { displayArticleInForm(dirEntry, htmlContent); }, 100); } else { selectedArchive.readArticle(dirEntry, displayArticleInForm); } @@ -1839,13 +1851,16 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'q', 'module' !~window.history.state.title.indexOf("/" + dirEntry.url)) { pushBrowserHistoryState(dirEntry.namespace + "/" + dirEntry.url); } - if (params.rememberLastPage && !~decodeURIComponent(params.lastPageVisit).indexOf(dirEntry.url)) { + if (!~decodeURIComponent(params.lastPageVisit).indexOf(dirEntry.url)) { params.lastPageVisit = encodeURIComponent(dirEntry.namespace + "/" + dirEntry.url) + "@kiwixKey@" + selectedArchive._file._files[0].name; - cookies.setItem('lastPageVisit', params.lastPageVisit, Infinity); - //Store current document's raw HTML in localStorage for fast restart - if (typeof (Storage) !== "undefined") { - localStorage.setItem('lastPageHTML', htmlArticle); + if (params.rememberLastPage) { + cookies.setItem('lastPageVisit', params.lastPageVisit, Infinity); + //Store current document's raw HTML in localStorage for fast restart + if (typeof (Storage) !== "undefined") { + try { htmlContent = localStorage.setItem('lastPageHTML', htmlArticle); } + catch (err) { console.log("localStorage not supported: " + err); } + } } }