document.getElementById('formData').value = `${dzien}.${miesiac}.${rok}, ${godzina}:${minuta}`; }
// Odświeżaj datę w formularzu co sekundę, żeby była zawsze aktualna przed wysłaniem UstawAktualnaDate(); setInterval(UstawAktualnaDate, 1000);
// Domyślny obrazek placeholder (szary kwadrat 50x50), jeśli użytkownik nie doda zdjęcia const defaultFoto = "data:image/svg+xml;utf8,";
// Obsługa bazy danych w localStorage let ogłoszenia = JSON.parse(localStorage.getItem('lokalneOgloszenia')) || [];
function WyswietlOgloszenia() { const kontener = document.getElementById('listaOgloszen'); kontener.innerHTML = '';
if (ogłoszenia.length === 0) { kontener.innerHTML = '
'; return; }
// Wyświetlanie od najnowszych do najstarszych [...ogłoszenia].reverse().forEach(ogl => { const item = document.createElement('div'); item.className = 'ogloszenie-item';
// Konstrukcja ostatecznego widoku (bez linków, czysty tekst i img)
item.innerHTML = `
`; kontener.appendChild(item); }); }
// Funkcja chroniąca przed wstrzykiwaniem złośliwego kodu (XSS) function ZabezpieczTekst(string) { const temp = document.createElement('div'); temp.textContent = string; return temp.innerHTML; }
// Obsługa wysyłania formularza document.getElementById('ogloszenieForm').addEventListener('submit', function(e) { e.preventDefault();
const kontakt = document.getElementById('formKontakt').value; const opis = document.getElementById('formOpis').value; const dataUrzedowa = document.getElementById('formData').value; const fotoInput = document.getElementById('formFoto'); const errorFoto = document.getElementById('errorFoto');
// Walidacja rozmiaru pliku (1 MB = 1048576 bajtów) if (fotoInput.files.length > 0 && fotoInput.files[0].size > 1048576) { errorFoto.style.display = 'block'; return; } else { errorFoto.style.display = 'none'; }
const noweOgloszenie = { data: dataUrzedowa, kontakt: kontakt, opis: opis, foto: defaultFoto };
// Jeśli dodano zdjęcie, konwertujemy je do Base64, żeby zapisać w localStorage if (fotoInput.files.length > 0) { const reader = new FileReader(); reader.onload = function(event) { noweOgloszenie.foto = event.target.result; ZapiszIDodaj(noweOgloszenie); }; reader.readAsDataURL(fotoInput.files[0]); } else { ZapiszIDodaj(noweOgloszenie); } });
function ZapiszIDodaj(ogloszenie) { ogłoszenia.push(ogloszenie); localStorage.setItem('lokalneOgloszenia', JSON.stringify(ogłoszenia));
// Reset formularza document.getElementById('ogloszenieForm').reset(); UstawAktualnaDate();
// Odświeżenie widoku WyswietlOgloszenia(); }
// Pierwsze uruchomienie strony - załaduj ogłoszenia WyswietlOgloszenia();