<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bokshorn-it / filament-activity-timeline example snippets
use BokshornIt\FilamentActivityTimeline\ActivityTimelinePlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugin(ActivityTimelinePlugin::make());
}
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;
class Article extends Model implements ProvidesActivityTitle
{
use LogsActivity;
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()
->logFillable()
->logOnlyDirty()
->dontSubmitEmptyLogs();
}
public function activityTitle(): ?string
{
return $this->title;
}
}
ActivityTimelinePlugin::make()
->navigationGroup(fn (): string => __('navigation.group.system'))
->navigationIcon('heroicon-o-archive-box')
->navigationSort(10)
->registerNavigation(false) // hide it but keep the routes
use BokshornIt\FilamentActivityTimeline\Policies\ActivityPolicy;
use Spatie\Activitylog\Models\Activity;
Gate::policy(Activity::class, ActivityPolicy::class);
class AuditResource extends ActivityResource
{
public static function getModelLabel(): string
{
return __('audit.model.singular');
}
}
ActivityTimelinePlugin::make()->resource(AuditResource::class);
ActivityTimelinePlugin::make()
->ignoredKeys(['search_index']) // never show these in a diff
->dateFormat('d.m.Y')
->dateTimeFormat('d.m.Y H:i')
->timelineLimit(50)
->placeholder('-')