Add hide toggles to the admin activities timeline (and some design cleanup) - #2475
Merged
Conversation
maebeale
force-pushed
the
maebeale/activities-event-filters
branch
from
September 1, 2026 13:40
073dd13 to
54d3aad
Compare
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
force-pushed
the
maebeale/activities-event-filters
branch
from
September 1, 2026 18:34
0af1ac1 to
d94b3dd
Compare
maebeale
marked this pull request as ready for review
September 1, 2026 18:35
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 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
auth.*(login, password reset, email change, lock, admin grant, account setup/delete, …) and User-record mutations (create/update/destroy.user).Person History defaults
Bug fix: filter form kept losing the person/user/record scope
request.path, soperson_id(anduser_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.Worth a look
update.userchurn (fires alongside auth callbacks), not justauth.*. Meaningful account changes still surface via their dedicatedauth.*events (email changed, admin granted, …).check_box_tagsliders inside the existing filter form, so thecollectioncontroller auto-submits into theactivity_resultsframe — no new JS.