From 120a4affe1881dbb7383c65175851dba3bb1e87b Mon Sep 17 00:00:00 2001 From: Aurélien Bompard Date: Tue, 30 Apr 2013 10:42:08 +0200 Subject: Refactor voting JS for better separation of concerns --- hyperkitty/static/js/hyperkitty.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'hyperkitty/static/js/hyperkitty.js') diff --git a/hyperkitty/static/js/hyperkitty.js b/hyperkitty/static/js/hyperkitty.js index becc171..99d16b7 100644 --- a/hyperkitty/static/js/hyperkitty.js +++ b/hyperkitty/static/js/hyperkitty.js @@ -37,10 +37,11 @@ function form_to_json(form) { * Voting */ -function vote(elem, value) { +function vote(elem) { if ($(elem).hasClass("disabled")) { - return false; + return; } + var value = parseInt($(elem).attr("data-vote")); var form = $(elem).parents("form").first(); var data = form_to_json(form); data['vote'] = value; @@ -50,21 +51,25 @@ function vote(elem, value) { dataType: "json", data: data, success: function(response) { - form.replaceWith(response.html); + var newcontent = $(response.html); + form.replaceWith(newcontent); + setup_vote(newcontent); // re-bind events }, error: function(jqXHR, textStatus, errorThrown) { alert(jqXHR.responseText); } }); - return false; } -function setup_vote() { - /* - $("a.youlike").click(function(e) { e.preventDefault(); vote(this, 1); }); - $("a.youdislike").click(function(e) { e.preventDefault(); vote(this, -1); }); - */ +function setup_vote(baseElem) { + if (!baseElem) { + baseElem = document; + } + $(baseElem).find("a.vote").click(function(e) { + e.preventDefault(); + vote(this); + }); } -- cgit