Skip to content

Commit

Permalink
Added actions for the Nova resource (#1)
Browse files Browse the repository at this point in the history
* Added actions for the Nova resource

* Made use of Nova::serving
  • Loading branch information
ramonrietdijk authored Aug 5, 2024
1 parent 4f6c829 commit f5842d0
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 5 deletions.
26 changes: 26 additions & 0 deletions src/Nova/Actions/CleanBulkRequests.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

namespace JustBetter\MagentoAsyncNova\Nova\Actions;

use Illuminate\Support\Collection;
use JustBetter\MagentoAsync\Jobs\CleanBulkRequestsJob;
use Laravel\Nova\Actions\Action;
use Laravel\Nova\Actions\ActionResponse;
use Laravel\Nova\Fields\ActionFields;

class CleanBulkRequests extends Action
{
public function __construct()
{
$this
->withName(__('Clean bulk requests'))
->standalone();
}

public function handle(ActionFields $fields, Collection $models): ActionResponse
{
CleanBulkRequestsJob::dispatch();

return ActionResponse::message(__('Cleaning...'));
}
}
28 changes: 28 additions & 0 deletions src/Nova/Actions/UpdateBulkStatus.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace JustBetter\MagentoAsyncNova\Nova\Actions;

use Illuminate\Support\Collection;
use JustBetter\MagentoAsync\Jobs\UpdateBulkStatusJob;
use JustBetter\MagentoAsync\Models\BulkRequest;
use Laravel\Nova\Actions\Action;
use Laravel\Nova\Actions\ActionResponse;
use Laravel\Nova\Fields\ActionFields;

class UpdateBulkStatus extends Action
{
public function __construct()
{
$this->withName(__('Update bulk status'));
}

/** @param Collection<BulkRequest> $models */
public function handle(ActionFields $fields, Collection $models): ActionResponse
{
$models->each(function (BulkRequest $bulkRequest): void {
UpdateBulkStatusJob::dispatch($bulkRequest);
});

return ActionResponse::message(__('Updating...'));
}
}
26 changes: 26 additions & 0 deletions src/Nova/Actions/UpdateBulkStatuses.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

namespace JustBetter\MagentoAsyncNova\Nova\Actions;

use Illuminate\Support\Collection;
use JustBetter\MagentoAsync\Jobs\UpdateBulkStatusesJob;
use Laravel\Nova\Actions\Action;
use Laravel\Nova\Actions\ActionResponse;
use Laravel\Nova\Fields\ActionFields;

class UpdateBulkStatuses extends Action
{
public function __construct()
{
$this
->withName(__('Update bulk statuses'))
->standalone();
}

public function handle(ActionFields $fields, Collection $models): ActionResponse
{
UpdateBulkStatusesJob::dispatch();

return ActionResponse::message(__('Updating...'));
}
}
10 changes: 9 additions & 1 deletion src/Nova/BulkRequestResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace JustBetter\MagentoAsyncNova\Nova;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
use JustBetter\MagentoAsync\Enums\OperationStatus;
use JustBetter\MagentoAsync\Models\BulkRequest;
Expand Down Expand Up @@ -135,6 +134,15 @@ public function fields(NovaRequest $request): array
];
}

public function actions(NovaRequest $request): array
{
return [
Actions\CleanBulkRequests::make(),
Actions\UpdateBulkStatus::make(),
Actions\UpdateBulkStatuses::make(),
];
}

public function filters(NovaRequest $request): array
{
return [
Expand Down
10 changes: 6 additions & 4 deletions src/ServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,12 @@ protected function bootConfig(): static

protected function bootResources(): static
{
Nova::resources([
config('magento-async-nova.resources.bulk_request'),
config('magento-async-nova.resources.bulk_operation'),
]);
Nova::serving(function (): void {
Nova::resources([
config('magento-async-nova.resources.bulk_request'),
config('magento-async-nova.resources.bulk_operation'),
]);
});

return $this;
}
Expand Down

0 comments on commit f5842d0

Please sign in to comment.