diff --git a/app/Filament/ActivityTimeline/AuditLogResource.php b/app/Filament/ActivityTimeline/AuditLogResource.php index fd78bcf..5b9a7ca 100644 --- a/app/Filament/ActivityTimeline/AuditLogResource.php +++ b/app/Filament/ActivityTimeline/AuditLogResource.php @@ -4,8 +4,10 @@ declare(strict_types=1); namespace App\Filament\ActivityTimeline; +use App\Enums\NavigationGroup; use App\Filament\Concerns\HasHrResourceLabels; use BokshornIt\FilamentActivityTimeline\Resources\ActivityResource; +use Filament\Navigation\NavigationItem; class AuditLogResource extends ActivityResource { @@ -21,4 +23,15 @@ class AuditLogResource extends ActivityResource 'navigation' => 'audit_log', ]; } + + /** + * @return array + */ + public static function getNavigationItems(): array + { + return array_map( + fn (NavigationItem $item): NavigationItem => $item->group(NavigationGroup::System), + parent::getNavigationItems(), + ); + } } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index f4e1d06..79224fc 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -38,7 +38,6 @@ use App\Policies\UserPolicy; use App\Policies\VacationPolicy; use BezhanSalleh\LanguageSwitch\Events\LocaleChanged; use BezhanSalleh\LanguageSwitch\LanguageSwitch; -use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Gate; use Illuminate\Support\ServiceProvider; diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 93e7a53..d2971fa 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -63,7 +63,6 @@ class AdminPanelProvider extends PanelProvider ->navigationGroup(NavigationGroupEnum::System), ActivityTimelinePlugin::make() ->resource(AuditLogResource::class) - ->navigationGroup(fn (): string => NavigationGroupEnum::System->getLabel()) ->navigationIcon('heroicon-o-clipboard-document-list') ->navigationSort(3) ->causerIcons([ diff --git a/tests/Feature/Filament/AuditLogNavigationTest.php b/tests/Feature/Filament/AuditLogNavigationTest.php new file mode 100644 index 0000000..ed50540 --- /dev/null +++ b/tests/Feature/Filament/AuditLogNavigationTest.php @@ -0,0 +1,37 @@ + 'tk']); + + $this->actingAs($admin); + app()->setLocale('tk'); + Filament::setCurrentPanel(Filament::getPanel('admin')); + + $response = $this->get('/admin'); + $response->assertSuccessful(); + + $auditLabel = 'Audit žurnaly'; + $occurrences = substr_count($response->getContent(), $auditLabel); + + $nm = app(NavigationManager::class); + $nav = $nm->get(); + + $systemGroups = collect($nav)->filter( + fn ($group): bool => $group->getLabel() === __('hr.navigation.system'), + ); + + $auditNavItems = $systemGroups->flatMap( + fn ($group) => $group->getItems()->filter( + fn ($item): bool => $item->getLabel() === $auditLabel, + ), + ); + + expect($occurrences)->toBe(1) + ->and($systemGroups->count())->toBe(1) + ->and($auditNavItems->count())->toBe(1); +});