Files
citrus/app/Filament/Admin/Resources/MusicProductions/Pages/EditMusicProduction.php
T

87 lines
2.6 KiB
PHP

<?php
namespace App\Filament\Admin\Resources\MusicProductions\Pages;
use App\Filament\Admin\Resources\MusicProductions\MusicProductionResource;
use App\Filament\Admin\Resources\Components\TranslationTabs;
use Filament\Actions\Action;
use Filament\Actions\DeleteAction;
use Filament\Actions\ForceDeleteAction;
use Filament\Actions\RestoreAction;
use Filament\Resources\Pages\EditRecord;
class EditMusicProduction extends EditRecord
{
protected static string $resource = MusicProductionResource::class;
public function getTitle(): string
{
return __('music_productions.edit');
}
protected function getHeaderActions(): array
{
return [
Action::make('save')
->label(__('music_productions.save'))
->action('save')
->keyBindings(['mod+s'])
->color('primary')
->size('sm'),
Action::make('cancel')
->label(__('music_productions.cancel'))
->url($this->getResource()::getUrl('index'))
->color('gray')
->size('sm'),
DeleteAction::make()
->label(__('music_productions.delete'))
->size('sm'),
RestoreAction::make()
->label(__('music_productions.restore'))
->size('sm'),
ForceDeleteAction::make()
->label(__('music_productions.force_delete'))
->size('sm'),
];
}
protected function getFormActions(): array
{
return []; // Hide standard bottom save/cancel buttons
}
protected function getRedirectUrl(): string
{
return $this->getResource()::getUrl('index');
}
protected function getSavedNotificationTitle(): ?string
{
return __('music_productions.updated_successfully');
}
protected function mutateFormDataBeforeFill(array $data): array
{
// Load existing translations
$translationData = TranslationTabs::fillFromRecord($this->record);
\Log::info('Loading translations for music production edit', [
'production_id' => $this->record->id,
'translations' => $translationData
]);
return array_merge($data, $translationData);
}
protected function afterSave(): void
{
\Log::info('Saving music production translations', [
'production_id' => $this->record->id,
'form_state' => $this->form->getState()
]);
// Save translations
TranslationTabs::saveTranslations($this->record, $this->form->getState());
}
}