Use the announcement's new data-utc value for hiding it.

This commit is contained in:
Mayhem 2013-05-10 05:43:40 +02:00
parent 7f6b06dcd3
commit 0fec8533de

View File

@ -25,6 +25,7 @@ PSAHiding =
unless psa = $.id 'globalMessage' unless psa = $.id 'globalMessage'
$.rmClass doc, 'hide-announcement' $.rmClass doc, 'hide-announcement'
$.rmClass doc, 'hide-announcement-enabled'
return return
PSAHiding.btn = btn = $.el 'a', PSAHiding.btn = btn = $.el 'a',
@ -34,32 +35,35 @@ PSAHiding =
href: 'javascript:;' href: 'javascript:;'
$.on btn, 'click', PSAHiding.toggle $.on btn, 'click', PSAHiding.toggle
$.get 'hiddenPSAs', [], (item) -> # XXX remove hiddenPSAs workaround in the future.
PSAHiding.sync item['hiddenPSAs'] items =
hiddenPSA: 0
hiddenPSAs: null
$.get items, ({hiddenPSA, hiddenPSAs}) ->
if hiddenPSAs
$.delete 'hiddenPSAs'
if psa.textContent.replace(/\W+/g, '').toLowerCase() in hiddenPSAs
hiddenPSA = +$.id('globalMessage').dataset.utc
$.set 'hiddenPSA', hiddenPSA
PSAHiding.sync hiddenPSA
$.before psa, btn $.before psa, btn
$.rmClass doc, 'hide-announcement' $.rmClass doc, 'hide-announcement'
$.sync 'hiddenPSAs', PSAHiding.sync $.sync 'hiddenPSA', PSAHiding.sync
toggle: (e) -> toggle: (e) ->
hide = $.hasClass @, 'hide-announcement' if $.hasClass @, 'hide-announcement'
text = PSAHiding.trim $.id 'globalMessage' UTC = +$.id('globalMessage').dataset.utc
$.get 'hiddenPSAs', [], ({hiddenPSAs}) -> $.set 'hiddenPSA', UTC
if hide else
hiddenPSAs.push text $.event 'CloseMenu'
hiddenPSAs = hiddenPSAs[-5..] $.delete 'hiddenPSA'
else PSAHiding.sync UTC
$.event 'CloseMenu' sync: (UTC) ->
i = hiddenPSAs.indexOf text
hiddenPSAs.splice i, 1
PSAHiding.sync hiddenPSAs
$.set 'hiddenPSAs', hiddenPSAs
sync: (hiddenPSAs) ->
psa = $.id 'globalMessage' psa = $.id 'globalMessage'
psa.hidden = PSAHiding.btn.hidden = if PSAHiding.trim(psa) in hiddenPSAs psa.hidden = PSAHiding.btn.hidden = if UTC and UTC >= +psa.dataset.utc
true true
else else
false false
if (hr = psa.nextElementSibling) and hr.nodeName is 'HR' if (hr = psa.nextElementSibling) and hr.nodeName is 'HR'
hr.hidden = psa.hidden hr.hidden = psa.hidden
trim: (psa) ->
psa.textContent.replace(/\W+/g, '').toLowerCase()