Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Revisor Laravel Package

indracollective/laravel-revisor

View on GitHub
Deep Wiki
Context7

Revisor + Filament = 🔥

Instantly add robust draft, versioning, and publishing functionality to your FilamentPHP admin panel with the Revisor Filament plugin. This plugin offers a collection of Filament Actions, Table Columns, and Page components to seamlessly integrate Revisor with FilamentPHP, a popular admin panel for Laravel composed of beautiful full-stack components.

Screenshots

List Records{.light-only} List Records{.dark-only}

☝️ Table Actions / Bulk Actions for publishing and unpublishing records, viewing the revision history in Filament Tables.

Edit Records{.light-only} Edit Records{.dark-only}

☝️ Regular Actions for publishing and unpublishing records, viewing the revision history on Filament Edit pages.

View Versions{.light-only} View Versions{.dark-only}

☝️ View the version history of a record, and Revert to a previous versions of a record.

Installation

Follow the Revisor installation guide to get started.

Examples

Table Columns

use Filament\Resources\Resource;
use Indra\RevisorFilament\Filament\StatusColumn;
use Indra\RevisorFilament\Filament\PublishInfoColumn;

class PageResource extends Resource
{
    ...

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                StatusColumn::make('status'),
                PublishInfoColumn::make('publish_info'),
            ])
            ...

☝️ Add the StatusColumn to your Resource's Table definition to display the records's published statuses (draft, published, revised).

Add the PublishInfoColumn to your Resource's Table definition to display the records's publish information (published date, publisher).

Table Actions

use Filament\Resources\Resource;
use Filament\Tables\Actions\ActionGroup;
use Indra\RevisorFilament\Filament\PublishTableAction;
use Indra\RevisorFilament\Filament\UnpublishTableAction;
use Indra\RevisorFilament\Filament\ListVersionsTableAction;

class PageResource extends Resource
{
    ...

    public static function table(Table $table): Table
    {
        return $table
            ->actions([
                ActionGroup::make([
                    PublishTableAction::make(),
                    UnpublishTableAction::make(),
                    ListVersionsTableAction::make(),
                ])
            ])
            ...
    }

☝️ Add the PublishTableAction to your Resource's Table definition to display a Publish Action for each record. This action will only display on records that are not published.

Add the UnpublishTableAction to your Resource's Table definition to display an Unpublish Action for each record. This action will only display on records that are published.

Add the ListVersionsTableAction to your Resource's Table definition to allow users to view the version history of a record. Note this this action requires that your Resource has a versions page, see List Version Records.

Table Bulk Actions

use Filament\Resources\Resource;
use Filament\Tables\Actions\BulkActionGroup;
use Indra\RevisorFilament\Filament\PublishBulkAction;
use Indra\RevisorFilament\Filament\UnpublishBulkAction;

class PageResource extends Resource
{
    ...

    public static function table(Table $table): Table
    {
        return $table
            ->bulkActions([
                BulkActionGroup::make([
                    PublishBulkAction::make(),
                    UnpublishBulkAction::make(),
                ])
            ])
            ...
    }

☝️ Add the PublishBulkAction and UnpublishBulkAction` to your Resource's Table definition to display Publish/Unpublish Actions for all selected records.

List Version Records


use App\Filament\Resources\PageResource;
use Indra\RevisorFilament\Filament\ListVersions;

class ListPageVersions extends ListVersions
{
    protected static string $resource = PageResource::class;
}

☝️ To display the version history of a record, first create a new Filament Resource Page that extends the ListVersions Page Class. The ListVersions Class defines a simple table with versioning columns and actions for viewing and reverting to a previous version of a record.


use Filament\Resources\Resource;
use App\Filament\Resources\PageResource\Pages\ListPageVersions;

class PageResource extends Resource
{
    ...
    public static function getPages(): array
    {
        return [
            'versions' => ListPageVersions::route('/{record?}/versions'),
        ];
    }

☝️ Next, be sure to register your ListVersions Page in your Resource's getPages() method.

View Version Records


use App\Filament\Resources\PageResource;
use Indra\RevisorFilament\Filament\ViewVersion;

class ViewPageVersion extends ViewVersion
{
    protected static string $resource = PageResource::class;
}

☝️ To display a full view of a particular version of a record, first create a new Filament Resource Page that extends the ViewVersion Page Class. The ViewVersion Class displays the selected version of your record using your Resource's form of infolist, and provides an action for reverting the record to this version.


use Filament\Resources\Resource;
use App\Filament\Resources\PageResource\Pages\ViewPageVersion;

class PageResource extends Resource
{
    ...
    public static function getPages(): array
    {
        return [
            'view_version' => ViewPageVersion::route('/{record}/versions/{version}'),
        ];
    }

☝️ Next, be sure to register your ViewPageVersion Page in your Resource's getPages() method.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope