🔧 Zmieniono: wygląd profilu użytkownika: Dodano nowe pola: adres, numer telefonu oraz miejscowość.Wprowadzono walidację danych.
🧾 Zmieniono: wygląd strony przeglądu zgłoszenia: Zmieniono layout sekcji szczegółów. Dane są teraz pobierane dynamicznie z bazy danych – wyświetlane są szczegóły zgłoszenia wraz z danymi użytkownika i powiązanymi wpisami.
🔗 Poprawiono: relacje w bazie danych: Usprawniono powiązania między tabelami zgloszenia, wykroczenia_drogowe oraz wykroczenia_drogowe_lista, uwzględniając pivoty i dodatkowe pola (user_id) w tabeli pośredniczącej.
🆕 Dodano: integrację z Google Analytics – śledzenie ruchu na stronie w środowisku produkcyjnym.
🆕 Dodano: integrację z Google Search Console oraz możliwość automatycznego generowania i aktualizacji pliku sitemap.xml przy użyciu Laravel Scheduler.
📸
Nowość:
Dodano pełną obsługę dodawania zdjęć do zgłoszenia za pomocą Dropzone.js:
przeciąganie plików (drag & drop),
dynamiczny podgląd miniatur,
możliwość usuwania,
limit rozmiaru i ilości (max 3 zdjęcia, max 5 MB każdy),
detekcja duplikatu nazwy – z kodem 409 i komunikatem SweetAlert,
wykrywanie błędów przesyłania (500, 403 itd.) z pełną obsługą komunikatów.
Wdrożono pobieranie już przesłanych zdjęć po odświeżeniu strony (init Dropzone na podstawie tymczasoweId).
📦 Bezpieczeństwo: Wydzielony magazyn plików Zgłoszeniomatu – dane poza public, a jednak dostępne.
📄 Wprowadzono: SweetAlert2 do komunikatów o błędach i sukcesach (duplikaty, usunięcia)..
🆕
Dodano:
Przycisk „Udostępnij link” przy każdej sekcji changelogu (po prawej stronie nagłówka).
Funkcjonalność kopiowania bezpośredniego linku do schowka.
Estetyczne powiadomienia toastowe z wykorzystaniem SweetAlert2 potwierdzające kopiowanie lub zgłaszające błąd.
🆕
Dodano:
Mechanizm powiązania zdjęć z tymczasowym identyfikatorem tymczasowe_id podczas dodawania zdjęć do zgłoszenia.
Po zapisaniu zgłoszenia następuje automatyczne przypisanie zdjęć z tymczasowe_id do właściwego rekordu zgloszenie_id w bazie.
Połączenie zdjęć ze zgłoszeniem oraz czyszczenie tymczasowe_id z sesji zapewnia porządek i poprawne przypisanie zasobów.
🧹 Poprawka: po zapisaniu zgłoszenia usuwany jest katalog zgloszenia/tymczasowe/{id}, aby nie pozostawały niepotrzebne pliki. przy użyciu Laravel Scheduler.
📸 Dodano: wyświetlanie zdjęć zgłoszenia na stronie przeglądu – każde zdjęcie prezentowane w osobnym kontenerze z miniaturą i nazwą pliku.
⚠️ Poprawiono: dodanie walidacji po stronie serwera – wymagane co najmniej jedno zdjęcie do zgłoszenia.
📦
Dodano: system zarządzania plikami po zapisaniu zgłoszenia:
Przenoszenie zdjęć z katalogu tymczasowego do katalogu docelowego (wg wzoru ZGM/ID_USERA/WD/ID_ZGLOSZENIA_*.png)
Zmiana ścieżki i nazwy plików w bazie danych.
Usuwanie katalogu tymczasowego po przeniesieniu zdjęć
📤 Poprawiono: zachowanie Dropzone.js – dodanie automatycznego usuwania nadmiarowych plików przy przekroczeniu limitu (max 3 zdjęcia).
🧽 Refaktoryzacja: uporządkowano obsługę plików w kontrolerze i helperze sesji getTymczasoweId()
🆕
Dodano obsługę GLightbox:
Zdjęcia w zgłoszeniu można teraz przeglądać w pełnym rozmiarze dzięki GLightbox
Inicjalizacja lightboxa oparta o data-glightbox="zgloszenie-{id}"
Pełna integracja z Vite (import JS + CSS, npm install glightbox)
Responsywność, animacje i wyświetlanie tytułów zdjęć.
🆕
Poprawiono numerację zgłoszeń
Naprawiono błąd powodujący, że nowe zgłoszenia otrzymywały zawsze ten sam numer (ZGM/ID_USER/WD/NR_KOLEJNY).
Wprowadzono logikę inkrementacji numeru nr_kolejny dla kombinacji user_id + typ_kod
Dodano funkcję generujSygnature() zwracającą zarówno sygnaturę, jak i numer porządkowy.
Sygnatury typu ZGM/{user}/{typ}/{numer} generowane są teraz poprawnie i unikalnie.
🗑️
Możliwość anulowania wersji roboczej
Użytkownik może teraz anulować niesfinalizowane zgłoszenie (status: w_przygotowaniu).
System usuwa automatycznie wszystkie powiązane dane, relacje i zdjęcia z serwera.
Bezpieczeństwo: tylko właściciel zgłoszenia ma dostęp do tej opcji.
🎯 Dodane: Dostosowanie stron CMS do udostępniania w social media (OpenGraph, Twitter Card, og:image)
🆕 Dodane: Utworzono serwer Discord – dedykowany kanał dla społeczności Zgłoszeniomatu: dyskusje, sugestie, luźne rozmowy i szybki kontakt z twórcami.
🆕 Utworzono: stronę „Kontakt” – nowa podstrona kontaktowa z wszystkimi formami kontaktu: fanpage, grupa, Discord, e-mail.
⚙ Dodano: pole show_meta do tabeli cms_pages – możliwość zarządzania widocznością paska metadanych (autor, data, czas czytania, liczba wyświetleń).