You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.6 KiB
49 lines
1.6 KiB
// 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) { |
|
// TODO Quick fix; better use "lang" attribute |
|
if (['id', 'url'].indexOf(l) == -1) { |
|
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);
|
|
|