From b2c1904c7a6615017f682401ead8a579dbf84433 Mon Sep 17 00:00:00 2001 From: Rocky Duan Date: Fri, 3 Aug 2012 14:59:23 -0400 Subject: [PATCH] ajax endorse --- .../coffee/src/discussion/content.coffee | 21 ++++++++++++------- .../coffee/src/discussion/discussion.coffee | 14 ++++++------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/lms/static/coffee/src/discussion/content.coffee b/lms/static/coffee/src/discussion/content.coffee index 93f4842519..6884f5d420 100644 --- a/lms/static/coffee/src/discussion/content.coffee +++ b/lms/static/coffee/src/discussion/content.coffee @@ -166,13 +166,20 @@ Discussion = @Discussion Discussion.bindContentEvents($content) ) - handleEndorse = (elem) -> + handleEndorse = (elem, endorsed) -> url = Discussion.urlFor('endorse_comment', id) - endorsed = $local(".discussion-endorse").is(":checked") - $.post url, {endorsed: endorsed}, (response, textStatus) -> - # TODO error handling - Discussion.handleAnchorAndReload(response) - , 'json' + Discussion.safeAjax + $elem: $(elem) + url: url + type: "POST" + dataType: "json" + data: {endorsed: endorsed} + success: (response, textStatus) -> + if textStatus == "success" + if endorsed + $(content).addClass("endorsed") + else + $(content).removeClass("endorsed") handleHideSingleThread = (elem) -> $threadTitle = $local(".thread-title") @@ -248,7 +255,7 @@ Discussion = @Discussion handleVote($elem, "down") "click .discussion-endorse": -> - handleEndorse(this) + handleEndorse(this, $(this).is(":checked")) "click .discussion-edit": -> if $content.hasClass("thread") diff --git a/lms/static/coffee/src/discussion/discussion.coffee b/lms/static/coffee/src/discussion/discussion.coffee index 247f65b469..df3411f472 100644 --- a/lms/static/coffee/src/discussion/discussion.coffee +++ b/lms/static/coffee/src/discussion/discussion.coffee @@ -4,13 +4,13 @@ if not @Discussion? Discussion = @Discussion initializeVote = (index, content) -> - $content = $(content) - $local = Discussion.generateLocal($content.children(".discussion-content")) - id = $content.attr("_id") - if Discussion.isUpvoted id - $local(".discussion-vote-up").addClass("voted") - else if Discussion.isDownvoted id - $local(".discussion-vote-down").addClass("voted") + $content = $(content) + $local = Discussion.generateLocal($content.children(".discussion-content")) + id = $content.attr("_id") + if Discussion.isUpvoted id + $local(".discussion-vote-up").addClass("voted") + else if Discussion.isDownvoted id + $local(".discussion-vote-down").addClass("voted") subscriptionLink = (type, id) ->