Components
Timelines
Timelines
Vertical activity timeline used on quote, transaction, partner, and user detail pages. Entries group by date with sticky day headers and per-person avatars.
This page mirrors the emitted markup of a Portal page partial. Live rendering requires the helper to live in Koala.Web.
Canonical
Today
-
14:32Sarah Johnson accepted quote KQ-20260331-001
-
11:15Sarah Johnson added a note
-
09:45James Wilson created the quote
Entries group by day, render newest-first, and pin the day label as the user scrolls.
Variants
3 variantsDefault — dots
-
14:32Sarah accepted quote
-
11:15Sarah added a note
Compact — tight rows
-
James · status change
-
James · status change
-
James · status change
-
James · status change
Icons — status events
-
Quote accepted
-
Note added
States
2 statesLoaded
-
14:32Sarah accepted quote
-
11:15James created quote
Empty
No activity yet
Partial / ViewData
5 entries| Key | Type | Notes |
|---|---|---|
| Model | IReadOnlyList<IGrouping<DateOnly, ActivityEntity>> | Activities grouped by day. Load with .Include(activity => activity.Changes). |
| AreaPrefix | string | Defaults to /conveyancing. Drives entity links. |
| ShowEntityLink | bool | Whether to render the entity-name link beneath each entry. |
| ShowVisibilityIcons | bool | Renders client/partner audience icons next to the timestamp. |
| StickyHeader | "top-0" | "top-12" | Vertical offset for sticky day labels. |
Do & don't
-
Today · 14:32Sarah accepted quote
-
Yesterday · 16:20James created quote
Do
Group by day. Show actor + verb in plain prose — reserve the diff for the changes modal.
-
Status old → new by Sarah at 14:32 on 12 May 2026
-
Status old → new by Sarah at 14:32 on 12 May 2026
-
Status old → new by Sarah at 14:32 on 12 May 2026
-
Status old → new by Sarah at 14:32 on 12 May 2026
Don't
Don't inline before/after diffs and full timestamps in the row. The timeline becomes a wall of text.