Fix oversight. Index needs to keep track of hidden threads, not just filtered ones.
Fixes bug from 445b6fdf6f180db22f7cc1505d67f460858e1f35.
This commit is contained in:
parent
d68ec9ecfd
commit
a117e3ed36
@ -43,6 +43,9 @@ ThreadHiding =
|
|||||||
threadID: threadID
|
threadID: threadID
|
||||||
ThreadHiding.hiddenThreads = hiddenThreads2
|
ThreadHiding.hiddenThreads = hiddenThreads2
|
||||||
|
|
||||||
|
isHidden: (boardID, threadID) ->
|
||||||
|
!!(ThreadHiding.db and ThreadHiding.db.get {boardID, threadID})
|
||||||
|
|
||||||
node: ->
|
node: ->
|
||||||
return if @isReply or @isClone or @isFetchedQuote
|
return if @isReply or @isClone or @isFetchedQuote
|
||||||
|
|
||||||
|
|||||||
@ -487,8 +487,8 @@ Index =
|
|||||||
|
|
||||||
updateHideLabel: ->
|
updateHideLabel: ->
|
||||||
hiddenCount = 0
|
hiddenCount = 0
|
||||||
for threadID, thread of g.BOARD.threads when thread.isHidden
|
for threadID in Index.liveThreadIDs when Index.isHidden(threadID)
|
||||||
hiddenCount++ if thread.ID in Index.liveThreadIDs
|
hiddenCount++
|
||||||
unless hiddenCount
|
unless hiddenCount
|
||||||
Index.hideLabel.hidden = true
|
Index.hideLabel.hidden = true
|
||||||
Index.cb.toggleHiddenThreads() if Index.showHiddenThreads
|
Index.cb.toggleHiddenThreads() if Index.showHiddenThreads
|
||||||
@ -597,13 +597,19 @@ Index =
|
|||||||
Index.parsedThreads[data.no] = obj = Build.parseJSON data, g.BOARD.ID
|
Index.parsedThreads[data.no] = obj = Build.parseJSON data, g.BOARD.ID
|
||||||
obj.filterResults = results = Filter.test obj
|
obj.filterResults = results = Filter.test obj
|
||||||
obj.isOnTop = results.top
|
obj.isOnTop = results.top
|
||||||
obj.isHidden = results.hide
|
obj.isHidden = results.hide or ThreadHiding.isHidden(obj.boardID, obj.threadID)
|
||||||
if Index.liveThreadData[0]
|
if Index.liveThreadData[0]
|
||||||
Build.spoilerRange[g.BOARD.ID] = Index.liveThreadData[0].custom_spoiler
|
Build.spoilerRange[g.BOARD.ID] = Index.liveThreadData[0].custom_spoiler
|
||||||
g.BOARD.threads.forEach (thread) ->
|
g.BOARD.threads.forEach (thread) ->
|
||||||
(thread.collect() unless thread.ID in Index.liveThreadIDs)
|
(thread.collect() unless thread.ID in Index.liveThreadIDs)
|
||||||
return
|
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: ->
|
buildThreads: ->
|
||||||
return unless Index.liveThreadData
|
return unless Index.liveThreadData
|
||||||
Index.nodes = {}
|
Index.nodes = {}
|
||||||
@ -738,7 +744,7 @@ Index =
|
|||||||
# Highlighted threads
|
# Highlighted threads
|
||||||
Index.sortOnTop (obj) -> obj.isOnTop or Conf['Pin Watched Threads'] and ThreadWatcher.isWatchedRaw(obj.boardID, obj.threadID)
|
Index.sortOnTop (obj) -> obj.isOnTop or Conf['Pin Watched Threads'] and ThreadWatcher.isWatchedRaw(obj.boardID, obj.threadID)
|
||||||
# Non-hidden threads
|
# 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) ->
|
sortOnTop: (match) ->
|
||||||
topThreads = []
|
topThreads = []
|
||||||
@ -753,7 +759,7 @@ Index =
|
|||||||
when 'all pages'
|
when 'all pages'
|
||||||
threadIDs = Index.sortedThreadIDs
|
threadIDs = Index.sortedThreadIDs
|
||||||
when 'catalog'
|
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
|
else
|
||||||
threadIDs = Index.threadsOnPage Index.currentPage
|
threadIDs = Index.threadsOnPage Index.currentPage
|
||||||
threads = threadIDs.map (ID) -> g.BOARD.threads[ID]
|
threads = threadIDs.map (ID) -> g.BOARD.threads[ID]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user