/nova-notes-field

This Laravel Nova package adds a notes field to Nova's arsenal of fields.

Primary LanguagePHPMIT LicenseMIT

Nova Notes Field

This Laravel Nova package adds a notes field to Nova's arsenal of fields.

Features

  • Notes field on Detail view
  • Differentiation between user-added and system-added notes
  • Ability to add notes through the UI or programmatically
  • Ability to delete user-made notes (w/ confirmation modal)
  • Customizable placeholder support

Screenshots

Detail view

Installation

# Install the package via Composer
composer require optimistdigital/nova-notes-field

# Run automatically loaded migration(s)
php artisan migrate

Usage

Add HasNotes trait to the model that has the notes:

use OptimistDigital\NovaNotesField\Traits\HasNotes;

class ExampleModel extends Model
{
    use HasNotes;
}

Add NotesField to the matching resource:

use OptimistDigital\NovaNotesField\NotesField;

class SomeResource extends Resource
{
  // ...

  public function fields(Request $request)
  {
    return [
      // ...
      NotesField::make('Notes')
        ->placeholder('Add note'), // Optional
    ]
  }
}

Adding notes programmatically

To add notes programmatically, use the method provided by the HasNotes trait:

/**
 * Creates a new note and attaches it to the model.
 *
 * @param string $note The note text which can contain raw HTML.
 * @param bool $user Enables or disables the use of `Auth::user()` to set as the creator.
 * @param bool $system Defines whether the note is system created and can be deleted or not.
 * @return \OptimistDigital\NovaNotesField\Models\Note
 **/
public function addNote($note, $user = true, $system = true)

Credits

License

This project is open-sourced software licensed under the MIT license.