diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 1b86631ef..b3b22c039 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1778,7 +1778,7 @@ } $.asap((function() { return $.id('boardNavMobile') || d.readyState !== 'loading'; - }), Header.initReady); + }), Header.setBoardList); $.prepend(d.body, _this.bar); $.add(d.body, Header.hover); _this.setBarPosition(Conf['Bottom Header']); @@ -1824,20 +1824,15 @@ id: 'scroll-marker' }), initReady: function() { - Header.cache(); Header.setBoardList(); return Header.addNav(); }, - cache: function() { - var fourchannav; - fourchannav = $.id('boardNavDesktop'); - return Header.navCache = ""; - }, setBoardList: function() { - var a, boardList, btn, fullBoardList, _i, _len, _ref; - boardList = $.el('span', { + var a, boardList, btn, fourchannav, fullBoardList, _i, _len, _ref; + fourchannav = $.id('boardNavDesktop'); + Header.boardList = boardList = $.el('span', { id: 'board-list', - innerHTML: Header.navCache + innerHTML: "" }); _ref = $$('a', boardList); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -1852,15 +1847,9 @@ $.on(btn, 'click', Header.toggleBoardList); $.rm($('#navtopright', fullBoardList)); $.add(boardList, fullBoardList); - if (Header.boardList) { - $.replace(Header.boardList, boardList); - } - Header.boardList = boardList; - return Header.generateBoardList(Conf['boardnav'].replace(/(\r\n|\n|\r)/g, ' ')); - }, - addNav: function() { $.add(Header.bar, [Header.boardList, Header.shortcuts, Header.noticesRoot, Header.toggle]); Header.setCustomNav(Conf['Custom Board Navigation']); + Header.generateBoardList(Conf['boardnav'].replace(/(\r\n|\n|\r)/g, ' ')); $.sync('Custom Board Navigation', Header.setCustomNav); return $.sync('boardnav', Header.generateBoardList); }, @@ -11957,7 +11946,7 @@ } }, updateBoard: function(boardID) { - var onload, req; + var fullBoardList, onload, req; g.BOARD = new Board(boardID); req = null; onload = function(e) { @@ -11987,7 +11976,10 @@ ]); } }; - Header.setBoardList(); + fullBoardList = $('#full-board-list', Header.boardList); + $.rmClass($('.current', fullBoardList), 'current'); + $.addClass($("a[href*='" + boardID + "']", fullBoardList), 'current'); + Header.generateBoardList(Conf['boardnav'].replace(/(\r\n|\n|\r)/g, ' ')); return req = $.ajax('//a.4cdn.org/boards.json', { onabort: onload, onloadend: onload diff --git a/builds/crx/script.js b/builds/crx/script.js index d903d7a2f..d191d84fc 100644 --- a/builds/crx/script.js +++ b/builds/crx/script.js @@ -1788,7 +1788,7 @@ } $.asap((function() { return $.id('boardNavMobile') || d.readyState !== 'loading'; - }), Header.initReady); + }), Header.setBoardList); $.prepend(d.body, _this.bar); $.add(d.body, Header.hover); _this.setBarPosition(Conf['Bottom Header']); @@ -1834,20 +1834,15 @@ id: 'scroll-marker' }), initReady: function() { - Header.cache(); Header.setBoardList(); return Header.addNav(); }, - cache: function() { - var fourchannav; - fourchannav = $.id('boardNavDesktop'); - return Header.navCache = ""; - }, setBoardList: function() { - var a, boardList, btn, fullBoardList, _i, _len, _ref; - boardList = $.el('span', { + var a, boardList, btn, fourchannav, fullBoardList, _i, _len, _ref; + fourchannav = $.id('boardNavDesktop'); + Header.boardList = boardList = $.el('span', { id: 'board-list', - innerHTML: Header.navCache + innerHTML: "" }); _ref = $$('a', boardList); for (_i = 0, _len = _ref.length; _i < _len; _i++) { @@ -1862,15 +1857,9 @@ $.on(btn, 'click', Header.toggleBoardList); $.rm($('#navtopright', fullBoardList)); $.add(boardList, fullBoardList); - if (Header.boardList) { - $.replace(Header.boardList, boardList); - } - Header.boardList = boardList; - return Header.generateBoardList(Conf['boardnav'].replace(/(\r\n|\n|\r)/g, ' ')); - }, - addNav: function() { $.add(Header.bar, [Header.boardList, Header.shortcuts, Header.noticesRoot, Header.toggle]); Header.setCustomNav(Conf['Custom Board Navigation']); + Header.generateBoardList(Conf['boardnav'].replace(/(\r\n|\n|\r)/g, ' ')); $.sync('Custom Board Navigation', Header.setCustomNav); return $.sync('boardnav', Header.generateBoardList); }, @@ -11946,7 +11935,7 @@ } }, updateBoard: function(boardID) { - var onload, req; + var fullBoardList, onload, req; g.BOARD = new Board(boardID); req = null; onload = function(e) { @@ -11976,7 +11965,10 @@ ]); } }; - Header.setBoardList(); + fullBoardList = $('#full-board-list', Header.boardList); + $.rmClass($('.current', fullBoardList), 'current'); + $.addClass($("a[href*='" + boardID + "']", fullBoardList), 'current'); + Header.generateBoardList(Conf['boardnav'].replace(/(\r\n|\n|\r)/g, ' ')); return req = $.ajax('//a.4cdn.org/boards.json', { onabort: onload, onloadend: onload diff --git a/src/General/Header.coffee b/src/General/Header.coffee index 9e980feab..929dbba3c 100755 --- a/src/General/Header.coffee +++ b/src/General/Header.coffee @@ -94,7 +94,7 @@ Header = return unless Main.isThisPageLegit() # Wait for #boardNavMobile instead of #boardNavDesktop, # it might be incomplete otherwise. - $.asap (-> $.id('boardNavMobile') or d.readyState isnt 'loading'), Header.initReady + $.asap (-> $.id('boardNavMobile') or d.readyState isnt 'loading'), Header.setBoardList $.prepend d.body, @bar $.add d.body, Header.hover @setBarPosition Conf['Bottom Header'] @@ -134,18 +134,14 @@ Header = id: 'scroll-marker' initReady: -> - Header.cache() Header.setBoardList() Header.addNav() - cache: -> - fourchannav = $.id 'boardNavDesktop' - Header.navCache = "" - setBoardList: -> - boardList = $.el 'span', + fourchannav = $.id 'boardNavDesktop' + Header.boardList = boardList = $.el 'span', id: 'board-list' - innerHTML: Header.navCache + innerHTML: "" for a in $$ 'a', boardList $.on a, 'click', Navigate.navigate if a.pathname.split('/')[1] is g.BOARD.ID @@ -156,15 +152,10 @@ Header = $.rm $ '#navtopright', fullBoardList $.add boardList, fullBoardList - - $.replace Header.boardList, boardList if Header.boardList - Header.boardList = boardList - - Header.generateBoardList Conf['boardnav'].replace /(\r\n|\n|\r)/g, ' ' - - addNav: -> $.add Header.bar, [Header.boardList, Header.shortcuts, Header.noticesRoot, Header.toggle] + Header.setCustomNav Conf['Custom Board Navigation'] + Header.generateBoardList Conf['boardnav'].replace /(\r\n|\n|\r)/g, ' ' $.sync 'Custom Board Navigation', Header.setCustomNav $.sync 'boardnav', Header.generateBoardList diff --git a/src/General/Navigate.coffee b/src/General/Navigate.coffee index d984c0e1b..86e9290fc 100644 --- a/src/General/Navigate.coffee +++ b/src/General/Navigate.coffee @@ -133,7 +133,10 @@ Navigate = error: err ] - Header.setBoardList() + fullBoardList = $ '#full-board-list', Header.boardList + $.rmClass $('.current', fullBoardList), 'current' + $.addClass $("a[href*='#{boardID}']", fullBoardList), 'current' + Header.generateBoardList Conf['boardnav'].replace /(\r\n|\n|\r)/g, ' ' req = $.ajax '//a.4cdn.org/boards.json', onabort: onload