44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
app.views.Feedback = app.views.StreamObject.extend({
|
|
template_name: "#feedback-template",
|
|
|
|
events: {
|
|
"click .like_action": "toggleLike",
|
|
"click .reshare_action": "resharePost"
|
|
},
|
|
|
|
toggleLike: function(evt) {
|
|
if(evt) { evt.preventDefault(); }
|
|
|
|
var userLike = this.model.get("user_like");
|
|
|
|
if(userLike) {
|
|
this.model.likes.get(userLike.id).destroy({
|
|
success : $.proxy(function() {
|
|
this.model.set({user_like : null, likes_count : this.model.get("likes_count") - 1});
|
|
}, this)
|
|
});
|
|
} else {
|
|
this.model.likes.create({}, {
|
|
success : $.proxy(function(like) {
|
|
this.model.set({user_like : like, likes_count : this.model.get("likes_count") + 1}); // this should be in a callback...
|
|
}, this)
|
|
});
|
|
}
|
|
},
|
|
|
|
resharePost : function(evt){
|
|
if(evt) { evt.preventDefault(); }
|
|
|
|
if(window.confirm("Reshare " + this.model.baseAuthor().name + "'s post?")) {
|
|
var reshare = new app.models.Reshare();
|
|
reshare.save({root_guid : this.model.baseGuid()}, {
|
|
success : function(data){
|
|
var newPost = new app.models.Post(data);
|
|
app.stream.collection.add(newPost, {silent : true});
|
|
app.stream.prependPost(newPost);
|
|
}
|
|
});
|
|
return reshare;
|
|
}
|
|
}
|
|
})
|