From 9f3a95a30eeff854935bb5cf2c79f577930e0c58 Mon Sep 17 00:00:00 2001 From: Rocky Duan Date: Tue, 4 Sep 2012 19:53:16 -0700 Subject: [PATCH] make delete work for responses --- .../views/discussion_thread_view.coffee | 3 +++ .../views/thread_response_view.coffee | 26 +++++++++++++++++-- .../discussion/_underscore_templates.html | 6 ++--- 3 files changed, 30 insertions(+), 5 deletions(-) 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 d1fb404b7b..5a64e534f3 100644 --- a/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee +++ b/lms/static/coffee/src/discussion/views/discussion_thread_view.coffee @@ -63,6 +63,7 @@ class @DiscussionThreadView extends DiscussionContentView @trigger "thread:responses:rendered" renderResponse: (response) => + response.set('thread', @model) view = new ThreadResponseView(model: response) view.on "comment:add", @addComment view.render() @@ -136,6 +137,8 @@ class @DiscussionThreadView extends DiscussionContentView delete: (event) -> url = @model.urlFor('delete') + if not @model.can('can_delete') + return if not confirm "Are you sure to delete thread \"#{@model.get('title')}\"?" return @model.remove() 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 f2dd24730b..fa35273d00 100644 --- a/lms/static/coffee/src/discussion/views/thread_response_view.coffee +++ b/lms/static/coffee/src/discussion/views/thread_response_view.coffee @@ -6,9 +6,13 @@ class @ThreadResponseView extends DiscussionContentView "click .vote-btn": "toggleVote" "submit form": "submitComment" "click .action-endorse": "toggleEndorse" + "click .action-delete": "delete" render: -> @$el.html(@template(@model.toJSON())) + @initLocal() + console.log @$local + @delegateEvents() if window.user.voted(@model) @$(".vote-btn").addClass("is-cast") @renderAttrs() @@ -23,12 +27,13 @@ class @ThreadResponseView extends DiscussionContentView MathJax.Hub.Queue ["Typeset", MathJax.Hub, element[0]] renderComments: -> - @model.get("comments").each @renderComment + @model.get("comments").each @renderComment renderComment: (comment) => + comment.set('thread', @model.get('thread')) view = new ResponseCommentView(model: comment) view.render() - @$(".comments li:last").before(view.el) + @$el.find(".comments li:last").before(view.el) toggleVote: (event) -> event.preventDefault() @@ -79,6 +84,23 @@ class @ThreadResponseView extends DiscussionContentView data: body: body + delete: (event) -> + event.preventDefault() + if not @model.can('can_delete') + return + console.log $(event.target) + url = @model.urlFor('delete') + if not confirm "Are you sure to delete this response? " + return + @model.remove() + @$el.remove() + $elem = $(event.target) + DiscussionUtil.safeAjax + $elem: $elem + url: url + type: "POST" + success: (response, textStatus) => + toggleEndorse: (event) -> event.preventDefault() if not @model.can('can_endorse') diff --git a/lms/templates/discussion/_underscore_templates.html b/lms/templates/discussion/_underscore_templates.html index eee296a377..ee95045e07 100644 --- a/lms/templates/discussion/_underscore_templates.html +++ b/lms/templates/discussion/_underscore_templates.html @@ -45,14 +45,14 @@