Zadania Realtime, Mapa ripple, Komunikacja usuwanie DM
Filip Borkowski, Backend/Frontend/Fullstack Engineer
Zadania — filtry statusu, przydzielenia i Realtime
Przyciski statusu (tab bar)
Panel zadań otrzymał nowy pasek przycisków statusu: Wszystkie, Do zrobienia, W trakcie, Zakończone — każdy z licznikiem zadań. Kliknięcie filtruje listę natychmiast.
Filtr przydzielenia
Nowy dropdown "Przydzielenie" umożliwia filtrowanie zadań wg: Wszyscy, Przydzielone, Nieprzydzielone, oraz po konkretnej osobie przypisanej do zadań.
Supabase Realtime
Tabela zadań aktualizuje się automatycznie w czasie rzeczywistym dzięki Supabase Realtime. Zmiany wprowadzone przez innych użytkowników (dodanie, edycja, usunięcie zadania) widoczne są natychmiast bez odświeżania strony.
Wyszukiwarka pracowników w kolumnie "Przydziel"
Zamieniono natywny <select> na komponent AssigneeSelector z wysuwanym Popover i wyszukiwarką tekstową. Lista pracowników wyświetla pozycję stanowiska obok nazwiska.
Pracownicy — przypisywanie pojazdów (many-to-many)
W formularzu edycji pracownika dodano sekcję przypisywania pojazdów. Dropdown z wyszukiwarką pozwala znaleźć i przypisać dowolny pojazd z bazy danych. Jeden pracownik może mieć przypisanych wiele pojazdów, a jeden pojazd może być przypisany do wielu pracowników. Nowa tabela junction employee_vehicles i endpoint /api/admin/employee-vehicles.
Fleet — TAG podmiotu w tabeli
Kolumna Podmiot w tabeli Park Maszyn wyświetla teraz TAG podmiotu (np. UTB, TSR) zamiast pełnej nazwy firmy. Przy grupowaniu wg podmiotu widoczny jest format "TAG — Pełna nazwa".
Mapa — ripple effect i declutter etykiet
Pojazdy w ruchu (silnik ON + prędkość > 0) mają animowany efekt ripple — 3 koncentryczne pierścienie rozchodzące się od markera z malejącą przezroczystością. Pojazdy stacjonarne zachowują statyczny marker.
Algorytm rozmieszczania etykiet został ulepszony: 60 pozycji offset (5 pierścieni × 12 kątów), leader line z najbliższego narożnika ramki, detekcja kolizji etykieta-etykieta i przecięć linii.
Komunikacja — usuwanie rozmów DM
Dodano możliwość usuwania rozmów w panelu Komunikacja. Ikona kosza pojawia się na hover przy każdej rozmowie na liście oraz w nagłówku otwartej rozmowy. Usunięcie wymaga potwierdzenia. Endpoint weryfikuje uprawnienia — można usunąć tylko własne wiadomości.
Fleet — stała wysokość wierszy tabeli
Tabela Zestawienie pojazdów ma teraz stałą wysokość wierszy (48px). Zmiana wartości (np. status, paliwo) nie powoduje przeskakiwania layoutu.
Dokumenty i Parametry — poprawiony layout
Panele Dokumenty i Parametry logiki otrzymały prawidłowe zmienne CSS SidebarProvider, dzięki czemu wymiary są spójne z pozostałymi kartami dashboard.
Mapa — poprawione odnośniki etykiet
Algorytm leader line zmieniony z nearest-corner na ray-rect intersection. Linie odnośników trafiają teraz dokładnie w krawędź etykiety, niezależnie od kąta.
Pracownicy — nowe kolumny: Nr karty kierowcy i PIN
Dodano dwie nowe kolumny w tabeli pracowników: Numer karty kierowcy oraz PIN. Oba pola dostępne w formularzu edycji/dodawania, widoczne w tabelach aktywnych i nieaktywnych, obsługiwane przy imporcie CSV.
Pracownicy — wyszukiwarka
Nad tabelą pracowników dodano pole wyszukiwania filtrujące po imieniu, nazwisku, stanowisku, email, telefonie, nr karty kierowcy i PIN.
Mapa — etykiety nie przysłaniają markerów
Etykiety pojazdów na mapie nie mogą już przysłaniać żadnego markera. Algorytm odrzuca pozycje etykiet kolidujące z dowolnym punktem pojazdu.