Optional top and bottom original board lists. #996

This commit is contained in:
Nicolas Stepien 2013-04-23 23:25:50 +02:00
parent dc2ab7807a
commit fe0f79458d
4 changed files with 54 additions and 11 deletions

View File

@ -1,3 +1,4 @@
- The top and bottom original board lists are now optional, disabled by default.
- The button to show a hidden announcement is now inside the header's menu.
- Added the `board-replace` setting to Custom Board Navigation ricing.
- Added the option `Cooldown Prediction`, enabled by default.

View File

@ -99,9 +99,10 @@ a[href="javascript:;"] {
:root.bottom-header body {
margin-bottom: 2em;
}
.fourchan-x #boardNavDesktop,
.fourchan-x #navtopright,
.fourchan-x #boardNavDesktopFoot {
:root.fourchan-x #navtopright,
:root.fourchan-x #navbotright,
:root.fourchan-x:not(.show-original-top-board-list) #boardNavDesktop,
:root.fourchan-x:not(.show-original-bot-board-list) #boardNavDesktopFoot {
display: none !important;
}
#header {

View File

@ -141,9 +141,11 @@ Config =
].join '\n'
'Custom CSS': false
Header:
'Header catalog links': false
'Header auto-hide': false
'Bottom header': false
'Header auto-hide': false
'Bottom header': false
'Header catalog links': false
'Top Board List': false
'Bottom Board List': false
'Custom Board Navigation': true
boardnav: '[current-title / toggle-all]'
time: '%m/%d/%y(%a)%H:%M:%S'

View File

@ -30,6 +30,10 @@ Header =
innerHTML: '<input type=checkbox name="Bottom header"> Bottom header'
catalogToggler = $.el 'label',
innerHTML: '<input type=checkbox name="Header catalog links"> Use catalog board links'
topBoardToggler = $.el 'label',
innerHTML: '<input type=checkbox name="Top Board List"> Top original board list'
botBoardToggler = $.el 'label',
innerHTML: '<input type=checkbox name="Bottom Board List"> Bottom original board list'
customNavToggler = $.el 'label',
innerHTML: '<input type=checkbox name="Custom Board Navigation"> Custom board navigation'
editCustomNav = $.el 'a',
@ -39,19 +43,27 @@ Header =
@headerToggler = headerToggler.firstElementChild
@barPositionToggler = barPositionToggler.firstElementChild
@catalogToggler = catalogToggler.firstElementChild
@topBoardToggler = topBoardToggler.firstElementChild
@botBoardToggler = botBoardToggler.firstElementChild
@customNavToggler = customNavToggler.firstElementChild
$.on @headerToggler, 'change', @toggleBarVisibility
$.on @barPositionToggler, 'change', @toggleBarPosition
$.on @catalogToggler, 'change', @toggleCatalogLinks
$.on @topBoardToggler, 'change', @toggleOriginalBoardList
$.on @botBoardToggler, 'change', @toggleOriginalBoardList
$.on @customNavToggler, 'change', @toggleCustomNav
$.on editCustomNav, 'click', @editCustomNav
@setBarVisibility Conf['Header auto-hide']
@setBarPosition Conf['Bottom header']
@setTopBoardList Conf['Top Board List']
@setBotBoardList Conf['Bottom Board List']
$.sync 'Header auto-hide', @setBarVisibility
$.sync 'Bottom header', @setBarPosition
$.sync 'Header auto-hide', @setBarVisibility
$.sync 'Bottom header', @setBarPosition
$.sync 'Top Board List', @setTopBoardList
$.sync 'Bottom Board List', @setBotBoardList
$.event 'AddMenuEntry',
type: 'header'
@ -61,6 +73,8 @@ Header =
{el: headerToggler}
{el: barPositionToggler}
{el: catalogToggler}
{el: topBoardToggler}
{el: botBoardToggler}
{el: customNavToggler}
{el: editCustomNav}
]
@ -72,6 +86,13 @@ Header =
$.asap (-> $.id('boardNavMobile') or d.readyState is 'complete'), Header.setBoardList
$.prepend d.body, headerEl
$.ready ->
if a = $ "a[href*='/#{g.BOARD}/']", $.id 'boardNavDesktopFoot'
a.className = 'current'
Header.setCatalogLinks Conf['Header catalog links']
$.sync 'Header catalog links', Header.setCatalogLinks
setBoardList: ->
nav = $.id 'boardNavDesktop'
if a = $ "a[href*='/#{g.BOARD}/']", nav
@ -85,11 +106,9 @@ Header =
$.on btn, 'click', Header.toggleBoardList
$.add fullBoardList, btn
Header.setCatalogLinks Conf['Header catalog links']
Header.setCustomNav Conf['Custom Board Navigation']
Header.generateBoardList Conf['boardnav']
$.sync 'Header catalog links', Header.setCatalogLinks
$.sync 'Custom Board Navigation', Header.setCustomNav
$.sync 'boardnav', Header.generateBoardList
@ -179,7 +198,11 @@ Header =
setCatalogLinks: (useCatalog) ->
Header.catalogToggler.checked = useCatalog
as = $$ '#board-list a[href*="boards.4chan.org"]', Header.bar
as = $$ [
'#board-list a[href*="boards.4chan.org"]'
'#boardNavDesktop a[href*="boards.4chan.org"]'
'#boardNavDesktopFoot a[href*="boards.4chan.org"]'
].join ', '
path = if useCatalog then 'catalog' else ''
for a in as
continue if a.dataset.only
@ -189,6 +212,22 @@ Header =
$.cb.checked.call @
Header.setCatalogLinks @checked
setTopBoardList: (show) ->
Header.topBoardToggler.checked = show
if show
$.addClass doc, 'show-original-top-board-list'
else
$.rmClass doc, 'show-original-top-board-list'
setBotBoardList: (show) ->
Header.botBoardToggler.checked = show
if show
$.addClass doc, 'show-original-bot-board-list'
else
$.rmClass doc, 'show-original-bot-board-list'
toggleOriginalBoardList: ->
$.cb.checked.call @
(if @name is 'Top Board List' then Header.setTopBoardList else Header.setBotBoardList) @checked
setCustomNav: (show) ->
Header.customNavToggler.checked = show
cust = $ '#custom-board-list', Header.bar