Skip to content

Commit

Permalink
Implement edit AutoResource page
Browse files Browse the repository at this point in the history
  • Loading branch information
miguilimzero committed Sep 15, 2023
1 parent b714026 commit 5009e8b
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 14 deletions.
1 change: 1 addition & 0 deletions src/AutoResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ public static function getPages(): array
'index' => PageMounter::makeList(static::class),
'create' => PageMounter::makeCreate(static::class),
'view' => PageMounter::makeView(static::class),
'edit' => PageMounter::makeEdit(static::class),
]];
}

Expand Down
32 changes: 32 additions & 0 deletions src/Filament/Pages/FilamentAutoResourceEdit.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

namespace Miguilim\FilamentAutoPanel\Filament\Pages;

use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
use Illuminate\Database\Eloquent\Model;

class FilamentAutoResourceEdit extends EditRecord
{
protected function fillForm(): void
{
if (static::getResource()::getIntrusive()) {
$data = $this->getRecord()->setHidden([])->attributesToArray();
} else {
$data = $this->getRecord()->attributesToArray();
}

$this->fillFormWithDataAndCallHooks($data);
}

protected function handleRecordUpdate(Model $record, array $data): Model
{
if (static::getResource()::getIntrusive()) {
$record->forceFill($data)->save();
} else {
$record->update($data);
}

return $record;
}
}
30 changes: 16 additions & 14 deletions src/Filament/Pages/FilamentAutoResourceView.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,21 @@ protected function getActions(): array

protected function makeEditAction()
{
return Actions\EditAction::make()
->fillForm(function (Model $record): array {
if (static::getResource()::getIntrusive()) {
return $record->setHidden([])->attributesToArray();
} else {
return $record->attributesToArray();
}
})->using(function (array $data, Model $record) {
if (static::getResource()::getIntrusive()) {
$record->forceFill($data)->save();
} else {
$record->update($data);
}
});
return Actions\EditAction::make();

// return Actions\EditAction::make()
// ->fillForm(function (Model $record): array {
// if (static::getResource()::getIntrusive()) {
// return $record->setHidden([])->attributesToArray();
// } else {
// return $record->attributesToArray();
// }
// })->using(function (array $data, Model $record) {
// if (static::getResource()::getIntrusive()) {
// $record->forceFill($data)->save();
// } else {
// $record->update($data);
// }
// });
}
}
6 changes: 6 additions & 0 deletions src/Mounters/PageMounter.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Miguilim\FilamentAutoPanel\Filament\Pages\FilamentAutoResourceCreate;
use Miguilim\FilamentAutoPanel\Filament\Pages\FilamentAutoResourceList;
use Miguilim\FilamentAutoPanel\Filament\Pages\FilamentAutoResourceView;
use Miguilim\FilamentAutoPanel\Filament\Pages\FilamentAutoResourceEdit;

class PageMounter
{
Expand All @@ -26,6 +27,11 @@ public static function makeView(string $resource): PageRegistration
return static::generateAnonymousClass(FilamentAutoResourceView::class, $resource)::route('/{record}');
}

public static function makeEdit(string $resource): PageRegistration
{
return static::generateAnonymousClass(FilamentAutoResourceEdit::class, $resource)::route('/{record}/edit');
}

public static function makeCustom(string $resource, string $pageClass, string $pageRoute): PageRegistration
{
return static::generateAnonymousClass($pageClass, $resource)::route($pageRoute);
Expand Down

0 comments on commit 5009e8b

Please sign in to comment.