Commit 9f3a95a3 by Rocky Duan

make delete work for responses

parent e6721941
...@@ -63,6 +63,7 @@ class @DiscussionThreadView extends DiscussionContentView ...@@ -63,6 +63,7 @@ class @DiscussionThreadView extends DiscussionContentView
@trigger "thread:responses:rendered" @trigger "thread:responses:rendered"
renderResponse: (response) => renderResponse: (response) =>
response.set('thread', @model)
view = new ThreadResponseView(model: response) view = new ThreadResponseView(model: response)
view.on "comment:add", @addComment view.on "comment:add", @addComment
view.render() view.render()
...@@ -136,6 +137,8 @@ class @DiscussionThreadView extends DiscussionContentView ...@@ -136,6 +137,8 @@ class @DiscussionThreadView extends DiscussionContentView
delete: (event) -> delete: (event) ->
url = @model.urlFor('delete') url = @model.urlFor('delete')
if not @model.can('can_delete')
return
if not confirm "Are you sure to delete thread \"#{@model.get('title')}\"?" if not confirm "Are you sure to delete thread \"#{@model.get('title')}\"?"
return return
@model.remove() @model.remove()
......
...@@ -6,9 +6,13 @@ class @ThreadResponseView extends DiscussionContentView ...@@ -6,9 +6,13 @@ class @ThreadResponseView extends DiscussionContentView
"click .vote-btn": "toggleVote" "click .vote-btn": "toggleVote"
"submit form": "submitComment" "submit form": "submitComment"
"click .action-endorse": "toggleEndorse" "click .action-endorse": "toggleEndorse"
"click .action-delete": "delete"
render: -> render: ->
@$el.html(@template(@model.toJSON())) @$el.html(@template(@model.toJSON()))
@initLocal()
console.log @$local
@delegateEvents()
if window.user.voted(@model) if window.user.voted(@model)
@$(".vote-btn").addClass("is-cast") @$(".vote-btn").addClass("is-cast")
@renderAttrs() @renderAttrs()
...@@ -23,12 +27,13 @@ class @ThreadResponseView extends DiscussionContentView ...@@ -23,12 +27,13 @@ class @ThreadResponseView extends DiscussionContentView
MathJax.Hub.Queue ["Typeset", MathJax.Hub, element[0]] MathJax.Hub.Queue ["Typeset", MathJax.Hub, element[0]]
renderComments: -> renderComments: ->
@model.get("comments").each @renderComment @model.get("comments").each @renderComment
renderComment: (comment) => renderComment: (comment) =>
comment.set('thread', @model.get('thread'))
view = new ResponseCommentView(model: comment) view = new ResponseCommentView(model: comment)
view.render() view.render()
@$(".comments li:last").before(view.el) @$el.find(".comments li:last").before(view.el)
toggleVote: (event) -> toggleVote: (event) ->
event.preventDefault() event.preventDefault()
...@@ -79,6 +84,23 @@ class @ThreadResponseView extends DiscussionContentView ...@@ -79,6 +84,23 @@ class @ThreadResponseView extends DiscussionContentView
data: data:
body: body 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) -> toggleEndorse: (event) ->
event.preventDefault() event.preventDefault()
if not @model.can('can_endorse') if not @model.can('can_endorse')
......
...@@ -45,14 +45,14 @@ ...@@ -45,14 +45,14 @@
</script> </script>
<script type="text/template" id="thread-response-template"> <script type="text/template" id="thread-response-template">
<header> <header class="local">
<a href="javascript:void(0)" class="vote-btn" data-tooltip="vote"><span class="plus-icon"></span><span class="votes-count-number">${"<%- votes['up_count'] %>"}</span></a> <a href="javascript:void(0)" class="vote-btn" data-tooltip="vote"><span class="plus-icon"></span><span class="votes-count-number">${"<%- votes['up_count'] %>"}</span></a>
<a href="javascript:void(0)" class="endorse-btn${'<% if (endorsed) { %> is-endorsed<% } %>'} action-endorse" style="cursor: default" data-tooltip="endorse"><span class="check-icon" style="pointer-events: none; "></span></a> <a href="javascript:void(0)" class="endorse-btn${'<% if (endorsed) { %> is-endorsed<% } %>'} action-endorse" style="cursor: default" data-tooltip="endorse"><span class="check-icon" style="pointer-events: none; "></span></a>
<a href="${'<%- user_url %>'}" class="posted-by">${"<%- username %>"}</a> <a href="${'<%- user_url %>'}" class="posted-by">${"<%- username %>"}</a>
<p class="posted-details" title="${'<%- created_at %>'}">Sometime</p> <p class="posted-details" title="${'<%- created_at %>'}">Sometime</p>
</header> </header>
<div class="response-body">${"<%- body %>"}</div> <div class="local"><div class="response-body">${"<%- body %>"}</div></div>
<ul class="moderator-actions"> <ul class="moderator-actions local">
<li style="display: none"><a class="action-edit" href="javascript:void(0)"><span class="edit-icon"></span> Edit</a></li> <li style="display: none"><a class="action-edit" href="javascript:void(0)"><span class="edit-icon"></span> Edit</a></li>
<li style="display: none"><a class="action-delete" href="javascript:void(0)"><span class="delete-icon"></span> Delete</a></li> <li style="display: none"><a class="action-delete" href="javascript:void(0)"><span class="delete-icon"></span> Delete</a></li>
<li style="display: none"><a class="action-openclose" href="javascript:void(0)"><span class="edit-icon"></span> Close</a></li> <li style="display: none"><a class="action-openclose" href="javascript:void(0)"><span class="edit-icon"></span> Close</a></li>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment