From 76b84c9a145da1296fc3bfef449a68370950c339 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Tue, 17 Jan 2012 00:46:07 +0100 Subject: [PATCH] Select reply in replies list done. --- 4chan_x.user.js | 34 ++++++++++++++++++++++------------ script.coffee | 21 +++++++++++---------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index a0aaab437..1cc846196 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -1311,12 +1311,16 @@ reply: (function() { 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]; this.com = null; this.el = $.el('li', { textContent: 'no file' }); + $.on(this.el, 'click', function() { + return _this.select(); + }); if (file) this.setFile(file); $.before($('#addReply', qr.el), this.el); qr.replies.push(this); @@ -1327,14 +1331,18 @@ return this.el.textContent = this.file.fileName; }; - _Class.prototype.load = function() { - var data, _ref; - for (data in this) { - if ((_ref = $("[name=" + data + "]", qr.el)) != null) { - _ref.value = this[data]; - } + _Class.prototype.select = function() { + var data, _i, _len, _ref, _ref2, _results; + if ((_ref = qr.selected) != null) _ref.el.id = null; + qr.selected = this; + 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() {}; @@ -1376,15 +1384,17 @@ return qr.el.classList.toggle('dump'); }); $.on($('#addReply', qr.el), 'click', function() { - return new qr.reply().load(); + return new qr.reply().select(); }); $.on($('form', qr.el), 'submit', qr.submit); $.on($('[type=file]', qr.el), 'change', qr.fileInput); - new qr.reply().load(); + new qr.reply().select(); _ref2 = ['name', 'email', 'sub', 'com']; for (_j = 0, _len2 = _ref2.length; _j < _len2; _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); }, @@ -1406,7 +1416,7 @@ $.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().load(); + if (qr.replies.length === 1) new qr.reply().select(); return reply.rm(); } }; diff --git a/script.coffee b/script.coffee index 5aa97d2c3..0af547bb5 100644 --- a/script.coffee +++ b/script.coffee @@ -986,18 +986,19 @@ qr = @com = null @el = $.el 'li', textContent: 'no file' + $.on @el, 'click', => @select() @setFile file if file $.before $('#addReply', qr.el), @el qr.replies.push @ - # set/rm this reply's file setFile: (@file) -> # update UI @el.textContent = @file.fileName - load: -> - for data of @ - $("[name=#{data}]", qr.el)?.value = @[data] - # visual feedback in the list - log @ + select: -> + qr.selected?.el.id = null + qr.selected = @ + @el.id = 'selected' + for data in ['name', 'email', 'sub', 'com'] + $("[name=#{data}]", qr.el).value = @[data] rm: -> # rm reply from qr.replies and the UI @@ -1125,14 +1126,14 @@ textarea.field { $.on $('#autohide', qr.el), 'click', qr.hide $.on $('.close', qr.el), 'click', qr.close $.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 $('[type=file]', qr.el), 'change', qr.fileInput - new qr.reply().load() + new qr.reply().select() # save selected reply's data 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 # $.on window, 'storage', (e) -> # 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_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() options =