feat: add EditReportAction for editing reports with enhanced form fields and visibility logic
This commit is contained in:
parent
a08a23ae25
commit
59f5f87dad
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources\Manage\Cooperations\Actions\Report;
|
||||
|
||||
use App\Enums\ApprovalStatus;
|
||||
use App\Enums\RoleEnum;
|
||||
use App\Filament\Actions\Cheerful\EditAction;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use App\Models\Report;
|
||||
use Filament\Forms\Components\DatePicker;
|
||||
use Filament\Forms\Components\SpatieMediaLibraryFileUpload;
|
||||
use Filament\Forms\Components\Textarea;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
|
||||
class EditReportAction extends EditAction
|
||||
{
|
||||
public static function getDefaultName(): ?string
|
||||
{
|
||||
return 'edit_report';
|
||||
}
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this
|
||||
->modalWidth('lg')
|
||||
->schema([
|
||||
TextInput::make('title')
|
||||
->label('Judul')
|
||||
->placeholder('Dirgahayu Purwakarta')
|
||||
->required()
|
||||
->autocomplete(false),
|
||||
|
||||
DatePicker::make('publication_date')
|
||||
->label('Tanggal Publikasi')
|
||||
->native(false)
|
||||
->displayFormat('l, d F Y')
|
||||
->required(),
|
||||
|
||||
TextInput::make('link')
|
||||
->label('Tautan')
|
||||
->placeholder('https://example.com')
|
||||
->maxLength(255)
|
||||
->url()
|
||||
->required()
|
||||
->autocomplete(false),
|
||||
|
||||
Textarea::make('description')
|
||||
->label('Deskripsi')
|
||||
->placeholder('....')
|
||||
->required()
|
||||
->autocomplete(false),
|
||||
|
||||
SpatieMediaLibraryFileUpload::make('image')
|
||||
->label('Gambar')
|
||||
->disk(config('filesystems.default'))
|
||||
->acceptedFileTypes(['image/*'])
|
||||
->maxSize(1024 * 3)
|
||||
->collection('reports')
|
||||
->image()
|
||||
->helperText('Format yang diterima: JPEG, PNG, GIF, WEBP. Ukuran maksimum: 3 MB.')
|
||||
->required(),
|
||||
])
|
||||
->successNotification(
|
||||
fn () => CheerfulNotification::success(
|
||||
CheerfulNotification::getByKey('cooperation.report_sent_success'),
|
||||
CheerfulNotification::getByKey('cooperation.report_sent_desc')
|
||||
)
|
||||
)
|
||||
->visible(fn (Report $record): bool => auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && $record->status === ApprovalStatus::PENDING);
|
||||
}
|
||||
}
|
||||
@ -49,6 +49,6 @@ protected function setUp(): void
|
||||
)->output();
|
||||
}, str($record->title)->slug().'.pdf');
|
||||
})
|
||||
->visible(fn () => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]));
|
||||
->visible(fn () => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value, RoleEnum::PERUSAHAAN->value]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,9 +2,12 @@
|
||||
|
||||
namespace App\Filament\Resources\Manage\Cooperations\RelationManagers;
|
||||
|
||||
use App\Enums\ApprovalStatus;
|
||||
use App\Enums\RoleEnum;
|
||||
use App\Filament\Actions\Cheerful\DeleteAction;
|
||||
use App\Filament\Columns\RowIndexColumn;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\AcceptAction;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\EditReportAction;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\ExportAllReportsPdfAction;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\ExportReportPdfAction;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\RejectAction;
|
||||
@ -98,6 +101,17 @@ public function table(Table $table): Table
|
||||
->recordActions([
|
||||
ExportReportPdfAction::make(),
|
||||
|
||||
EditReportAction::make(),
|
||||
|
||||
DeleteAction::make()
|
||||
->successNotification(
|
||||
fn () => CheerfulNotification::success(
|
||||
CheerfulNotification::getByKey('cooperation.report_sent_success'),
|
||||
CheerfulNotification::getByKey('cooperation.report_sent_desc')
|
||||
)
|
||||
)
|
||||
->visible(fn (Report $record): bool => auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && $record->status === ApprovalStatus::PENDING),
|
||||
|
||||
AcceptAction::make(),
|
||||
|
||||
RejectAction::make(),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user