Include index sort in history state.
This commit is contained in:
parent
95d20be6b7
commit
7ac7c886a8
@ -44,7 +44,7 @@ Index =
|
|||||||
when 'Show Replies'
|
when 'Show Replies'
|
||||||
$.on input, 'change', @cb.replies
|
$.on input, 'change', @cb.replies
|
||||||
when 'Pin Watched Threads', 'Anchor Hidden Threads'
|
when 'Pin Watched Threads', 'Anchor Hidden Threads'
|
||||||
$.on input, 'change', @cb.sort
|
$.on input, 'change', @cb.resort
|
||||||
|
|
||||||
Header.menu.addEntry
|
Header.menu.addEntry
|
||||||
el: $.el 'span',
|
el: $.el 'span',
|
||||||
@ -74,12 +74,11 @@ Index =
|
|||||||
@selectSort = $ '#index-sort', @navLinks
|
@selectSort = $ '#index-sort', @navLinks
|
||||||
@selectSize = $ '#index-size', @navLinks
|
@selectSize = $ '#index-size', @navLinks
|
||||||
$.on @selectMode, 'change', @cb.mode
|
$.on @selectMode, 'change', @cb.mode
|
||||||
|
$.on @selectSort, 'change', @cb.sort
|
||||||
|
$.on @selectSize, 'change', $.cb.value
|
||||||
|
$.on @selectSize, 'change', @cb.size
|
||||||
for select in [@selectMode, @selectSort, @selectSize]
|
for select in [@selectMode, @selectSort, @selectSize]
|
||||||
select.value = Conf[select.name]
|
select.value = Conf[select.name]
|
||||||
for select in [@selectSort, @selectSize]
|
|
||||||
$.on select, 'change', $.cb.value
|
|
||||||
$.on @selectSort, 'change', @cb.sort
|
|
||||||
$.on @selectSize, 'change', @cb.size
|
|
||||||
|
|
||||||
# Thread container
|
# Thread container
|
||||||
@root = $.el 'div', className: 'board json-index'
|
@root = $.el 'div', className: 'board json-index'
|
||||||
@ -215,6 +214,10 @@ Index =
|
|||||||
Index.pageLoad false
|
Index.pageLoad false
|
||||||
|
|
||||||
sort: ->
|
sort: ->
|
||||||
|
Index.pushState {sort: @value}
|
||||||
|
Index.pageLoad false
|
||||||
|
|
||||||
|
resort: ->
|
||||||
Index.sort()
|
Index.sort()
|
||||||
Index.buildIndex()
|
Index.buildIndex()
|
||||||
|
|
||||||
@ -237,9 +240,9 @@ Index =
|
|||||||
|
|
||||||
popstate: (e) ->
|
popstate: (e) ->
|
||||||
if e?.state
|
if e?.state
|
||||||
{searched, mode} = e.state
|
{searched, mode, sort} = e.state
|
||||||
page = Index.getCurrentPage()
|
page = Index.getCurrentPage()
|
||||||
Index.setState {search: searched, mode, page}
|
Index.setState {search: searched, mode, sort, page}
|
||||||
Index.pageLoad false
|
Index.pageLoad false
|
||||||
else
|
else
|
||||||
# page load or hash change
|
# page load or hash change
|
||||||
@ -320,11 +323,12 @@ Index =
|
|||||||
hash or= ''
|
hash or= ''
|
||||||
history[if replace then 'replaceState' else 'pushState']
|
history[if replace then 'replaceState' else 'pushState']
|
||||||
mode: Conf['Index Mode']
|
mode: Conf['Index Mode']
|
||||||
|
sort: Conf['Index Sort']
|
||||||
searched: Index.search
|
searched: Index.search
|
||||||
oldpage: pageBeforeSearch
|
oldpage: pageBeforeSearch
|
||||||
, '', "#{location.protocol}//#{location.host}#{pathname}#{hash}"
|
, '', "#{location.protocol}//#{location.host}#{pathname}#{hash}"
|
||||||
|
|
||||||
setState: ({search, mode, page}) ->
|
setState: ({search, mode, sort, page}) ->
|
||||||
if search? and search isnt Index.search
|
if search? and search isnt Index.search
|
||||||
Index.changed.search = true
|
Index.changed.search = true
|
||||||
Index.search = search
|
Index.search = search
|
||||||
@ -335,6 +339,10 @@ Index =
|
|||||||
unless mode is 'catalog' or Conf['Previous Index Mode'] is mode
|
unless mode is 'catalog' or Conf['Previous Index Mode'] is mode
|
||||||
Conf['Previous Index Mode'] = mode
|
Conf['Previous Index Mode'] = mode
|
||||||
$.set 'Previous Index Mode', mode
|
$.set 'Previous Index Mode', mode
|
||||||
|
if sort? and sort isnt Conf['Index Sort']
|
||||||
|
Index.changed.sort = true
|
||||||
|
Conf['Index Sort'] = sort
|
||||||
|
$.set 'Index Sort', sort
|
||||||
page = 1 if Conf['Index Mode'] in ['all pages', 'catalog']
|
page = 1 if Conf['Index Mode'] in ['all pages', 'catalog']
|
||||||
if page? and page isnt Index.currentPage
|
if page? and page isnt Index.currentPage
|
||||||
Index.changed.page = true
|
Index.changed.page = true
|
||||||
@ -342,19 +350,18 @@ Index =
|
|||||||
|
|
||||||
pageLoad: (scroll=true) ->
|
pageLoad: (scroll=true) ->
|
||||||
return unless Index.liveThreadData
|
return unless Index.liveThreadData
|
||||||
{threads, search, mode, page} = Index.changed
|
{threads, search, mode, sort, page} = Index.changed
|
||||||
if threads or search
|
Index.sort() if threads or search or sort
|
||||||
Index.sort()
|
Index.buildPagelist() if threads or search
|
||||||
Index.buildPagelist()
|
Index.setupSearch() if search
|
||||||
Index.setupSearch() if search
|
Index.setupMode() if mode
|
||||||
Index.applyMode() if mode
|
Index.setupSort() if sort
|
||||||
if threads or search or mode or page
|
Index.buildIndex() if threads or search or mode or page or sort
|
||||||
Index.buildIndex()
|
Index.setPage() if threads or search or mode or page
|
||||||
Index.setPage()
|
|
||||||
Index.scrollToIndex() if scroll
|
Index.scrollToIndex() if scroll
|
||||||
Index.changed = {}
|
Index.changed = {}
|
||||||
|
|
||||||
applyMode: ->
|
setupMode: ->
|
||||||
for mode in ['paged', 'infinite', 'all pages', 'catalog']
|
for mode in ['paged', 'infinite', 'all pages', 'catalog']
|
||||||
$[if mode is Conf['Index Mode'] then 'addClass' else 'rmClass'] doc, "#{mode.replace /\ /g, '-'}-mode"
|
$[if mode is Conf['Index Mode'] then 'addClass' else 'rmClass'] doc, "#{mode.replace /\ /g, '-'}-mode"
|
||||||
Index.selectMode.value = Conf['Index Mode']
|
Index.selectMode.value = Conf['Index Mode']
|
||||||
@ -362,6 +369,9 @@ Index =
|
|||||||
Index.showHiddenThreads = false
|
Index.showHiddenThreads = false
|
||||||
$('#hidden-toggle a', Index.navLinks).textContent = 'Show'
|
$('#hidden-toggle a', Index.navLinks).textContent = 'Show'
|
||||||
|
|
||||||
|
setupSort: ->
|
||||||
|
Index.selectSort.value = Conf['Index Sort']
|
||||||
|
|
||||||
getPagesNum: ->
|
getPagesNum: ->
|
||||||
if Index.search
|
if Index.search
|
||||||
Math.ceil Index.sortedNodes.length / Index.threadsNumPerPage
|
Math.ceil Index.sortedNodes.length / Index.threadsNumPerPage
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user