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