Move index mode/sort settings into <select>s in #nav-links.
This commit is contained in:
parent
fd5a1e053f
commit
3ec442fc25
@ -378,6 +378,10 @@ a[href="javascript:;"] {
|
|||||||
:root.index-loading .pagelist {
|
:root.index-loading .pagelist {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
#nav-links {
|
||||||
|
display: flex;
|
||||||
|
align-items: baseline;
|
||||||
|
}
|
||||||
#index-search {
|
#index-search {
|
||||||
padding-right: 1.5em;
|
padding-right: 1.5em;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
|
|||||||
@ -1,5 +1,19 @@
|
|||||||
[<a id="index-mode-toggle" href="./"></a>]
|
|
||||||
[<time id="index-last-refresh" title="Last index refresh">...</time>]
|
[<time id="index-last-refresh" title="Last index refresh">...</time>]
|
||||||
<input type="search" id="index-search" class="field" placeholder="Search">
|
<input type="search" id="index-search" class="field" placeholder="Search">
|
||||||
<a id="index-search-clear" class="fa fa-times-circle" href="javascript:;"></a>
|
<a id="index-search-clear" class="fa fa-times-circle" href="javascript:;"></a>
|
||||||
<span id="hidden-label" hidden> — <span id="hidden-count"></span> <span id="hidden-toggle" hidden>[<a href="javascript:;">Show</a>]</span></span>
|
<span id="hidden-label" hidden> — <span id="hidden-count"></span> <span id="hidden-toggle" hidden>[<a href="javascript:;">Show</a>]</span></span>
|
||||||
|
<span style="flex:1"></span>
|
||||||
|
<select id="index-mode" name="Index Mode">
|
||||||
|
<option disabled>Index Mode</option>
|
||||||
|
<option value="paged">Paged</option>
|
||||||
|
<option value="all pages">All threads</option>
|
||||||
|
<option value="catalog">Catalog</option>
|
||||||
|
</select>
|
||||||
|
<select id="index-sort" name="Index Sort">
|
||||||
|
<option disabled>Index Sort</option>
|
||||||
|
<option value="bump">Bump order</option>
|
||||||
|
<option value="lastreply">Last reply</option>
|
||||||
|
<option value="birth">Creation date</option>
|
||||||
|
<option value="replycount">Reply count</option>
|
||||||
|
<option value="filecount">File count</option>
|
||||||
|
</select>
|
||||||
|
|||||||
@ -6,7 +6,6 @@ Index =
|
|||||||
return
|
return
|
||||||
return if g.BOARD.ID is 'f'
|
return if g.BOARD.ID is 'f'
|
||||||
|
|
||||||
|
|
||||||
@db = new DataBoard 'pinnedThreads'
|
@db = new DataBoard 'pinnedThreads'
|
||||||
Thread.callbacks.push
|
Thread.callbacks.push
|
||||||
name: 'Thread Pinning'
|
name: 'Thread Pinning'
|
||||||
@ -22,38 +21,6 @@ Index =
|
|||||||
$.on @button, 'click', @update
|
$.on @button, 'click', @update
|
||||||
Header.addShortcut @button, 1
|
Header.addShortcut @button, 1
|
||||||
|
|
||||||
modeEntry =
|
|
||||||
el: $.el 'span', textContent: 'Index mode'
|
|
||||||
subEntries: [
|
|
||||||
{ el: $.el 'label', innerHTML: '<input type=radio name="Index Mode" value="paged"> Paged' }
|
|
||||||
{ el: $.el 'label', innerHTML: '<input type=radio name="Index Mode" value="all pages"> All threads' }
|
|
||||||
{ el: $.el 'label', innerHTML: '<input type=radio name="Index Mode" value="catalog"> Catalog' }
|
|
||||||
]
|
|
||||||
open: ->
|
|
||||||
for label in @subEntries
|
|
||||||
input = label.el.firstChild
|
|
||||||
input.checked = Conf['Index Mode'] is input.value
|
|
||||||
true
|
|
||||||
for label in modeEntry.subEntries
|
|
||||||
input = label.el.firstChild
|
|
||||||
$.on input, 'change', $.cb.value
|
|
||||||
$.on input, 'change', @cb.mode
|
|
||||||
|
|
||||||
sortEntry =
|
|
||||||
el: $.el 'span', textContent: 'Sort by'
|
|
||||||
subEntries: [
|
|
||||||
{ el: $.el 'label', innerHTML: '<input type=radio name="Index Sort" value="bump"> Bump order' }
|
|
||||||
{ el: $.el 'label', innerHTML: '<input type=radio name="Index Sort" value="lastreply"> Last reply' }
|
|
||||||
{ el: $.el 'label', innerHTML: '<input type=radio name="Index Sort" value="birth"> Creation date' }
|
|
||||||
{ el: $.el 'label', innerHTML: '<input type=radio name="Index Sort" value="replycount"> Reply count' }
|
|
||||||
{ el: $.el 'label', innerHTML: '<input type=radio name="Index Sort" value="filecount"> File count' }
|
|
||||||
]
|
|
||||||
for label in sortEntry.subEntries
|
|
||||||
input = label.el.firstChild
|
|
||||||
input.checked = Conf['Index Sort'] is input.value
|
|
||||||
$.on input, 'change', $.cb.value
|
|
||||||
$.on input, 'change', @cb.sort
|
|
||||||
|
|
||||||
threadNumEntry =
|
threadNumEntry =
|
||||||
el: $.el 'span', textContent: 'Threads per page'
|
el: $.el 'span', textContent: 'Threads per page'
|
||||||
subEntries: [
|
subEntries: [
|
||||||
@ -91,28 +58,35 @@ Index =
|
|||||||
el: $.el 'span',
|
el: $.el 'span',
|
||||||
textContent: 'Index Navigation'
|
textContent: 'Index Navigation'
|
||||||
order: 90
|
order: 90
|
||||||
subEntries: [modeEntry, sortEntry, threadNumEntry, repliesEntry, anchorEntry, refNavEntry]
|
subEntries: [threadNumEntry, repliesEntry, anchorEntry, refNavEntry]
|
||||||
|
|
||||||
$.addClass doc, 'index-loading'
|
$.addClass doc, 'index-loading'
|
||||||
@update()
|
@update()
|
||||||
|
|
||||||
|
@navLinks = $.el 'div',
|
||||||
|
id: 'nav-links'
|
||||||
|
innerHTML: <%= importHTML('General/Index-navlinks') %>
|
||||||
|
@searchInput = $ '#index-search', @navLinks
|
||||||
|
@hideLabel = $ '#hidden-label', @navLinks
|
||||||
|
@selectMode = $ '#index-mode', @navLinks
|
||||||
|
@selectSort = $ '#index-sort', @navLinks
|
||||||
|
$.on @searchInput, 'input', @onSearchInput
|
||||||
|
$.on $('#index-search-clear', @navLinks), 'click', @clearSearch
|
||||||
|
$.on $('#hidden-toggle a', @navLinks), 'click', @cb.toggleHiddenThreads
|
||||||
|
for select in [@selectMode, @selectSort]
|
||||||
|
select.value = Conf[select.name]
|
||||||
|
$.on select, 'change', $.cb.value
|
||||||
|
$.on @selectMode, 'change', @cb.mode
|
||||||
|
$.on @selectSort, 'change', @cb.sort
|
||||||
|
|
||||||
@root = $.el 'div', className: 'board'
|
@root = $.el 'div', className: 'board'
|
||||||
@pagelist = $.el 'div',
|
@pagelist = $.el 'div',
|
||||||
className: 'pagelist'
|
className: 'pagelist'
|
||||||
hidden: true
|
hidden: true
|
||||||
innerHTML: <%= importHTML('General/Index-pagelist') %>
|
innerHTML: <%= importHTML('General/Index-pagelist') %>
|
||||||
@navLinks = $.el 'div',
|
|
||||||
id: 'nav-links'
|
|
||||||
innerHTML: <%= importHTML('General/Index-navlinks') %>
|
|
||||||
@indexModeToggle = $ '#index-mode-toggle', @navLinks
|
|
||||||
@searchInput = $ '#index-search', @navLinks
|
|
||||||
@hideLabel = $ '#hidden-label', @navLinks
|
|
||||||
@currentPage = @getCurrentPage()
|
@currentPage = @getCurrentPage()
|
||||||
$.on window, 'popstate', @cb.popstate
|
$.on window, 'popstate', @cb.popstate
|
||||||
$.on @pagelist, 'click', @cb.pageNav
|
$.on @pagelist, 'click', @cb.pageNav
|
||||||
$.on @indexModeToggle, 'click', @cb.pageNav
|
|
||||||
$.on @searchInput, 'input', @onSearchInput
|
|
||||||
$.on $('#index-search-clear', @navLinks), 'click', @clearSearch
|
|
||||||
$.on $('#hidden-toggle a', @navLinks), 'click', @cb.toggleHiddenThreads
|
|
||||||
@cb.toggleCatalogMode()
|
@cb.toggleCatalogMode()
|
||||||
$.asap (-> $('.board', doc) or d.readyState isnt 'loading'), ->
|
$.asap (-> $('.board', doc) or d.readyState isnt 'loading'), ->
|
||||||
board = $ '.board'
|
board = $ '.board'
|
||||||
@ -232,11 +206,9 @@ Index =
|
|||||||
cb:
|
cb:
|
||||||
toggleCatalogMode: ->
|
toggleCatalogMode: ->
|
||||||
if Conf['Index Mode'] is 'catalog'
|
if Conf['Index Mode'] is 'catalog'
|
||||||
Index.indexModeToggle.textContent = 'Return'
|
|
||||||
$.addClass Index.root, 'catalog-mode'
|
$.addClass Index.root, 'catalog-mode'
|
||||||
$('#hidden-toggle', Index.navLinks).hidden = false
|
$('#hidden-toggle', Index.navLinks).hidden = false
|
||||||
else
|
else
|
||||||
Index.indexModeToggle.textContent = 'Catalog'
|
|
||||||
$.rmClass Index.root, 'catalog-mode'
|
$.rmClass Index.root, 'catalog-mode'
|
||||||
$('#hidden-toggle', Index.navLinks).hidden = true
|
$('#hidden-toggle', Index.navLinks).hidden = true
|
||||||
toggleHiddenThreads: ->
|
toggleHiddenThreads: ->
|
||||||
@ -279,14 +251,10 @@ Index =
|
|||||||
else
|
else
|
||||||
return
|
return
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
switch a.textContent
|
if a.textContent is 'Catalog'
|
||||||
when 'Catalog'
|
$.set 'Index Mode', 'catalog'
|
||||||
mode = 'catalog'
|
Conf['Index Mode'] = 'catalog'
|
||||||
when 'Return'
|
Index.selectMode.value = 'catalog'
|
||||||
mode = Conf['Previous Index Mode']
|
|
||||||
if mode
|
|
||||||
$.set 'Index Mode', mode
|
|
||||||
Conf['Index Mode'] = mode
|
|
||||||
Index.cb.mode()
|
Index.cb.mode()
|
||||||
Index.scrollToIndex()
|
Index.scrollToIndex()
|
||||||
Index.userPageNav +a.pathname.split('/')[2]
|
Index.userPageNav +a.pathname.split('/')[2]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user