Add the unread line. Scroll to the last read post on load. #932
This commit is contained in:
parent
3880495aa5
commit
234beec07d
File diff suppressed because one or more lines are too long
@ -36,6 +36,7 @@ beta
|
|||||||
Added an option to always auto-scroll to the bottom.
|
Added an option to always auto-scroll to the bottom.
|
||||||
|
|
||||||
Unread posts changes:
|
Unread posts changes:
|
||||||
|
A line will distinguish read post from unread ones.
|
||||||
Read posts won't be marked as unread after reloading a thread.
|
Read posts won't be marked as unread after reloading a thread.
|
||||||
Visible posts will not be taken into account towards the unread count.
|
Visible posts will not be taken into account towards the unread count.
|
||||||
|
|
||||||
|
|||||||
@ -299,6 +299,11 @@ a[href="javascript:;"] {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Unread */
|
||||||
|
#unread-line {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Thread Updater */
|
/* Thread Updater */
|
||||||
#updater:not(:hover) {
|
#updater:not(:hover) {
|
||||||
background: none;
|
background: none;
|
||||||
|
|||||||
@ -3446,6 +3446,8 @@ Unread =
|
|||||||
init: ->
|
init: ->
|
||||||
return if g.VIEW isnt 'thread' or !Conf['Unread Count'] and !Conf['Unread Tab Icon']
|
return if g.VIEW isnt 'thread' or !Conf['Unread Count'] and !Conf['Unread Tab Icon']
|
||||||
|
|
||||||
|
Unread.hr = $.el 'hr',
|
||||||
|
id: 'unread-line'
|
||||||
Misc.clearThreads "lastReadPosts.#{g.BOARD}"
|
Misc.clearThreads "lastReadPosts.#{g.BOARD}"
|
||||||
Thread::callbacks.push
|
Thread::callbacks.push
|
||||||
name: 'Unread'
|
name: 'Unread'
|
||||||
@ -3461,8 +3463,14 @@ Unread =
|
|||||||
for ID, post of @posts
|
for ID, post of @posts
|
||||||
posts.push post if post.isReply
|
posts.push post if post.isReply
|
||||||
Unread.addPosts posts
|
Unread.addPosts posts
|
||||||
|
if Unread.hr.parentNode
|
||||||
|
Unread.hr.scrollIntoView false
|
||||||
|
else if posts.length and !Unread.posts.length
|
||||||
|
# Scroll to the last read post.
|
||||||
|
posts[posts.length - 1].nodes.root.scrollIntoView()
|
||||||
$.on d, 'ThreadUpdate', Unread.onUpdate
|
$.on d, 'ThreadUpdate', Unread.onUpdate
|
||||||
$.on d, 'scroll visibilitychange', Unread.read
|
$.on d, 'scroll visibilitychange', Unread.read
|
||||||
|
$.on d, 'visibilitychange', Unread.setLine
|
||||||
|
|
||||||
addPosts: (newPosts) ->
|
addPosts: (newPosts) ->
|
||||||
if Conf['Quick Reply']
|
if Conf['Quick Reply']
|
||||||
@ -3476,6 +3484,8 @@ Unread =
|
|||||||
Unread.addPostQuotingYou post, yourPosts if yourPosts
|
Unread.addPostQuotingYou post, yourPosts if yourPosts
|
||||||
Unread.read()
|
Unread.read()
|
||||||
Unread.update()
|
Unread.update()
|
||||||
|
# Force line on visible threads if there were no unread posts previously.
|
||||||
|
Unread.setLine Unread.posts[0] in newPosts
|
||||||
|
|
||||||
addPostQuotingYou: (post, yourPosts) ->
|
addPostQuotingYou: (post, yourPosts) ->
|
||||||
for quote in post.quotes
|
for quote in post.quotes
|
||||||
@ -3514,6 +3524,15 @@ Unread =
|
|||||||
$.set "lastReadPosts.#{Unread.thread.board}", lastReadPosts
|
$.set "lastReadPosts.#{Unread.thread.board}", lastReadPosts
|
||||||
)
|
)
|
||||||
|
|
||||||
|
setLine: (force) ->
|
||||||
|
return unless d.hidden or force is true
|
||||||
|
if post = Unread.posts[0]
|
||||||
|
{root} = post.nodes
|
||||||
|
if root isnt $ '.thread > .replyContainer', root.parentNode # not the first reply
|
||||||
|
$.before root, Unread.hr
|
||||||
|
else if Unread.hr.parentNode
|
||||||
|
$.rm Unread.hr
|
||||||
|
|
||||||
update: ->
|
update: ->
|
||||||
count = Unread.posts.length
|
count = Unread.posts.length
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user