Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Nova Action Toolbar Laravel Package

wamesk/laravel-nova-action-toolbar

Add a configurable action toolbar to Laravel Nova resources. Group frequently used actions and run them directly from the index view, keeping bulk operations within reach and your Nova UI tidy. Simple to install, easy to customize.

View on GitHub
Deep Wiki
Context7

Getting Started

  1. Install with Composer and confirm the package major matches your Nova major:
    composer require wamesk/laravel-nova-action-toolbar
    
  2. Register or attach the toolbar exactly as the package README describes—typically in NovaServiceProvider or on the target Nova resource. Clear Nova/cache assets after installing or upgrading:
    php artisan nova:publish
    php artisan optimize:clear
    
  3. First use case: add the toolbar to a resource index with one or two simple, field-less actions (for example, refresh or export). Confirm the buttons render and execute. Then add a row action with fields to exercise the 5.0.1 behavior: from a table row, the package fetches that record’s action form via GET /nova-api/{resource}/actions?resourceId={id} before opening it.

Start by reviewing the resource’s actions() method and the package README’s registration example. The highest-value first use is replacing a crowded Nova actions dropdown with a small set of high-frequency toolbar buttons.

Implementation Patterns

  • Separate toolbar actions from row actions. Use the toolbar for resource-level operations such as import, export, refresh, or bulk status changes. Use row actions for record-specific operations such as assign, approve, or resend.
  • Keep field-less actions instant. Actions without fields still run immediately and do not make the extra actions?resourceId= request. Prefer field-less actions for low-risk, one-click operations.
  • Use fields when the action needs input. As of 5.0.1, a row action with fields loads the form for that specific row before opening. Design the action’s fields around the selected record rather than relying on data baked into the index response.
  • Authorize at the action level. Put visibility and execution checks in authorizedToSee() / canRun() and the underlying policy. The 5.0.1 form-loading request goes through Nova’s actions endpoint, so authorization and tenancy rules must allow that request for the row being acted on.
  • Preserve relationship context. The package sends the same via-relationship parameters as the detail-page action request. If the toolbar is used on related resources, test row actions from those relationship views.
  • Queue long-running work. For imports, exports, bulk updates, or external API calls, have the action dispatch a job and return a toast/message rather than blocking the request.
  • Test as a non-admin user. The extra row-form request can expose policy or scope issues that a simple index render does not. Verify both the button visibility and the GET /nova-api/{resource}/actions?resourceId={id} response.

Gotchas and Tips

  • 5.0.1 changes row action timing for actions with fields. The form is no longer expected to open from index-baked fields alone. On click, the package requests GET /nova-api/{resource}/actions?resourceId={id}, shows a spinner, and then opens the row-specific form. Any test or UI automation that clicks a row action and immediately interacts with the form should wait for that request to finish.
  • Failure behavior is deliberately graceful. If the row-form request fails, the original form opens and an error toast explains the failure. If you see an empty form plus a toast, inspect the network request, response status, policy/authorization, custom Nova API path, tenancy middleware, and relationship parameters.
  • Actions without fields are unchanged. They still execute immediately without the extra request. Do not add unnecessary fields just to get a confirmation step; use the action’s confirmation options instead.
  • Index toolbar and detail page behavior did not change in 5.0.1. The row-specific form-loading fix applies to table row actions with fields. Do not assume the same request pattern applies to toolbar actions or detail-page actions.
  • Custom API paths need attention. If your application customizes Nova’s API path or proxies /nova-api, confirm the generated actions?resourceId= URL resolves correctly behind your middleware and authentication setup.
  • Clear caches after upgrading. If row actions still open with stale or empty forms, verify the installed version is 5.0.1, republish Nova assets if needed, and clear compiled/cache files.
  • Use the network tab first when debugging. Filter for actions?resourceId= and inspect the response. That request is the clearest signal for whether the issue is package wiring, authorization, relationship context, or the action’s own fields() method.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle