alizharb / filament-activity-log
A powerful, feature-rich activity logging solution for FilamentPHP v4 with timeline views, dashboard widgets, and revert actions.
Fund package maintenance!
alizharb
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 0
Forks: 0
Type:filament-plugin
pkg:composer/alizharb/filament-activity-log
Requires
- php: ^8.2
- filament/filament: ^4.0
- phiki/phiki: ^1.0
- spatie/laravel-activitylog: ^4.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- orchestra/testbench: ^10.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- pestphp/pest-plugin-livewire: ^3.0
- phpstan/phpstan: ^2.0
README
A powerful, feature-rich activity logging solution for FilamentPHP v4
Seamlessly track, view, and manage user activities with beautiful timelines and insightful dashboards.
Built on spatie/laravel-activitylog
📖 Table of Contents
- Features
- Requirements
- Installation
- Quick Start
- Core Features
- Configuration
- Usage Examples
- Contributing
- License
✨ Features
🎯 Core Functionality
- 📦 Full Resource Integration - Dedicated resource to browse, filter, and search logs
- ⏱️ Timeline View - Stunning slide-over timeline to visualize record history
- 📊 Insightful Widgets - Activity charts and latest activity tables
- 🔗 Relation Manager - Add activity history to any resource
- 🎨 Highly Customizable - Configure labels, colors, icons, and visibility
- 🔐 Role-Based Access - Fully compatible with Filament's authorization
- 🌍 Dark Mode Support - Beautiful in both light and dark modes
📋 Requirements
| Requirement | Version | Status |
|---|---|---|
| 8.2+ | ✅ | |
| 10+ | ✅ | |
| v4+ | ✅ |
Dependencies:
- Spatie Laravel Activitylog - The robust foundation
⚡ Installation
Step 1: Install via Composer
composer require alizharb/filament-activity-log
Step 2: Register the Plugin
Add to your AdminPanelProvider:
use AlizHarb\ActivityLog\ActivityLogPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ ActivityLogPlugin::make() ->label('Log') ->pluralLabel('Logs') ->navigationGroup('System'), ]); }
Step 3: Publish Configuration (Optional)
php artisan vendor:publish --tag="filament-activity-log-config"
Step 4: Publish Assets (Optional)
If you need to customize the CSS or other assets:
php artisan vendor:publish --tag="filament-activity-log-styles"
🎯 Quick Start
1. Enable Logging on Models
Ensure your models use the LogsActivity trait:
use Spatie\Activitylog\Traits\LogsActivity; use Spatie\Activitylog\LogOptions; class User extends Authenticatable { use LogsActivity; public function getActivitylogOptions(): LogOptions { return LogOptions::defaults() ->logAll(); } }
2. View Activities
Navigate to the Logs resource in your admin panel to see all tracked activities.
🎯 Core Features
📦 Activity Log Resource
A dedicated resource allows you to manage all activity logs.
Features:
- ✅ Advanced Filtering - Filter by causer, subject, event type, and date
- ✅ Global Search - Search through log descriptions and properties
- ✅ Detailed View - Inspect every detail of an activity log
⏱️ Timeline View
Visualize the history of any record with a beautiful timeline.
Usage: The timeline is available as a table action in the Relation Manager or can be added to any page.
📊 Dashboard Widgets
Activity Chart Widget
Displays a line chart showing activity trends over time.
use AlizHarb\ActivityLog\Widgets\ActivityChartWidget; public function getWidgets(): array { return [ ActivityChartWidget::class, ]; }
Latest Activity Widget
Shows a list of the most recent activities.
use AlizHarb\ActivityLog\Widgets\LatestActivityWidget; public function getWidgets(): array { return [ LatestActivityWidget::class, ]; }
🔗 Relation Manager
Add an activity log history table to any of your existing resources (e.g., UserResource).
use AlizHarb\ActivityLog\RelationManagers\ActivitiesRelationManager; public static function getRelations(): array { return [ ActivitiesRelationManager::class, ]; }
⚙️ Configuration
You can customize almost every aspect of the package via the filament-activity-log.php config file.
Customizing Table Columns
'table' => [ 'columns' => [ 'log_name' => [ 'visible' => true, 'searchable' => true, 'sortable' => true, ], // ... ], ],
Customizing Widgets
'widgets' => [ 'activity_chart' => [ 'enabled' => true, 'days' => 30, 'fill_color' => 'rgba(16, 185, 129, 0.1)', 'border_color' => '#10b981', ], 'latest_activity' => [ 'enabled' => true, 'limit' => 10, ], ],
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for details.
Development Setup
# Clone repository git clone https://github.com/alizharb/filament-activity-log.git # Install dependencies composer install # Run tests composer test # Format code composer format
💖 Sponsor This Project
If this package helps you, consider sponsoring its development:
Your support helps maintain and improve this package! 🙏
🐛 Issues & Support
- 🐛 Bug Reports: Create an issue
- 💡 Feature Requests: Request a feature
- 💬 Discussions: Join the discussion
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.