@if($applicationSettingNavItems->isNotEmpty())
{{-- Admin Role Permissions Sub-Tab Content --}}
@if(Auth::user()->isSuperAdmin() && $applicationSettingNavItems->has('permissions'))
Admin Role Permissions for Setting Groups
Manage 'Admin' role access to all setting groups (Application & Modules).
@if(empty($adminSettingPermissions))
No setting groups found to manage permissions for.
@else
@foreach($adminSettingPermissions as $originalGroupName => $permissions)
@endforeach
@endif
@endif
{{-- Individual Application Setting Group Sub-Tab Content --}}
@foreach ($applicationSettings as $groupName => $settingsGroupedBySubGroup)
{{-- Reduced space-y for tighter sub-group cards --}}
@include('admin.settings.partials.settings-group-card', [
'groupDisplayName' => $groupName,
'originalGroupName' => $groupName,
'settingsGroupedBySubGroup' => $settingsGroupedBySubGroup, // Pass the sub-grouped settings
'groupDescription' => $groupDescriptions[$groupName] ?? 'Manage ' . strtolower($groupName) . ' settings.',
'canEditGroup' => Auth::user()->isSuperAdmin() || (Auth::user()->hasRole('admin') && \App\Models\SettingGroupPermission::where('role_name', 'admin')->where('setting_group_name', $groupName)->where('can_edit', true)->exists())
])
{{-- Test Mail Section - Placed within Mail Settings Sub-Tab --}}
@if(Str::slug($groupName) === 'mail-settings')
@php
$canViewMailSettings = Auth::user()->isSuperAdmin() || (Auth::user()->hasRole('admin') && \App\Models\SettingGroupPermission::where('role_name', 'admin')->where('setting_group_name', 'Mail Settings')->where('can_view', true)->exists());
@endphp
@if($canViewMailSettings)
Test Mail Configuration
Send a test email to your logged-in email address ({{ Auth::user()->email }}) to verify mail settings.
@endif
@endif
@endforeach
@elseif(Auth::user()->isSuperAdmin() && empty($adminSettingPermissions) && $applicationSettings->isEmpty())
No application settings available or you do not have permission to view them.
@else
No application settings groups are available for you to view or manage.
@endif
@foreach($moduleSettings as $moduleDisplayName => $groupsInModule)
@if($groupsInModule->isEmpty())
No setting groups available for the {{ $moduleDisplayName }} module or you do not have permission to view them.
@else
@foreach ($groupsInModule as $groupNameInModule => $settingsInGroup)
@php
// Reconstruct the original group name for permission checking
// This assumes module keys are simple strings without '::'
// If module keys can contain '::', this logic needs adjustment or a direct mapping from controller.
$moduleInstance = \Nwidart\Modules\Facades\Module::findBy('display_name', $moduleDisplayName);
$moduleKey = $moduleInstance ? $moduleInstance->getName() : Str::slug($moduleDisplayName, '_'); // Fallback to slug if not found
$originalGroupNameForPerms = $moduleKey . '::' . $groupNameInModule;
@endphp
@include('admin.settings.partials.settings-group-card', [
'groupDisplayName' => $groupNameInModule, // Display name for the card header within the module tab
'originalGroupName' => $originalGroupNameForPerms, // The actual group key for permissions
'settingsGroupedBySubGroup' => $settingsInGroup, // This is already sub-grouped from controller
'groupDescription' => $groupDescriptions[$originalGroupNameForPerms] ?? 'Manage ' . strtolower($groupNameInModule) . ' settings for ' . $moduleDisplayName . '.',
'canEditGroup' => Auth::user()->isSuperAdmin() || (Auth::user()->hasRole('admin') && \App\Models\SettingGroupPermission::where('role_name', 'admin')->where('setting_group_name', $originalGroupNameForPerms)->where('can_edit', true)->exists())
])
@endforeach
@endif
@endforeach