@extends('layouts.admin') @section('title', 'Application Settings') @section('header_title', 'Application Settings') @section('content')
@if (session('success')) @endif @if (session('error')) @endif
@csrf @method('PUT')
@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)
{{ $originalGroupName }}
@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
@push('scripts') @endpush @endsection