diff --git a/shared/multilingual/static/multilingual/js/switch_language.js b/shared/multilingual/static/multilingual/js/switch_language.js new file mode 100644 index 0000000..914c058 --- /dev/null +++ b/shared/multilingual/static/multilingual/js/switch_language.js @@ -0,0 +1,46 @@ +// TODO Add lang attribute to form fields, use lang attribute to query fields +function showLanguages(languages) { + document.querySelectorAll('.form-row, .field-box').forEach(function(row) { + var lang = []; + row.classList.forEach(function(cls) { + if (cls) { + var l = cls.split('_').pop(); + if (l.length == 2 || l.length == 3) { + lang.push(l) + } + } + }); + if (lang.length) { + var display = 'none'; + if (lang.filter(function(l) { return languages.includes(l); }).length > 0) { + display = 'block' + } + row.style.display = display; + } + }) + localStorage.admin_languages = languages.join(' ') + document.querySelectorAll('.language-select').forEach(function(a) { + if (a.dataset.languages == localStorage.admin_languages) { + a.classList.add('selected') + } else { + a.classList.remove('selected') + } + }) +} + +(function($) { + $(document).ready(function() { + $('.language-select').on({ + click: function() { + showLanguages(this.dataset.languages.split(' ')) + } + }) + var languages = $('.language-select.selected').data('languages') + if (localStorage.admin_languages) { + languages = localStorage.admin_languages + } + if (languages) { + showLanguages(languages.split(' ')) + } + }) +})(django.jQuery); diff --git a/shared/multilingual/templates/multilingual/admin/switch_language.html b/shared/multilingual/templates/multilingual/admin/switch_language.html new file mode 100644 index 0000000..32685e5 --- /dev/null +++ b/shared/multilingual/templates/multilingual/admin/switch_language.html @@ -0,0 +1,24 @@ +{% load i18n %} + + + +{% get_available_languages as languages %} + +