This commit is contained in:
seaweedchan 2013-08-16 01:54:30 -07:00
parent 7f52115b38
commit 4e03f88c39

View File

@ -0,0 +1,87 @@
Banner =
init: ->
$.asap (-> d.body), ->
$.asap (-> $ '.abovePostForm'), Banner.ready
ready: ->
banner = $ ".boardBanner"
if Conf['Custom Board Titles']
btitle = $ ".boardTitle"
subtitle = $ ".boardSubtitle"
btitle.title = "Ctrl+click to edit board title"
subtitle.title = "Ctrl+click to edit board subtitle"
children = banner.children
i = children.length
nodes = []
while i--
child = children[i]
if child.tagName.toLowerCase() is "img"
child.id = "Banner"
child.title = "Click to change"
$.on child, 'click', Banner.cb.toggle
continue
if Conf['Custom Board Titles']
Banner.custom child
nodes.push child
return
types:
jpg: 227
png: 270
gif: 253
cb:
toggle: ->
type = ['jpg', 'png', 'gif'][Math.floor 3 * Math.random()]
num = Math.floor Banner.types[type] * Math.random()
@src = "//static.4chan.org/image/title/#{num}.#{type}"
click: (e) ->
if e.ctrlKey
@contentEditable = true
@spellcheck = false
@focus()
keydown: (e) ->
e.stopPropagation()
return @blur() if !e.shiftKey and e.keyCode is 13
focus: ->
string = "#{g.BOARD}.#{@className}"
items =
title: @innerHTML
items["#{string}"] = ''
items["#{string}.orig"] = false
$.get items, (items) ->
unless items["#{string}.orig"] and items.title is items["#{string}"]
$.set "#{string}.orig", items.title
@textContent = @innerHTML
blur: ->
$.set "#{g.BOARD}.#{@className}", @textContent
@innerHTML = @textContent
@contentEditable = false
custom: (child) ->
cachedTest = child.innerHTML
$.get "#{g.BOARD}.#{child.className}", cachedTest, (item) ->
return unless title = item["#{g.BOARD}.#{child.className}"]
if Conf['Persistent Custom Board Titles']
child.innerHTML = title
else
$.get "#{g.BOARD}.#{child.className}.orig", cachedTest, (itemb) ->
if cachedTest is itemb["#{g.BOARD}.#{child.className}.orig"]
child.innerHTML = title
else
$.set "#{g.BOARD}.#{child.className}", cachedTest
$.set "#{g.BOARD}.#{child.className}.orig", cachedTest
$.on child, 'click', Banner.cb.click
$.on child, 'keydown', Banner.cb.keydown
$.on child, 'focus', Banner.cb.focus
$.on child, 'blur', Banner.cb.blur