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

Filament Docs Laravel Package

tomatophp/filament-docs

View on GitHub
Deep Wiki
Context7

Screenshot

Filament Documents Editor

Dependabot Updates PHP Code Styling Tests Latest Stable Version License Downloads

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

Features

  • Generate Documents From Template
  • Build Template using Tiptop Editor
  • Add Custom Vars By Facade
  • Generate Documents Action
  • Documents Filter By Template
  • Print Document or Export as PDF
  • Documents Relation Manager
  • Custom Print Header & Footer
  • Custom Print CSS

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

Add Fixed Header & Footer to Document Print

if you like to add a fixed header and footer to your document print you can use this method on your AppServiceProvider.php file

use TomatoPHP\FilamentDocs\Facades\FilamentDocs;

public function boot() {
    FilamentDocs::header('filament.header');
    FilamentDocs::footer('filament.footer');
} 

Custom CSS on Document Print

if you like to add a custom css to your document print you can use this method on your AppServiceProvider.php file

use TomatoPHP\FilamentDocs\Facades\FilamentDocs;

public function boot() {
    FilamentDocs::css('filament.css');
} 

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

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