@php $isRtl = app()->getLocale() === 'ar'; $currentLocale = app()->getLocale(); $authUser = auth()->user(); $profileWallet = $authUser?->wallet; $profileWalletCurrency = strtoupper((string) ($profileWallet?->currency_code ?: env('WALLET_DEFAULT_CURRENCY', 'USD'))); $profileWalletAvailable = (float) ($profileWallet?->available_balance ?? 0); $profileWalletReserved = (float) ($profileWallet?->reserved_balance ?? 0); $localeOptions = [ 'ar' => ['flag' => '🇸🇾', 'label' => 'العربية', 'country' => 'SY'], 'en' => ['flag' => '🇺🇸', 'label' => 'English', 'country' => 'US'], 'tr' => ['flag' => '🇹🇷', 'label' => 'Türkçe', 'country' => 'TR'], ]; $activeLocale = $localeOptions[$currentLocale] ?? $localeOptions['ar']; $sidebarPosition = $isRtl ? 'right-0' : 'left-0'; $settingsTab = request()->string('tab')->toString(); if (! in_array($settingsTab, ['general', 'public', 'pricing', 'wallets', 'requests', 'security', 'notifications', 'logs', 'backup'], true)) { $settingsTab = 'general'; } $mainItems = []; if (auth()->user()?->can('view_dashboard')) { $mainItems[] = ['route' => 'admin.dashboard', 'active' => 'admin.dashboard', 'label' => __('messages.dashboard')]; } $stolenAssetsItems = []; if (auth()->user()?->canAny(['view_internet_devices', 'view_stolen_devices'])) { $stolenAssetsItems[] = ['route' => 'admin.stolen-devices.index', 'active' => 'admin.stolen-devices.*', 'label' => __('messages.internet_devices')]; } if (auth()->user()?->canAny(['view_mobile_phones', 'view_stolen_devices'])) { $stolenAssetsItems[] = ['route' => 'admin.mobile-phones.index', 'active' => 'admin.mobile-phones.*', 'label' => __('messages.mobile_phones')]; } if (auth()->user()?->canAny(['view_vehicles', 'view_stolen_devices'])) { $stolenAssetsItems[] = ['route' => 'admin.vehicles.index', 'active' => 'admin.vehicles.*', 'label' => __('messages.vehicles_motorcycles')]; } $userManagementItems = []; if (auth()->user()?->canAny(['view_admin_users', 'manage_admin_users'])) { $userManagementItems[] = ['route' => 'admin.admin-users.index', 'active' => 'admin.admin-users.*', 'label' => __('messages.admin_users')]; } if (auth()->user()?->canAny(['view_roles_permissions', 'manage_roles_permissions'])) { $userManagementItems[] = ['route' => 'admin.roles-permissions.index', 'active' => 'admin.roles-permissions.*', 'label' => __('messages.roles_permissions')]; } $hasStolenAssetsAccess = count($stolenAssetsItems) > 0; $isStolenAssetsOpen = request()->routeIs('admin.stolen-devices.*') || request()->routeIs('admin.mobile-phones.*') || request()->routeIs('admin.vehicles.*'); $hasUserManagementAccess = count($userManagementItems) > 0; $isUserManagementOpen = request()->routeIs('admin.admin-users.*') || request()->routeIs('admin.roles-permissions.*'); $canViewSettingsGeneral = auth()->user()?->canAny(['view_settings', 'manage_settings', 'update_settings', 'view_settings_general', 'manage_settings_general']) ?? false; $canViewSettingsPublic = auth()->user()?->canAny(['view_settings', 'manage_settings', 'update_settings', 'view_settings_public_site', 'manage_settings_public_site']) ?? false; $canViewSettingsPricing = auth()->user()?->canAny(['view_settings_pricing', 'manage_settings_pricing', 'manage_pricing_settings']) ?? false; $canViewSettingsWallets = auth()->user()?->canAny(['view_settings_wallets', 'manage_settings_wallets']) ?? false; $canViewSettingsRequests = auth()->user()?->canAny(['view_settings_requests', 'manage_settings_requests']) ?? false; $canViewSettingsSecurity = auth()->user()?->canAny(['view_settings_security', 'manage_settings_security', 'view_system_maintenance', 'manage_system_maintenance']) ?? false; $canViewSettingsNotifications = auth()->user()?->canAny(['view_settings_notifications', 'manage_settings_notifications']) ?? false; $canViewSettingsLogs = auth()->user()?->canAny(['view_settings_logs', 'manage_settings_logs', 'view_settings_audit_log', 'view_configuration_history']) ?? false; $canViewBackupCenter = auth()->user()?->canAny(['view_backup_center', 'create_manual_backup', 'manage_backup_schedule', 'view_backup_logs', 'view_google_drive_settings', 'view_restore_center']) ?? false; $settingsItems = []; if ($canViewSettingsGeneral) { $settingsItems[] = ['tab' => 'general', 'label' => __('messages.settings_tab_general')]; } if ($canViewSettingsPublic) { $settingsItems[] = ['tab' => 'public', 'label' => __('messages.settings_tab_public_site')]; } if ($canViewSettingsPricing) { $settingsItems[] = ['tab' => 'pricing', 'label' => __('messages.settings_tab_pricing')]; } if ($canViewSettingsWallets) { $settingsItems[] = ['tab' => 'wallets', 'label' => __('messages.settings_tab_wallets')]; } if ($canViewSettingsRequests) { $settingsItems[] = ['tab' => 'requests', 'label' => __('messages.settings_tab_requests')]; } if ($canViewSettingsSecurity) { $settingsItems[] = ['tab' => 'security', 'label' => __('messages.settings_tab_security')]; } if ($canViewSettingsNotifications) { $settingsItems[] = ['tab' => 'notifications', 'label' => __('messages.settings_tab_notifications')]; } if ($canViewSettingsLogs) { $settingsItems[] = ['tab' => 'logs', 'label' => __('messages.settings_tab_logs')]; } if ($canViewBackupCenter) { $settingsItems[] = ['tab' => 'backup', 'label' => __('messages.settings_tab_backup')]; } $hasSettingsAccess = count($settingsItems) > 0; $isSettingsOpen = request()->routeIs('admin.settings-center.*') || request()->routeIs('admin.settings.*'); $canViewAuditLogs = auth()->user()?->can('view_audit_logs'); $canViewSightingReports = auth()->user()?->can('view_sighting_reports'); $canViewSubmissionRequests = auth()->user()?->canAny(['review_stolen_submissions', 'review_internet_devices', 'review_mobile_phones', 'review_vehicles', 'review_record_requests', 'view_record_requests_all']); $canViewMyRequests = auth()->user()?->canAny(['view_record_requests_self', 'view_record_requests_all']) ?? false; $canViewMyWallet = auth()->user()?->can('view_wallet_self') ?? false; $canManageWallets = auth()->user()?->canAny(['view_all_wallets', 'topup_managers_wallet', 'adjust_wallet_balance']) ?? false; $canManagePricing = auth()->user()?->can('manage_pricing_settings') ?? false; $financialItems = []; if ($canViewMyWallet) { $financialItems[] = ['route' => 'admin.wallet.my', 'active' => 'admin.wallet.my', 'label' => __('messages.my_wallet')]; } if ($canManageWallets) { $financialItems[] = ['route' => 'admin.wallets.index', 'active' => 'admin.wallets.*', 'label' => __('messages.managers_wallets')]; } if ($canManagePricing) { $financialItems[] = ['route' => 'admin.pricing.edit', 'active' => 'admin.pricing.*', 'label' => __('messages.pricing_settings_title')]; } $hasFinancialAccess = count($financialItems) > 0; $isFinancialOpen = request()->routeIs('admin.wallet.my') || request()->routeIs('admin.wallets.*') || request()->routeIs('admin.pricing.*'); $requestReportsItems = []; if ($canViewMyRequests) { $requestReportsItems[] = ['route' => 'admin.requests.my.index', 'active' => 'admin.requests.my.*', 'label' => __('messages.my_requests')]; $requestReportsItems[] = ['route' => 'admin.requests.rejected.index', 'active' => 'admin.requests.rejected.*', 'label' => __('messages.rejected_requests')]; } if ($canViewSubmissionRequests) { $requestReportsItems[] = ['route' => 'admin.submission-requests.index', 'active' => 'admin.submission-requests.*', 'label' => __('messages.submission_requests')]; } if ($canViewSightingReports) { $requestReportsItems[] = ['route' => 'admin.sighting-reports.index', 'active' => 'admin.sighting-reports.*', 'label' => __('messages.sighting_reports')]; } $hasRequestReportsAccess = count($requestReportsItems) > 0; $isRequestReportsOpen = request()->routeIs('admin.requests.my.*') || request()->routeIs('admin.requests.rejected.*') || request()->routeIs('admin.submission-requests.*') || request()->routeIs('admin.sighting-reports.*'); $canViewTrash = auth()->user()?->canAny(['view_trash', 'view_trash_stolen_devices', 'view_trash_admin_users']) ?? false; $trashCount = 0; if ($canViewTrash && auth()->check()) { $viewerId = auth()->id(); $canViewDeletedByOthers = auth()->user()?->can('view_deleted_by_others') ?? false; $canViewStolenTrash = auth()->user()?->canAny(['view_trash', 'view_trash_stolen_devices']) ?? false; if ($canViewStolenTrash) { $internetTrash = \App\Models\StolenDevice::query()->onlyTrashed(); $mobileTrash = \App\Models\StolenMobilePhone::query()->onlyTrashed(); $vehicleTrash = \App\Models\StolenVehicle::query()->onlyTrashed(); if (! $canViewDeletedByOthers) { $internetTrash->where('created_by', $viewerId); $mobileTrash->where('created_by', $viewerId); $vehicleTrash->where('created_by', $viewerId); } $trashCount += (int) $internetTrash->count(); $trashCount += (int) $mobileTrash->count(); $trashCount += (int) $vehicleTrash->count(); } $canViewUsersTrash = auth()->user()?->canAny(['view_trash', 'view_trash_admin_users']) ?? false; if ($canViewUsersTrash && \Illuminate\Support\Facades\Schema::hasColumn('users', 'deleted_at')) { $usersTrash = \App\Models\User::query()->onlyTrashed(); if (! $canViewDeletedByOthers) { $usersTrash->where('deleted_by', $viewerId); } $trashCount += (int) $usersTrash->count(); } } @endphp