feat(hints): scale coverage — 11 new registry entries + inject across pages
Registry grows from 14 → 25 hints. New entries: - wo.dashboard.topbar_actions / meta / tabs / history / finance / timeline / bottom - wo.create.overview - crm.clients.overview / vehicles.overview - finante.dashboard.stats / expenses.overview "?" icons injected into: - WO dashboard: top-bar actions, meta header, tabs bar, history card, finance card, timeline card, bottom action bar (in addition to the existing dashboard title, PDF preview, chat) - CalendarBoard: title - PipelineBoard: title - Excel import wizard: step 1 - Main tenant dashboard (via PanelsRenderHook::PAGE_START scoped to Dashboard::class): small banner with a "?" and a shortcut to the FAQ page for users who don't see the icons Users now see hint icons on the primary daily-use screens; more can be added by dropping <x-hint key="..." /> anywhere. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,165 @@ class Hints
|
||||
'en' => 'Each WO has a unique public token. "Tracking link" opens the customer-facing page you can send via SMS/WhatsApp/Telegram — status, ETA, photos.',
|
||||
],
|
||||
],
|
||||
'wo.dashboard.topbar_actions' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
'ro' => 'Butoane rapide (top)',
|
||||
'ru' => 'Быстрые кнопки (верх)',
|
||||
'en' => 'Top-bar quick actions',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => '„Listă" — înapoi la toate fișele. „+ Nou" — creează una nouă (după save aterizezi tot pe dashboard). „Editare completă" — deschide formularul detaliat cu toate câmpurile. „Link tracking" — pagina publică pentru client.',
|
||||
'ru' => '«Список» — все заказы. «+ Новый» — создать (после сохранения снова дашборд). «Полное редактирование» — детальная форма. «Ссылка отслеживания» — публичная страница для клиента.',
|
||||
'en' => '"Listă" — back to all WOs. "+ Nou" — create a new one. "Editare completă" — full detail form. "Link tracking" — customer-facing public page.',
|
||||
],
|
||||
],
|
||||
'wo.dashboard.meta' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
'ro' => 'Meta-antet (Data / ETA / Responsabil / Urgență)',
|
||||
'ru' => 'Мета-шапка (даты / ETA / мастер / срочность)',
|
||||
'en' => 'Meta header (dates / ETA / master / urgency)',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Rezumat rapid al fișei. „Data creării" = când s-a introdus în sistem; „Deschis" = când s-a început efectiv lucrul; „ETA" = când promitem clientului. „Responsabil" = maistrul principal. „Urgență" influențează sortarea în calendar.',
|
||||
'ru' => 'Быстрый обзор заказа. «Дата создания» — когда завели, «Открыт» — когда начали работать, «ETA» — обещанное клиенту время, «Ответственный» — главный мастер, «Срочность» влияет на сортировку.',
|
||||
'en' => 'Quick snapshot: "Data creării" = when created; "Deschis" = actual work start; "ETA" = promised to client; "Responsabil" = primary master; "Urgență" affects calendar sort.',
|
||||
],
|
||||
],
|
||||
'wo.dashboard.tabs' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
'ro' => 'Taburi (Lucrări/Piese/Diag/Foto/Doc/Note)',
|
||||
'ru' => 'Табы (Работы/Запчасти/Диаг./Фото/Док./Заметки)',
|
||||
'en' => 'Tabs (Works/Parts/Diag/Photos/Docs/Notes)',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => '„Lucrări" = manoperele efectuate. „Piese" = piesele consumate. „Diagnostic" = plângere client + concluzia mecanicului. „Foto" = poze de la lucrare. „Documente" = factura PDF + acte semnate. „Note" = observații interne, nu se văd de client.',
|
||||
'ru' => '«Работы» — выполненные работы. «Запчасти» — использованные. «Диагностика» — жалоба клиента + заключение мастера. «Фото» — фотки. «Документы» — счёт + подписанные акты. «Заметки» — внутренние, клиент не видит.',
|
||||
'en' => '"Works" = labor. "Parts" = consumed. "Diagnostic" = client complaint + master\'s conclusion. "Photos" = shoot from the job. "Docs" = invoice + signed papers. "Notes" = internal, not visible to client.',
|
||||
],
|
||||
],
|
||||
'wo.dashboard.history' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
'ro' => 'Istoric reparații (mașină)',
|
||||
'ru' => 'История ремонтов (авто)',
|
||||
'en' => 'Repair history (vehicle)',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Ultimele 5 fișe pentru această mașină. Click deschide dashboard-ul acelei fișe. Util să vezi ce s-a mai făcut înainte — evită sugestia dublă de lucrări.',
|
||||
'ru' => 'Последние 5 заказов по этому авто. Клик — открыть тот заказ. Полезно проверить, что уже делали, чтобы не предлагать повторно.',
|
||||
'en' => 'Last 5 WOs for this vehicle. Click opens that WO\'s dashboard. Handy to see prior work and avoid recommending duplicates.',
|
||||
],
|
||||
],
|
||||
'wo.dashboard.finance' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
'ro' => 'Panou Finanțe (dreapta)',
|
||||
'ru' => 'Панель финансов (справа)',
|
||||
'en' => 'Finance panel (right)',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Cost manopere + Cost piese = Subtotal. − Discount = Total. Plătit = suma încasată deja (din plăți). Sold = ce mai rămâne de plătit. Totul se recalculează automat când adaugi ceva.',
|
||||
'ru' => 'Стоимость работ + Стоимость запчастей = Промежуточный. − Скидка = Итого. «Оплачено» — уже внесено. «Остаток» — сколько ещё должен. Всё пересчитывается автоматом.',
|
||||
'en' => 'Labor + Parts = Subtotal. − Discount = Total. "Paid" = collected so far. "Balance" = still owed. Recomputes automatically.',
|
||||
],
|
||||
],
|
||||
'wo.dashboard.timeline' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
'ro' => 'Timeline evenimente',
|
||||
'ru' => 'Лента событий',
|
||||
'en' => 'Event timeline',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Cronologie automată: creare, deschidere, aprobare client, plăți primite, închidere, notificări trimise. Se agregă din câmpurile fișei + jurnalul de activitate. Util pentru audit.',
|
||||
'ru' => 'Автохронология: создание, открытие, подтверждение клиента, оплаты, закрытие, отправки уведомлений. Собирается из полей + журнала. Полезно для аудита.',
|
||||
'en' => 'Auto chronology: created, opened, approved, payments, closed, notifications sent. Aggregated from WO fields + activity log. Great for audit.',
|
||||
],
|
||||
],
|
||||
'wo.dashboard.bottom' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
'ro' => 'Bara de jos (Prev/Next/Repetă/Închide)',
|
||||
'ru' => 'Нижняя панель (Пред./След./Повтор/Закрыть)',
|
||||
'en' => 'Bottom bar (Prev/Next/Repeat/Close)',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Navighează rapid între fișe cu ← Precedent / Următor →. „Comandă repetată" creează o fișă nouă pre-populată cu același client + mașină. „Închide fișă" o marchează ca finalizată (status → done).',
|
||||
'ru' => 'Быстрое переключение ← Пред. / След. →. «Повторный заказ» создаёт новый с теми же клиентом+авто. «Закрыть заказ» помечает как выполненный.',
|
||||
'en' => 'Quick nav ← Prev / Next →. "Repeat order" creates a new WO pre-filled with same client + vehicle. "Close WO" marks it done.',
|
||||
],
|
||||
],
|
||||
'wo.create.overview' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
'ro' => 'Fișă nouă — pași minimali',
|
||||
'ru' => 'Новый заказ — минимальные шаги',
|
||||
'en' => 'New WO — minimum steps',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Obligatoriu: Client, Mașină, Data deschiderii. Numărul se generează automat (WO-{tenant}-{an}-{seq}). Poți adăuga direct un client nou / mașină nouă din meniul dropdown al câmpului. După save aterizezi pe dashboard.',
|
||||
'ru' => 'Обязательно: клиент, авто, дата открытия. Номер — авто. Клиента/авто можно добавить прямо из выпадашки. После сохранения — дашборд.',
|
||||
'en' => 'Required: Client, Vehicle, Opened at. Number is auto-generated. You can add a client/vehicle inline from the dropdown. After save you land on the dashboard.',
|
||||
],
|
||||
],
|
||||
|
||||
'crm.clients.overview' => [
|
||||
'area' => 'crm',
|
||||
'title' => [
|
||||
'ro' => 'Clienți — baza de date',
|
||||
'ru' => 'Клиенты — база',
|
||||
'en' => 'Clients database',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Fiecare client are: nume, telefon, email, adresă, sursă (de unde ne-a găsit), notițe. Poți lega un cont Telegram — atunci mesajele merg automat pe Telegram. „Datorii" arată totalul restant din toate fișele deschise.',
|
||||
'ru' => 'У клиента: имя, телефон, email, адрес, источник, заметки. Можно привязать Telegram — тогда сообщения уходят в него. «Долг» — сумма непогашенных заказов.',
|
||||
'en' => 'Each client: name, phone, email, address, source, notes. You can link a Telegram account so messages route there. "Debt" totals unpaid WOs.',
|
||||
],
|
||||
],
|
||||
'crm.vehicles.overview' => [
|
||||
'area' => 'crm',
|
||||
'title' => [
|
||||
'ro' => 'Automobile — istoricul mașinilor',
|
||||
'ru' => 'Автомобили — история',
|
||||
'en' => 'Vehicles — history',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Fiecare mașină aparține unui client și are: marca, model, an, VIN, plăcuță, motor, kilometraj. „Decode VIN" (buton pe tabelul mașinilor) folosește AI pentru a completa datele tehnice din VIN. Poți încărca poze pe mașină — prima apare pe dashboard fișă.',
|
||||
'ru' => 'У авто: марка, модель, год, VIN, номер, двигатель, пробег. «Decode VIN» — AI-заполнение по VIN. Фото на авто — первое показывается на дашборде заказа.',
|
||||
'en' => 'Each vehicle belongs to a client: make, model, year, VIN, plate, engine, mileage. "Decode VIN" (table action) uses AI to fill technical fields. Vehicle photos — first one shows on the WO dashboard.',
|
||||
],
|
||||
],
|
||||
|
||||
'finante.dashboard.stats' => [
|
||||
'area' => 'finante',
|
||||
'title' => [
|
||||
'ro' => 'Widget-uri dashboard (numere)',
|
||||
'ru' => 'Виджеты дашборда (числа)',
|
||||
'en' => 'Dashboard widgets (numbers)',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Fiecare card e clicabil și duce la pagina relevantă cu filtrele setate. Ex: „Fișe în lucru" → lista filtrată pe status=in_work. „Datorii clienți" → fișe cu pay_status=unpaid. Cardurile se recalculează automat la fiecare vizită.',
|
||||
'ru' => 'Каждая карточка кликабельна и ведёт на страницу с настроенным фильтром. «Заказы в работе» → список по статусу in_work. «Долги» → неоплаченные. Пересчёт при каждом заходе.',
|
||||
'en' => 'Each stat card is clickable and jumps to the relevant page with filters applied. E.g. "Fișe în lucru" → list filtered by status=in_work. Recomputed on every visit.',
|
||||
],
|
||||
],
|
||||
'finante.expenses.overview' => [
|
||||
'area' => 'finante',
|
||||
'title' => [
|
||||
'ro' => 'Cheltuieli — flux de bani ieșit',
|
||||
'ru' => 'Расходы — исходящий поток',
|
||||
'en' => 'Expenses — money out',
|
||||
],
|
||||
'body' => [
|
||||
'ro' => 'Categorie (chirie/utilități/piese/salarii/altele), sumă, dată, poza chitanței. Cheltuielile aici scad din profit (Dashboard → „Profit (luna)"). Distinct de „Achiziții" (piese pentru stoc care se recuperează la vânzare).',
|
||||
'ru' => 'Категория (аренда/коммунальные/запчасти/зарплата/др.), сумма, дата, фото чека. Уменьшают прибыль. Отличается от «Закупки» (запчасти в склад).',
|
||||
'en' => 'Category (rent/utilities/parts/salary/other), amount, date, receipt photo. Deducts from profit. Distinct from "Achiziții" (parts stocked to warehouse).',
|
||||
],
|
||||
],
|
||||
|
||||
'wo.dashboard.chat' => [
|
||||
'area' => 'service',
|
||||
'title' => [
|
||||
|
||||
Reference in New Issue
Block a user