Fix oversight. Index needs to keep track of hidden threads, not just filtered ones.

Fixes bug from 445b6fdf6f180db22f7cc1505d67f460858e1f35.
This commit is contained in:
ccd0 2016-10-01 19:25:25 -07:00
parent d68ec9ecfd
commit a117e3ed36
2 changed files with 14 additions and 5 deletions

View File

@ -43,6 +43,9 @@ ThreadHiding =
threadID: threadID
ThreadHiding.hiddenThreads = hiddenThreads2
isHidden: (boardID, threadID) ->
!!(ThreadHiding.db and ThreadHiding.db.get {boardID, threadID})
node: ->
return if @isReply or @isClone or @isFetchedQuote

View File

@ -487,8 +487,8 @@ Index =
updateHideLabel: ->
hiddenCount = 0
for threadID, thread of g.BOARD.threads when thread.isHidden
hiddenCount++ if thread.ID in Index.liveThreadIDs
for threadID in Index.liveThreadIDs when Index.isHidden(threadID)
hiddenCount++
unless hiddenCount
Index.hideLabel.hidden = true
Index.cb.toggleHiddenThreads() if Index.showHiddenThreads
@ -597,13 +597,19 @@ Index =
Index.parsedThreads[data.no] = obj = Build.parseJSON data, g.BOARD.ID
obj.filterResults = results = Filter.test obj
obj.isOnTop = results.top
obj.isHidden = results.hide
obj.isHidden = results.hide or ThreadHiding.isHidden(obj.boardID, obj.threadID)
if Index.liveThreadData[0]
Build.spoilerRange[g.BOARD.ID] = Index.liveThreadData[0].custom_spoiler
g.BOARD.threads.forEach (thread) ->
(thread.collect() unless thread.ID in Index.liveThreadIDs)
return
isHidden: (threadID) ->
if (thread = g.BOARD.threads[threadID]) and thread.OP and not thread.OP.isFetchedQuote
thread.isHidden
else
Index.parsedThreads[threadID].isHidden
buildThreads: ->
return unless Index.liveThreadData
Index.nodes = {}
@ -738,7 +744,7 @@ Index =
# Highlighted threads
Index.sortOnTop (obj) -> obj.isOnTop or Conf['Pin Watched Threads'] and ThreadWatcher.isWatchedRaw(obj.boardID, obj.threadID)
# Non-hidden threads
Index.sortOnTop((obj) -> !obj.isHidden) if Conf['Anchor Hidden Threads']
Index.sortOnTop((obj) -> !Index.isHidden(obj.threadID)) if Conf['Anchor Hidden Threads']
sortOnTop: (match) ->
topThreads = []
@ -753,7 +759,7 @@ Index =
when 'all pages'
threadIDs = Index.sortedThreadIDs
when 'catalog'
threadIDs = Index.sortedThreadIDs.filter (ID) -> !Index.parsedThreads[ID].isHidden isnt Index.showHiddenThreads
threadIDs = Index.sortedThreadIDs.filter (ID) -> !Index.isHidden(ID) isnt Index.showHiddenThreads
else
threadIDs = Index.threadsOnPage Index.currentPage
threads = threadIDs.map (ID) -> g.BOARD.threads[ID]