Enhance AuditLogResource by adding getNavigationItems method to categorize navigation items under the System group. Remove unused Auth facade import in AppServiceProvider and clean up navigation group assignment in AdminPanelProvider for improved clarity and organization.
This commit is contained in:
@@ -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<NavigationItem>
|
||||
*/
|
||||
public static function getNavigationItems(): array
|
||||
{
|
||||
return array_map(
|
||||
fn (NavigationItem $item): NavigationItem => $item->group(NavigationGroup::System),
|
||||
parent::getNavigationItems(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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([
|
||||
|
||||
37
tests/Feature/Filament/AuditLogNavigationTest.php
Normal file
37
tests/Feature/Filament/AuditLogNavigationTest.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Filament\Facades\Filament;
|
||||
use Filament\Navigation\NavigationManager;
|
||||
|
||||
it('shows audit log only once in the system navigation group', function (): void {
|
||||
$admin = createAdminUser(['locale' => '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);
|
||||
});
|
||||
Reference in New Issue
Block a user