Skip to content

Add hide toggles to the admin activities timeline (and some design cleanup) - #2475

Merged
maebeale merged 28 commits into
mainfrom
maebeale/activities-event-filters
Sep 1, 2026
Merged

Add hide toggles to the admin activities timeline (and some design cleanup)#2475
maebeale merged 28 commits into
mainfrom
maebeale/activities-event-filters

Conversation

@maebeale

@maebeale maebeale commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

🤖 suggested review level: 3 Read 📖 contained filter logic on the activities index + a taxonomy decision and a form-scoping bug fix

Three switches on the admin Activities page hide whole categories of noise so a timeline can be pared down to record changelogs and communications — facilitators kept wading through login/password churn to find the edits that matter.

What's new

  • Hide account — excludes auth.* (login, password reset, email change, lock, admin grant, account setup/delete, …) and User-record mutations (create/update/destroy.user).
  • Hide interactions — excludes view / print / download / search / filter / zero-result-search noise.
  • Hide communications — drops a person's email communications from their timeline.

Person History defaults

  • The History link on a person's page opens with account + interaction hidden, so you land on changelogs + comms; flip the switches to see everything.

Bug fix: filter form kept losing the person/user/record scope

  • The filter form submitted only its visible fields to request.path, so person_id (and user_id / resource_type / resource_id) were dropped on any toggle/search/audience/time change — the page silently reverted to the global feed and unrelated events (org autochanges, everyone's logins) reappeared.
  • Now carried as hidden fields; the sort-header links preserve the hide toggles + scope too.

Worth a look

  • "Account" deliberately also hides update.user churn (fires alongside auth callbacks), not just auth.*. Meaningful account changes still surface via their dedicated auth.* events (email changed, admin granted, …).
  • Toggles are check_box_tag sliders inside the existing filter form, so the collection controller auto-submits into the activity_results frame — no new JS.
Screenshot 2026-09-01 at 3 08 25 PM

@maebeale
maebeale force-pushed the maebeale/activities-event-filters branch from 073dd13 to 54d3aad Compare September 1, 2026 13:40
maebeale and others added 22 commits September 1, 2026 14:33
Facilitators reviewing a person's history want to see meaningful record
changelogs and communications without wading through login/password churn
and read-and-browse noise. Add three switches — hide account, hide
interactions, hide communications — and default the person History link to
hiding account + interaction events.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Submitting the filter form (any toggle, search, audience, or time change)
posted only the visible fields to request.path, dropping the person_id /
user_id / resource_type / resource_id that scope the timeline — so the page
silently reverted to the global feed and unrelated events (e.g. org
autochanges) reappeared. Carry those scoping params as hidden fields, and
preserve the hide toggles + scope through the sort-header links too.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collapse the timeline's Activity and Resource columns into one and their
two search boxes into one, and render the raw event name as a plain-language
action chip (New/Edit/Auto/…) plus the resource title linked to its edit page,
so a non-technical admin can read the feed at a glance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
A low-tech admin sees 'New'/'Edit' chips in the timeline, so let them search
those words too: map each chip label back to its raw action prefix (new->create,
edit->update, search->search/search_zero) from the single ACTION_CHIPS source.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Show a field's edit as struck-through old value -> new value instead of
stacked Before:/After: rows, so the Details column reads at a glance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Truncate the user name to a small fixed width so the timeline's content
columns (Activity, Details) get the room instead.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Point a comment's resource link at the record it's on (affiliation,
scholarship, profile) instead of the comment id, and show its topic/body in
Details. Lay communications out the same way: a Sent/Received chip, Subject
and Body in Details, and the From name in the User column.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Label affiliations as title + org, event registrations as event + start
month, and payments by what they're allocated to; flag flagged comments with
an orange flag. Make the resource name purple and the specific record grey,
and link the whole Activity cell to the resource with a hover underline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Match the activity rows: the communication name is purple and the whole
Activity cell opens the notification, with a hover underline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Keep the body text on the same line as its label, and drop the
notification link from the Activity cell (the Subject link still opens it).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Show ~50 chars of a comment or communication body, full text on hover, so a
long note doesn't blow up the row.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Show each change as 'Field: old -> new' on a single row instead of stacking
the diff below the name, and size the Topic/Subject/Body labels like the other
field names.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cover the Details cell with an invisible stretched link to the resource so
the whole cell navigates without the purple link styling; inner reference
links stay clickable above it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cover the communication Details cell with a stretched link to the
notification and drop the purple Subject link, matching the activity rows.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Match the other activity cells: the whole communication name cell opens the
notification with a hover underline. Add coverage for the incoming Received
chip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drop the separate Details column and stack each event's details under its name
(indented past the chip), so a row reads as one headline-plus-detail block
instead of spanning a wide gap. Communications follow the same shape.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Put the resource sublabel on the same line as the name, right-align every chip
in a fixed-width column so the names line up across rows, and revert the
comment label to 'Body:'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Break out of the results frame (turbo _top) so the visits index loads full-page.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@maebeale
maebeale force-pushed the maebeale/activities-event-filters branch from 0af1ac1 to d94b3dd Compare September 1, 2026 18:34
@maebeale
maebeale marked this pull request as ready for review September 1, 2026 18:35
maebeale and others added 5 commits September 1, 2026 14:38
Let a body wrap to a second line before trimming; full text still on hover.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Match how communication rows carry the notifications tint, so comment rows
read as their own domain at a glance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Append 'Aug'25 - Feb'26' (or 'Aug'25 - present' while active) after the title
and organization, so an affiliation reads with its tenure.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Scholarship reads as amount + grant + funder, a CE registration as its hours +
license, and an event registration as 'Registration: <event> · <Mon'YY>'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
A login already names the user in its headline, so drop the record,
record type, and updated-by rows and keep just the meaningful detail (sign-in
count).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The History link now opens with account and interaction events hidden; align
the view spec's expected href.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@maebeale maebeale changed the title Add hide toggles to the admin activities timeline Add hide toggles to the admin activities timeline (and some design cleanup) Sep 1, 2026
@maebeale
maebeale merged commit 0a7b35e into main Sep 1, 2026
3 checks passed
@maebeale
maebeale deleted the maebeale/activities-event-filters branch September 1, 2026 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant