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

View File

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