cleanup menu code

This commit is contained in:
ccd0 2014-06-18 22:39:19 -07:00
parent d0f196a467
commit cdb83f744a
19 changed files with 27 additions and 60 deletions

View File

@ -173,7 +173,6 @@ Filter =
textContent: 'Filter' textContent: 'Filter'
entry = entry =
type: 'post'
el: div el: div
order: 50 order: 50
open: (post) -> open: (post) ->
@ -198,7 +197,7 @@ Filter =
# Add a sub entry for each filter type. # Add a sub entry for each filter type.
entry.subEntries.push Filter.menu.createSubEntry type[0], type[1] entry.subEntries.push Filter.menu.createSubEntry type[0], type[1]
UI.addMenuEntry entry Menu.menu.addEntry entry
createSubEntry: (text, type) -> createSubEntry: (text, type) ->
el = $.el 'a', el = $.el 'a',

View File

@ -39,8 +39,7 @@ PostHiding =
replies = UI.checkbox 'replies', ' Hide replies', Conf['Recursive Hiding'] replies = UI.checkbox 'replies', ' Hide replies', Conf['Recursive Hiding']
makeStub = UI.checkbox 'makeStub', ' Make stub', Conf['Stubs'] makeStub = UI.checkbox 'makeStub', ' Make stub', Conf['Stubs']
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: div el: div
order: 20 order: 20
open: (post) -> open: (post) ->
@ -75,8 +74,7 @@ PostHiding =
href: 'javascript:;' href: 'javascript:;'
$.on hideStubLink, 'click', PostHiding.menu.hideStub $.on hideStubLink, 'click', PostHiding.menu.hideStub
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: div el: div
order: 20 order: 20
open: (post) -> open: (post) ->
@ -96,8 +94,7 @@ PostHiding =
el: replies el: replies
] ]
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: hideStubLink el: hideStubLink
order: 15 order: 15
open: (post) -> open: (post) ->

View File

@ -77,8 +77,7 @@ ThreadHiding =
makeStub = UI.checkbox 'Stubs', ' Make stub' makeStub = UI.checkbox 'Stubs', ' Make stub'
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: div el: div
order: 20 order: 20
open: ({thread, isReply}) -> open: ({thread, isReply}) ->
@ -94,8 +93,7 @@ ThreadHiding =
href: 'javascript:;' href: 'javascript:;'
$.on div, 'click', ThreadHiding.menu.show $.on div, 'click', ThreadHiding.menu.show
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: div el: div
order: 20 order: 20
open: ({thread, isReply}) -> open: ({thread, isReply}) ->
@ -109,8 +107,7 @@ ThreadHiding =
href: 'javascript:;' href: 'javascript:;'
$.on hideStubLink, 'click', ThreadHiding.menu.hideStub $.on hideStubLink, 'click', ThreadHiding.menu.hideStub
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: hideStubLink el: hideStubLink
order: 15 order: 15
open: ({thread, isReply}) -> open: ({thread, isReply}) ->

View File

@ -54,8 +54,7 @@ Header =
@addShortcut menuButton @addShortcut menuButton
UI.addMenuEntry @menu.addEntry
type: 'header'
el: $.el 'span', el: $.el 'span',
textContent: 'Header' textContent: 'Header'
order: 107 order: 107

View File

@ -55,8 +55,7 @@ Index =
when 'Anchor Hidden Threads' when 'Anchor Hidden Threads'
$.on input, 'change', @cb.sort $.on input, 'change', @cb.sort
UI.addMenuEntry Header.menu.addEntry
type: 'header'
el: $.el 'span', el: $.el 'span',
textContent: 'Index Navigation' textContent: 'Index Navigation'
order: 98 order: 98

View File

@ -18,10 +18,6 @@ UI = do ->
el el
menus = {} menus = {}
addMenuEntry = (entry) ->
menus[entry.type].addEntry entry
rmMenuEntry = (entry) ->
menus[entry.type].addEntry entry
class Menu class Menu
currentMenu = null currentMenu = null
@ -391,6 +387,4 @@ UI = do ->
Menu: Menu Menu: Menu
hover: hoverstart hover: hoverstart
checkbox: checkbox checkbox: checkbox
addMenuEntry: addMenuEntry
rmMenuEntry: rmMenuEntry
} }

View File

@ -10,8 +10,7 @@ FappeTyme =
FappeTyme[lc] = input = el.firstElementChild FappeTyme[lc] = input = el.firstElementChild
$.on input, 'change', FappeTyme.cb.toggle.bind input $.on input, 'change', FappeTyme.cb.toggle.bind input
UI.addMenuEntry Header.menu.addEntry
type: 'header'
el: el el: el
order: 97 order: 97

View File

@ -61,8 +61,7 @@ Gallery =
for name of Config.gallery for name of Config.gallery
{el} = createSubEntry name {el} = createSubEntry name
UI.addMenuEntry nodes.menu.addEntry
type: 'gallery'
el: el el: el
order: 0 order: 0
@ -235,8 +234,7 @@ Gallery =
for name of Config.gallery for name of Config.gallery
subEntries.push createSubEntry name subEntries.push createSubEntry name
UI.addMenuEntry Header.menu.addEntry
type: 'header'
el: el el: el
order: 105 order: 105
subEntries: subEntries subEntries: subEntries

View File

@ -249,8 +249,7 @@ ImageExpand =
for name, conf of Config.imageExpansion for name, conf of Config.imageExpansion
subEntries.push createSubEntry name, conf[1] subEntries.push createSubEntry name, conf[1]
UI.addMenuEntry Header.menu.addEntry
type: 'header'
el: el el: el
order: 105 order: 105
subEntries: subEntries subEntries: subEntries

View File

@ -19,8 +19,7 @@ ImageLoader =
@el = prefetch.firstElementChild @el = prefetch.firstElementChild
$.on @el, 'change', @toggle $.on @el, 'change', @toggle
UI.addMenuEntry Header.menu.addEntry
type: 'header'
el: prefetch el: prefetch
order: 104 order: 104

View File

@ -6,7 +6,6 @@ ArchiveLink =
textContent: 'Archive' textContent: 'Archive'
entry = entry =
type: 'post'
el: div el: div
order: 90 order: 90
open: ({ID, thread, board}) -> open: ({ID, thread, board}) ->
@ -25,7 +24,7 @@ ArchiveLink =
# Add a sub entry for each type. # Add a sub entry for each type.
entry.subEntries.push @createSubEntry type[0], type[1] entry.subEntries.push @createSubEntry type[0], type[1]
UI.addMenuEntry entry Menu.menu.addEntry entry
createSubEntry: (text, type) -> createSubEntry: (text, type) ->
el = $.el 'a', el = $.el 'a',

View File

@ -26,8 +26,7 @@ DeleteLink =
$.on fileEl, 'click', DeleteLink.delete $.on fileEl, 'click', DeleteLink.delete
true true
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: div el: div
order: 40 order: 40
open: (post) -> open: (post) ->

View File

@ -17,8 +17,7 @@ DownloadLink =
else else
new Notice 'error', "Could not download #{file.URL}", 30 new Notice 'error', "Could not download #{file.URL}", 30
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: a el: a
order: 100 order: 100
open: ({file}) -> open: ({file}) ->

View File

@ -7,8 +7,7 @@ ReportLink =
href: 'javascript:;' href: 'javascript:;'
textContent: 'Report this post' textContent: 'Report this post'
$.on a, 'click', ReportLink.report $.on a, 'click', ReportLink.report
UI.addMenuEntry Menu.menu.addEntry
type: 'post'
el: a el: a
order: 10 order: 10
open: (post) -> open: (post) ->

View File

@ -12,14 +12,13 @@ PSAHiding =
return return
entry = entry =
type: 'header'
el: $.el 'a', el: $.el 'a',
textContent: 'Show announcement' textContent: 'Show announcement'
className: 'show-announcement' className: 'show-announcement'
href: 'javascript:;' href: 'javascript:;'
order: 50 order: 50
open: -> psa.hidden open: -> psa.hidden
UI.addMenuEntry entry Header.menu.addEntry entry
$.on entry.el, 'click', PSAHiding.toggle $.on entry.el, 'click', PSAHiding.toggle
PSAHiding.btn = btn = $.el 'span', PSAHiding.btn = btn = $.el 'span',

View File

@ -8,8 +8,7 @@ CatalogLinks =
$.on input, 'change', @toggle $.on input, 'change', @toggle
$.sync 'Header catalog links', CatalogLinks.set $.sync 'Header catalog links', CatalogLinks.set
UI.addMenuEntry Header.menu.addEntry
type: 'header'
el: el el: el
order: 95 order: 95

View File

@ -52,8 +52,7 @@ ThreadUpdater =
subEntries.push el: @settings subEntries.push el: @settings
UI.addMenuEntry @entry = Header.menu.addEntry @entry =
type: 'header'
el: $.el 'span', el: $.el 'span',
textContent: 'Updater' textContent: 'Updater'
order: 110 order: 110

View File

@ -227,7 +227,7 @@ ThreadWatcher =
refreshers: [] refreshers: []
init: -> init: ->
return if !Conf['Thread Watcher'] return if !Conf['Thread Watcher']
menu = new UI.Menu 'thread watcher' menu = @menu = new UI.Menu 'thread watcher'
$.on $('.menu-button', ThreadWatcher.dialog), 'click', (e) -> $.on $('.menu-button', ThreadWatcher.dialog), 'click', (e) ->
menu.toggle e, @, ThreadWatcher menu.toggle e, @, ThreadWatcher
@addHeaderMenuEntry() @addHeaderMenuEntry()
@ -237,8 +237,7 @@ ThreadWatcher =
return if g.VIEW isnt 'thread' return if g.VIEW isnt 'thread'
entryEl = $.el 'a', entryEl = $.el 'a',
href: 'javascript:;' href: 'javascript:;'
UI.addMenuEntry Header.menu.addEntry
type: 'header'
el: entryEl el: entryEl
order: 60 order: 60
$.on entryEl, 'click', -> ThreadWatcher.toggle g.threads["#{g.BOARD}.#{g.THREADID}"] $.on entryEl, 'click', -> ThreadWatcher.toggle g.threads["#{g.BOARD}.#{g.THREADID}"]
@ -258,7 +257,6 @@ ThreadWatcher =
entries.push entries.push
cb: ThreadWatcher.cb.openAll cb: ThreadWatcher.cb.openAll
entry: entry:
type: 'thread watcher'
el: $.el 'a', el: $.el 'a',
textContent: 'Open all threads' textContent: 'Open all threads'
refresh: -> (if ThreadWatcher.list.firstElementChild then $.rmClass else $.addClass) @el, 'disabled' refresh: -> (if ThreadWatcher.list.firstElementChild then $.rmClass else $.addClass) @el, 'disabled'
@ -267,7 +265,6 @@ ThreadWatcher =
entries.push entries.push
cb: ThreadWatcher.cb.checkThreads cb: ThreadWatcher.cb.checkThreads
entry: entry:
type: 'thread watcher'
el: $.el 'a', el: $.el 'a',
textContent: 'Check 404\'d threads' textContent: 'Check 404\'d threads'
refresh: -> (if $('div:not(.dead-thread)', ThreadWatcher.list) then $.rmClass else $.addClass) @el, 'disabled' refresh: -> (if $('div:not(.dead-thread)', ThreadWatcher.list) then $.rmClass else $.addClass) @el, 'disabled'
@ -276,7 +273,6 @@ ThreadWatcher =
entries.push entries.push
cb: ThreadWatcher.cb.pruneDeads cb: ThreadWatcher.cb.pruneDeads
entry: entry:
type: 'thread watcher'
el: $.el 'a', el: $.el 'a',
textContent: 'Prune 404\'d threads' textContent: 'Prune 404\'d threads'
refresh: -> (if $('.dead-thread', ThreadWatcher.list) then $.rmClass else $.addClass) @el, 'disabled' refresh: -> (if $('.dead-thread', ThreadWatcher.list) then $.rmClass else $.addClass) @el, 'disabled'
@ -287,7 +283,6 @@ ThreadWatcher =
subEntries.push @createSubEntry name, conf[1] subEntries.push @createSubEntry name, conf[1]
entries.push entries.push
entry: entry:
type: 'thread watcher'
el: $.el 'span', el: $.el 'span',
textContent: 'Settings' textContent: 'Settings'
subEntries: subEntries subEntries: subEntries
@ -296,7 +291,7 @@ ThreadWatcher =
entry.el.href = 'javascript:;' if entry.el.nodeName is 'A' entry.el.href = 'javascript:;' if entry.el.nodeName is 'A'
$.on entry.el, 'click', cb if cb $.on entry.el, 'click', cb if cb
@refreshers.push refresh.bind entry if refresh @refreshers.push refresh.bind entry if refresh
UI.addMenuEntry entry @menu.addEntry entry
return return
createSubEntry: (name, desc) -> createSubEntry: (name, desc) ->
entry = entry =

View File

@ -13,8 +13,7 @@ QuoteThreading =
input = $ 'input', @controls input = $ 'input', @controls
$.on input, 'change', @toggle $.on input, 'change', @toggle
UI.addMenuEntry @entry = Header.menu.addEntry @entry =
type: 'header'
el: @controls el: @controls
order: 98 order: 98