pdmfc / nova-inline-text
A Laravel Nova inline text field.
Installs: 43 163
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 2
Forks: 8
Open Issues: 3
Language:Vue
Requires
- php: >=7.1.0
README
This package lets you edit text fields directly on your resources pages.
Installation
composer require pdmfc/nova-inline-text
Usage
use Pdmfc\NovaFields\InlineText; //... public function fields() { return [ InlineText::make('Name'), ]; }
Making it editable
By default, this field behaves like a regular text field. To be able to edit it on the index page, use the inlineOnIndex()
method:
public function fields() { return [ InlineText::make('Name') ->inlineOnIndex(), ]; }
This method also accepts a closure with the current request if you want to make it editable dynamically:
public function fields() { return [ InlineText::make('Name') ->inlineOnIndex(function (NovaRequest $request) { return $request->user()->isAdmin(); }), ]; }
Updating field value
The default trigger to save the value is by pressing the Enter
key (keyup.enter
). If you wish to use a different event trigger to update the value you can use the saveOn()
method that accepts an argument corresponding to a javascript event:
public function fields() { return [ InlineText::make('Name') ->inlineOnIndex() ->saveOn('blur'), ]; }
Key event modifiers
You can also specify the key event modifier:
public function fields() { return [ InlineText::make('Name') ->inlineOnIndex() ->saveOn('keyup.shift'), ]; }
Refreshing resource table
When saving the current field value, it will not refresh the table.
If you need this functionality, use the refreshOnSaving()
method:
public function fields() { return [ InlineText::make('Name') ->inlineOnIndex() ->refreshOnSaving(), ]; }
⚠️ Caveats
-
When updating the field, make sure you add the
sometimes
validation rule to the rest of the fields that are required:Text::make('Email') ->rules('required', 'email') ->updateRules('sometimes') // Add these method call and validation rule to the fields that are required
How to contribute
- clone the repo
- on
composer.json
of a laravel nova application add the following:
{
//...
"require" {
"pdmfc/nova-inline-text: "*"
},
//...
"repositories": [
{
"type": "path",
"url": "../path_to_your_package_folder"
}
],
}
- run
composer update pdmfc/nova-inline-text
You're now ready to start contributing!