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 ++++++++++++++--------- hyperkitty/templates/messages/like_form.html | 12 ++++++------ 2 files changed, 20 insertions(+), 15 deletions(-) (limited to 'hyperkitty') 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); + }); } diff --git a/hyperkitty/templates/messages/like_form.html b/hyperkitty/templates/messages/like_form.html index 14b8f88..bf7a5ba 100644 --- a/hyperkitty/templates/messages/like_form.html +++ b/hyperkitty/templates/messages/like_form.html @@ -6,15 +6,15 @@ +{{ object.likes }}/-{{ object.dislikes }} {% if object.myvote == 1 %} You like it - (cancel) + (cancel) {% elif object.myvote == -1 %} You dislike it - (cancel) + (cancel) {% else %} - Like - Dislike + Like + Dislike {% endif %} -- cgit