Reorganize the whole javascript part as seperate files, for better maintainabillity

This commit is contained in:
2025-12-05 14:30:28 +01:00
parent fb4796de59
commit 2ce9c0095d
24 changed files with 3535 additions and 3112 deletions

View File

@@ -0,0 +1,46 @@
// Translation functions for Fail2ban UI
"use strict";
// Loads translation JSON file for given language (e.g., en, de, etc.)
function loadTranslations(lang) {
$.getJSON('/locales/' + lang + '.json')
.done(function(data) {
translations = data;
updateTranslations();
})
.fail(function() {
console.error('Failed to load translations for language:', lang);
});
}
// Updates all elements with data-i18n attribute with corresponding translation.
function updateTranslations() {
$('[data-i18n]').each(function() {
var key = $(this).data('i18n');
if (translations[key]) {
$(this).text(translations[key]);
}
});
// Updates placeholders.
$('[data-i18n-placeholder]').each(function() {
var key = $(this).data('i18n-placeholder');
if (translations[key]) {
$(this).attr('placeholder', translations[key]);
}
});
}
function getTranslationsSettingsOnPageload() {
return fetch('/api/settings')
.then(function(res) { return res.json(); })
.then(function(data) {
var lang = data.language || 'en';
$('#languageSelect').val(lang);
loadTranslations(lang);
})
.catch(function(err) {
console.error('Error loading initial settings:', err);
loadTranslations('en');
});
}