From 31fac539694df058ee5405d152f462f5484eef6a Mon Sep 17 00:00:00 2001 From: danielgrippi Date: Sun, 1 Jan 2012 09:47:51 -0500 Subject: [PATCH] added blocks js model; load app.models.Post before any other model when loading assets --- app/views/templates/stream_element.jst | 5 ++-- config/assets.yml | 1 + public/javascripts/app/models/block.js | 3 +++ public/javascripts/app/views/post_view.js | 28 +++++++++++------------ spec/javascripts/support/jasmine.yml | 1 + 5 files changed, 21 insertions(+), 17 deletions(-) create mode 100644 public/javascripts/app/models/block.js 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 @@
<% if(author.id != current_user.id) { %> - Ignoreuser + Ignoreuser <% } else { %> <% } %> @@ -8,9 +8,8 @@
- - +
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