Hiding threads will hide empty index pages too.

Rebuilding the paged index should navigate us to the last available page.
This commit is contained in:
Mayhem 2014-02-21 04:21:56 +01:00
parent ab2ea29dd6
commit 8613e11bc2

View File

@ -257,7 +257,6 @@ Index =
Index.buildIndex() if e Index.buildIndex() if e
threadsNum: -> threadsNum: ->
return unless Conf['Index Mode'] is 'paged' return unless Conf['Index Mode'] is 'paged'
Index.buildPagelist()
Index.buildIndex() Index.buildIndex()
target: -> target: ->
for threadID, thread of g.BOARD.threads when thread.catalogView for threadID, thread of g.BOARD.threads when thread.catalogView
@ -335,7 +334,6 @@ Index =
Index.currentPage = pageNum Index.currentPage = pageNum
return if Conf['Index Mode'] isnt 'paged' return if Conf['Index Mode'] isnt 'paged'
Index.buildIndex() Index.buildIndex()
Index.setPage()
Index.scrollToIndex() Index.scrollToIndex()
getThreadsNumPerPage: -> getThreadsNumPerPage: ->
@ -344,11 +342,7 @@ Index =
else else
Index.threadsNumPerPage Index.threadsNumPerPage
getPagesNum: -> getPagesNum: ->
numThreads = if Index.isSearching Math.ceil Index.sortedNodes.length / Index.getThreadsNumPerPage()
Index.sortedNodes.length / 2
else
Index.liveThreadIDs.length
Math.ceil numThreads / Index.getThreadsNumPerPage()
getMaxPageNum: -> getMaxPageNum: ->
Math.max 0, Index.getPagesNum() - 1 Math.max 0, Index.getPagesNum() - 1
togglePagelist: -> togglePagelist: ->
@ -476,12 +470,10 @@ Index =
Index.parseThreadList pages Index.parseThreadList pages
Index.buildThreads() Index.buildThreads()
Index.sort() Index.sort()
Index.buildPagelist()
if pageNum? if pageNum?
Index.pageNav pageNum Index.pageNav pageNum
return return
Index.buildIndex() Index.buildIndex()
Index.setPage()
parseThreadList: (pages) -> parseThreadList: (pages) ->
Index.threadsNumPerPage = pages[0].threads.length Index.threadsNumPerPage = pages[0].threads.length
Index.liveThreadData = pages.reduce ((arr, next) -> arr.concat next.threads), [] Index.liveThreadData = pages.reduce ((arr, next) -> arr.concat next.threads), []
@ -601,10 +593,16 @@ Index =
switch Conf['Index Mode'] switch Conf['Index Mode']
when 'paged' when 'paged'
pageNum = Index.getCurrentPage() pageNum = Index.getCurrentPage()
if pageNum > Index.getMaxPageNum()
# Go to the last available page if we were past the limit.
Index.pageNav Index.getMaxPageNum()
return
threadsPerPage = Index.getThreadsNumPerPage() threadsPerPage = Index.getThreadsNumPerPage()
nodes = Index.sortedNodes[threadsPerPage * pageNum ... threadsPerPage * (pageNum + 1)] nodes = Index.sortedNodes[threadsPerPage * pageNum ... threadsPerPage * (pageNum + 1)]
Index.buildReplies nodes Index.buildReplies nodes
Index.buildHRs nodes Index.buildHRs nodes
Index.buildPagelist()
Index.setPage()
when 'catalog' when 'catalog'
nodes = Index.buildCatalogViews() nodes = Index.buildCatalogViews()
Index.sizeCatalogViews nodes Index.sizeCatalogViews nodes
@ -640,14 +638,11 @@ Index =
delete Index.searchInput.dataset.searching delete Index.searchInput.dataset.searching
<% } %> <% } %>
Index.sort() Index.sort()
# Go to the last available page if we were past the limit. if Conf['Index Mode'] is 'paged' and Index.currentPage isnt Math.min pageNum, Index.getMaxPageNum()
pageNum = Math.min pageNum, Index.getMaxPageNum() if Conf['Index Mode'] is 'paged' # Go to the last available page if we were past the limit.
Index.buildPagelist()
if Index.currentPage is pageNum
Index.buildIndex()
Index.setPage()
else
Index.pageNav pageNum Index.pageNav pageNum
else
Index.buildIndex()
querySearch: (query) -> querySearch: (query) ->
return unless keywords = query.toLowerCase().match /\S+/g return unless keywords = query.toLowerCase().match /\S+/g
Index.search keywords Index.search keywords