WorkDesk płynne przełączanie, Timeline czarno-biały, Uprawnienia API
Filip Borkowski, Backend/Frontend/Fullstack Engineer
WorkDesk — płynne przełączanie trybów
Przełączanie między trybem roboczym (ReactFlow) a trybem mapy jest teraz w pełni animowane. Wcześniej oba panele były warunkowo renderowane — ReactFlow znikał natychmiast (klasa hidden), a mapa montowała się od zera przy każdym włączeniu. Teraz oba panele pozostają w DOM po pierwszym użyciu, a przejście odbywa się przez animację opacity i flex z czasem 300ms.
Mapa ładuje się tylko raz — przy pierwszym kliknięciu "Pokaż mapę" — i od tego momentu pozostaje w pamięci przeglądarki bez ponownego inicjalizowania silnika MapLibre GL.
WorkDesk — przycisk zwijania panelu Zasoby
Przycisk zwijania lewego panelu (Kierowcy / Pojazdy / Naczepy) został przeniesiony z wnętrza panelu na jego prawą krawędź. Przycisk ma teraz postać okrągłego elementu z obramowaniem, wyśrodkowanego pionowo na granicy między panelem a obszarem roboczym — analogicznie do przycisków znanych z IDE i narzędzi projektowych.
Timeline Record — kolorystyka czarno-biała
Wszystkie typy zdarzeń (zlecenia, emaile, statusy, pojazdy, zadania, logowania) używają teraz jednolitej palety neutral. Usunięto kolory niebieski, pomarańczowy, fioletowy i inne — każdy typ zdarzenia jest odróżniany wyłącznie ikoną i odcieniem szarości. Karta aktualizacji danych zlecenia nie jest już pomarańczowa.
Timeline Record — poprawne statusy i dane aktualizacji
Zdarzenia "Zmiana statusu" wyświetlają teraz etykietę z bazy danych (app_settings) zamiast surowego klucza (np. planned → nazwa z ustawień). Gdy email aktualizujący zlecenie nie zawiera parsed_data do porównania, karta aktualizacji wyświetla aktualne pola zlecenia: trasę, status, ładunek, statek i numer kontenera.
Ustawienia — Dostęp do API per rola
W zakładce Uprawnienia pojawiła się nowa sekcja Dostęp do API. Tabela pokazuje trzy integracje (Mistral AI OCR, Anthropic Claude, HERE API) i trzy profile użytkowników (Właściciel, Biuro, Kierowca). Administratorzy mogą dowolnie włączać i wyłączać dostęp do każdego API dla każdego profilu. Domyślnie wszystkie profile mają pełny dostęp. Ustawienia są przechowywane w app_settings.
Dashboard — tłumaczenia statusów zleceń
Widget Zlecenia na dashboardzie poprawnie wyświetla teraz polskie nazwy dla wszystkich typowych statusów. Dodano hardcoded fallback dla kluczy nieobecnych w konfiguracji bazy: in_transit → W transporcie, pending_acceptance → Wysłano do akceptacji, completed → Zrealizowane. Klucze z app_settings mają zawsze pierwszeństwo.
Adresy dostaw i Komunikacja — nowe inner Cards
Panel Adresy dostaw: prawa karta z listą adresów otrzymała nagłówek z tytułem, licznikiem filtrowanych wyników i wyszukiwarką. Tabela adresów jest teraz opakowana w zagnieżdżony Card.
Panel Komunikacja: cały obszar roboczy opakowany w wewnętrzny Card z zachowaniem paddingu i obramowania.