Read 'Show Unread Count' on ThreadWatcher initialization to avoid semi-broken state when setting is changed.

This commit is contained in:
ccd0 2015-11-28 10:56:25 -08:00
parent a05431c07d
commit 808b8661f1

View File

@ -17,6 +17,7 @@ ThreadWatcher =
@refreshButton = $ '.refresh', @dialog @refreshButton = $ '.refresh', @dialog
@closeButton = $('.move > .close', @dialog) @closeButton = $('.move > .close', @dialog)
@unreaddb = Unread.db or new DataBoard 'lastReadPosts' @unreaddb = Unread.db or new DataBoard 'lastReadPosts'
@unreadEnabled = Conf['Remember Last Read Post']
$.on d, 'QRPostSuccessful', @cb.post $.on d, 'QRPostSuccessful', @cb.post
$.on sc, 'click', @toggleWatcher $.on sc, 'click', @toggleWatcher
@ -145,7 +146,7 @@ ThreadWatcher =
if Conf['Auto Prune'] or not (data and typeof data is 'object') # corrupt data if Conf['Auto Prune'] or not (data and typeof data is 'object') # corrupt data
db.delete {boardID, threadID} db.delete {boardID, threadID}
else else
if Conf['Remember Last Read Post'] and Conf['Show Unread Count'] if ThreadWatcher.unreadEnabled and Conf['Show Unread Count']
ThreadWatcher.fetchStatus {boardID, threadID, data} ThreadWatcher.fetchStatus {boardID, threadID, data}
data.isDead = true data.isDead = true
db.set {boardID, threadID, val: data} db.set {boardID, threadID, val: data}
@ -174,7 +175,7 @@ ThreadWatcher =
clearTimeout ThreadWatcher.timeout clearTimeout ThreadWatcher.timeout
return unless Conf['Auto Update Thread Watcher'] return unless Conf['Auto Update Thread Watcher']
{db} = ThreadWatcher {db} = ThreadWatcher
interval = if Conf['Remember Last Read Post'] and Conf['Show Unread Count'] then 5 * $.MINUTE else 2 * $.HOUR interval = if ThreadWatcher.unreadEnabled and Conf['Show Unread Count'] then 5 * $.MINUTE else 2 * $.HOUR
now = Date.now() now = Date.now()
if now >= (db.data.lastChecked or 0) + interval if now >= (db.data.lastChecked or 0) + interval
db.data.lastChecked = now db.data.lastChecked = now
@ -291,7 +292,7 @@ ThreadWatcher =
title: data.excerpt title: data.excerpt
className: 'watcher-link' className: 'watcher-link'
if Conf['Remember Last Read Post'] and Conf['Show Unread Count'] and data.unread? if ThreadWatcher.unreadEnabled and Conf['Show Unread Count'] and data.unread?
count = $.el 'span', count = $.el 'span',
textContent: "(#{data.unread})" textContent: "(#{data.unread})"
className: 'watcher-unread' className: 'watcher-unread'
@ -307,7 +308,7 @@ ThreadWatcher =
div.dataset.fullID = fullID div.dataset.fullID = fullID
$.addClass div, 'current' if g.VIEW is 'thread' and fullID is "#{g.BOARD}.#{g.THREADID}" $.addClass div, 'current' if g.VIEW is 'thread' and fullID is "#{g.BOARD}.#{g.THREADID}"
$.addClass div, 'dead-thread' if data.isDead $.addClass div, 'dead-thread' if data.isDead
if Conf['Remember Last Read Post'] and Conf['Show Unread Count'] if ThreadWatcher.unreadEnabled and Conf['Show Unread Count']
$.addClass div, 'replies-read' if data.unread is 0 $.addClass div, 'replies-read' if data.unread is 0
$.addClass div, 'replies-unread' if data.unread $.addClass div, 'replies-unread' if data.unread
$.addClass div, 'replies-quoting-you' if data.quotingYou $.addClass div, 'replies-quoting-you' if data.quotingYou
@ -397,7 +398,7 @@ ThreadWatcher =
data.excerpt = Get.threadExcerpt thread data.excerpt = Get.threadExcerpt thread
ThreadWatcher.db.set {boardID, threadID, val: data} ThreadWatcher.db.set {boardID, threadID, val: data}
ThreadWatcher.refresh() ThreadWatcher.refresh()
if Conf['Remember Last Read Post'] and Conf['Show Unread Count'] if ThreadWatcher.unreadEnabled and Conf['Show Unread Count']
ThreadWatcher.fetchStatus {boardID, threadID, data}, true ThreadWatcher.fetchStatus {boardID, threadID, data}, true
rm: (boardID, threadID) -> rm: (boardID, threadID) ->
@ -473,7 +474,7 @@ ThreadWatcher =
el: UI.checkbox name, name.replace(' Thread Watcher', '') el: UI.checkbox name, name.replace(' Thread Watcher', '')
entry.el.title = desc entry.el.title = desc
input = entry.el.firstElementChild input = entry.el.firstElementChild
if name is 'Show Unread Count' and not Conf['Remember Last Read Post'] if name is 'Show Unread Count' and not ThreadWatcher.unreadEnabled
input.disabled = true input.disabled = true
$.addClass entry.el, 'disabled' $.addClass entry.el, 'disabled'
entry.el.title += '\n[Remember Last Read Post is disabled.]' entry.el.title += '\n[Remember Last Read Post is disabled.]'