Drafts plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Drafts

This plugin adds the ability to manage your model's drafts and revisions in your filament resources.

Tags: Forms Tables
Supported versions:
3.x 2.x
Guava avatar Author: Guava

Documentation

filament_drafts

Latest Version on Packagist Packagist PHP Version Total Downloads

This plugin adds the ability to manage your model's drafts and revisions in your filament resources.

It's a filament implementation for Laravel Drafts.

https://user-images.githubusercontent.com/10926334/230877140-ffaaf03a-5cad-4af5-8600-06dd5ab31e82.mov

#Installation

You can install the package with composer:

  composer require guava/filament-drafts

#Usage

#Model Trait

First make sure that you have correctly set-up a model to use drafts from Laravel Drafts.

At the very least you need to add the HasDrafts (please note this is a modified trait) trait to your model:

use Guava\FilamentDrafts\Concerns\HasDrafts;

class Post extends Model
{
    use HasDrafts;
}

and modify your migration:

return new class extends Migration
{
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
            //...
            $table->drafts();
        };
    }
}

NOTE: If you use the HasDrafts trait from Laravel Drafts, make sure you have defined is_published in your $fillable properties.

After that, all you need to do is add a few traits to your resource and resource pages:

#Resource Trait

Add the Draftable trait to your Resource:

use Guava\FilamentDrafts\Admin\Resources\Concerns\Draftable;

class PostResource extends Resource
{
    use Draftable;
}

#Resource Pages

Add the respective Draftable trait to your Resource Pages: (Keep in mind that each page uses a different trait from another namespace)

#Create Page

use Guava\FilamentDrafts\Admin\Resources\Pages\Create\Draftable;

class CreatePost extends CreateRecord
{
    use Draftable;
}

#Edit Page

use Guava\FilamentDrafts\Admin\Resources\Pages\Edit\Draftable;

class EditPost extends EditRecord
{
    use Draftable;
}

#List Page

use Guava\FilamentDrafts\Admin\Resources\Pages\List\Draftable;

class ListPosts extends ListRecords
{
    use Draftable;
}

#Changelog

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

#Contributing

Please see CONTRIBUTING for details.

#Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

#Credits

#License

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

#Other packages