2 changed files with 70 additions and 0 deletions
@ -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); |
@ -0,0 +1,24 @@
|
||||
{% load i18n %} |
||||
|
||||
<style> |
||||
.language-switch .selected { background-color: #417690 } |
||||
.language-switch.end-group { margin-right: 1em; } |
||||
</style> |
||||
|
||||
{% get_available_languages as languages %} |
||||
|
||||
<li class="language-switch"> |
||||
<a class="language-select" href="#" data-languages="{% for lang_code, _ in languages %}{{ lang_code }}{% if not forloop.last %} {% endif %}{% endfor %}"> |
||||
{% trans 'All' %} |
||||
</a> |
||||
</li> |
||||
|
||||
{% for lang_code, lang_name in languages %} |
||||
<li class="language-switch{% if forloop.last %} end-group{% endif %}"> |
||||
<a class="language-select{% if request.LANGUAGE_CODE == lang_code %} selected{% endif %}" |
||||
href="#" |
||||
data-languages="{{ lang_code }}"> |
||||
{{ lang_name }} |
||||
</a> |
||||
</li> |
||||
{% endfor %} |
Loading…
Reference in new issue