Try to make index navigation less confusing. Also implement index mode keybinds.
This commit is contained in:
parent
ae621e96ef
commit
0830d042cb
@ -837,6 +837,18 @@ Config =
|
||||
'Ctrl+Left'
|
||||
'Jump to the previous page.'
|
||||
]
|
||||
'Paged mode': [
|
||||
'Alt+1'
|
||||
'Open the index in paged mode.'
|
||||
]
|
||||
'Infinite scrolling mode': [
|
||||
'Alt+2'
|
||||
'Open the index in infinite scrolling mode.'
|
||||
]
|
||||
'All pages mode': [
|
||||
'Alt+3'
|
||||
'Open the index in all threads mode.'
|
||||
]
|
||||
'Open catalog': [
|
||||
'Shift+c'
|
||||
'Open the catalog of the current board.'
|
||||
|
||||
@ -57,7 +57,6 @@ Index =
|
||||
$('.cataloglink a', @pagelist).href = CatalogLinks.catalog()
|
||||
@navLinks = $.el 'div', className: 'navLinks'
|
||||
$.extend @navLinks, <%= importHTML('Features/Index-navlinks') %>
|
||||
$('.returnlink a', @navLinks).href = CatalogLinks.index()
|
||||
$('.cataloglink a', @navLinks).href = CatalogLinks.catalog()
|
||||
$('.archlistlink', @navLinks).hidden = true if g.BOARD.ID is 'b'
|
||||
@searchInput = $ '#index-search', @navLinks
|
||||
@ -73,7 +72,6 @@ Index =
|
||||
$.on @searchInput, 'input', @onSearchInput
|
||||
$.on $('#index-search-clear', @navLinks), 'click', @clearSearch
|
||||
$.on $('#hidden-toggle a', @navLinks), 'click', @cb.toggleHiddenThreads
|
||||
$.on $('.returnlink a', @navLinks), 'click', @cb.frontPage unless Conf['Use <%= meta.name %> Catalog']
|
||||
$.on @selectMode, 'change', @cb.mode
|
||||
for select in [@selectMode, @selectSort, @selectSize]
|
||||
select.value = Conf[select.name]
|
||||
@ -263,11 +261,6 @@ Index =
|
||||
e.preventDefault()
|
||||
Index.userPageNav +a.pathname.split('/')[2] or 1
|
||||
|
||||
frontPage: (e) ->
|
||||
return if e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or e.button isnt 0
|
||||
e.preventDefault()
|
||||
Index.userPageNav 1
|
||||
|
||||
scrollToIndex: ->
|
||||
Header.scrollToIfNeeded Index.navLinks
|
||||
|
||||
|
||||
@ -545,6 +545,8 @@ div[data-checked="false"] > .suboption-list {
|
||||
:root.infinite-mode .pagelist,
|
||||
:root.all-pages-mode .pagelist,
|
||||
:root.catalog-mode .pagelist,
|
||||
:root:not(.catalog-mode) .indexlink,
|
||||
:root.catalog-mode .cataloglink,
|
||||
:root:not(.catalog-mode) #hidden-label,
|
||||
:root:not(.catalog-mode) #index-size {
|
||||
display: none;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<span class="brackets-wrap returnlink"><a href="./">Return</a></span>
|
||||
<span class="brackets-wrap cataloglink"><a href="./catalog">Catalog</a></span>
|
||||
<span class="brackets-wrap indexlink"><a href="#index">Index</a></span>
|
||||
<span class="brackets-wrap cataloglink"><a href="#catalog">Catalog</a></span>
|
||||
<span class="brackets-wrap archlistlink"><a href="./archive">Archive</a></span>
|
||||
<span class="brackets-wrap bottomlink"><a href="#bottom">Bottom</a></span>
|
||||
<span class="brackets-wrap" id="index-last-refresh"><time title="Last index refresh">...</time></span>
|
||||
|
||||
@ -8,8 +8,11 @@ CatalogLinks =
|
||||
$.ready ->
|
||||
for link in $$ selector
|
||||
switch link.pathname
|
||||
when "/#{g.BOARD}/" then link.href = CatalogLinks.index()
|
||||
when "/#{g.BOARD}/catalog" then link.href = CatalogLinks.catalog()
|
||||
when "/#{g.BOARD}/"
|
||||
link.textContent = 'Index' if Conf['JSON Navigation']
|
||||
link.href = CatalogLinks.index()
|
||||
when "/#{g.BOARD}/catalog"
|
||||
link.href = CatalogLinks.catalog()
|
||||
if g.VIEW is 'catalog' and Conf['JSON Navigation'] and Conf['Use <%= meta.name %> Catalog']
|
||||
catalogLink = link.parentNode.cloneNode true
|
||||
catalogLink.firstElementChild.textContent = '<%= meta.name %> Catalog'
|
||||
@ -76,7 +79,7 @@ CatalogLinks =
|
||||
"/#{board}/catalog"
|
||||
|
||||
index: (board=g.BOARD.ID) ->
|
||||
if Conf['JSON Navigation'] and Conf['Use <%= meta.name %> Catalog']
|
||||
if Conf['JSON Navigation']
|
||||
if g.BOARD.ID is board and g.VIEW is 'index' then '#index' else "/#{board}/#index"
|
||||
else
|
||||
"/#{board}/"
|
||||
|
||||
@ -105,12 +105,12 @@ Keybinds =
|
||||
FappeTyme.toggle 'werk'
|
||||
# Board Navigation
|
||||
when Conf['Front page']
|
||||
if Conf['JSON Navigation'] and !Conf['Use <%= meta.name %> Catalog'] and g.VIEW is 'index'
|
||||
if Conf['JSON Navigation'] and g.VIEW is 'index'
|
||||
Index.userPageNav 1
|
||||
else
|
||||
window.location = CatalogLinks.index()
|
||||
window.location = "/#{g.BOARD}/"
|
||||
when Conf['Open front page']
|
||||
$.open CatalogLinks.index()
|
||||
$.open "/#{g.BOARD}/"
|
||||
when Conf['Next page']
|
||||
return unless g.VIEW is 'index'
|
||||
if Conf['JSON Navigation']
|
||||
@ -132,6 +132,15 @@ Keybinds =
|
||||
searchInput = if Conf['JSON Navigation'] then Index.searchInput else $.id('search-box')
|
||||
Header.scrollToIfNeeded searchInput
|
||||
searchInput.focus()
|
||||
when Conf['Paged mode']
|
||||
return unless Conf['JSON Navigation']
|
||||
window.location = if g.VIEW is 'index' then '#paged' else "/#{g.BOARD}/#paged"
|
||||
when Conf['Infinite scrolling mode']
|
||||
return unless Conf['JSON Navigation']
|
||||
window.location = if g.VIEW is 'index' then '#infinite' else "/#{g.BOARD}/#infinite"
|
||||
when Conf['All pages mode']
|
||||
return unless Conf['JSON Navigation']
|
||||
window.location = if g.VIEW is 'index' then '#all-pages' else "/#{g.BOARD}/#all-pages"
|
||||
when Conf['Open catalog']
|
||||
window.location = CatalogLinks.catalog()
|
||||
when Conf['Cycle sort type']
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user