diff --git a/themes/cucumber-sb/static/js/site.js b/themes/cucumber-sb/static/js/site.js index 16677a4b..fa8c9b7b 100644 --- a/themes/cucumber-sb/static/js/site.js +++ b/themes/cucumber-sb/static/js/site.js @@ -91,12 +91,71 @@ function showOnly(language) { } } +function updateQueryParam(selectedLang){ + let params = location.search.split("&") + if(params.length > 1){ + params.forEach((element, index) => { + if(element.includes("lang")){ + params[index] = 'lang=' + selectedLang + } + }); + return location.search = params.join("&") + }else{ + return location.search = 'lang=' + selectedLang + } +} + +function getLangFromUrl(){ + let params = location.search.split("&") + var lang = '' + if(params[0].length > 1){ + params.forEach((element, index) => { + if(element.includes("lang")){ + lang = params[index].split("=")[1] + } + }); + } + return lang +} + // Activate +var supportedLanguages = [ + "java", + "javascript", + "ruby", + "kotlin", + "scala" +] + +var defaulLanguage = 'java' + ready(function() { + var selectedLang = getLangFromUrl(); + if((selectedLang == '' || selectedLang == null)){ + if(localStorage.getItem('language') == ''){ + showOnly(defaulLanguage) + localStorage.setItem('language', defaulLanguage) + }else{ + showOnly(localStorage.getItem('language')) + } + }else{ + if(supportedLanguages.includes(selectedLang)){ + showOnly(selectedLang) + }else{ + if(localStorage.getItem('language') == ''){ + showOnly(defaulLanguage) + localStorage.setItem('language', defaulLanguage) + }else{ + showOnly(localStorage.getItem('language')) + } + } + } + each(document, '.tabs li', function(li) { var language = li.getAttribute('data-language') li.addEventListener('click', function () { + window.location.search = updateQueryParam(language); showOnly(language) }) })