Reader: mark groups / articles as read, and hide read items #18
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The reader has no way to mark a whole group (aggregate) as read, and articles that have been read stay in the view forever. Once I have read an article — or everything in a group — I don't want it cluttering the reader, but I also want the choice of seeing already-read content when I do.
Goal
Findings
Plan of attack
Unblocks #5: the
r(toggle read) andh(next unread) shortcuts assume this exists.Design decisions (resolving the open questions)
unread_count == 0, already computed in_build_aggregate_row). "Mark group as read" marks all current member articles; a group that receives a new article later shows unread again automatically. No schema change.POST /aggregate/<id>/readmarks all member articles read and redirects back to the aggregate page (POST-redirect-GET, works from a plain form with no JS). The existing per-article read/unread endpoints stay JSON — they are the API #5's keyboard shortcuts will call.?hide_read=1query param, fully server-rendered toggle links, default off (show everything). Reader index hides fully-read aggregates; aggregate view hides read articles with an empty state when everything is read. Persistence as a default preference comes later via #8's settings store.Resolved by PR #24 (merged): computed group read state via mark-all-members route with POST-redirect-GET, and the hide-read toggle (
?hide_read=1) on both the reader index and aggregate view. Toggle persistence as a default rides on the #25/#8 settings store later.