diaspora/public/javascripts/app/views/feedback_view.js

45 lines
1.1 KiB
JavaScript

app.views.Feedback = app.views.StreamObject.extend({
template_name: "#feedback-template",
events: {
"click .like_action": "toggleLike",
"click .reshare_action": "resharePost"
},
initialize : function() {
var user_like = this.model.get("user_like")
this.like = user_like && this.model.likes.get(user_like.id);
_.each(["change", "remove", "add"], function(listener) {
this.model.likes.bind(listener, this.render, this);
}, this)
},
presenter : function(){
return _.extend(this.defaultPresenter(), {like : this.like});
},
toggleLike: function(evt) {
if(evt) { evt.preventDefault(); }
if(this.like){
this.like.destroy({
success : function() {
this.like = null;
}.apply(this)
});
} else {
this.like = this.model.likes.create();
}
},
resharePost : function(evt){
if(evt) { evt.preventDefault(); }
if(window.confirm("Reshare " + this.model.get("author").name + "'s post?")) {
var reshare = new app.models.Reshare({root_guid : this.model.rootGuid()});
reshare.save();
return reshare;
}
}
})