diff --git a/src/Filtering/ThreadHiding.coffee b/src/Filtering/ThreadHiding.coffee index 9ac236d56..efd5258c6 100755 --- a/src/Filtering/ThreadHiding.coffee +++ b/src/Filtering/ThreadHiding.coffee @@ -81,7 +81,7 @@ ThreadHiding = el: div order: 20 open: ({thread, isReply}) -> - if isReply or thread.isHidden + if isReply or thread.isHidden or Conf['Index Mode'] is 'catalog' return false ThreadHiding.menu.thread = thread true diff --git a/src/General/Index.coffee b/src/General/Index.coffee index 1e14a779f..bca51cd93 100644 --- a/src/General/Index.coffee +++ b/src/General/Index.coffee @@ -142,6 +142,42 @@ Index = new Notice 'info', "Last page reached.", 2 setTimeout reset, 3 * $.SECOND + menu: + init: -> + return if g.VIEW isnt 'index' or !Conf['Menu'] or g.BOARD.ID is 'f' + + Menu.menu.addEntry + el: $.el 'a', href: 'javascript:;' + order: 5 + open: ({thread}) -> + return false if Conf['Index Mode'] isnt 'catalog' + @el.textContent = if thread.isHidden + 'Show thread' + else + 'Hide thread' + $.off @el, 'click', @cb if @cb + @cb = -> + $.event 'CloseMenu' + Index.toggleHide thread + $.on @el, 'click', @cb + true + + Menu.menu.addEntry + el: $.el 'a', href: 'javascript:;' + order: 6 + open: ({thread}) -> + return false if Conf['Index Mode'] isnt 'catalog' + @el.textContent = if thread.isPinned + 'Unpin thread' + else + 'Pin thread' + $.off @el, 'click', @cb if @cb + @cb = -> + $.event 'CloseMenu' + Index.togglePin thread + $.on @el, 'click', @cb + true + threadNode: -> return unless data = Index.db.get {boardID: @board.ID, threadID: @ID} @pin() if data.isPinned @@ -149,17 +185,16 @@ Index = $.on @nodes.thumb, 'click', Index.onClick onClick: (e) -> return if e.button isnt 0 - root = @parentNode.parentNode - thread = g.threads[root.dataset.fullID] + thread = g.threads[@parentNode.parentNode.dataset.fullID] if e.shiftKey - Index.toggleHide thread, root + Index.toggleHide thread else if e.altKey Index.togglePin thread else return e.preventDefault() - toggleHide: (thread, root) -> - $.rm root + toggleHide: (thread) -> + $.rm thread.catalogView.nodes.root if Index.showHiddenThreads ThreadHiding.show thread return unless ThreadHiding.db.get {boardID: thread.board.ID, threadID: thread.ID} @@ -483,7 +518,7 @@ Index = # Sticky threads Index.sortOnTop (thread) -> thread.isSticky # Highlighted threads - Index.sortOnTop((thread) -> thread.isOnTop) if Conf['Filter'] + Index.sortOnTop (thread) -> thread.isOnTop # Non-hidden threads Index.sortOnTop((thread) -> !thread.isHidden) if Conf['Anchor Hidden Threads'] diff --git a/src/General/Main.coffee b/src/General/Main.coffee index 932fac15e..f789700c8 100755 --- a/src/General/Main.coffee +++ b/src/General/Main.coffee @@ -295,6 +295,7 @@ Main = ['Strike-through Quotes', QuoteStrikeThrough] ['Quick Reply', QR] ['Menu', Menu] + ['Index Generator (Menu)', Index.menu] ['Report Link', ReportLink] ['Thread Hiding (Menu)', ThreadHiding.menu] ['Reply Hiding (Menu)', PostHiding.menu]