feat(work-orders): new Mitchell1-style dashboard view (Phase 1 — layout + tabs)
Custom Filament Page at /app/work-orders/{id}/dashboard renders a
Mitchell1-inspired 3-column layout:
- Top bar: WO#, status badge, actions (Edit / Tracking link)
- Meta header row: creation / opened / ETA / responsible / urgency /
paid amount (6 cells)
- Left sidebar (300px): Client card (avatar, phone, email, status
tag, 3-stat grid: visits/total/debt) + Vehicle card (photo, plate,
VIN, mileage, engine, gearbox) + Repair history (latest 5 for this
vehicle, links to dashboards)
- Middle: tab bar (Lucrări/Piese/Diagnostic/Foto/Documente/Note)
with Alpine-driven switching. Works & Parts show the tables read-
only; add/edit still goes through existing EditWorkOrder Filament
resource. Photos tab shows gallery from spatie/media-library.
- Right (300px): Finance summary card (works cost, parts cost,
discount, total, paid, balance) + placeholder for Timeline+Chat
(Phase 2)
- Responsive: right column collapses <1280px, left <900px.
'Vizualizare dashboard' button added on top of the existing
EditWorkOrder page so users can switch between edit form and info-
dense dashboard.
Fixed getSlug() signature (must match parent with ?Panel $panel).
+14 translations. All 306 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -522,6 +522,8 @@
|
||||
"Cost & marjă": "Cost & margin",
|
||||
"Cost (de la terț)": "Cost (subcontractor)",
|
||||
"Cost (terț)": "Cost (subcontractor)",
|
||||
"Cost manopere": "Labor cost",
|
||||
"Cost piese": "Parts cost",
|
||||
"Cost piese (achiziție)": "Parts cost (purchase)",
|
||||
"Cost/lead": "Cost/lead",
|
||||
"Costuri": "Costs",
|
||||
@@ -891,6 +893,7 @@
|
||||
"Fără articol (manual)": "No article (manual)",
|
||||
"Fără client": "No client",
|
||||
"Fără maistru": "No master",
|
||||
"Fără mașină": "No vehicle",
|
||||
"Fără răspuns": "No answer",
|
||||
"Fără stoc": "Out of stock",
|
||||
"GNC": "CNG",
|
||||
@@ -996,6 +999,7 @@
|
||||
"Is vip": "VIP",
|
||||
"Istoric depozitare": "Storage history",
|
||||
"Istoric prețuri furnizori": "Supplier price history",
|
||||
"Istoric reparații": "Repair history",
|
||||
"Iulie": "July",
|
||||
"Iunie": "June",
|
||||
"JSON": "JSON",
|
||||
@@ -1246,11 +1250,13 @@
|
||||
"Nicio factură generată": "No invoice generated",
|
||||
"Nicio fișă de lucru": "No work orders",
|
||||
"Nicio fișă în perioada selectată.": "No orders in selected period.",
|
||||
"Nicio fotografie": "No photos",
|
||||
"Nicio lucrare de caroserie": "No bodyshop jobs",
|
||||
"Nicio lucrare la terți": "No subcontracted work",
|
||||
"Nicio manoperă efectuată.": "No work performed.",
|
||||
"Nicio mașină încă": "No vehicles yet",
|
||||
"Nicio metodă de plată configurată. Contactează operatorul.": "No payment method configured. Contact operator.",
|
||||
"Nicio notă internă.": "No internal notes.",
|
||||
"Nicio piesă implicită": "No default parts",
|
||||
"Nicio piesă montată.": "No parts installed.",
|
||||
"Nicio plată": "No payments",
|
||||
@@ -1558,6 +1564,7 @@
|
||||
"Prețuri": "Prices",
|
||||
"Prețurile se înregistrează automat la fiecare recepție de PO.": "Prices are auto-recorded on every PO receipt.",
|
||||
"Price": "Price",
|
||||
"Prima vizită": "First visit",
|
||||
"Primește cereri din canalul Telegram + trimite confirmări automate.": "Receive requests from the Telegram channel + send auto-confirmations.",
|
||||
"Primit": "Incoming",
|
||||
"Print": "Print",
|
||||
@@ -1980,6 +1987,7 @@
|
||||
"Testează bot Telegram": "Test Telegram bot",
|
||||
"Theme color": "Theme color",
|
||||
"Time": "Time",
|
||||
"Timeline & Chat — Phase 2": "Timeline & Chat — Phase 2",
|
||||
"Timp deschidere, ms": "Opening time, ms",
|
||||
"Timp lucrat": "Time worked",
|
||||
"Timp mediu": "Avg time",
|
||||
@@ -2030,8 +2038,10 @@
|
||||
"Total general": "Grand total",
|
||||
"Total ieșiri": "Total outflow",
|
||||
"Total intrări": "Total inflow",
|
||||
"Total manopere:": "Labor total:",
|
||||
"Total net": "Net total",
|
||||
"Total paid": "Total paid",
|
||||
"Total piese:": "Parts total:",
|
||||
"Total plătit": "Total paid",
|
||||
"Total rezultate": "Total results",
|
||||
"Total venituri": "Total revenue",
|
||||
@@ -2178,7 +2188,9 @@
|
||||
"Visa, Mastercard prin Stripe": "Visa, Mastercard prin Stripe",
|
||||
"Vizibil": "Visible",
|
||||
"Vizitator": "Viewer",
|
||||
"Vizite": "Visits",
|
||||
"Vizual": "Visual",
|
||||
"Vizualizare dashboard": "Dashboard view",
|
||||
"Vizualizează": "View",
|
||||
"Vizualizări": "Views",
|
||||
"Vopsea sărită": "Paint chip",
|
||||
|
||||
+14
-2
@@ -522,6 +522,8 @@
|
||||
"Cost & marjă": "Стоимость и маржа",
|
||||
"Cost (de la terț)": "Стоимость (от субподрядчика)",
|
||||
"Cost (terț)": "Стоимость (субподр.)",
|
||||
"Cost manopere": "Стоимость работ",
|
||||
"Cost piese": "Стоимость запчастей",
|
||||
"Cost piese (achiziție)": "Стоимость запчастей (закупка)",
|
||||
"Cost/lead": "Стоимость/заявка",
|
||||
"Costuri": "Затраты",
|
||||
@@ -563,7 +565,7 @@
|
||||
"Curățare": "Чистка",
|
||||
"Curăță": "Очистить",
|
||||
"Custom": "Свой",
|
||||
"Cutie": "Коробка",
|
||||
"Cutie": "КПП",
|
||||
"Cutie de viteze": "Коробка передач",
|
||||
"Cutie viteze": "КПП",
|
||||
"Câmp obligatoriu": "Обязательное поле",
|
||||
@@ -891,6 +893,7 @@
|
||||
"Fără articol (manual)": "Без артикула (вручную)",
|
||||
"Fără client": "Без клиента",
|
||||
"Fără maistru": "Без мастера",
|
||||
"Fără mașină": "Без авто",
|
||||
"Fără răspuns": "Без ответа",
|
||||
"Fără stoc": "Нет в наличии",
|
||||
"GNC": "CNG",
|
||||
@@ -996,6 +999,7 @@
|
||||
"Is vip": "VIP",
|
||||
"Istoric depozitare": "История хранения",
|
||||
"Istoric prețuri furnizori": "История цен поставщиков",
|
||||
"Istoric reparații": "История ремонтов",
|
||||
"Iulie": "Июль",
|
||||
"Iunie": "Июнь",
|
||||
"JSON": "JSON",
|
||||
@@ -1246,11 +1250,13 @@
|
||||
"Nicio factură generată": "Счета не созданы",
|
||||
"Nicio fișă de lucru": "Нет заказ-нарядов",
|
||||
"Nicio fișă în perioada selectată.": "Нет нарядов за выбранный период.",
|
||||
"Nicio fotografie": "Нет фотографий",
|
||||
"Nicio lucrare de caroserie": "Нет кузовных работ",
|
||||
"Nicio lucrare la terți": "Нет работ у субподрядчиков",
|
||||
"Nicio manoperă efectuată.": "Работы не выполнены.",
|
||||
"Nicio mașină încă": "Пока нет авто",
|
||||
"Nicio metodă de plată configurată. Contactează operatorul.": "Способ оплаты не настроен. Свяжитесь с оператором.",
|
||||
"Nicio notă internă.": "Нет внутренних заметок.",
|
||||
"Nicio piesă implicită": "Нет запчастей по умолчанию",
|
||||
"Nicio piesă montată.": "Запчасти не установлены.",
|
||||
"Nicio plată": "Нет платежей",
|
||||
@@ -1558,6 +1564,7 @@
|
||||
"Prețuri": "Цены",
|
||||
"Prețurile se înregistrează automat la fiecare recepție de PO.": "Цены регистрируются автоматически при каждой приёмке PO.",
|
||||
"Price": "Цена",
|
||||
"Prima vizită": "Первый визит",
|
||||
"Primește cereri din canalul Telegram + trimite confirmări automate.": "Получайте заявки из Telegram-канала + отправляйте автоподтверждения.",
|
||||
"Primit": "Входящий",
|
||||
"Print": "Печать",
|
||||
@@ -1704,7 +1711,7 @@
|
||||
"Respins": "Отклонено",
|
||||
"Respins de": "Отклонено",
|
||||
"Responsabil": "Ответственный",
|
||||
"Rest de plată": "Осталось к оплате",
|
||||
"Rest de plată": "К оплате",
|
||||
"Restanță": "Задолженность",
|
||||
"Restaurează": "Восстановить",
|
||||
"Restituire": "Restituire",
|
||||
@@ -1980,6 +1987,7 @@
|
||||
"Testează bot Telegram": "Тест Telegram-бота",
|
||||
"Theme color": "Theme color",
|
||||
"Time": "Время",
|
||||
"Timeline & Chat — Phase 2": "Timeline и чат — этап 2",
|
||||
"Timp deschidere, ms": "Время открытия, мс",
|
||||
"Timp lucrat": "Отработано",
|
||||
"Timp mediu": "Среднее время",
|
||||
@@ -2030,8 +2038,10 @@
|
||||
"Total general": "Общий итог",
|
||||
"Total ieșiri": "Всего расходов",
|
||||
"Total intrări": "Всего поступлений",
|
||||
"Total manopere:": "Итого работы:",
|
||||
"Total net": "Итого чистыми",
|
||||
"Total paid": "Всего оплачено",
|
||||
"Total piese:": "Итого запчасти:",
|
||||
"Total plătit": "Всего оплачено",
|
||||
"Total rezultate": "Всего результатов",
|
||||
"Total venituri": "Всего доходов",
|
||||
@@ -2178,7 +2188,9 @@
|
||||
"Visa, Mastercard prin Stripe": "Visa, Mastercard prin Stripe",
|
||||
"Vizibil": "Видимо",
|
||||
"Vizitator": "Гость",
|
||||
"Vizite": "Визиты",
|
||||
"Vizual": "Визуально",
|
||||
"Vizualizare dashboard": "Дашборд",
|
||||
"Vizualizează": "Просмотр",
|
||||
"Vizualizări": "Просмотры",
|
||||
"Vopsea sărită": "Скол краски",
|
||||
|
||||
Reference in New Issue
Block a user