diff --git a/CHANGELOG.md b/CHANGELOG.md
index 56c10344b..8de27bd6c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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.
diff --git a/css/style.css b/css/style.css
index fde0aef1f..1b1bb06f2 100644
--- a/css/style.css
+++ b/css/style.css
@@ -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 {
diff --git a/src/config.coffee b/src/config.coffee
index 1e69eb096..c1d1a1bad 100644
--- a/src/config.coffee
+++ b/src/config.coffee
@@ -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'
diff --git a/src/features.coffee b/src/features.coffee
index 562389504..1c0610cde 100644
--- a/src/features.coffee
+++ b/src/features.coffee
@@ -30,6 +30,10 @@ Header =
innerHTML: ' Bottom header'
catalogToggler = $.el 'label',
innerHTML: ' Use catalog board links'
+ topBoardToggler = $.el 'label',
+ innerHTML: ' Top original board list'
+ botBoardToggler = $.el 'label',
+ innerHTML: ' Bottom original board list'
customNavToggler = $.el 'label',
innerHTML: ' 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