the-3labs-team / nova-busy-resource-field
A Laravel Nova field.
Package info
github.com/The-3Labs-Team/nova-busy-resource-field
pkg:composer/the-3labs-team/nova-busy-resource-field
Requires
- php: ^8.3|^8.4
- illuminate/http: ^12.0
- illuminate/routing: ^12.0
- illuminate/support: ^12.0
- outl1ne/nova-translations-loader: ^5.0
Requires (Dev)
- laravel/nova: ^5.0
- orchestra/testbench: ^10.9
- phpunit/phpunit: ^11.5
- dev-main
- v2.1.0
- v2.0.0
- v2.0.0-beta
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-dependabot/npm_and_yarn/lodash-4.18.1
- dev-dependabot/npm_and_yarn/vue/compiler-sfc-3.5.32
- dev-dependabot/npm_and_yarn/cipher-base-1.0.7
- dev-dependabot/npm_and_yarn/webpack-5.105.4
- dev-dependabot/npm_and_yarn/picomatch-2.3.2
- dev-dependabot/github_actions/actions/checkout-6
- dev-dependabot/github_actions/stefanzweifel/git-auto-commit-action-7
- dev-multilanguage
- dev-feature/multilanguage
This package is auto-updated.
Last update: 2026-04-03 22:46:12 UTC
README
Laravel Nova Busy Resource Field
Have you ever dreamed of having a mechanism in Laravel Nova that would allow you to know if a resource is occupied by another user?
Introducing Nova Resource Busy Field, the first package for Laravel Nova that lets you know if a resource is occupied by another user.
From the secret labs of The3LabsTeam this is a completely opensource package designed to make life easier for those using Laravel Nova as a multi-user CMS.
🌟 Here are some great features:
- It is model-agnostic, you can decide which resource will be considered "occupiable"
- Fully configurable, you can choose the threshold timeout and old logs to be deleted
- It is native to Laravel Nova, there is only one migration to launch
- It is fully reversible, no Laravel Nova models and/or views are touched
- Lets you know from the index of a resource if it is occupied
- Receive an alert if you enter an edit of a busy resource
Installation
For install this package, in your composer.json add the repository:
composer require the-3labs-team/nova-busy-resource-field
You need to publish the migration file:
php artisan vendor:publish --tag=nova-busy-resource-field-migrations
Remember to launch the migrations:
php artisan migrate
Also, you can publish the config file:
php artisan vendor:publish --tag=nova-busy-resource-field-config
Usage
First you need to make a model "busiable".
For example, if you want to make the Article model busiable, you need to add the
trait The3labsTeam\NovaBusyResourceField\App\Traits\Busiable to it:
use The3labsTeam\NovaBusyResourceField\App\Traits\Busiable; class Article extends Model{ use Busiable; }
Then, in your Nova resource, you can add the field:
use The3labsTeam\NovaBusyResourceField\NovaBusyResourceField; public function fields(NovaRequest $request) { return [ // ... NovaBusyResourceField::make('')->withMeta([ 'saveEvery' => 30000 // In milliseconds ]), // ... ]; }
For the best experience, you can delete old records in database.
For this, you need to add in your App\Console\Kernel, command for delete old records every minute.
$schedule->command('nova-busy-resource-field:run')->everyMinute()->withoutOverlapping();

