diff options
Diffstat (limited to 'app/helpers/issues_helper.rb')
-rw-r--r-- | app/helpers/issues_helper.rb | 51 |
1 files changed, 37 insertions, 14 deletions
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index bbafdac9a7f..40e86b4623c 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -60,8 +60,16 @@ module IssuesHelper sprite_icon('eye-slash', css_class: 'gl-vertical-align-text-bottom') if issue.confidential? end + def issue_hidden?(issue) + Feature.enabled?(:ban_user_feature_flag) && issue.hidden? + end + def hidden_issue_icon(issue) - sprite_icon('spam', css_class: 'gl-vertical-align-text-bottom') if issue.hidden? + return unless issue_hidden?(issue) + + content_tag(:span, class: 'has-tooltip', title: _('This issue is hidden because its author has been banned')) do + sprite_icon('spam', css_class: 'gl-vertical-align-text-bottom') + end end def award_user_list(awards, current_user, limit: 10) @@ -174,7 +182,11 @@ module IssuesHelper end def issue_header_actions_data(project, issuable, current_user) - new_issuable_params = ({ issuable_template: 'incident', issue: { issue_type: 'incident' } } if issuable.incident?) + new_issuable_params = { issue: { description: _('Related to #%{issue_id}.') % { issue_id: issuable.iid } + "\n\n" } } + if issuable.incident? + new_issuable_params[:issuable_template] = 'incident' + new_issuable_params[:issue][:issue_type] = 'incident' + end { can_create_issue: show_new_issue_link?(project).to_s, @@ -191,34 +203,45 @@ module IssuesHelper } end - def issues_list_data(project, current_user, finder) + def common_issues_list_data(namespace, current_user) { autocomplete_award_emojis_path: autocomplete_award_emojis_path, calendar_path: url_for(safe_params.merge(calendar_url_options)), + empty_state_svg_path: image_path('illustrations/issues.svg'), + full_path: namespace.full_path, + is_signed_in: current_user.present?.to_s, + jira_integration_path: help_page_url('integration/jira/issues', anchor: 'view-jira-issues'), + rss_path: url_for(safe_params.merge(rss_url_options)), + sign_in_path: new_user_session_path + } + end + + def project_issues_list_data(project, current_user, finder) + common_issues_list_data(project, current_user).merge( can_bulk_update: can?(current_user, :admin_issue, project).to_s, can_edit: can?(current_user, :admin_project, project).to_s, can_import_issues: can?(current_user, :import_issues, @project).to_s, - email: current_user&.notification_email, + email: current_user&.notification_email_or_default, emails_help_page_path: help_page_path('development/emails', anchor: 'email-namespace'), - empty_state_svg_path: image_path('illustrations/issues.svg'), export_csv_path: export_csv_project_issues_path(project), - has_project_issues: project_issues(project).exists?.to_s, + has_any_issues: project_issues(project).exists?.to_s, import_csv_issues_path: import_csv_namespace_project_issues_path, initial_email: project.new_issuable_address(current_user, 'issue'), - is_signed_in: current_user.present?.to_s, - issues_path: project_issues_path(project), - jira_integration_path: help_page_url('integration/jira/issues', anchor: 'view-jira-issues'), + is_project: true.to_s, markdown_help_path: help_page_path('user/markdown'), max_attachment_size: number_to_human_size(Gitlab::CurrentSettings.max_attachment_size.megabytes), new_issue_path: new_project_issue_path(project, issue: { milestone_id: finder.milestones.first.try(:id) }), project_import_jira_path: project_import_jira_path(project), - project_path: project.full_path, quick_actions_help_path: help_page_path('user/project/quick_actions'), reset_path: new_issuable_address_project_path(project, issuable_type: 'issue'), - rss_path: url_for(safe_params.merge(rss_url_options)), - show_new_issue_link: show_new_issue_link?(project).to_s, - sign_in_path: new_user_session_path - } + show_new_issue_link: show_new_issue_link?(project).to_s + ) + end + + def group_issues_list_data(group, current_user, issues) + common_issues_list_data(group, current_user).merge( + has_any_issues: issues.to_a.any?.to_s + ) end # Overridden in EE |