Skip to content

Commit

Permalink
fix: Hot
Browse files Browse the repository at this point in the history
HasManyButton.php
  • Loading branch information
lee-to committed May 28, 2024
1 parent 211255b commit c488872
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 28 deletions.
6 changes: 3 additions & 3 deletions routes/moonshine.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@
GlobalSearchController::class
)->name('global-search');

Route::prefix('relation/{pageUri}')->controller(RelationModelFieldController::class)->group(
Route::prefix('relation/{pageUri}/{resourceUri?}/{resourceItem?}')->controller(RelationModelFieldController::class)->group(
function (): void {
Route::get('has-many-form/{resourceUri?}/{resourceItem?}', 'hasManyForm')->name('relation.has-many-form');
Route::get('{resourceUri?}/{resourceItem?}', 'search')->name('relation.search');
Route::get('/has-many-form', 'hasManyForm')->name('relation.has-many-form');
Route::get('/', 'search')->name('relation.search');
}
);

Expand Down
25 changes: 9 additions & 16 deletions src/Buttons/HasManyButton.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,9 @@
namespace MoonShine\Buttons;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphOneOrMany;
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Collections\MoonShineRenderElements;
use MoonShine\Components\FormBuilder;
use MoonShine\Contracts\Resources\ResourceContract;
use MoonShine\Enums\JsEvent;
use MoonShine\Fields\Field;
use MoonShine\Fields\Fields;
use MoonShine\Fields\Hidden;
use MoonShine\Fields\Relationships\HasMany;
use MoonShine\Fields\Relationships\ModelRelationField;
use MoonShine\Pages\Page;
use MoonShine\Resources\ModelResource;
use MoonShine\Support\AlpineJs;
use Throwable;

final class HasManyButton
Expand All @@ -40,11 +29,15 @@ public static function for(
return ActionButton::emptyHidden();
}

$action = static fn (?Model $data) => $parentResource->route('relation.has-many-form', moonshineRequest()->getItemID(), [
'pageUri' => $parentPage?->uriKey(),
'_relation' => $field->getRelationName(),
'_key' => $data?->getKey(),
]);
$action = static fn (?Model $data) => $parentResource->route(
'relation.has-many-form',
moonshineRequest()->getItemID(),
[
'pageUri' => $parentPage?->uriKey(),
'_relation' => $field->getRelationName(),
'_key' => $data?->getKey(),
]
);

$isAsync = $resource->isAsync() || $field->isAsync();

Expand Down
17 changes: 8 additions & 9 deletions src/Http/Controllers/RelationModelFieldController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,9 @@

namespace MoonShine\Http\Controllers;

use App\Models\PolyComment;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Contracts\Auth\StatefulGuard;
use Illuminate\Contracts\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphOneOrMany;
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Collections\MoonShineRenderElements;
use MoonShine\Components\FormBuilder;
use MoonShine\Components\TableBuilder;
Expand Down Expand Up @@ -186,19 +182,21 @@ public function hasManyForm(RelationModelFieldRequest $request): string
->toArray();
};

$formName = $resource->uriKey() . "-" . ($item?->getKey() ?? 'create');

return (string) FormBuilder::make($action($item))
->fields($getFields)
->reactiveUrl(
fn (): string => moonshineRouter()
->reactive(key: $item?->getKey(), page: $resource->formPage(), resource: $resource)
)
->name($resource->uriKey())
->name($formName)
->switchFormMode(
$isAsync,
[
array_filter([
$resource->listEventName($field->getRelationName()),
AlpineJs::event(JsEvent::FORM_RESET, $resource->uriKey()),
]
$update ? null : AlpineJs::event(JsEvent::FORM_RESET, $formName),
])
)
->when(
$update,
Expand All @@ -224,7 +222,8 @@ public function hasManyForm(RelationModelFieldRequest $request): string
))
->buttons($resource->getFormButtons())
->redirect(
$isAsync ?
$isAsync
?
null
: moonshineRequest()
->getResource()
Expand Down

0 comments on commit c488872

Please sign in to comment.