diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 439295250..2305a2ee5 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb @@ -44,12 +44,14 @@ class CommentsController < ApplicationController current_user.retract(@comment) respond_to do |format| format.js { render :nothing => true, :status => 204 } + format.json { render :nothing => true, :status => 204 } format.mobile{ redirect_to @comment.post } end else respond_to do |format| format.mobile {redirect_to :back} format.js {render :nothing => true, :status => 403} + format.json { render :nothing => true, :status => 403 } end end end diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 9a3210d49..4af8f7e9f 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -52,6 +52,7 @@ class PostsController < ApplicationController current_user.retract(@post) respond_to do |format| format.js {render 'destroy'} + format.json { render :nothing => true, :status => 204 } format.all {redirect_to multi_path} end else diff --git a/app/views/templates/reshare.ujs b/app/views/templates/reshare.ujs index 480df78da..04308a946 100644 --- a/app/views/templates/reshare.ujs +++ b/app/views/templates/reshare.ujs @@ -1,28 +1,36 @@
- - - + <% if(root) { %> + + + + + +
+
+ + + <%= root.author.name %> + + + + - + + + +
+ + +

+ <%= root.text %> +

-
-
- - - <%= root.author.name %> - - - - - - - -
- -

- <%= root.text %> -

- -
+ <% } else { %> +

+ Original post deleted by author. +

+ <% } %>
diff --git a/app/views/templates/stream_element.ujs b/app/views/templates/stream_element.ujs index a8f057de8..48cece618 100644 --- a/app/views/templates/stream_element.ujs +++ b/app/views/templates/stream_element.ujs @@ -75,7 +75,7 @@ ยท - <% if(public) { %> + <% if(public && author.id != current_user.id) { %> <% if(root) { var rootGuid = root.guid; diff --git a/public/javascripts/app/models/comment.js b/public/javascripts/app/models/comment.js index 4c2f3fe95..6ce1fe181 100644 --- a/public/javascripts/app/models/comment.js +++ b/public/javascripts/app/models/comment.js @@ -1,5 +1,3 @@ App.Models.Comment = Backbone.Model.extend({ - url: function() { - return "/posts/" + this.get("post_id") + "/comments"; - } + urlRoot: "/comments" }); diff --git a/public/javascripts/app/models/post.js b/public/javascripts/app/models/post.js index 806af2e97..0e7fa67bc 100644 --- a/public/javascripts/app/models/post.js +++ b/public/javascripts/app/models/post.js @@ -1,5 +1,7 @@ App.Models.Post = Backbone.Model.extend({ - url: "/posts", + url: function(){ + return "/posts/" + this.get("id"); + }, initialize: function() { this.comments = new App.Collections.Comments(this.get("last_three_comments")); diff --git a/public/javascripts/app/views/comment_view.js b/public/javascripts/app/views/comment_view.js index 1e91da727..aeafc1670 100644 --- a/public/javascripts/app/views/comment_view.js +++ b/public/javascripts/app/views/comment_view.js @@ -1,4 +1,8 @@ App.Views.Comment = Backbone.View.extend({ + events : { + "click .delete": "destroyComment" + }, + initialize: function(options) { this.model = options.model; this.template = _.template($("#comment-template").html()); @@ -10,6 +14,21 @@ App.Views.Comment = Backbone.View.extend({ App.user() ))); + this.delegateEvents(); //we need this because we are explicitly setting this.el in this.render() + return this; + }, + + // NOTE: pull this out into a base class + destroyComment: function(evt) { + if(evt) { evt.preventDefault() } + + var domElement = this.el; + + this.model.destroy({ + success: function(){ + $(domElement).remove(); + } + }); } }); diff --git a/public/javascripts/app/views/post_view.js b/public/javascripts/app/views/post_view.js index a2773215f..0e30b5e39 100644 --- a/public/javascripts/app/views/post_view.js +++ b/public/javascripts/app/views/post_view.js @@ -2,7 +2,8 @@ App.Views.Post = Backbone.View.extend({ events: { "click .focus_comment_textarea": "focusCommentTextarea", - "focus .comment_box": "commentTextareaFocused" + "focus .comment_box": "commentTextareaFocused", + "click .delete:first": "destroyPost" }, initialize: function(options) { @@ -51,6 +52,19 @@ App.Views.Post = Backbone.View.extend({ commentTextareaFocused: function(evt){ this.$("form").removeClass('hidden').addClass("open"); + }, + + // NOTE: pull this out into a base class + destroyPost: function(evt){ + if(evt){ evt.preventDefault(); } + + var domElement = this.el; + + this.model.destroy({ + success: function(){ + $(domElement).remove(); + } + }); } });