Filament Gantt
An interactive Gantt chart page for Filament v4 powered by dhtmlxGantt — with drag-and-drop task scheduling, filtering, zoom controls, export, and full dark mode support.
Features
- Interactive Gantt Chart — Drag-and-drop task scheduling with real-time updates
- Task Dependencies — Visual links between related tasks
- Filtering — Filter by priority, assignee, project, status, and type
- Sorting — Sort tasks by priority or name
- Column Management — Toggle column visibility with persistence
- Zoom Controls — Multiple zoom levels from hour to decade
- Export — Export to PDF or PNG
- Assignee Avatars — Display user avatars with fallback generation
- Priority Badges — Color-coded priority indicators (high, medium, low)
- Status Icons — Custom Heroicon status indicators on task bars
- Change Tracking — Batch save with pending changes indicator
- Dark Mode — Full Filament dark mode support with automatic theme detection
- Filter Persistence — Saves filter preferences for 30 days
- Row Resizing — Adjustable row heights
Requirements
- PHP 8.3+
- Laravel 12+
- Filament 4.x
- Livewire 3.x
Installation
Install via Composer:
Publish the assets:
Publish the config (optional):
Setup
1. Create a Gantt Page
Create a Filament page that extends the base Gantt class:
2. Register the Page
Add your Gantt page to your panel provider:
Data Format
Task Data
The getGanttDataArray() method must return an array with data and links:
Column Configuration
Navigation with Parameters
Pass data to the Gantt page via URL parameters:
Or pass data directly in mount():
Configuration
Toolbar
The Gantt page includes a toolbar with:
| Control | Description |
|---|---|
| Filter | Filter by priority (high, medium, low) |
| Sort | Sort by priority or task name |
| Columns | Toggle column visibility |
| Export | Export to PDF or PNG |
| Zoom | Zoom to fit, zoom in, zoom out |
| Task Count | Displays total number of tasks |
API Integration
The JavaScript layer supports CRUD operations via a REST API:
PUT /api/tasks/{id}— Update taskPOST /api/tasks— Create taskDELETE /api/tasks/{id}— Delete task
Configure the base URL in your page or JavaScript:
CSRF tokens are automatically included from the meta[name="csrf-token"] tag.
Customization
Navigation
Override navigation properties in your page class:
Header Actions
Add custom actions to the page header:
Testing
The package includes Pest PHP tests for core functionality:
License
This package is dual-licensed:
- MIT License — Free for open source projects under an OSI-approved license.
- Commercial License — Required for proprietary/commercial projects. Visit codenzia.com for details.
See LICENSE.md for full terms.