Refactor: Implement Filament actions for study group edit and delete, including permission-based visibility and updated button styling.
This commit is contained in:
parent
3bb9fa4fa1
commit
299bb34236
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Filament\Actions\Cheerful\DeleteAction;
|
||||
use App\Models\StudyGroup;
|
||||
use Filament\Support\Icons\Heroicon;
|
||||
|
||||
class DeleteStudyGroupAction extends DeleteAction
|
||||
{
|
||||
@ -16,7 +17,12 @@ protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->record(fn (array $arguments): StudyGroup => StudyGroup::findOrFail($arguments['record']))
|
||||
$this->record(fn (array $arguments): StudyGroup => StudyGroup::findOrFail($arguments['studyGroup']))
|
||||
->label('Hapus')
|
||||
->icon(Heroicon::OutlinedTrash)
|
||||
->color('danger')
|
||||
->iconButton()
|
||||
->tooltip('Hapus')
|
||||
->modalHeading(fn (StudyGroup $record) => "Hapus {$record->name}")
|
||||
->modalDescription('Apakah Anda yakin ingin menghapus kelompok ini? Tindakan ini tidak dapat dibatalkan.')
|
||||
->modalSubmitActionLabel('Hapus')
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
use App\Filament\Actions\Cheerful\EditAction;
|
||||
use App\Models\StudyGroup;
|
||||
use Filament\Support\Enums\Width;
|
||||
use Filament\Support\Icons\Heroicon;
|
||||
|
||||
class EditStudyGroupAction extends EditAction
|
||||
{
|
||||
@ -17,7 +18,13 @@ protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->record(fn (array $arguments): StudyGroup => StudyGroup::findOrFail($arguments['record']))
|
||||
$this
|
||||
->label('Ubah')
|
||||
->icon(Heroicon::OutlinedPencilSquare)
|
||||
->color('warning')
|
||||
->iconButton()
|
||||
->tooltip('Ubah')
|
||||
->record(fn (array $arguments): StudyGroup => StudyGroup::findOrFail($arguments['studyGroup']))
|
||||
->modalHeading(fn (StudyGroup $record) => "Ubah {$record->name}")
|
||||
->modalSubmitActionLabel('Simpan')
|
||||
->modalCancelActionLabel('Batal')
|
||||
|
||||
@ -89,13 +89,13 @@ protected function getHeaderActions(): array
|
||||
];
|
||||
}
|
||||
|
||||
protected function editStudyGroupAction(): Action
|
||||
public function editStudyGroupAction(): Action
|
||||
{
|
||||
return EditStudyGroupAction::make()
|
||||
->visible(fn () => auth()->user()->can('Update:StudyGroup'));
|
||||
}
|
||||
|
||||
protected function deleteStudyGroupAction(): Action
|
||||
public function deleteStudyGroupAction(): Action
|
||||
{
|
||||
return DeleteStudyGroupAction::make()
|
||||
->visible(fn () => auth()->user()->can('Delete:StudyGroup'));
|
||||
|
||||
@ -131,22 +131,16 @@ class="text-[10px] font-bold px-1.5 py-0.5 rounded bg-violet-50 dark:bg-violet-5
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div @class([
|
||||
'flex items-center justify-end gap-2 p-4 pt-0 rounded-b-xl',
|
||||
'bg-primary-100/30 dark:bg-primary-900/10 pt-4' => $isMyGroup,
|
||||
])>
|
||||
<x-filament::button size="xs" color="warning" tooltip="Ubah" variant="primary"
|
||||
class="rounded-lg shadow-sm"
|
||||
wire:click="mountAction('editStudyGroup', { record: {{ $record->id }} })">
|
||||
<x-heroicon-m-pencil-square class="w-4 h-4" />
|
||||
</x-filament::button>
|
||||
@canAny(['Update:StudyGroup', 'Delete:StudyGroup'])
|
||||
<div @class([
|
||||
'flex items-center justify-end gap-2 p-4 pt-0 rounded-b-xl',
|
||||
'bg-primary-100/30 dark:bg-primary-900/10 pt-4' => $isMyGroup,
|
||||
])>
|
||||
{{ ($this->editStudyGroupAction)(['studyGroup' => $record->id]) }}
|
||||
|
||||
<x-filament::button size="xs" color="danger" tooltip="Hapus"
|
||||
class="rounded-lg shadow-sm"
|
||||
wire:click="mountAction('deleteStudyGroup', { record: {{ $record->id }} })">
|
||||
<x-heroicon-m-trash class="w-4 h-4" />
|
||||
</x-filament::button>
|
||||
</div>
|
||||
{{ ($this->deleteStudyGroupAction)(['studyGroup' => $record->id]) }}
|
||||
</div>
|
||||
@endcanAny
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
Loading…
Reference in New Issue
Block a user