From a40649a84c22976aacbf267cc519d44c098386ee Mon Sep 17 00:00:00 2001 From: Wolfram Schneider Date: Thu, 24 Apr 2014 13:19:21 +0000 Subject: [PATCH] set or re-set "lang" URL parameter correctly, MKWS-181 --- src/mkws-team.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/mkws-team.js b/src/mkws-team.js index b02b441..53a65fc 100644 --- a/src/mkws-team.js +++ b/src/mkws-team.js @@ -186,7 +186,7 @@ function team($, teamName) { that.limitCategory = function(id) { log("limitCategory(id=" + id + ")"); // Only one category filter at a time - m_filterSet.removeMatching(function(f) { return f.type === 'category' }); + m_filterSet.removeMatching(function(f) { return f.type === 'category' }); if (id !== '') m_filterSet.add(categoryFilter(id)); if (m_query) triggerSearch(); return false; @@ -439,7 +439,27 @@ function team($, teamName) { return m_config.lang; } + // set or re-set "lang" URL parameter + function lang_url(lang) { + var query = location.search; + // no query parameters? done + if (!query) { + return "?lang=" + lang; + } + + // parameter does not exists + if (!query.match(/[\?&]lang=/)) { + return query + "&lang=" + lang; + } + // replace existing parameter + query = query.replace(/\?lang=([^&#;]*)/, "?lang=" + lang); + query = query.replace(/\&lang=([^&#;]*)/, "&lang=" + lang); + + return query; + } + + // dynamic URL or static page? /path/foo?query=test /* create locale language menu */ function mkwsHtmlLang() { var lang_default = "en"; @@ -475,7 +495,7 @@ function team($, teamName) { if (lang == l) { data += ' ' + l + ' '; } else { - data += ' ' + l + ' ' + data += ' ' + l + ' ' } } -- 1.7.10.4