diaspora/app/assets/javascripts/app/views/comment_view.js
flaburgan 8d6548b610
Introduce like-interactions.js
Adapt to latest development

User likes
 Set css class for inline likes on comment

Re-set participation on comment likes

Co-authored-by: Thorsten Claus <ThorstenClaus@web.de>
2023-11-13 02:26:59 +01:00

63 lines
1.9 KiB
JavaScript

// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
//= require ./content_view
app.views.Comment = app.views.Content.extend({
templateName: "comment",
className : "comment media",
tooltipSelector: "time",
subviews: {
".likes-on-comment": "likesInfoView"
},
events: function() {
return _.extend({}, app.views.Content.prototype.events, {
"click .comment_delete": "destroyModel",
"click .comment_report": "report",
"click .like": "toggleLike"
});
},
initialize: function(options) {
this.templateName = options.templateName || this.templateName;
this.model.interactions.on("change", this.render, this);
this.model.on("change", this.render, this);
},
presenter: function() {
return _.extend(this.defaultPresenter(), {
canRemove: this.canRemove(),
text: app.helpers.textFormatter(this.model.get("text"), this.model.get("mentioned_people")),
likesCount: this.model.attributes.likesCount,
userLike: this.model.interactions.userLike()
});
},
ownComment: function() {
return app.currentUser.authenticated() && this.model.get("author").diaspora_id === app.currentUser.get("diaspora_id");
},
postOwner: function() {
return app.currentUser.authenticated() && this.model.get("parent").author.diaspora_id === app.currentUser.get("diaspora_id");
},
canRemove: function() {
return app.currentUser.authenticated() && (this.ownComment() || this.postOwner());
},
toggleLike: function(evt) {
if (evt) { evt.preventDefault(); }
this.model.interactions.toggleLike();
},
likesInfoView: function() {
return new app.views.LikesInfo({model: this.model});
}
});
app.views.ExpandedComment = app.views.Comment.extend({
postRenderTemplate : function(){
this.bindMediaEmbedThumbClickEvent();
}
});
// @license-end