Enhance JournalsRelationManager actions to clear cache before creating, editing, and deleting journal issues, ensuring data consistency and improved performance.

This commit is contained in:
F4ilji
2025-09-16 13:41:28 +05:00
parent 3b55909906
commit 7c47b36c77
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\AcademicJournalResource\RelationManagers; namespace App\Filament\Resources\AcademicJournalResource\RelationManagers;
use App\Services\App\Cache\AcademicJournalCacheService;
use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\FileUpload;
use Filament\Forms\Components\TextInput; use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle; use Filament\Forms\Components\Toggle;
@@ -119,30 +120,45 @@ class JournalsRelationManager extends RelationManager
->headerActions([ ->headerActions([
Tables\Actions\CreateAction::make() Tables\Actions\CreateAction::make()
->label('Добавить выпуск') ->label('Добавить выпуск')
->modalHeading('Добавление нового выпуска'), ->modalHeading('Добавление нового выпуска')
->before(function () {
app(AcademicJournalCacheService::class)->clearAllCacheByModel();
}),
]) ])
->actions([ ->actions([
Tables\Actions\EditAction::make() Tables\Actions\EditAction::make()
->iconButton() ->iconButton()
->tooltip('Редактировать'), ->tooltip('Редактировать')
->before(function () {
app(AcademicJournalCacheService::class)->clearAllCacheByModel();
}),
Tables\Actions\DeleteAction::make() Tables\Actions\DeleteAction::make()
->iconButton() ->iconButton()
->tooltip('Удалить') ->tooltip('Удалить')
->modalHeading('Удаление выпуска') ->modalHeading('Удаление выпуска')
->modalDescription('Вы уверены, что хотите удалить этот выпуск?'), ->modalDescription('Вы уверены, что хотите удалить этот выпуск?')
->before(function () {
app(AcademicJournalCacheService::class)->clearAllCacheByModel();
}),
]) ])
->bulkActions([ ->bulkActions([
Tables\Actions\BulkActionGroup::make([ Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make() Tables\Actions\DeleteBulkAction::make()
->label('Удалить выбранные') ->label('Удалить выбранные')
->modalHeading('Удаление выпусков') ->modalHeading('Удаление выпусков')
->modalDescription('Вы уверены, что хотите удалить выбранные выпуски?'), ->modalDescription('Вы уверены, что хотите удалить выбранные выпуски?')
->before(function () {
app(AcademicJournalCacheService::class)->clearAllCacheByModel();
}),
]), ]),
]) ])
->emptyStateActions([ ->emptyStateActions([
Tables\Actions\CreateAction::make() Tables\Actions\CreateAction::make()
->label('Добавить выпуск'), ->label('Добавить выпуск')
->before(function () {
app(AcademicJournalCacheService::class)->clearAllCacheByModel();
}),
]) ])
->groups([ ->groups([
Tables\Grouping\Group::make('year_publication') Tables\Grouping\Group::make('year_publication')