diff --git a/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee b/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee index b429ce3e63..d46304d5e1 100644 --- a/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee +++ b/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee @@ -37,6 +37,7 @@ class @DiscussionThreadView extends Backbone.View @vote() else @unvote() + false toggleFollowing: (event) -> $elem = $(event.target) diff --git a/lms/static/coffee/src/discussion/views/response_comment_view.coffee b/lms/static/coffee/src/discussion/views/response_comment_view.coffee index 0dbddab7ba..13224c4620 100644 --- a/lms/static/coffee/src/discussion/views/response_comment_view.coffee +++ b/lms/static/coffee/src/discussion/views/response_comment_view.coffee @@ -3,4 +3,5 @@ class @ResponseCommentView extends Backbone.View template: _.template($("#response-comment-template").html()) render: -> @$el.html(@template(@model.toJSON())) + @$(".timeago").timeago() @ diff --git a/lms/static/coffee/src/discussion/views/thread_response_view.coffee b/lms/static/coffee/src/discussion/views/thread_response_view.coffee index 5d531a2c18..6d0c497567 100644 --- a/lms/static/coffee/src/discussion/views/thread_response_view.coffee +++ b/lms/static/coffee/src/discussion/views/thread_response_view.coffee @@ -1,8 +1,13 @@ class @ThreadResponseView extends Backbone.View tagName: "li" template: _.template($("#thread-response-template").html()) + events: + "click .vote-btn": "toggleVote" render: -> @$el.html(@template(@model.toJSON())) + if window.user.voted(@model) + @$(".vote-btn").addClass("is-cast") + @$(".posted-details").timeago() @renderComments() @ @@ -12,4 +17,34 @@ class @ThreadResponseView extends Backbone.View renderComment: (comment) => view = new ResponseCommentView(model: comment) view.render() - @$(".comments").append(view.el) + @$(".comments li:last").before(view.el) + + toggleVote: -> + @$(".vote-btn").toggleClass("is-cast") + if @$(".vote-btn").hasClass("is-cast") + @vote() + else + @unvote() + false + + vote: -> + url = @model.urlFor("upvote") + @$(".votes-count-number").html(parseInt(@$(".votes-count-number").html()) + 1) + DiscussionUtil.safeAjax + $elem: @$(".discussion-vote") + url: url + type: "POST" + success: (response, textStatus) => + if textStatus == 'success' + @model.set(response) + + unvote: -> + url = @model.urlFor("unvote") + @$(".votes-count-number").html(parseInt(@$(".votes-count-number").html()) - 1) + DiscussionUtil.safeAjax + $elem: @$(".discussion-vote") + url: url + type: "POST" + success: (response, textStatus) => + if textStatus == 'success' + @model.set(response) diff --git a/lms/templates/discussion/single_thread.html b/lms/templates/discussion/single_thread.html index 0c7c557150..38c742e221 100644 --- a/lms/templates/discussion/single_thread.html +++ b/lms/templates/discussion/single_thread.html @@ -127,13 +127,23 @@