Deploy 1: i18n + Notifications + Global Search + Tests
- SetLocale middleware (ro/ru/en, session-first, user-persisted)
- Lang switcher in topbar (Filament render hook USER_MENU_BEFORE)
- POST /locale/{lang} route persists to user.locale + session
- Database notifications enabled on tenant panel (30s polling)
- GlobalSearch (Cmd+K / Ctrl+K) on Client, Vehicle, WorkOrder, Lead, Part
- Tests: TenantIsolation (4), AuthFlow (2), WorkOrderCalc (3), MarkupRule (3)
This commit is contained in:
@@ -24,6 +24,18 @@ Route::get('/', function () {
|
||||
return redirect('/admin');
|
||||
});
|
||||
|
||||
// Locale switch — POST /locale/{lang} sets session and persists to user.
|
||||
Route::post('/locale/{lang}', function (Request $request, string $lang) {
|
||||
if (! in_array($lang, ['ro', 'ru', 'en'], true)) {
|
||||
abort(404);
|
||||
}
|
||||
$request->session()->put('locale', $lang);
|
||||
if ($u = $request->user()) {
|
||||
$u->forceFill(['locale' => $lang])->saveQuietly();
|
||||
}
|
||||
return back();
|
||||
})->name('locale.switch');
|
||||
|
||||
// PWA — manifest dinamic per tenant.
|
||||
Route::get('/manifest.json', function (Request $request) {
|
||||
$tenant = app(TenantManager::class)->current();
|
||||
|
||||
Reference in New Issue
Block a user