diff --git a/.travis.yml b/.travis.yml index 60c1fe5..e759fd0 100755 --- a/.travis.yml +++ b/.travis.yml @@ -6,3 +6,6 @@ install: script: - pre-commit run --all-files - ./run.sh test_ludochaordic +notifications: + email: + on_success: never diff --git a/static/bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-004a392.js b/static/bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js similarity index 100% rename from static/bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-004a392.js rename to static/bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js diff --git a/static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-004a392.js b/static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js similarity index 99% rename from static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-004a392.js rename to static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js index 9dc097f..d176064 100644 --- a/static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-004a392.js +++ b/static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js @@ -20,6 +20,18 @@ if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.le window.tagFilters = {}; + function parseQuery(queryString) { + let query = {}; + (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&').forEach(pair => { + pair = pair.split('='); + let name = decodeURIComponent(pair[0]); + let values = decodeURIComponent(pair[1] || '').split(','); + if (!query[name]) { query[name] = []; } + Array.prototype.push.apply(query[name], values); + }); + return query; + } + function includes(anArray, value) { return anArray.indexOf(value) >= 0; } @@ -70,10 +82,10 @@ if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.le updateArticlesVisibility(); }; - window.toggleLangTagFilter = function toggleLangTagFilter(langs) { + window.toggleLangTagFilter = function toggleLangTagFilter(newLang) { let lang = this.textContent; window.tagFilters[`lang:${ lang }`] = undefined; - lang = langs[langs.indexOf(lang) + 1]; + lang = newLang || window.langs[langs.indexOf(lang) + 1]; if (typeof lang === 'undefined') { lang = 'lang'; this.title = 'Language filter (disabled)'; @@ -84,4 +96,18 @@ if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.le this.textContent = lang; updateArticlesVisibility(); }; + + let queryParams = parseQuery(window.location.search); + for (let [qpName, qpValue] of Object.entries(queryParams)) { + if (!qpValue) { continue; } + if (qpName === 'lang') { + let buttonElem = document.getElementById('lang-tag-filter'); + window.toggleLangTagFilter.bind(buttonElem)(qpValue[0]); + } else if (qpName === 'tags') { + qpValue.forEach(tag => { + let buttonElem = document.getElementById(tag + '-tag-filter'); + window.toggleTagFilter.bind(buttonElem)(tag); + }); + } + } }()); diff --git a/static/bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-004a392.js b/static/bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js similarity index 100% rename from static/bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-004a392.js rename to static/bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js diff --git a/static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-004a392.js b/static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js similarity index 99% rename from static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-004a392.js rename to static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js index 71ac975..85b4154 100644 --- a/static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-004a392.js +++ b/static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js @@ -266,6 +266,18 @@ $(document).ready(() => { window.tagFilters = {}; + function parseQuery(queryString) { + let query = {}; + (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&').forEach(pair => { + pair = pair.split('='); + let name = decodeURIComponent(pair[0]); + let values = decodeURIComponent(pair[1] || '').split(','); + if (!query[name]) { query[name] = []; } + Array.prototype.push.apply(query[name], values); + }); + return query; + } + function includes(anArray, value) { return anArray.indexOf(value) >= 0; } @@ -316,10 +328,10 @@ $(document).ready(() => { updateArticlesVisibility(); }; - window.toggleLangTagFilter = function toggleLangTagFilter(langs) { + window.toggleLangTagFilter = function toggleLangTagFilter(newLang) { let lang = this.textContent; window.tagFilters[`lang:${ lang }`] = undefined; - lang = langs[langs.indexOf(lang) + 1]; + lang = newLang || window.langs[langs.indexOf(lang) + 1]; if (typeof lang === 'undefined') { lang = 'lang'; this.title = 'Language filter (disabled)'; @@ -330,4 +342,18 @@ $(document).ready(() => { this.textContent = lang; updateArticlesVisibility(); }; + + let queryParams = parseQuery(window.location.search); + for (let [qpName, qpValue] of Object.entries(queryParams)) { + if (!qpValue) { continue; } + if (qpName === 'lang') { + let buttonElem = document.getElementById('lang-tag-filter'); + window.toggleLangTagFilter.bind(buttonElem)(qpValue[0]); + } else if (qpName === 'tags') { + qpValue.forEach(tag => { + let buttonElem = document.getElementById(tag + '-tag-filter'); + window.toggleTagFilter.bind(buttonElem)(tag); + }); + } + } }()); diff --git a/static/js/filter-tags.js b/static/js/filter-tags.js index a828e3f..c5219a2 100644 --- a/static/js/filter-tags.js +++ b/static/js/filter-tags.js @@ -9,6 +9,18 @@ window.tagFilters = {}; + function parseQuery(queryString) { + let query = {}; + (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&').forEach(pair => { + pair = pair.split('='); + let name = decodeURIComponent(pair[0]); + let values = decodeURIComponent(pair[1] || '').split(','); + if (!query[name]) { query[name] = []; } + Array.prototype.push.apply(query[name], values); + }); + return query; + } + function includes(anArray, value) { return anArray.indexOf(value) >= 0; } @@ -59,10 +71,10 @@ updateArticlesVisibility(); }; - window.toggleLangTagFilter = function toggleLangTagFilter(langs) { + window.toggleLangTagFilter = function toggleLangTagFilter(newLang) { let lang = this.textContent; window.tagFilters[`lang:${ lang }`] = undefined; - lang = langs[langs.indexOf(lang) + 1]; + lang = newLang || window.langs[langs.indexOf(lang) + 1]; if (typeof lang === 'undefined') { lang = 'lang'; this.title = 'Language filter (disabled)'; @@ -73,4 +85,18 @@ this.textContent = lang; updateArticlesVisibility(); }; + + let queryParams = parseQuery(window.location.search); + for (let [qpName, qpValue] of Object.entries(queryParams)) { + if (!qpValue) { continue; } + if (qpName === 'lang') { + let buttonElem = document.getElementById('lang-tag-filter'); + window.toggleLangTagFilter.bind(buttonElem)(qpValue[0]); + } else if (qpName === 'tags') { + qpValue.forEach(tag => { + let buttonElem = document.getElementById(tag + '-tag-filter'); + window.toggleTagFilter.bind(buttonElem)(tag); + }); + } + } }()); diff --git a/templates/base.html b/templates/base.html index 4e63360..c35aaab 100644 --- a/templates/base.html +++ b/templates/base.html @@ -266,7 +266,7 @@ - + {% include 'disqus_count.html' %} {% include 'analytics.html' %} diff --git a/templates/index.html b/templates/index.html index c08bbc6..660604c 100644 --- a/templates/index.html +++ b/templates/index.html @@ -4,13 +4,16 @@ {% block header_extra %} {% if MG_LANG_FILTER_TAGS or MG_FILTER_TAGS %} + {% endif %}