diff --git a/app/views/templates/stream_element.jst b/app/views/templates/stream_element.jst
index 2bdea6933..4f3268e1b 100644
--- a/app/views/templates/stream_element.jst
+++ b/app/views/templates/stream_element.jst
@@ -1,6 +1,6 @@
-
-
+
diff --git a/config/assets.yml b/config/assets.yml
index 3fc994bb2..f646f4a7d 100644
--- a/config/assets.yml
+++ b/config/assets.yml
@@ -13,6 +13,7 @@ javascripts:
- public/javascripts/app/app.js
- public/javascripts/app/router.js
- public/javascripts/app/views.js
+ - public/javascripts/app/models/post.js
- public/javascripts/app/models/*
- public/javascripts/app/collections/*
- public/javascripts/app/views/stream_object_view.js
diff --git a/public/javascripts/app/models/block.js b/public/javascripts/app/models/block.js
new file mode 100644
index 000000000..23809dec4
--- /dev/null
+++ b/public/javascripts/app/models/block.js
@@ -0,0 +1,3 @@
+app.models.Block = Backbone.Model.extend({
+ urlRoot : "blocks"
+});
diff --git a/public/javascripts/app/views/post_view.js b/public/javascripts/app/views/post_view.js
index ade0c6536..0827ffc70 100644
--- a/public/javascripts/app/views/post_view.js
+++ b/public/javascripts/app/views/post_view.js
@@ -27,6 +27,9 @@ app.views.Post = app.views.StreamObject.extend({
// set the guid
$(this.el).attr("id", this.model.get("guid"));
+ // remove post
+ this.model.bind('remove', this.remove, this);
+
// commentStream view
this.commentStreamView = new app.views.CommentStream({ model : this.model});
this.likesInfoView = new app.views.LikesInfo({ model : this.model});
@@ -70,25 +73,22 @@ app.views.Post = app.views.StreamObject.extend({
blockUser: function(evt){
if(evt) { evt.preventDefault(); }
+ if(!confirm("Ignore this user?")) { return }
- if(confirm('Ignore this user?')) {
- var person_id = $(evt.target).data('person_id');
- var self = this;
+ var personId = this.model.get("author").id;
+ var block = new app.models.Block();
- $.post('/blocks', {block : {"person_id" : person_id}}, function(data){
- var models_to_remove = [];
+ block.save({block : {person_id : personId}}, {
+ success : function(){
+ if(!app.stream) { return }
- _.each(self.model.collection.models, function(model){
- if(model.get("author")["id"] == person_id) {
- models_to_remove.push(model);
+ _.each(app.stream.collection.models, function(model){
+ if(model.get("author").id == personId) {
+ app.stream.collection.remove(model);
}
})
-
- self.model.collection.remove(models_to_remove);
- }, "json");
- }
-
- return this;
+ }
+ })
},
focusCommentTextarea: function(evt){
diff --git a/spec/javascripts/support/jasmine.yml b/spec/javascripts/support/jasmine.yml
index bfbdc6c22..0cfcc36ec 100644
--- a/spec/javascripts/support/jasmine.yml
+++ b/spec/javascripts/support/jasmine.yml
@@ -37,6 +37,7 @@ src_files:
- public/javascripts/app/app.js
- public/javascripts/app/router.js
- public/javascripts/app/views.js
+ - public/javascripts/app/models/post.js
- public/javascripts/app/models/*
- public/javascripts/app/collections/*
- public/javascripts/app/views/stream_object_view.js