Refactor hidden threads count.

It concerns filtered threads too, not just manually hidden threads.

Conflicts:
	src/Filtering/ThreadHiding.coffee
	src/General/Index.coffee
This commit is contained in:
Mayhem 2014-02-01 20:21:15 +01:00 committed by ccd0
parent 3af338f23d
commit d9e4dcda41
2 changed files with 27 additions and 25 deletions

View File

@ -19,29 +19,7 @@ ThreadHiding =
thread = Get.threadFromRoot root
if thread.isHidden and thread.stub and !root.contains thread.stub
ThreadHiding.makeStub thread, root
ThreadHiding.updateToggle()
updateToggle: ->
hiddenCount = 0
for threadID, thread of g.BOARD.threads when thread.isHidden
hiddenCount++ if thread.ID in Index.liveThreadIDs
unless hiddenCount
ThreadHiding.removeToggle()
return
unless ThreadHiding.toggler
ThreadHiding.addToggle()
$('#hidden-count', Index.navLinks).textContent = if hiddenCount is 1
'1 hidden thread'
else
"#{hiddenCount} hidden threads"
addToggle: ->
ThreadHiding.toggler = $.el 'span',
id: 'hidden-label'
innerHTML: ' &mdash; <span id="hidden-count"></span>'
$.add Index.navLinks, ThreadHiding.toggler
removeToggle: ->
return unless ThreadHiding.toggler
$.rm ThreadHiding.toggler
delete ThreadHiding.toggler
return
syncCatalog: ->
# Sync hidden threads from the catalog into the index.
@ -210,7 +188,7 @@ ThreadHiding =
return if thread.isHidden
threadRoot = thread.OP.nodes.root.parentNode
thread.isHidden = true
ThreadHiding.updateToggle()
Index.updateHideToggle()
return threadRoot.hidden = true unless makeStub
@ -222,4 +200,4 @@ ThreadHiding =
delete thread.stub
threadRoot = thread.OP.nodes.root.parentNode
threadRoot.hidden = thread.isHidden = false
ThreadHiding.updateToggle()
Index.updateHideToggle()

View File

@ -267,6 +267,29 @@ Index =
$.before a, strong
$.add strong, a
updateHideToggle: ->
hiddenCount = 0
for threadID, thread of g.BOARD.threads when thread.isHidden
hiddenCount++ if thread.ID in Index.liveThreadIDs
unless hiddenCount
Index.removeHideToggle()
return
unless Index.toggler
Index.addHideToggle()
$('#hidden-count', Index.navLinks).textContent = if hiddenCount is 1
'1 hidden thread'
else
"#{hiddenCount} hidden threads"
addHideToggle: ->
Index.toggler = $.el 'span',
id: 'hidden-label'
innerHTML: ' &mdash; <span id="hidden-count"></span>'
$.add Index.navLinks, Index.toggler
removeHideToggle: ->
return unless Index.toggler
$.rm Index.toggler
delete Index.toggler
update: (pageNum, forceReparse) ->
return unless navigator.onLine
delete Index.pageNum
@ -386,6 +409,7 @@ Index =
$.nodes Index.nodes
Main.callbackNodes Thread, threads
Main.callbackNodes Post, posts
Index.updateHideToggle()
$.event 'IndexRefresh'
buildReplies: (threadRoots) ->