Load and save name/email with localStorage instead of cookies, sync them between tabs. Load password from the normal post form.

This commit is contained in:
Nicolas Stepien 2011-12-29 04:42:30 +01:00
parent 6b237dfa2f
commit f45da76cc1
2 changed files with 30 additions and 2 deletions

View File

@ -1194,6 +1194,7 @@
qr = {
init: function() {
if (!$('form[name=post]')) return;
g.callbacks.push(function(root) {
return $.on($('.quotejs + .quotejs', root), 'click', qr.quote);
});
@ -1237,6 +1238,7 @@
return ta.selectionEnd = ta.selectionStart = caretPos + text.length;
},
dialog: function() {
var input, _i, _len, _ref;
qr.el = ui.dialog('qr', 'top:0;right:0;', '\
<style>\
#qr > .move {\
@ -1250,11 +1252,26 @@
<a class=close></a>\
</div>\
<div>\
<input name=name><input name=email><input name=subject>\
<input name=name><input name=email><input name=pwd hidden><input name=subject>\
<textarea></textarea>\
</div>');
$.on($('#autohide', qr.el), 'click', qr.hide);
$.on($('.close', qr.el), 'click', qr.close);
_ref = [$('[name=name]', qr.el), $('[name=email]', qr.el)];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
input = _ref[_i];
input.value = $.get("qr_" + input.name, null);
$.on(input, 'change', function() {
return $.set("qr_" + this.name, this.value);
});
}
$.on(window, 'storage', function(e) {
var match;
if (match = e.key.match(/qr_(name|email)$/)) {
return $("[name=" + match[1] + "]", qr.el).value = JSON.parse(e.newValue);
}
});
$('[name=pwd]', qr.el).value = $('.postarea [name=pwd]').value;
return $.add(d.body, qr.el);
}
};

View File

@ -867,6 +867,7 @@ nav =
qr =
init: ->
return unless $ 'form[name=post]'
g.callbacks.push (root) ->
$.on $('.quotejs + .quotejs', root), 'click', qr.quote
if conf['Persistent QR']
@ -922,11 +923,21 @@ qr =
<a class=close></a>
</div>
<div>
<input name=name><input name=email><input name=subject>
<input name=name><input name=email><input name=pwd hidden><input name=subject>
<textarea></textarea>
</div>'
$.on $('#autohide', qr.el), 'click', qr.hide
$.on $('.close', qr.el), 'click', qr.close
# save & load inputs' value with localStorage, sync between tabs
for input in [$('[name=name]', qr.el), $('[name=email]', qr.el)]
input.value = $.get "qr_#{input.name}", null
$.on input, 'change', -> $.set "qr_#{@name}", @value
$.on window, 'storage', (e) ->
if match = e.key.match /qr_(name|email)$/
$("[name=#{match[1]}]", qr.el).value = JSON.parse e.newValue
$('[name=pwd]', qr.el).value = $('.postarea [name=pwd]').value
$.add d.body, qr.el
options =