4chan-x/src/Miscellaneous/Banner.coffee
ccd0 6ce8bef709 Drop HTML in custom board titles.
This could be useful, but the fact that it's been broken almost
since its creation indicates nobody's actually using it.

As with the file info formatting, I'll mention it on the changelog
and add it back with better security if someone actually wants to
use it.
2014-05-13 15:03:10 -07:00

86 lines
2.0 KiB
CoffeeScript

Banner =
init: ->
$.asap (-> d.body), ->
$.asap (-> $ 'hr'), Banner.ready
ready: ->
banner = $ ".boardBanner"
{children} = banner
i = 0
while child = children[i++]
if i is 1
child.title = "Click to change"
$.on child, 'click', Banner.cb.toggle
continue
if Conf['Custom Board Titles']
Banner.custom(child).title = "Ctrl+click to edit board #{if i is 3
'sub'
else
''}title"
child.spellcheck = false
return
cb:
toggle: do ->
types =
jpg: 227
png: 270
gif: 253
->
type = Object.keys(types)[Math.floor 3 * Math.random()]
num = Math.floor types[type] * Math.random()
$('img', @parentNode).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: ->
string = "#{g.BOARD}.#{@className}"
string2 = "#{string}.orig"
items = {title: @textContent}
items[string] = ''
items[string2] = false
$.get items, (items) ->
unless items[string2] and items.title is items[string]
$.set string2, items.title
return
blur: ->
@contentEditable = false
$.set "#{g.BOARD}.#{@className}", @textContent
custom: (child) ->
cachedTest = child.textContent
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.textContent = title if Conf['Persistent Custom Board Titles']
string2 = "#{string}.orig"
$.get string2, cachedTest, (itemb) ->
if cachedTest is itemb[string2]
child.textContent = title
else
$.set string, cachedTest
$.set string2, cachedTest
child