Skip to content
An inline select field for Nova apps
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
resources
screenshots
src
.editorconfig Initial commit Apr 5, 2019
.gitignore
CHANGELOG.md
CONTRIBUTING.md
LICENSE.md
composer.json
package.json
readme.md
webpack.mix.js

readme.md

An inline select field for Nova apps

Latest Version on Packagist Total Downloads

This package contains a Nova select field that can update field values inline from the index and detail views.

screenshot of the inline select field screenshot of the inline select field ready for submitting

Requirements

This Nova field requires Nova 2.0 or higher.

Installation

You can install this package in a Laravel app that uses Nova via composer:

composer require kirschbaum-development/nova-inline-select

Usage

Next you can use the KirschbaumDevelopment\Nova\InlineSelect field in your Nova resource:

namespace App\Nova;

use KirschbaumDevelopment\Nova\InlineSelect;

class User extends Resource
{
    // ...
    
    public function fields(Request $request)
    {
        return [
            // ...
            
            InlineSelect::make('Status'),

            // ...
        ];
    }
}

Now you can use the InlineSelect field just like Nova's Select field. Now for the magic...

Inline editing

By default, the inline select field works just like a normal select field. To enable the inline editting capabilities we can use the inlineOnIndex() and inlineOnDetail() methods.

InlineSelect::make('Status')->options($options)
    ->inlineOnIndex()
    ->inlineOnDetails(),

Now the above inline select field will show up on both the index and detail views. When making a change to the select field, a button will display next to the field allowing you to commit the change. If you would prefer the field to auto-submit the change, just add disableTwoStepOnIndex() or disableTwoStepOnDetail().

InlineSelect::make('Status')->options($options)
    ->inlineOnIndex()
    ->disableTwoStepOnIndex(),

Now changing the select field on the index view will auto-submit the changed value.

Display using labels

This method works just like Nova's select field. It will display the option value rather than the option key.

InlineSelect::make('Status')->options($options)
    ->displayUsingLabels(),

Validation caveats

In the case where fields on a model are required, which is likely, an extra step needs to be taken ton ensure the inline select update persists and doesn't throw an error. The validation rule sometimes needs to be added to the updateRules() method on any field that is required.

Text::make('Email')
    ->rules('required', 'email')
    ->updateRules('sometimes'),

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email brandon@kirschbaumdevelopment.com or nathan@kirschbaumdevelopment.com instead of using the issue tracker.

Credits

Sponsorship

Development of this package is sponsored by Kirschbaum Development Group, a developer driven company focused on problem solving, team building, and community. Learn more about us or join us!

License

The MIT License (MIT). Please see License File for more information.

You can’t perform that action at this time.