forked from diaspora/diaspora
/
feedback_view.js
49 lines (40 loc) · 1.39 KB
/
feedback_view.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
app.views.Feedback = app.views.Base.extend({
templateName: "feedback",
className : "info",
events: {
"click *[rel='auth-required']" : "requireAuth",
"click .like" : "toggleLike",
"click .reshare" : "resharePost",
"click .post_report" : "report"
},
tooltipSelector : ".label",
initialize : function() {
this.model.interactions.on('change', this.render, this);
this.initViews && this.initViews() // I don't know why this was failing with $.noop... :(
},
presenter : function() {
var interactions = this.model.interactions
return _.extend(this.defaultPresenter(),{
commentsCount : interactions.commentsCount(),
likesCount : interactions.likesCount(),
resharesCount : interactions.resharesCount(),
userCanReshare : interactions.userCanReshare(),
userLike : interactions.userLike(),
userReshare : interactions.userReshare()
})
},
toggleLike: function(evt) {
if(evt) { evt.preventDefault(); }
this.model.interactions.toggleLike();
},
resharePost : function(evt) {
if(evt) { evt.preventDefault(); }
if(!window.confirm(Diaspora.I18n.t("reshares.post", {name: this.model.reshareAuthor().name}))) { return }
this.model.interactions.reshare();
},
requireAuth : function(evt) {
if( app.currentUser.authenticated() ) { return }
alert("you must be logged in to do that!")
return false;
}
});