diff --git a/4chan_x.user.js b/4chan_x.user.js
index afb84620d..d4a25773d 100644
--- a/4chan_x.user.js
+++ b/4chan_x.user.js
@@ -1288,6 +1288,9 @@
top: '0',
left: '0'
}, " X
Quick Reply
");
+ if (conf['Cooldown']) {
+ QR.cooldown;
+ }
$.bind($('.close', el), 'click', QR.close);
$.bind($('form', el), 'submit', QR.submit);
$.bind($('#recaptcha_response_field', el), 'keydown', QR.keydown);
@@ -1323,13 +1326,40 @@
ta.setSelectionRange(i, i);
return ta.focus();
},
+ cooldown: function() {
+ var b, n, now;
+ if (!QR.el) {
+ return;
+ }
+ cooldown = $.get("cooldown/" + g.BOARD, 0);
+ now = Date.now();
+ n = Math.ceil((cooldown - now) / 1000);
+ b = $('button', QR.el);
+ if (n > 0) {
+ setTimeout(QR.cooldown, 1000);
+ return $.extend(b, {
+ textContent: n,
+ disabled: true
+ });
+ } else {
+ return $.extend(b, {
+ textContent: 'Submit',
+ disabled: false
+ });
+ }
+ },
receive: function(e) {
var data;
data = e.data;
if (data) {
return $.extend($('a.error', QR.el), JSON.parse(data));
} else {
- return QR.close();
+ QR.close();
+ if (conf['Cooldown']) {
+ cooldown = Date.now() + 30 * SECOND;
+ $.set("cooldown/" + g.BOARD, cooldown);
+ return QR.cooldown();
+ }
}
},
submit: function(e) {
diff --git a/script.coffee b/script.coffee
index f60468d3d..eec34ceb5 100644
--- a/script.coffee
+++ b/script.coffee
@@ -1019,6 +1019,7 @@ QR =
"
+ QR.cooldown if conf['Cooldown']
$.bind $('.close', el), 'click', QR.close
$.bind $('form', el), 'submit', QR.submit
$.bind $('#recaptcha_response_field', el), 'keydown', QR.keydown
@@ -1045,12 +1046,31 @@ QR =
i = ss + text.length
ta.setSelectionRange i, i
ta.focus()
+ cooldown: ->
+ return unless QR.el
+ cooldown = $.get "cooldown/#{g.BOARD}", 0
+ now = Date.now()
+ n = Math.ceil (cooldown - now) / 1000
+ b = $ 'button', QR.el
+ if n > 0
+ setTimeout QR.cooldown, 1000
+ $.extend b,
+ textContent: n
+ disabled: true
+ else
+ $.extend b,
+ textContent: 'Submit'
+ disabled: false
receive: (e) ->
{data} = e
if data
$.extend $('a.error', QR.el), JSON.parse data
else
QR.close()
+ if conf['Cooldown']
+ cooldown = Date.now() + 30*SECOND
+ $.set "cooldown/#{g.BOARD}", cooldown
+ QR.cooldown()
submit: (e) ->
$('.error', qr.el).textContent = ''
if (el = $('#recaptcha_response_field', QR.el)).value