spolszczenie wszystkiego i poprawki

This commit is contained in:
Mateusz Gruszczyński
2025-09-26 13:52:06 +02:00
parent fdcfaff80e
commit 6a1734024a
14 changed files with 316 additions and 282 deletions

View File

@@ -1,19 +1,20 @@
(function () {
// IBAN: tylko cyfry, auto-grupowanie co 4 (po prefiksie PL)
// static/js/ustawienia.js
document.addEventListener('DOMContentLoaded', () => {
// Formatowanie IBAN (PL)
const iban = document.getElementById('numer_konta');
if (iban) {
iban.addEventListener('input', () => {
const digits = iban.value.replace(/\\D/g, '').slice(0, 26); // 26 cyfr po "PL"
const digits = iban.value.replace(/\D/g, '').slice(0, 26);
const chunked = digits.replace(/(.{4})/g, '$1 ').trim();
iban.value = chunked;
});
}
// Telefon BLIK: tylko cyfry, format 3-3-3
// Telefon BLIK 3-3-3
const tel = document.getElementById('numer_telefonu_blik');
if (tel) {
tel.addEventListener('input', () => {
const digits = tel.value.replace(/\\D/g, '').slice(0, 9);
const digits = tel.value.replace(/\D/g, '').slice(0, 9);
const parts = [];
if (digits.length > 0) parts.push(digits.substring(0, 3));
if (digits.length > 3) parts.push(digits.substring(3, 6));
@@ -22,24 +23,23 @@
});
}
// Biała lista IP/hostów — helpery
const ta = document.getElementById('allowed_login_hosts');
// Biała lista IP/hostów
const ta = document.getElementById('dozwolone_hosty_logowania');
const count = document.getElementById('hostsCount');
const addBtn = document.getElementById('btn-add-host');
const addMyBtn = document.getElementById('btn-add-my-ip');
const input = document.getElementById('host_input');
const dedupeBtn = document.getElementById('btn-dedupe');
function parseList(text) {
// akceptuj przecinki, średniki i nowe linie; trimuj; usuń puste
return text
.split(/[\\n,;]+/)
const parseList = (text) =>
text
.split(/[\r\n,;]+/) // \r?\n, przecinek, średnik
.map(s => s.trim())
.filter(Boolean);
}
function formatList(arr) {
return arr.join('\\n');
}
function dedupe(arr) {
const formatList = (arr) => arr.join('\n');
const dedupe = (arr) => {
const seen = new Set();
const out = [];
for (const v of arr) {
@@ -47,22 +47,23 @@
if (!seen.has(k)) { seen.add(k); out.push(v); }
}
return out;
}
function updateCount() {
};
const updateCount = () => {
if (!ta || !count) return;
count.textContent = parseList(ta.value).length.toString();
}
function addEntry(val) {
count.textContent = String(parseList(ta.value).length);
};
const addEntry = (val) => {
if (!ta || !val) return;
const list = dedupe([...parseList(ta.value), val]);
ta.value = formatList(list);
updateCount();
}
};
if (ta) {
ta.addEventListener('input', updateCount);
// inicjalny przelicznik
updateCount();
updateCount(); // inicjalne przeliczenie
}
if (addBtn && input) {
@@ -82,11 +83,10 @@
});
}
const dedupeBtn = document.getElementById('btn-dedupe');
if (dedupeBtn && ta) {
dedupeBtn.addEventListener('click', () => {
ta.value = formatList(dedupe(parseList(ta.value)));
updateCount();
});
}
})();
});

View File

@@ -9,11 +9,11 @@
}, false);
})();
const pw = document.getElementById('password');
const pw = document.getElementById("haslo");
const toggle = document.getElementById('togglePw');
toggle.addEventListener('click', () => {
const isText = pw.type === 'text';
pw.type = isText ? 'password' : 'text';
pw.type = isText ? "haslo" : 'text';
toggle.textContent = isText ? 'Pokaż' : 'Ukryj';
toggle.setAttribute('aria-pressed', (!isText).toString());
pw.focus();

View File

@@ -5,7 +5,7 @@
e.preventDefault();
e.stopPropagation();
}
const pw1 = document.getElementById('password');
const pw1 = document.getElementById("haslo");
const pw2 = document.getElementById('password2');
if (pw1.value !== pw2.value) {
e.preventDefault();
@@ -19,11 +19,11 @@
}, false);
})();
const pw = document.getElementById('password');
const pw = document.getElementById("haslo");
const toggle = document.getElementById('togglePw');
toggle.addEventListener('click', () => {
const isText = pw.type === 'text';
pw.type = isText ? 'password' : 'text';
pw.type = isText ? "haslo" : 'text';
toggle.textContent = isText ? 'Pokaż' : 'Ukryj';
pw.focus();
});