Conflicts: CHANGELOG.md LICENSE builds/4chan-X.user.js builds/crx.crx builds/crx/script.js src/General/Build.coffee src/General/Index.coffee src/General/Main.coffee src/General/Navigate.coffee src/General/css/style.css src/General/html/Build/post.html src/General/html/Features/Index-navlinks.html src/General/lib/post.class src/Images/Gallery.coffee src/Images/ImageExpand.coffee src/Images/ImageHover.coffee src/Miscellaneous/Banner.coffee src/Miscellaneous/Keybinds.coffee src/Monitoring/ThreadUpdater.coffee src/Posting/QR.captcha.coffee src/Posting/QR.coffee src/Posting/QR.post.coffee src/Quotelinks/QuoteBacklink.coffee src/Quotelinks/Quotify.coffee
88 lines
2.0 KiB
CoffeeScript
88 lines
2.0 KiB
CoffeeScript
Banner =
|
|
init: ->
|
|
$.asap (-> d.body), ->
|
|
$.asap (-> $ 'hr'), Banner.ready
|
|
|
|
ready: ->
|
|
banner = $ ".boardBanner"
|
|
{children} = banner
|
|
|
|
for child, i in children
|
|
if i is 0
|
|
child.id = "Banner"
|
|
child.title = "Click to change"
|
|
$.on child, 'click error', Banner.cb.toggle
|
|
|
|
continue
|
|
|
|
if Conf['Custom Board Titles']
|
|
Banner.custom(child).title = "Ctrl+click to edit board #{if i is 2
|
|
'sub'
|
|
else
|
|
''}title"
|
|
|
|
return
|
|
|
|
cb:
|
|
toggle: do ->
|
|
types =
|
|
jpg: 227
|
|
png: 262
|
|
gif: 253
|
|
|
|
->
|
|
type = Object.keys(types)[Math.floor 3 * Math.random()]
|
|
num = Math.floor types[type] * Math.random()
|
|
@src = "//s.4cdn.org/image/title/#{num}.#{type}"
|
|
|
|
click: (e) ->
|
|
if e.ctrlKey
|
|
@contentEditable = true
|
|
@focus()
|
|
|
|
keydown: (e) ->
|
|
e.stopPropagation()
|
|
return @blur() if !e.shiftKey and e.keyCode is 13
|
|
|
|
focus: ->
|
|
@textContent = @innerHTML
|
|
|
|
string = "#{g.BOARD}.#{@className}"
|
|
string2 = "#{string}.orig"
|
|
|
|
items = {title: @innerHTML}
|
|
items[string] = ''
|
|
items[string2] = false
|
|
|
|
$.get items, (items) ->
|
|
unless items[string2] and items.title is items[string]
|
|
$.set string2, items.title
|
|
|
|
return
|
|
|
|
blur: ->
|
|
@innerHTML = @textContent
|
|
@contentEditable = false
|
|
$.set "#{g.BOARD}.#{@className}", @textContent
|
|
|
|
custom: (child) ->
|
|
cachedTest = child.innerHTML
|
|
string = "#{g.BOARD}.#{child.className}"
|
|
|
|
$.on child, 'click keydown focus blur', (e) -> Banner.cb[e.type].apply @, [e]
|
|
|
|
$.get string, cachedTest, (item) ->
|
|
return unless title = item[string]
|
|
return child.innerHTML = title if Conf['Persistent Custom Board Titles']
|
|
|
|
string2 = "#{string}.orig"
|
|
|
|
$.get string2, cachedTest, (itemb) ->
|
|
if cachedTest is itemb[string2]
|
|
child.innerHTML = title
|
|
else
|
|
$.set string, cachedTest
|
|
$.set string2, cachedTest
|
|
|
|
child
|