Feature proposal #6540
closedImplement read state
Description
Implement a new "read" column to keep track of if the activity or comment entry has been read by the owner. Owner should be parsed from asset with fallback to stream object. This will only, initially, be parsed and utilized by the notifications usage but eventually will also apply to the conversations usage.
Updated by krileon over 7 years ago
Implement this as a separate database table similar to hidden so it can be per user. It should only join if a read filter is added (e.g. ->set( 'ready', 1_OR_0 )) otherwise ignore the join entirely and also ignore if there is no user id. Implement a date cutoff range. If older than the cutoff then always treat it as read (default 6 months). Improve the pruning function to purge read states older than cutoff as well. Table structure as follows.
user_id, type (activity or comment), item (activity or comment id), read (timestamp)
Updated by krileon over 7 years ago
Needs a mark all read button on notifications page as well.
Updated by krileon over 7 years ago
- Status changed from Assigned to Resolved
- % Done changed from 50 to 100
This is now simplified in that it keeps track of read state per asset. So it's 1 row for users notifications for example. It compares the timestamp of the last time they viewed their notifications to the timestamp of the notification. If it's newer than the last time they viewed it's marked unread otherwise it's considered read.