Select reply in replies list done.

This commit is contained in:
Nicolas Stepien 2012-01-17 00:46:07 +01:00
parent 2263d2ba7a
commit 76b84c9a14
2 changed files with 33 additions and 22 deletions

View File

@ -1311,12 +1311,16 @@
reply: (function() { reply: (function() {
function _Class(file) { function _Class(file) {
var previous, _ref; var previous, _ref,
_this = this;
_ref = (previous = qr.replies[qr.replies.length - 1]) ? [previous.name, /^sage$/.test(previous.email) ? null : previous.email, conf['Remember Subject'] ? previous.sub : null] : [$.get("qr_name", null), $.get("qr_email", null), conf['Remember Subject'] ? $.get("qr_sub", null) : null], this.name = _ref[0], this.email = _ref[1], this.sub = _ref[2]; _ref = (previous = qr.replies[qr.replies.length - 1]) ? [previous.name, /^sage$/.test(previous.email) ? null : previous.email, conf['Remember Subject'] ? previous.sub : null] : [$.get("qr_name", null), $.get("qr_email", null), conf['Remember Subject'] ? $.get("qr_sub", null) : null], this.name = _ref[0], this.email = _ref[1], this.sub = _ref[2];
this.com = null; this.com = null;
this.el = $.el('li', { this.el = $.el('li', {
textContent: 'no file' textContent: 'no file'
}); });
$.on(this.el, 'click', function() {
return _this.select();
});
if (file) this.setFile(file); if (file) this.setFile(file);
$.before($('#addReply', qr.el), this.el); $.before($('#addReply', qr.el), this.el);
qr.replies.push(this); qr.replies.push(this);
@ -1327,14 +1331,18 @@
return this.el.textContent = this.file.fileName; return this.el.textContent = this.file.fileName;
}; };
_Class.prototype.load = function() { _Class.prototype.select = function() {
var data, _ref; var data, _i, _len, _ref, _ref2, _results;
for (data in this) { if ((_ref = qr.selected) != null) _ref.el.id = null;
if ((_ref = $("[name=" + data + "]", qr.el)) != null) { qr.selected = this;
_ref.value = this[data]; this.el.id = 'selected';
} _ref2 = ['name', 'email', 'sub', 'com'];
_results = [];
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
data = _ref2[_i];
_results.push($("[name=" + data + "]", qr.el).value = this[data]);
} }
return log(this); return _results;
}; };
_Class.prototype.rm = function() {}; _Class.prototype.rm = function() {};
@ -1376,15 +1384,17 @@
return qr.el.classList.toggle('dump'); return qr.el.classList.toggle('dump');
}); });
$.on($('#addReply', qr.el), 'click', function() { $.on($('#addReply', qr.el), 'click', function() {
return new qr.reply().load(); return new qr.reply().select();
}); });
$.on($('form', qr.el), 'submit', qr.submit); $.on($('form', qr.el), 'submit', qr.submit);
$.on($('[type=file]', qr.el), 'change', qr.fileInput); $.on($('[type=file]', qr.el), 'change', qr.fileInput);
new qr.reply().load(); new qr.reply().select();
_ref2 = ['name', 'email', 'sub', 'com']; _ref2 = ['name', 'email', 'sub', 'com'];
for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
input = _ref2[_j]; input = _ref2[_j];
$.on($("[name=" + input + "]", qr.el), 'change', function() {}); $.on($("[name=" + input + "]", qr.el), 'change', function() {
return qr.selected[this.name] = this.value;
});
} }
return $.add(d.body, qr.el); return $.add(d.body, qr.el);
}, },
@ -1406,7 +1416,7 @@
$.set("qr_name", reply.name); $.set("qr_name", reply.name);
$.set("qr_email", /^sage$/.test(reply.email) ? null : reply.email); $.set("qr_email", /^sage$/.test(reply.email) ? null : reply.email);
if (conf['Remember Subject']) $.set("qr_sub", reply.sub); if (conf['Remember Subject']) $.set("qr_sub", reply.sub);
if (qr.replies.length === 1) new qr.reply().load(); if (qr.replies.length === 1) new qr.reply().select();
return reply.rm(); return reply.rm();
} }
}; };

View File

@ -986,18 +986,19 @@ qr =
@com = null @com = null
@el = $.el 'li', @el = $.el 'li',
textContent: 'no file' textContent: 'no file'
$.on @el, 'click', => @select()
@setFile file if file @setFile file if file
$.before $('#addReply', qr.el), @el $.before $('#addReply', qr.el), @el
qr.replies.push @ qr.replies.push @
# set/rm this reply's file
setFile: (@file) -> setFile: (@file) ->
# update UI # update UI
@el.textContent = @file.fileName @el.textContent = @file.fileName
load: -> select: ->
for data of @ qr.selected?.el.id = null
$("[name=#{data}]", qr.el)?.value = @[data] qr.selected = @
# visual feedback in the list @el.id = 'selected'
log @ for data in ['name', 'email', 'sub', 'com']
$("[name=#{data}]", qr.el).value = @[data]
rm: -> rm: ->
# rm reply from qr.replies and the UI # rm reply from qr.replies and the UI
@ -1125,14 +1126,14 @@ textarea.field {
$.on $('#autohide', qr.el), 'click', qr.hide $.on $('#autohide', qr.el), 'click', qr.hide
$.on $('.close', qr.el), 'click', qr.close $.on $('.close', qr.el), 'click', qr.close
$.on $('#dump', qr.el), 'click', -> qr.el.classList.toggle 'dump' $.on $('#dump', qr.el), 'click', -> qr.el.classList.toggle 'dump'
$.on $('#addReply', qr.el), 'click', -> new qr.reply().load() $.on $('#addReply', qr.el), 'click', -> new qr.reply().select()
$.on $('form', qr.el), 'submit', qr.submit $.on $('form', qr.el), 'submit', qr.submit
$.on $('[type=file]', qr.el), 'change', qr.fileInput $.on $('[type=file]', qr.el), 'change', qr.fileInput
new qr.reply().load() new qr.reply().select()
# save selected reply's data # save selected reply's data
for input in ['name', 'email', 'sub', 'com'] for input in ['name', 'email', 'sub', 'com']
$.on $("[name=#{input}]", qr.el), 'change', -> # (getReply?)[@name] = @value $.on $("[name=#{input}]", qr.el), 'change', -> qr.selected[@name] = @value
# sync between tabs # sync between tabs
# $.on window, 'storage', (e) -> # $.on window, 'storage', (e) ->
# if match = e.key.match /qr_(.+)$/ # if match = e.key.match /qr_(.+)$/
@ -1164,7 +1165,7 @@ textarea.field {
$.set "qr_email", if /^sage$/.test reply.email then null else reply.email $.set "qr_email", if /^sage$/.test reply.email then null else reply.email
$.set "qr_sub", reply.sub if conf['Remember Subject'] $.set "qr_sub", reply.sub if conf['Remember Subject']
new qr.reply().load() if qr.replies.length is 1 new qr.reply().select() if qr.replies.length is 1
reply.rm() reply.rm()
options = options =