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.text %>
+
-
-
-
-
- <%= 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();
+ }
+ });
}
});