Send HTML response to the parent window; save and load poster identity.

This commit is contained in:
Nicolas Stepien 2012-01-23 00:54:18 +01:00
parent d3ce33c913
commit 3bb9cba3ee
2 changed files with 41 additions and 28 deletions

View File

@ -1339,10 +1339,10 @@
reply: (function() {
function _Class(file) {
var previous, _ref,
var persona, previous, _ref,
_this = this;
this.com = null;
_ref = (previous = qr.replies[qr.replies.length - 1]) ? [previous.name, /^sage$/.test(previous.email) ? null : previous.email, conf['Remember Subject'] ? previous.sub : null, conf['Remember Spoiler'] ? previous.spoiler : false] : [$.get("qr_name", null), $.get("qr_email", null), conf['Remember Subject'] ? $.get("qr_sub", null) : null, false], this.name = _ref[0], this.email = _ref[1], this.sub = _ref[2], this.spoiler = _ref[3];
_ref = (previous = qr.replies[qr.replies.length - 1]) ? [previous.name, /^sage$/.test(previous.email) ? null : previous.email, conf['Remember Subject'] ? previous.sub : null, conf['Remember Spoiler'] ? previous.spoiler : false] : (persona = $.get('qr.persona', {}), [persona.name || null, persona.email || null, conf['Remember Subject'] ? persona.sub || null : null, false]), this.name = _ref[0], this.email = _ref[1], this.sub = _ref[2], this.spoiler = _ref[3];
this.el = $.el('a', {
className: 'preview',
href: 'javascript:;',
@ -1607,18 +1607,18 @@
}
return qr.message.send(post);
},
response: function(e) {
var reply, sage;
log(e);
return;
if (!(conf['Persistent QR'] || qr.replies.length > 1)) qr.close();
sage = /sage/i.test(reply.email);
response: function(html) {
var persona, reply, sage;
log(html);
if (!(conf['Persistent QR'] || qr.replies.length > 1)) {}
reply = qr.replies[0];
$.set("qr_name", reply.name);
$.set("qr_email", /^sage$/.test(reply.email) ? null : reply.email);
if (conf['Remember Subject']) $.set("qr_sub", reply.sub);
if (qr.replies.length === 1) new qr.reply().select();
return reply.rm();
sage = /sage/i.test(reply.email);
persona = {
name: reply.name,
email: /^sage$/.test(reply.email) ? null : reply.email,
sub: conf['Remember Subject'] ? reply.sub : null
};
return $.set('qr.persona', persona);
},
message: {
init: function() {
@ -1654,6 +1654,10 @@
if ((_ref = qr.ajax) != null) _ref.abort();
return;
}
if (data.response) {
qr.response(data.html);
return;
}
delete data.qr;
if (data.mode === 'regist') {
url = "http://sys.4chan.org/" + data.board + "/post?" + (Date.now());
@ -1674,7 +1678,12 @@
val = data[name];
if (val) form.append(name, val);
}
return qr.ajax = $.ajax(url, qr.response, {
return qr.ajax = $.ajax(url, (function() {
return qr.message.send({
response: true,
html: this.response
});
}), {
type: 'post'
}, form);
}

View File

@ -998,10 +998,11 @@ qr =
if conf['Remember Spoiler'] then previous.spoiler else false
]
else
persona = $.get 'qr.persona', {}
[
$.get("qr_name", null),
$.get("qr_email", null),
if conf['Remember Subject'] then $.get("qr_sub", null) else null,
persona.name or null,
persona.email or null,
if conf['Remember Subject'] then persona.sub or null else null,
false
]
@ -1226,24 +1227,24 @@ qr =
qr.message.send post
response: (e) ->
log e
return
response: (html) ->
log html
# successful posting/error handling
unless conf['Persistent QR'] or qr.replies.length > 1
qr.close()
;# qr.close()
reply = qr.replies[0]
sage = /sage/i.test reply.email
# cooldown
reply = qr.replies[0]
$.set "qr_name", reply.name
$.set "qr_email", if /^sage$/.test reply.email then null else reply.email
$.set "qr_sub", reply.sub if conf['Remember Subject']
persona =
name: reply.name
email: if /^sage$/.test reply.email then null else reply.email
sub: if conf['Remember Subject'] then reply.sub else null
$.set 'qr.persona', persona
new qr.reply().select() if qr.replies.length is 1
reply.rm()
# reply.rm()
message:
init: ->
@ -1273,6 +1274,9 @@ qr =
if data.abort
qr.ajax?.abort()
return
if data.response # xhr response
qr.response data.html
return
delete data.qr
if data.mode is 'regist' # reply object: we're posting
# fool CloudFlare's cache to hopefully avoid connection errors
@ -1293,7 +1297,7 @@ qr =
delete data.upfile
for name, val of data
form.append name, val if val
qr.ajax = $.ajax url, qr.response, type: 'post', form
qr.ajax = $.ajax url, (-> qr.message.send response: true, html: @response), type: 'post', form
options =
init: ->