Czas pracy kierowców, GDDKiA Push, podgląd PDF zleceń
Filip Borkowski, Backend/Frontend/Fullstack Engineer
Czas pracy kierowców — nowy panel
Dodano nową stronę „Czas pracy" (/dashboard/czas-pracy) z pełną integracją danych tachografu GBOX. Tabela prezentuje zestawienie czasu pracy wszystkich kierowców: minuty jazdy, innej pracy, dyspozycyjności i odpoczynku. Auto-dopasowanie pracowników do kierowców GBOX po nazwisku. Po kliknięciu wiersza kierowcy rozwija się wykres timeline 24h z kolorowymi segmentami aktywności za ostatnie 7 dni. Mini color-bary w komórkach tabeli pokazują proporcje jazda/praca/dyspozycyjność.
GDDKiA DATEX II — endpoint Push
Wdrożono endpoint /api/gddkia/push do odbioru danych o utrudnieniach drogowych od GDDKiA. Endpoint przyjmuje komunikaty SOAP XML (simplePush/putData) zgodnie ze specyfikacją DATEX II v3.4, parsuje sytuacje drogowe (współrzędne GPS, severity, typ zdarzenia, opis) i odpowiada potwierdzeniem SOAP ack/fail. Zaktualizowano dokumentację integracji o potwierdzone dane dostępowe — certyfikat SSL i URL Pull.
GBOX Working Time API
Nowy endpoint proxy /api/gbox/working-time pobierający dane WorkingTimeList z API GBOX. Zwraca statusy tachografu (jazda, praca, dyspozycyjność, odpoczynek) z cache 5 min. Obsługuje filtrowanie po driverId.
WorkDesk — podgląd PDF i naprawione adresy
Dodano przycisk podglądu PDF zlecenia w karcie zamówienia w panelu roboczym. Naprawiono brakujące dane adresowe w segmentach Załadunek/Rozładunek — poprawiony parser adresów obsługuje teraz adresy bez separatorów, a mapowanie pól Supabase Realtime uwzględnia format snake_case.
Mapa — nazwy zakładów na pinach
W widoku Adresy Dostaw na mapie pod każdą pinezką wyświetla się teraz nazwa zakładu. Etykiety mają czytelne tło i są obcinane do 140px przy dłuższych nazwach.
Timeline Record — linia TERAZ na górze
Naprawiono logikę wyświetlania linii „TERAZ" na osi czasu — zawsze na samej górze, niezależnie od wpisów. Hydration fix — czas renderowany po stronie klienta.
Mapa — viewport i scrollbar
Usunięto pasek przewijania ze strony mapy. Layout ograniczony do h-screen z overflow-hidden. Dodano try/catch we wszystkich operacjach na warstwach maplibre-gl.