diff --git a/src/General/Header.coffee b/src/General/Header.coffee index f2212737f..8e99ecab1 100644 --- a/src/General/Header.coffee +++ b/src/General/Header.coffee @@ -84,15 +84,15 @@ Header = $.on window, 'load popstate', Header.hashScroll $.on d, 'CreateNotification', @createNotification + @setBoardList() + $.onExists doc, 'body', => return unless Main.isThisPageLegit() $.prepend d.body, @bar $.add d.body, Header.hover @setBarPosition Conf['Bottom Header'] - # Wait for #boardNavMobile instead of #boardNavDesktop, - # it might be incomplete otherwise. - $.onExists doc, '#boardNavMobile', Header.setBoardList + $.onExists doc, "#{Site.selectors.boardList} + *", Header.generateFullBoardList Main.ready -> if not (footer = $.id 'boardNavDesktopFoot') @@ -154,9 +154,20 @@ Header = btn = $('.hide-board-list-button', boardList) $.on btn, 'click', Header.toggleBoardList + $.add Header.bar, [Header.boardList, Header.shortcuts, Header.noticesRoot, Header.toggle] + + Header.setCustomNav Conf['Custom Board Navigation'] + Header.generateBoardList Conf['boardnav'] + + $.sync 'Custom Board Navigation', Header.setCustomNav + $.sync 'boardnav', Header.generateBoardList + + generateFullBoardList: -> nodes = [] spacer = -> $.el 'span', className: 'spacer' - for node in $('#boardNavDesktop > .boardList').childNodes + items = $.X './/a|.//text()[not(ancestor::a)]', $(Site.selectors.boardList) + i = 0 + while node = items.snapshotItem i++ switch node.nodeName when '#text' for chr in node.nodeValue @@ -169,18 +180,10 @@ Header = a = node.cloneNode true a.className = 'current' if a.pathname.split('/')[1] is g.BOARD.ID nodes.push a - fullBoardList = $ '.boardList', boardList + fullBoardList = $ '.boardList', Header.boardList $.add fullBoardList, nodes CatalogLinks.setLinks fullBoardList - $.add Header.bar, [Header.boardList, Header.shortcuts, Header.noticesRoot, Header.toggle] - - Header.setCustomNav Conf['Custom Board Navigation'] - Header.generateBoardList Conf['boardnav'] - - $.sync 'Custom Board Navigation', Header.setCustomNav - $.sync 'boardnav', Header.generateBoardList - generateBoardList: (boardnav) -> list = $ '#custom-board-list', Header.boardList $.rmAll list diff --git a/src/site/SW.tinyboard.coffee b/src/site/SW.tinyboard.coffee index a1ee7098b..cc86723f5 100644 --- a/src/site/SW.tinyboard.coffee +++ b/src/site/SW.tinyboard.coffee @@ -67,6 +67,7 @@ SW.tinyboard = comment: '.body' spoiler: '.spoiler' quotelink: 'a[onclick^="highlightReply("]' + boardList: '.boardlist' xpath: thread: 'div[starts-with(@id,"thread_")]' diff --git a/src/site/SW.yotsuba.coffee b/src/site/SW.yotsuba.coffee index bf90d30fa..a781b6815 100644 --- a/src/site/SW.yotsuba.coffee +++ b/src/site/SW.yotsuba.coffee @@ -33,6 +33,7 @@ SW.yotsuba = comment: '.postMessage' spoiler: 's' quotelink: ':not(pre) > .quotelink' # XXX https://github.com/4chan/4chan-JS/issues/77: 4chan currently creates quote links inside [code] tags; ignore them + boardList: '#boardNavDesktop > .boardList' xpath: thread: 'div[contains(concat(" ",@class," ")," thread ")]'