From 81a86d75e6bf57a476b8d6891fdb1313bc93bbff Mon Sep 17 00:00:00 2001 From: Jaifroid Date: Thu, 14 Dec 2017 10:07:46 +0000 Subject: [PATCH] Alternate icon support Former-commit-id: e5cb015fbe04f82fec27736a8c810bc215e4901b [formerly 9b84972b9025a3335a606d3bc7d82723ab0e1b3c] Former-commit-id: e48ba161e919b922326632a661d0c7dc175634fa --- ...e-trans-32.png => wikivoyage-black-32.png} | Bin www/img/icons/wikivoyage-white-32.png | Bin 0 -> 7147 bytes www/js/app.js | 21 ++++++++++-------- www/js/lib/uiUtil.js | 2 ++ 4 files changed, 14 insertions(+), 9 deletions(-) rename www/img/icons/{wikivoyage-trans-32.png => wikivoyage-black-32.png} (100%) create mode 100644 www/img/icons/wikivoyage-white-32.png diff --git a/www/img/icons/wikivoyage-trans-32.png b/www/img/icons/wikivoyage-black-32.png similarity index 100% rename from www/img/icons/wikivoyage-trans-32.png rename to www/img/icons/wikivoyage-black-32.png diff --git a/www/img/icons/wikivoyage-white-32.png b/www/img/icons/wikivoyage-white-32.png new file mode 100644 index 0000000000000000000000000000000000000000..a6342146a63193e7b122b8e6c1371592aece4316 GIT binary patch literal 7147 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 0) { // Now, try to find which DeviceStorage has been selected by the user // It is the prefix of the archive directory @@ -1785,13 +1785,11 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'abstractFile //Get rid of any absolute or relative prefixes (../, ./../, /../.., etc.) url = url.replace(/^[.\/]*([\S\s]+)$/, "$1"); + //Some Stackexchange links (e.g. "duplicate" and "related" questions) are missing the "question" path, so add it back + //Regex matches a pattern that looks like: 1234/what-is-mathematics.html and changes to: question/1234/what-is-mathematics.html + url = url.replace(/^(\d+\/[\s\S]+\.html?)$/ig, "question/$1"); $(this).on('click', function (e) { - clearFindInArticle(); - //Re-enable top-level scrolling - document.getElementById('top').style.position = "relative"; - document.getElementById('scrollbox').style.position = "fixed"; - document.getElementById('scrollbox').style.height = window.innerHeight + "px"; var decodedURL = decodeURIComponent(url); pushBrowserHistoryState(decodedURL); goToArticle(decodedURL); @@ -2271,6 +2269,11 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'abstractFile * @param {String} title */ function goToArticle(title) { + clearFindInArticle(); + //Re-enable top-level scrolling + document.getElementById('top').style.position = "relative"; + document.getElementById('scrollbox').style.position = "fixed"; + document.getElementById('scrollbox').style.height = window.innerHeight + "px"; selectedArchive.getDirEntryByTitle(title).then(function(dirEntry) { if (dirEntry === null || dirEntry === undefined) { $("#readingArticle").hide(); @@ -2282,7 +2285,7 @@ define(['jquery', 'zimArchiveLoader', 'util', 'uiUtil', 'cookies', 'abstractFile $('#articleContent').contents().find('body').html(""); readArticle(dirEntry); } - }).fail(function() { alert("Error reading article with title " + title); }); + }).fail(function() { console.error("Error reading article with title " + title); }); } function goToRandomArticle() { diff --git a/www/js/lib/uiUtil.js b/www/js/lib/uiUtil.js index 0818d04b..81041254 100644 --- a/www/js/lib/uiUtil.js +++ b/www/js/lib/uiUtil.js @@ -116,8 +116,10 @@ define([], function() { document.getElementById('search-article').scrollTop = 0; if (params.themeChanged) { params.themeChanged = false; + if (history.state !== null) { var thisURL = decodeURIComponent(history.state.title); goToArticle(thisURL); + } } })`; document.getElementById("returntoArticle_top").innerHTML = link;