Skip to content
Extraits de code Groupes Projets
Valider 838da1fd rédigé par Maxwell Salzberg's avatar Maxwell Salzberg
Parcourir les fichiers

Revert "refactoring backbone urls"

This reverts commit 4ad58bdf.
parent 5cb8cd78
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
app.collections.Comments = Backbone.Collection.extend({
model: app.models.Comment,
initialize : function(models, options) {
this.url = "/posts/" + options.post.id + "/comments" //not delegating to post.url() because when it is in a stream collection it delegates to that url
}
model: app.models.Comment
});
app.collections.Likes = Backbone.Collection.extend({
model: app.models.Like,
initialize : function(models, options) {
this.url = "/posts/" + options.post.id + "/likes" //not delegating to post.url() because when it is in a stream collection it delegates to that url
}
model: app.models.Like
});
app.models.Post = Backbone.Model.extend({
urlRoot : "/posts",
initialize : function() {
this.comments = new app.collections.Comments(this.get("last_three_comments"), {post : this});
this.likes = new app.collections.Likes(this.get("user_like"), { post : this}); // load in the user like initially
},
this.comments = new app.collections.Comments(this.get("last_three_comments"));
this.comments.url = this.url() + '/comments';
createdAt : function() {
return new Date(this.get("created_at")) / 1000;
this.likes = new app.collections.Likes(this.get("user_like")); // load in the user like initially
this.likes.url = this.url() + '/likes';
},
createReshareUrl : "/reshares",
url : function() {
if(this.id) {
return "/posts/" + this.id;
} else {
return "/posts"
}
},
reshareUrl : "/reshares",
reshare : function(){
return this._reshare = this._reshare || new app.models.Reshare({root_guid : this.get("guid")});
},
......@@ -28,8 +33,17 @@ app.models.Post = Backbone.Model.extend({
}
},
createdAt : function() {
return new Date(this.get("created_at")) / 1000;
},
likeUrl : function(){
return this.url() + "/likes"
},
like : function() {
this.set({ user_like : this.likes.create() });
this.set({ user_like : this.likes.create({}, {url : this.likeUrl()}) });
},
unlike : function() {
......
......@@ -18,7 +18,7 @@ app.views.Feedback = app.views.StreamObject.extend({
if(!window.confirm("Reshare " + this.model.reshareAuthor().name + "'s post?")) { return }
var reshare = this.model.reshare()
reshare.save({}, {
url: this.model.createReshareUrl,
url: this.model.reshareUrl,
success : function(){
app.stream.collection.add(reshare);
}
......
describe("app.collections.comments", function(){
describe("url", function(){
it("should user the post id", function(){
var post =new app.models.Post({id : 5})
var collection = new app.collections.Comments([], {post : post})
expect(collection.url).toBe("/posts/5/comments")
})
})
})
describe("app.collections.Likes", function(){
describe("url", function(){
it("should user the post id", function(){
var post =new app.models.Post({id : 5})
var collection = new app.collections.Likes([], {post : post})
expect(collection.url).toBe("/posts/5/likes")
})
})
})
......@@ -3,15 +3,6 @@ describe("app.models.Post", function() {
this.post = new app.models.Post();
})
describe("url", function(){
it("should be /posts when it doesn't have an id", function(){
expect(new app.models.Post().url()).toBe("/posts")
})
it("should be /posts/id when it doesn't have an id", function(){
expect(new app.models.Post({id: 5}).url()).toBe("/posts/5")
})
})
describe("createdAt", function() {
it("returns the post's created_at as an integer", function() {
var date = new Date;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter