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