feat(vehicle): dedicated photo upload with MediaLibrary + form field
Vehicle model now implements HasMedia + InteractsWithMedia and
registers a 'photos' collection. VehicleResource form gets a
SpatieMediaLibraryFileUpload section (collapsible, max 6 photos,
imageEditor enabled).
Dashboard already checks vehicle->getFirstMediaUrl('photos') first
and falls back to the WO's photos, so uploading here immediately
populates the vehicle card on the dashboard without any view changes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1579,6 +1579,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 poză apare pe dashboard-ul fișei ca imagine principală a mașinii.": "The first photo appears on the work-order dashboard as the vehicle's main image.",
|
||||
"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",
|
||||
|
||||
@@ -1579,6 +1579,7 @@
|
||||
"Prețuri": "Цены",
|
||||
"Prețurile se înregistrează automat la fiecare recepție de PO.": "Цены регистрируются автоматически при каждой приёмке PO.",
|
||||
"Price": "Цена",
|
||||
"Prima poză apare pe dashboard-ul fișei ca imagine principală a mașinii.": "Первое фото отображается на дашборде заказ-наряда как основное изображение автомобиля.",
|
||||
"Prima vizită": "Первый визит",
|
||||
"Primește cereri din canalul Telegram + trimite confirmări automate.": "Получайте заявки из Telegram-канала + отправляйте автоподтверждения.",
|
||||
"Primit": "Входящий",
|
||||
|
||||
Reference in New Issue
Block a user