Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Activity Timeline Laravel Package

bokshorn-it/filament-activity-timeline

A Filament plugin that turns spatie/laravel-activitylog into readable timelines: enum, date, boolean, and relationship diffs rendered through the subject model's own casts, plus a filterable activity resource, custom events, and German translations.

View on GitHub
Deep Wiki
Context7
v1.3.0

Polymorphic foreign keys resolve to the record they point at.

A morph column needs two values to be read - notable_type says which model, notable_id says which row - and the formatter only ever saw one at a time, so it printed the bare id. It now formats each side of a change against the rest of that side, which is where the type sits. No configuration: the pair is taken from the relationship itself, so any MorphTo following Laravel's own conventions resolves.

  • Morph types given as a morph map alias resolve for both columns of the pair
  • Foreign keys find soft-deleted records, whose name is usually the reason for resolving the key at all
  • ChangeFormatter::formatValue() takes the surrounding values as an optional fourth argument; calling it with three behaves as before
v1.2.0

Models can now render their own logged values.

A diff resolves what the schema tells it, which leaves the columns whose meaning only the application knows: total_cents printed as 2200 rather than 22,00 EUR, a decimal:3 quantity as "1.000", a custom date cast as a raw ISO string. Implement the new ProvidesActivityValues contract and the model answers for the columns it knows, returning null for the rest.

  • Contracts\ProvidesActivityValues, consulted before the formatter's own cast handling and after empty values and booleans are settled
  • A value formatter that throws is caught and falls through, so a broken implementation cannot take a timeline down with it
  • Subject instances resolve once per class rather than once per value, and a subject class that no longer instantiates no longer breaks the entry
v1.1.0

Support for spatie/laravel-activitylog v5 alongside v4 (#1).

v5 moved the before/after values out of properties into their own attribute_changes column. The plugin now reads whichever the installed version writes, so timelines, diffs and restore behave the same on both. Nothing to change in your app: the constraint widens to ^4.12|^5.0 and v4 stays supported.

  • Change pairs read through Support\ActivityChanges, covering both storage shapes - and a custom activity model that forgot the cast
  • CI runs the full suite against activitylog v4 and v5
v1.0.1

No changes to the shipped code.

  • Demo application under workbench/, runnable with composer serve
  • README: screenshots, a compatibility table and a section on running the demo
v1.0.0

Initial release.

  • Record timeline slide-over with withRelations() and a configurable entry limit
  • Activity resource with event, record type, causer and date-range filters
  • Change formatter resolving enum casts, date casts, foreign keys, booleans and morph columns to readable values
  • ProvidesActivityTitle contract naming a model as subject, causer and foreign-key target
  • Custom event registry with per-event icon and colour
  • Typed causer resolution, including a System presentation for unattended writes
  • Opt-in restore, limited to models named on ->restorable()
  • Single ->modifyQueryUsing() scope applied to both the resource and every timeline
  • Subject labels for models no Filament resource manages, via ->subjectLabelNamespace()
  • German and English translations
  • Tested against SQLite, MySQL 8 and PostgreSQL 17, on PHP 8.3 to 8.5
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums