New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

actengage/nova-wizard

Package Overview
Dependencies
Maintainers
0
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

actengage/nova-wizard

Turn your long and complex resource forms into a simple and clean multi-step process.

Source
Packagist
Version
v0.9.8
Version published
Total downloads
1.4K
Maintainers
0
Created
Source

Laravel Nova Wizard

Turn your long and complex resource forms into a simple and clean multi-step process. This package was designed to change as little about Nova as possible. Just implement the trait, define the steps and the plugin does the rest.

Screenshot

Installation

composer install actengage/nova-wizard

Useage

  • Use the Actengage\Wizard\HasMultipleSteps trait.
  • Make the Actengage\Wizard\Step instances in the fields() method.
namespace App\Nova;

use Actengage\Wizard\HasMultipleSteps;
use Actengage\Wizard\Step;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\DateTime;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Fields\Password;

class User extends Resource
{
    use HasMultipleSteps;

    /**
     * The model the resource corresponds to.
     *
     * @var string
     */
    public static $model = 'App\\User';

    /**
     * The single value that should be used to represent the resource when being displayed.
     *
     * @var string
     */
    public static $title = 'name';

    /**
     * The columns that should be searched.
     *
     * @var array
     */
    public static $search = [
        'id', 'name', 'email',
    ];

    /**
     * Get the fields displayed by the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            Step::make('Name & Email', [
                Text::make('Name')
                    ->sortable()
                    ->rules('required', 'max:255'),

                Text::make('Email')
                    ->sortable()
                    ->rules('required', 'email', 'max:254')
            ]),

            Step::make('Password', [
                Password::make('Password')
                    ->onlyOnForms()
                    ->creationRules('required', 'string', 'min:8')
                    ->updateRules('nullable', 'string', 'min:8'),
            ]),

            Step::make('Options', [
                DateTime::make('Email Verified At')
            ]),
        ];
    }
}

Display Steps as Panels

Sometimes you want your steps to be displayed as panels without having to redundant define a panel inside a step. To do this, just use the displayasPanel() method. Additionally, if you want to control where the toolbar is displayed, you can use the withToolbar() method just like a panel.

Display as panel with toolbar

Step::make('Name & Email', [
    Text::make('Name')
        ->sortable()
        ->rules('required', 'max:255'),

    Text::make('Email')
        ->sortable()
        ->rules('required', 'email', 'max:254')
])->displayAsPanel()->withToolbar(),

Keywords

nova

FAQs

Package last updated on 17 Jul 2021

Related posts