This package helps you to create workflow on your Nova application. It's built on top of this package winzou/state-machine
You can install the package in to a Laravel app that uses Nova via composer:
composer require cammac/nova-workflow
Next, publish the config file
php artisan vendor:publish --tag workflow
open config/workflow.php
and define your workflow
you can define inside workflows
element workflow name and it's config as following:
field | mandatory | Description |
---|---|---|
model | Yes | Model class you want to do your workflow on |
column | Yes | Column name you want to monitor |
states | Yes | All possible states |
transitions | Yes | All possible transitions |
from | Yes | array: From states |
to | Yes | To state |
event | No | Event class that will be fired after the transition is completed |
style_classes | No | apply your css classes |
with_reasons | No | string: column inside your model will be filled with the transition |
with_reasons | No | array: will generate a dropdown list from with_reasons.model with id as option's value and label as option's text |
To display the workflow that are associated with a given Nova resource, you need to add the workflow Resource Tool to your resource.
For example, in your app/Nova/Order.php
file:
public function fields(Request $request)
{
return [
ID::make()->sortable(),
// Your other fields
Workflow::make('request')->onlyOnDetail() // request is the workflow name defined in workflow configuration file
];
}
This will automatically search possible transitions for the current status
The MIT License (MIT). Please see License File for more information.