From 74937897e591a6b4313407e8601c2bd2e126f834 Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Mon, 4 Jul 2022 17:38:51 +0200 Subject: [PATCH 1/2] Make sure we always set a valid language --- themes/cucumber-sb/static/js/site.js | 46 +++++++--------------------- 1 file changed, 11 insertions(+), 35 deletions(-) diff --git a/themes/cucumber-sb/static/js/site.js b/themes/cucumber-sb/static/js/site.js index fa8c9b7b..6b841f04 100644 --- a/themes/cucumber-sb/static/js/site.js +++ b/themes/cucumber-sb/static/js/site.js @@ -120,36 +120,18 @@ function getLangFromUrl(){ // 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')) - } - } + const supportedLanguages = [...document.querySelectorAll('.tabs li')].map((li) => li.getAttribute('data-language')) + const defaultLanguage = supportedLanguages[0] + const localLanguage = localStorage.getItem('language'); + const selectedLanguage = getLangFromUrl(); + + if (supportedLanguages.includes(selectedLanguage)) { + showOnly(selectedLanguage) + } else if (supportedLanguages.includes(localLanguage)) { + showOnly(localLanguage) + } else { + showOnly(defaultLanguage) } each(document, '.tabs li', function(li) { @@ -168,12 +150,6 @@ ready(function() { }) }) - var firstLi = document.querySelector('.tabs li') - if(firstLi) { - var language = localStorage.getItem('language') || firstLi.getAttribute('data-language') - showOnly(language) - } - // Toggle navbar menu var burger = document.querySelector('.navbar-burger') if(burger) { From 76bb5d309b37ce9c54ee6344a8bca44949ade5d3 Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Mon, 4 Jul 2022 17:43:40 +0200 Subject: [PATCH 2/2] Prevent removing the prefered language when browsing a page without language tab --- themes/cucumber-sb/static/js/site.js | 38 +++++++++++++++------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/themes/cucumber-sb/static/js/site.js b/themes/cucumber-sb/static/js/site.js index 6b841f04..cfe27d9c 100644 --- a/themes/cucumber-sb/static/js/site.js +++ b/themes/cucumber-sb/static/js/site.js @@ -122,25 +122,29 @@ function getLangFromUrl(){ ready(function() { const supportedLanguages = [...document.querySelectorAll('.tabs li')].map((li) => li.getAttribute('data-language')) - const defaultLanguage = supportedLanguages[0] - const localLanguage = localStorage.getItem('language'); - const selectedLanguage = getLangFromUrl(); - - if (supportedLanguages.includes(selectedLanguage)) { - showOnly(selectedLanguage) - } else if (supportedLanguages.includes(localLanguage)) { - showOnly(localLanguage) - } else { - showOnly(defaultLanguage) - } - each(document, '.tabs li', function(li) { - var language = li.getAttribute('data-language') - li.addEventListener('click', function () { - window.location.search = updateQueryParam(language); - showOnly(language) + if (supportedLanguages.length >= 1) { + const defaultLanguage = supportedLanguages[0] + const localLanguage = localStorage.getItem('language'); + const selectedLanguage = getLangFromUrl(); + + if (supportedLanguages.includes(selectedLanguage)) { + showOnly(selectedLanguage) + } else if (supportedLanguages.includes(localLanguage)) { + showOnly(localLanguage) + } else { + showOnly(defaultLanguage) + } + + each(document, '.tabs li', function(li) { + var language = li.getAttribute('data-language') + li.addEventListener('click', function () { + window.location.search = updateQueryParam(language); + showOnly(language) + }) }) - }) + } + each(document, '.panel.collapsible > a', function(a) { var targetSelector = a.getAttribute('data-target');