Plugins
Activity Log
A powerful, feature-rich activity logging solution for FilamentPHP v4 with timeline views, dashboard widgets, and revert actions.
Analytics
Widget
Panel Builder
Dark theme support
Yes
Multi language support
Yes
Compatible with the latest version
Supported versions: 4.x
Documentation
Filament Activity Log

License Latest Version on Packagist Total Downloads PHP Version

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

#🎯 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
PHP 8.2+
Laravel 10+
Filament v4+

Dependencies:


#⚡ 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. Configure Tracking (Optional)

To automatically capture IP addresses and user agent information, add the generic tap to your config/activitylog.php:

'activity_logger_taps' => [
\AlizHarb\ActivityLog\Taps\SetActivityContextTap::class,
],

#3. 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.

📚 For detailed configuration instructions, including navigation groups and custom authorization, see CONFIGURATION.md

#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,
],
],

#Custom Authorization

Restrict access to specific users without setting up a full permission system:

// In config/filament-activity-log.php
'permissions' => [
'custom_authorization' => fn($user) => $user->id === 1,
],

See CONFIGURATION.md for more examples.


#🤝 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:

Sponsor on GitHub

Your support helps maintain and improve this package! 🙏


#🐛 Issues & Support


#📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


#🙏 Acknowledgments

Featured Plugins