4chan-x/src/Miscellaneous/Banner.coffee
Zixaphir 523d6bd9c4 Merge branch 'ccd0' into v3
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
2014-05-03 02:03:35 -07:00

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