Mirror most of Index Navigation menu settings in main settings panel. #186
This commit is contained in:
parent
2540f23ac7
commit
fa1aaa224c
@ -46,35 +46,37 @@ Index =
|
||||
Header.addShortcut 'index-refresh', @button, 590
|
||||
|
||||
# Header "Index Navigation" submenu
|
||||
repliesEntry = el: UI.checkbox 'Show Replies', 'Show replies'
|
||||
hoverEntry = el: UI.checkbox 'Catalog Hover Expand', 'Catalog hover expand'
|
||||
sortEntry = el: UI.checkbox 'Per-Board Sort Type', 'Per-board sort type', (typeof Conf['Index Sort'] is 'object')
|
||||
pinEntry = el: UI.checkbox 'Pin Watched Threads', 'Pin watched threads'
|
||||
anchorEntry = el: UI.checkbox 'Anchor Hidden Threads', 'Anchor hidden threads'
|
||||
refNavEntry = el: UI.checkbox 'Refreshed Navigation', 'Refreshed navigation'
|
||||
hoverEntry.el.title = 'Expand the comment and show more details when you hover over a thread in the catalog.'
|
||||
sortEntry.el.title = 'Set the sorting order of each board independently.'
|
||||
pinEntry.el.title = 'Move watched threads to the start of the index.'
|
||||
anchorEntry.el.title = 'Move hidden threads to the end of the index.'
|
||||
refNavEntry.el.title = 'Refresh index when navigating through pages.'
|
||||
for label in [repliesEntry, hoverEntry, pinEntry, anchorEntry, refNavEntry]
|
||||
input = label.el.firstChild
|
||||
{name} = input
|
||||
entries = []
|
||||
inputs = {}
|
||||
for name, arr of Config.Index when arr instanceof Array
|
||||
label = UI.checkbox name, "#{name[0]}#{name[1..].toLowerCase()}"
|
||||
label.title = arr[1]
|
||||
entries.push {el: label}
|
||||
input = label.firstChild
|
||||
$.on input, 'change', $.cb.checked
|
||||
switch name
|
||||
when 'Show Replies'
|
||||
$.on input, 'change', @cb.replies
|
||||
when 'Catalog Hover Expand'
|
||||
$.on input, 'change', @cb.hover
|
||||
when 'Pin Watched Threads', 'Anchor Hidden Threads'
|
||||
$.on input, 'change', @cb.resort
|
||||
$.on sortEntry.el.firstChild, 'change', @cb.perBoardSort
|
||||
inputs[name] = input
|
||||
$.on inputs['Show Replies'], 'change', @cb.replies
|
||||
$.on inputs['Catalog Hover Expand'], 'change', @cb.hover
|
||||
$.on inputs['Pin Watched Threads'], 'change', @cb.resort
|
||||
$.on inputs['Anchor Hidden Threads'], 'change', @cb.resort
|
||||
|
||||
watchSettings = (e) ->
|
||||
if (input = inputs[e.target.name])
|
||||
input.checked = e.target.checked
|
||||
$.event 'change', null, input
|
||||
$.on d, 'OpenSettings', ->
|
||||
$.on $.id('fourchanx-settings'), 'change', watchSettings
|
||||
|
||||
sortEntry = UI.checkbox 'Per-Board Sort Type', 'Per-board sort type', (typeof Conf['Index Sort'] is 'object')
|
||||
sortEntry.title = 'Set the sorting order of each board independently.'
|
||||
$.on sortEntry.firstChild, 'change', @cb.perBoardSort
|
||||
entries.splice 2, 0, {el: sortEntry}
|
||||
|
||||
Header.menu.addEntry
|
||||
el: $.el 'span',
|
||||
textContent: 'Index Navigation'
|
||||
order: 100
|
||||
subEntries: [repliesEntry, hoverEntry, sortEntry, pinEntry, anchorEntry, refNavEntry]
|
||||
subEntries: entries
|
||||
|
||||
# Navigation links at top of index
|
||||
@navLinks = $.el 'div', className: 'navLinks json-index'
|
||||
|
||||
@ -135,19 +135,16 @@ Settings =
|
||||
|
||||
items = {}
|
||||
inputs = {}
|
||||
for key, obj of Config.main
|
||||
fs = $.el 'fieldset',
|
||||
<%= html('<legend>${key}</legend>') %>
|
||||
containers = [fs]
|
||||
for key, arr of obj
|
||||
addCheckboxes = (root, obj) ->
|
||||
containers = [root]
|
||||
for key, arr of obj when arr instanceof Array
|
||||
description = arr[1]
|
||||
div = $.el 'div',
|
||||
<%= html('<label><input type="checkbox" name="${key}">${key}</label><span class="description">: ${description}</span>') %>
|
||||
div.hidden = true if $.engine isnt 'gecko' and key is 'Remember QR Size' # XXX not supported
|
||||
div.dataset.name = key
|
||||
input = $ 'input', div
|
||||
$.on input, 'change', ->
|
||||
@parentNode.parentNode.dataset.checked = @checked
|
||||
$.cb.checked.call @
|
||||
$.on input, 'change', $.cb.checked
|
||||
$.on input, 'change', -> @parentNode.parentNode.dataset.checked = @checked
|
||||
items[key] = Conf[key]
|
||||
inputs[key] = input
|
||||
level = arr[2] or 0
|
||||
@ -158,7 +155,15 @@ Settings =
|
||||
else if containers.length > level+1
|
||||
containers.splice level+1, containers.length - (level+1)
|
||||
$.add containers[level], div
|
||||
|
||||
for key, obj of Config.main
|
||||
fs = $.el 'fieldset',
|
||||
<%= html('<legend>${key}</legend>') %>
|
||||
addCheckboxes fs, obj
|
||||
$.add section, fs
|
||||
addCheckboxes $('div[data-name="JSON Index"] > .suboption-list', section), Config.Index
|
||||
if $.engine isnt 'gecko'
|
||||
$('div[data-name="Remember QR Size"]', section).hidden = true # XXX not supported
|
||||
|
||||
$.get items, (items) ->
|
||||
for key, val of items
|
||||
|
||||
@ -736,11 +736,11 @@ Config =
|
||||
'Index Mode': 'paged'
|
||||
'Previous Index Mode': 'paged'
|
||||
'Index Size': 'small'
|
||||
'Show Replies': true
|
||||
'Catalog Hover Expand': true
|
||||
'Pin Watched Threads': false
|
||||
'Anchor Hidden Threads': true
|
||||
'Refreshed Navigation': false
|
||||
'Show Replies': [true, 'Show replies in the index, and also in the catalog if "Catalog hover expand" is checked.']
|
||||
'Catalog Hover Expand': [true, 'Expand the comment and show more details when you hover over a thread in the catalog.']
|
||||
'Pin Watched Threads': [false, 'Move watched threads to the start of the index.']
|
||||
'Anchor Hidden Threads': [true, 'Move hidden threads to the end of the index.']
|
||||
'Refreshed Navigation': [false, 'Refresh index when navigating through pages.']
|
||||
|
||||
Header:
|
||||
'Fixed Header': true
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user