Project

General

Profile

Actions

Feature proposal #6540

closed

Implement read state

Added by krileon over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
13 March 2017
Due date:
% Done:

100%

Estimated time:

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.

Actions #1

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)

Actions #2

Updated by krileon over 7 years ago

Needs a mark all read button on notifications page as well.

Actions #3

Updated by krileon over 7 years ago

  • % Done changed from 0 to 50
Actions #4

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.

Actions #5

Updated by krileon over 7 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF