|
2 | 2 |
|
3 | 3 | namespace Moox\Core\Entities\Items\Draft\Pages; |
4 | 4 |
|
| 5 | +use Moox\Localization\Models\Localization; |
| 6 | +use Filament\Actions\ActionGroup; |
| 7 | +use Filament\Actions\Action; |
5 | 8 | use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract; |
6 | 9 | use Filament\Resources\Pages\EditRecord; |
7 | 10 | use Illuminate\Database\Eloquent\Model; |
@@ -48,35 +51,36 @@ public function mutateFormDataBeforeFill(array $data): array |
48 | 51 | } |
49 | 52 |
|
50 | 53 | protected function handleRecordUpdate(Model $record, array $data): Model |
51 | | - { |
52 | | - /** @var Model&TranslatableContract $record */ |
53 | | - if (! $this->lang) { |
54 | | - return parent::handleRecordUpdate($record, $data); |
55 | | - } |
| 54 | +{ |
| 55 | + /** @var Model&TranslatableContract $record */ |
| 56 | + if (! $this->lang) { |
| 57 | + return parent::handleRecordUpdate($record, $data); |
| 58 | + } |
56 | 59 |
|
57 | | - if (! property_exists($record, 'translatedAttributes')) { |
58 | | - return parent::handleRecordUpdate($record, $data); |
59 | | - } |
| 60 | + if (! property_exists($record, 'translatedAttributes')) { |
| 61 | + return parent::handleRecordUpdate($record, $data); |
| 62 | + } |
60 | 63 |
|
61 | | - // Save translation manually |
62 | | - $translation = $record->translations()->firstOrNew([ |
63 | | - 'locale' => $this->lang, |
64 | | - ]); |
| 64 | + // Save translation manually |
| 65 | + $translation = $record->translations()->firstOrNew([ |
| 66 | + 'locale' => $this->lang, |
| 67 | + ]); |
65 | 68 |
|
66 | | - foreach ($record->translatedAttributes as $attr) { |
67 | | - if (array_key_exists($attr, $data['translations'][$this->lang] ?? [])) { |
68 | | - $translation->setAttribute($attr, $data['translations'][$this->lang][$attr]); |
69 | | - } |
| 69 | + foreach ($record->translatedAttributes as $attr) { |
| 70 | + if (array_key_exists($attr, $data['translations'][$this->lang] ?? [])) { |
| 71 | + $translation->setAttribute($attr, $data['translations'][$this->lang][$attr]); |
70 | 72 | } |
71 | | - $translation->save(); |
| 73 | + } |
| 74 | + $translation->save(); |
72 | 75 |
|
73 | | - // Remove 'translations' from data before update |
74 | | - unset($data['translations']); |
| 76 | + // Remove 'translations' from data before update |
| 77 | + unset($data['translations']); |
75 | 78 |
|
76 | | - $record->update($data); |
| 79 | + $record->update($data); |
| 80 | + |
| 81 | + return $record; |
| 82 | +} |
77 | 83 |
|
78 | | - return $record; |
79 | | - } |
80 | 84 |
|
81 | 85 | public function mutateFormDataBeforeSave(array $data): array |
82 | 86 | { |
@@ -107,12 +111,12 @@ public function mutateFormDataBeforeSave(array $data): array |
107 | 111 |
|
108 | 112 | public function getHeaderActions(): array |
109 | 113 | { |
110 | | - $languages = \Moox\Localization\Models\Localization::with('language')->get(); |
| 114 | + $languages = Localization::with('language')->get(); |
111 | 115 | $languageCodes = $languages->map(fn ($localization) => $localization->language->alpha2); |
112 | 116 |
|
113 | 117 | return [ |
114 | | - \Filament\Actions\ActionGroup::make( |
115 | | - $languages->map(fn ($localization) => \Filament\Actions\Action::make('language_'.$localization->language->alpha2) |
| 118 | + ActionGroup::make( |
| 119 | + $languages->map(fn ($localization) => Action::make('language_'.$localization->language->alpha2) |
116 | 120 | ->icon('flag-'.$localization->language->alpha2) |
117 | 121 | ->label('') |
118 | 122 | ->color('transparent') |
|
0 commit comments