change index modes with hash
This commit is contained in:
parent
aa152969ae
commit
7a3e3acee8
@ -225,9 +225,10 @@ Index =
|
|||||||
Index.sort()
|
Index.sort()
|
||||||
Index.buildIndex()
|
Index.buildIndex()
|
||||||
mode: ->
|
mode: ->
|
||||||
pageNum = if @value in ['all pages', 'catalog'] then 1 else Index.currentPage
|
Index.setMode @value
|
||||||
Index.pushState @value, pageNum
|
Index.pushState Conf['Index Mode'], Index.currentPage
|
||||||
Index.setMode @value, pageNum
|
Index.buildIndex()
|
||||||
|
Index.setPage()
|
||||||
sort: ->
|
sort: ->
|
||||||
Index.sort()
|
Index.sort()
|
||||||
Index.buildIndex()
|
Index.buildIndex()
|
||||||
@ -235,15 +236,31 @@ Index =
|
|||||||
Index.buildThreads()
|
Index.buildThreads()
|
||||||
Index.sort()
|
Index.sort()
|
||||||
Index.buildIndex()
|
Index.buildIndex()
|
||||||
|
hashchange: (e) ->
|
||||||
|
switch command = location.hash[1..]
|
||||||
|
when 'paged', 'infinite', 'all pages', 'catalog'
|
||||||
|
mode = command
|
||||||
|
when 'index'
|
||||||
|
mode = Conf['Previous Index Mode']
|
||||||
|
if mode
|
||||||
|
Index.setMode mode
|
||||||
|
history.replaceState {mode}, '', if Index.currentPage is 1 then './' else Index.currentPage
|
||||||
|
if e
|
||||||
|
# hash change, not call from init
|
||||||
|
Index.buildIndex()
|
||||||
|
Index.setPage()
|
||||||
|
return
|
||||||
|
history.replaceState {mode: Conf['Index Mode']}, ''
|
||||||
popstate: (e) ->
|
popstate: (e) ->
|
||||||
unless e?.state
|
unless e?.state
|
||||||
# page load or hash change
|
# page load or hash change
|
||||||
history.replaceState {mode: Conf['Index Mode']}, ''
|
return Index.cb.hashchange.call @, e
|
||||||
return
|
|
||||||
{mode} = e.state
|
{mode} = e.state
|
||||||
pageNum = Index.getCurrentPage()
|
pageNum = Index.getCurrentPage()
|
||||||
unless Conf['Index Mode'] is mode and Index.currentPage is pageNum
|
unless Conf['Index Mode'] is mode and Index.currentPage is pageNum
|
||||||
Index.setMode mode, pageNum
|
Index.setMode mode
|
||||||
|
Index.buildIndex()
|
||||||
|
Index.setPage()
|
||||||
pageNav: (e) ->
|
pageNav: (e) ->
|
||||||
return if e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or e.button isnt 0
|
return if e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or e.button isnt 0
|
||||||
switch e.target.nodeName
|
switch e.target.nodeName
|
||||||
@ -262,7 +279,10 @@ Index =
|
|||||||
Header.scrollToIfNeeded Index.navLinks
|
Header.scrollToIfNeeded Index.navLinks
|
||||||
|
|
||||||
getCurrentPage: ->
|
getCurrentPage: ->
|
||||||
+window.location.pathname.split('/')[2] or 1
|
if Conf['Index Mode'] in ['all pages', 'catalog']
|
||||||
|
1
|
||||||
|
else
|
||||||
|
+window.location.pathname.split('/')[2] or 1
|
||||||
userPageNav: (pageNum) ->
|
userPageNav: (pageNum) ->
|
||||||
Index.pushState Conf['Index Mode'], pageNum
|
Index.pushState Conf['Index Mode'], pageNum
|
||||||
if Conf['Refreshed Navigation']
|
if Conf['Refreshed Navigation']
|
||||||
@ -277,14 +297,12 @@ Index =
|
|||||||
Index.buildIndex()
|
Index.buildIndex()
|
||||||
Index.setPage()
|
Index.setPage()
|
||||||
Index.scrollToIndex()
|
Index.scrollToIndex()
|
||||||
setMode: (mode, pageNum) ->
|
setMode: (mode) ->
|
||||||
$.rmClass doc, "#{Conf['Index Mode'].replace /\ /g, '-'}-mode"
|
$.rmClass doc, "#{Conf['Index Mode'].replace /\ /g, '-'}-mode"
|
||||||
$.addClass doc, "#{mode.replace /\ /g, '-'}-mode"
|
$.addClass doc, "#{mode.replace /\ /g, '-'}-mode"
|
||||||
Conf['Index Mode'] = mode
|
Conf['Index Mode'] = mode
|
||||||
$.set 'Index Mode', mode
|
$.set 'Index Mode', mode
|
||||||
Index.currentPage = pageNum
|
Index.currentPage = Index.getCurrentPage()
|
||||||
Index.buildIndex()
|
|
||||||
Index.setPage()
|
|
||||||
if mode not in ['catalog', Conf['Previous Index Mode']]
|
if mode not in ['catalog', Conf['Previous Index Mode']]
|
||||||
Conf['Previous Index Mode'] = mode
|
Conf['Previous Index Mode'] = mode
|
||||||
$.set 'Previous Index Mode', mode
|
$.set 'Previous Index Mode', mode
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user