feat(tasks): complete task management system with Kanban, Calendar, notifications
- Add Task model with subtasks, priorities, status transitions, dates, hours - Add Comment polymorphic model for tasks/issues/projects - Livewire components: TaskManager (list+filters), TaskForm (modal), TaskDetail, TaskKanban (drag&drop), TaskCalendar (FullCalendar) - TaskPolicy with permissions (view/create/edit/delete/assign/manage all) - Notifications: assigned, status change, overdue, comment added - Daily overdue notification job scheduled - Dashboard widget unifies IssueTask + Task - i18n: en/es/fr/ru (393 keys each) - Routes, navigation, offline sync support - 101 tests passing, Pint compliant on new files
This commit is contained in:
@@ -16,11 +16,12 @@ class SetLocale
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
$locale = null;
|
||||
$allowedLocales = ['en', 'es', 'fr', 'ru'];
|
||||
|
||||
// 1. From authenticated user preference
|
||||
if (Auth::check()) {
|
||||
$userLocale = Auth::user()->locale;
|
||||
if ($userLocale && in_array($userLocale, ['en', 'es'])) {
|
||||
if ($userLocale && in_array($userLocale, $allowedLocales)) {
|
||||
$locale = $userLocale;
|
||||
}
|
||||
}
|
||||
@@ -28,7 +29,7 @@ class SetLocale
|
||||
// 2. From session
|
||||
if (!$locale && Session::has('locale')) {
|
||||
$sessionLocale = Session::get('locale');
|
||||
if (in_array($sessionLocale, ['en', 'es'])) {
|
||||
if (in_array($sessionLocale, $allowedLocales)) {
|
||||
$locale = $sessionLocale;
|
||||
}
|
||||
}
|
||||
@@ -36,14 +37,14 @@ class SetLocale
|
||||
// 3. From browser Accept-Language
|
||||
if (!$locale) {
|
||||
$browserLang = substr($request->server('HTTP_ACCEPT_LANGUAGE', 'en'), 0, 2);
|
||||
if (in_array($browserLang, ['en', 'es'])) {
|
||||
if (in_array($browserLang, $allowedLocales)) {
|
||||
$locale = $browserLang;
|
||||
}
|
||||
}
|
||||
|
||||
// 4. Default to app locale
|
||||
if (!$locale) {
|
||||
$locale = config('app.locale', 'es');
|
||||
$locale = config('app.locale', 'en');
|
||||
}
|
||||
|
||||
App::setLocale($locale);
|
||||
|
||||
Reference in New Issue
Block a user