Plugins
Documents Editor
Manage your documents and contracts all in one place with template builder
Developer Tool
Dark theme support
Yes
Multi language support
Yes
Compatible with the latest version
Supported versions: 3.x
Documentation

Screenshot

Latest Stable Version License Downloads

Manage your documents and contracts all in one place with template builder

#Features

  • [x] Generate Documents From Template
  • [x] Build Template using Tiptop Editor
  • [x] Add Custom Vars By Facade
  • [x] Generate Documents Action
  • [x] Documents Filter By Template
  • [x] Print Document or Export as PDF
  • [x] Documents Relation Manager

#Screenshots

Documents Create Document Documents Filters Print Document Templates Create Template Edit Template Edit Template Vars Edit Template Icons Document Action Document Relation Manager Generate Document Generate Document Notification

#Installation

composer require tomatophp/filament-docs

after install your package please run this command

php artisan filament-docs:install

if you are not using this package as a plugin please register the plugin on /app/Providers/Filament/AdminPanelProvider.php

->plugin(
\TomatoPHP\FilamentDocs\FilamentDocsPlugin::make()
)

#Using

you can add the action to any table like this

use TomatoPHP\FilamentDocs\Filament\Actions\DocumentAction;
 
DocumentAction::make()
->vars(fn($record) => [
DocsVar::make('$ACCOUNT_NAME')
->value($record->name),
DocsVar::make('$ACCOUNT_EMAIL')
->value($record->email),
DocsVar::make('$ACCOUNT_PHONE')
->value($record->phone)
])

and then you can use $ACCOUNT_NAME in your template

if you like to add a Global Var you can use Facade class like this

use TomatoPHP\FilamentDocs\Facades\FilamentDocs;
use TomatoPHP\FilamentDocs\Services\Contracts\DocsVar;
 
public function boot()
{
FilamentDocs::register([
DocsVar::make('$POST_TITLE')
->label('Post Title')
->model(Post::class)
->column('title'),
DocsVar::make('$POST_TYPE')
->label('Post Type')
->model(Post::class)
->column('type'),
DocsVar::make('$SELECTED_TIME')
->label('SELECTED TIME')
->value(fn () => Carbon::now()->subDays(10)->translatedFormat('D-M-Y')),
]);
}

as you can see you can use data from selected table or from a static function

#Allow Tenants

to allow tenants just use this method

->plugin(
\TomatoPHP\FilamentDocs\FilamentDocsPlugin::make()
->isScopedToTenant()
)

and add this migration

<?php
 
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
 
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('documents', function (Blueprint $table) {
$table->foreignId('team_id')->nullable()->constrained('teams')->onDelete('cascade');
});
 
Schema::table('document_templates', function (Blueprint $table) {
$table->foreignId('team_id')->nullable()->constrained('teams')->onDelete('cascade');
});
}
 
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('documents', function (Blueprint $table) {
$table->dropForeign(['team_id']);
$table->dropColumn('team_id');
});
 
Schema::table('document_templates', function (Blueprint $table) {
$table->dropForeign(['team_id']);
$table->dropColumn('team_id');
});
}
};

#Publish Assets

you can publish config file by use this command

php artisan vendor:publish --tag="filament-docs-config"

you can publish views file by use this command

php artisan vendor:publish --tag="filament-docs-views"

you can publish languages file by use this command

php artisan vendor:publish --tag="filament-docs-lang"

you can publish migrations file by use this command

php artisan vendor:publish --tag="filament-docs-migrations"

#Other Filament Packages

Checkout our Awesome TomatoPHP

Featured Plugins