diff --git a/4chan_x.user.js b/4chan_x.user.js index b674ea843..009a804e4 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -1216,6 +1216,13 @@ close: function() { return qr.el.hidden = true; }, + error: function(err) { + $('.error', qr.el).textContent = err; + return alert(err); + }, + cleanError: function() { + return $('.error', qr.el).textContent = null; + }, quote: function(e) { var caretPos, id, s, sel, ta, text, _ref; if (e != null) e.preventDefault(); @@ -1233,6 +1240,27 @@ ta.focus(); return ta.selectionEnd = ta.selectionStart = caretPos + text.length; }, + fileInput: function() { + var file, _i, _len, _ref; + qr.cleanError(); + if (this.files.length === 1) { + if (this.files[0].size > this.max) { + qr.error('File too large.'); + } else { + + } + return; + } + _ref = this.files; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.size > this.max) { + qr.error("File " + file.name + " is too large."); + break; + } + } + return $.addClass(qr.el, 'dump'); + }, dialog: function() { var file, input, name, _ref; qr.el = ui.dialog('qr', 'top:0;right:0;', '\ @@ -1311,7 +1339,7 @@ textarea.field {\
\
\
\ -
\ +
\
\ '); $.on($('#autohide', qr.el), 'click', qr.hide); @@ -1347,12 +1375,14 @@ textarea.field {\ return 'image/' + type; } }); + file.max = $('[name=MAX_FILE_SIZE]').value; + $.on(file, 'change', qr.fileInput); return $.add(d.body, qr.el); }, submit: function(e) { if (e != null) e.preventDefault(); if (conf['Auto Hide QR']) qr.hide(); - return $('.error', qr.el).textContent = null; + return qr.cleanError(); }, response: function(e) { var input, name, _ref, _results; diff --git a/script.coffee b/script.coffee index 02e1effc9..566e53374 100644 --- a/script.coffee +++ b/script.coffee @@ -877,16 +877,20 @@ qr = qr.hide.call input else qr.dialog() - hide: -> if this.checked $.addClass qr.el, 'autohide' else $.removeClass qr.el, 'autohide' - close: -> qr.el.hidden = true + error: (err) -> + $('.error', qr.el).textContent = err + alert err + cleanError: -> + $('.error', qr.el).textContent = null + quote: (e) -> e?.preventDefault() qr.open() @@ -907,6 +911,22 @@ qr = #move the caret to the end of the new quote ta.selectionEnd = ta.selectionStart = caretPos + text.length + fileInput: -> + qr.cleanError() + if @files.length is 1 + if @files[0].size > @max + qr.error 'File too large.' + else + # modify selected reply's file + return + for file in @files + if file.size > @max + qr.error "File #{file.name} is too large." + break + # add new reply + # set reply's file + $.addClass qr.el, 'dump' + dialog: -> qr.el = ui.dialog 'qr', 'top:0;right:0;', '