This package adds pages to the Filament Admin panel to view the activity log generated by spatie/laravel-activitylog.
| Plugin Version | Filament Version | Activitylog | PHP Version |
|---|---|---|---|
| 0.1.x | 2.x | 4.x | > 8.0 |
| 1.x | 3.x | 4.x | > 8.1 |
| 2.x | 4.x, 5.x | 4.x | > 8.1 |
| 3.x | 5.x | 5.x | > 8.4 |
Install via Composer.
Requires PHP 8.1, Filament 4.0 or 5.0, and spatie/laravel-activitylog 4.7 or 5.0
composer require pxlrbt/filament-activity-logWarning This plugin offers two pages: one listing activities on a subject (use
ListActivitiesBySubject) and one listing activities caused by a record such as a user (useListActivitiesByCauser). You needspatie/laravel-activityloginstalled and configured for it to work. The subject page uses theLogsActivitytrait'sactivitiesAsSubject()relation; the causer page uses theCausesActivitytrait'sactivitiesAsCauser()relation.
Make sure you have a custom theme, add this line and recompile: @import '../../../../vendor/pxlrbt/filament-activity-log/resources/css/styles.css';
Make sure you use a custom theme and the vendor folder for this plugins is published, so that it includes the Tailwind CSS classes.
Use ListActivitiesBySubject to show all activities recorded on a record (e.g. every change to an order).
Make sure your resource model uses the LogsActivity trait.
<?php
use Spatie\Activitylog\Models\Concerns\LogsActivity;
class Order extends Model
{
use LogsActivity;
}Create the page inside your resource's Pages/ directory. Replace OrderResource with your resource.
<?php
namespace App\Filament\Resources\Orders\Pages;
use pxlrbt\FilamentActivityLog\Pages\ListActivitiesBySubject;
class ListOrderActivities extends ListActivitiesBySubject
{
protected static string $resource = OrderResource::class;
}Note The legacy class
ListActivitiesis kept as an abstract alias ofListActivitiesBySubject, so existing subclasses continue to work.
Add the page to your resource's getPages() method.
public static function getPages(): array
{
return [
'index' => Pages\ListOrders::route('/'),
'create' => Pages\CreateOrder::route('/create'),
'activities' => Pages\ListOrderActivities::route('/{record}/activities'),
'edit' => Pages\EditOrder::route('/{record}/edit'),
];
}Use ListActivitiesByCauser to show all activities a record (typically a user) has caused across every subject. Each row links to the affected subject's resource when one is registered.
Make sure your user model uses the CausesActivity trait.
<?php
use Spatie\Activitylog\Models\Concerns\CausesActivity;
class User extends Authenticatable implements FilamentUser
{
use CausesActivity;
}Create the page inside your UserResource's Pages/ directory.
<?php
namespace App\Filament\Resources\Users\Pages;
use pxlrbt\FilamentActivityLog\Pages\ListActivitiesByCauser;
class ListUserActivities extends ListActivitiesByCauser
{
protected static string $resource = UserResource::class;
}See https://spatie.be/docs/laravel-activitylog/v5/advanced-usage/logging-model-events for more information on the topic.
Add the page to your resource's getPages() method.
public static function getPages(): array
{
return [
'index' => Pages\ListUsers::route('/'),
'create' => Pages\CreateUser::route('/create'),
'activities' => Pages\ListUserActivities::route('/{record}/activities'),
'edit' => Pages\EditUser::route('/{record}/edit'),
];
}If you want to contribute to this packages, you may want to test it in a real Filament project:
- Fork this repository to your GitHub account.
- Create a Filament app locally.
- Clone your fork in your Filament app's root directory.
- In the
/filament-activity-logdirectory, create a branch for your fix, e.g.fix/error-message.
Install the packages in your app's composer.json:
"require": {
"pxlrbt/filament-activity-log": "dev-fix/error-message as main-dev",
},
"repositories": [
{
"type": "path",
"url": "filament-activity-log"
}
]Now, run composer update.

