diff --git a/app/assets/javascripts/sitewide/comments_sidebar.js b/app/assets/javascripts/sitewide/comments_sidebar.js index 745e7c97b..bfe7c8e0c 100644 --- a/app/assets/javascripts/sitewide/comments_sidebar.js +++ b/app/assets/javascripts/sitewide/comments_sidebar.js @@ -13,6 +13,11 @@ var CommentsSidebar = (function() { $(SIDEBAR).removeClass('loading'); $(SIDEBAR).find('.comments-subject-title').text(result.object_name); $(SIDEBAR).find('.comments-list').html(result.comments); + if (result.comment_addable) { + $(SIDEBAR).find('.comment-input-container').removeClass('hidden'); + } else { + $(SIDEBAR).find('.comment-input-container').addClass('hidden'); + } }); } diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 550ece7c0..3a000b01e 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb @@ -17,6 +17,7 @@ class CommentsController < ApplicationController render json: { object_name: @commentable.name, + comment_addable: comment_addable?(@commentable), comments: render_to_string(partial: 'shared/comments/comments_list.html.erb', locals: { comments: comments }) } diff --git a/app/helpers/comment_helper.rb b/app/helpers/comment_helper.rb index 24c272117..aac5b1e9e 100644 --- a/app/helpers/comment_helper.rb +++ b/app/helpers/comment_helper.rb @@ -57,6 +57,19 @@ module CommentHelper end end + def comment_addable?(object) + case object.class.name + when 'MyModule' + can_create_comments_in_module?(object) + when 'Step', 'Result' + can_create_comments_in_module?(object.my_module) + when 'Project' + can_create_comments_in_project?(object) + else + false + end + end + def comment_editable?(comment) case comment.type when 'TaskComment', 'StepComment', 'ResultComment'