I am looking for a way to mark Messages as New until the user clicks on the message or clicks a button to "Mark All Messages Read".
I read through how Views handles New nodes, and the granularity of that approach doesn't suite all message types.
- Messages directly related to a node or comment that can be tracked via standard Newness operations.
- Messages related to some other, untracked change with a link to go see it.
- Messages which, when seen in the right context, are no longer new (messages in a primary activity log, or private message listing).
#1 just needs light tweaking of existing solutions. #2 I think needs to borrow the concept of an Event ID from, and add a special query string that a newness module would detect and use to mark the message "read".
For #3 it's a bit trickier. I don't know that anyone wants to get in the game of detecting whether an individual row in a View was actually seen by the user. I'm thinking there could be a link the user can click to confirm viewing, but maybe it would be easier to just expire newness after a week if the user has logged in (or even fancier, logged in and viewed one of several configured page paths where the activity would presumably have been listed.)
I realize this functionality might be outside the scope of Message as a project, but I wanted to get the braintrust in on the discussion ;)