diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-09-20 14:18:08 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-09-20 14:18:08 +0300 |
commit | 5afcbe03ead9ada87621888a31a62652b10a7e4f (patch) | |
tree | 9918b67a0d0f0bafa6542e839a8be37adf73102d /app/views/projects/issues | |
parent | c97c0201564848c1f53226fe19d71fdcc472f7d0 (diff) |
Add latest changes from gitlab-org/gitlab@16-4-stable-eev16.4.0-rc42
Diffstat (limited to 'app/views/projects/issues')
7 files changed, 74 insertions, 5 deletions
diff --git a/app/views/projects/issues/_details_content.html.haml b/app/views/projects/issues/_details_content.html.haml new file mode 100644 index 00000000000..51ffb68f4e5 --- /dev/null +++ b/app/views/projects/issues/_details_content.html.haml @@ -0,0 +1,47 @@ +- related_branches_path = related_branches_project_issue_path(@project, issuable) +- api_awards_path = local_assigns.fetch(:api_awards_path, nil) + += render "projects/issues/service_desk/alert_moved_from_service_desk", issue: issuable + +.issue-details.issuable-details.js-issue-details + .detail-page-description.content-block.js-detail-page-description.gl-pt-3.gl-pb-0.gl-border-none + #js-issuable-app{ data: { initial: issuable_initial_data(issuable).to_json, + header_actions_data: issue_header_actions_data(@project, issuable, current_user, @issuable_sidebar).to_json } } + .title-container + %h1.title.page-title.gl-font-size-h-display= markdown_field(issuable, :title) + - if issuable.description.present? + .description + .md= markdown_field(issuable, :description) + + = edited_time_ago_with_tooltip(issuable, placement: 'bottom', html_class: 'issue-edited-ago js-issue-edited-ago') + + .js-issue-widgets + = render 'projects/issues/emoji_block', issuable: issuable, api_awards_path: api_awards_path + + .js-issue-widgets + = render 'projects/issues/sentry_stack_trace', issuable: issuable + + = render 'projects/issues/design_management' + + = render_if_exists 'projects/issues/work_item_links' + = render_if_exists 'projects/issues/linked_resources' + = render 'projects/issues/related_issues' + + #js-related-merge-requests{ data: { endpoint: expose_path(api_v4_projects_issues_related_merge_requests_path(id: @project.id, issue_iid: issuable.iid)), + has_closing_merge_request: (issuable.merge_requests_count(current_user) != 0).to_s, + project_namespace: @project.namespace.path, + project_path: @project.path } } + + - if can?(current_user, :read_code, @project) + - add_page_startup_api_call related_branches_path + #related-branches{ data: { url: related_branches_path } } + -# This element is filled in using JavaScript. + + - if can?(current_user, :admin_feature_flags_issue_links, @project) + = render_if_exists 'projects/issues/related_feature_flags' + + .js-issue-widgets + + = render 'projects/issues/discussion' + += render 'shared/issuable/sidebar', issuable_sidebar: @issuable_sidebar, assignees: @issue.assignees diff --git a/app/views/projects/issues/_emoji_block.html.haml b/app/views/projects/issues/_emoji_block.html.haml new file mode 100644 index 00000000000..7eb3c0f5c9f --- /dev/null +++ b/app/views/projects/issues/_emoji_block.html.haml @@ -0,0 +1,8 @@ +- api_awards_path = local_assigns.fetch(:api_awards_path, nil) + +.emoji-block.emoji-block-sticky + .row.gl-m-0.gl-justify-content-space-between + .js-noteable-awards + = render 'award_emoji/awards_block', awardable: issuable, inline: true, api_awards_path: api_awards_path + .new-branch-col.gl-font-size-0.gl-my-2 + = render 'new_branch' if show_new_branch_button? diff --git a/app/views/projects/issues/_related_issues.html.haml b/app/views/projects/issues/_related_issues.html.haml index 2409c61fbf2..73a88e63a4e 100644 --- a/app/views/projects/issues/_related_issues.html.haml +++ b/app/views/projects/issues/_related_issues.html.haml @@ -4,6 +4,7 @@ full_path: @project.full_path, has_issue_weights_feature: @project.licensed_feature_available?(:issue_weights).to_s, help_path: help_page_path('user/project/issues/related_issues'), + issuable_type: @issue.issue_type, show_categorized_issues: @project.licensed_feature_available?(:blocked_issues).to_s, has_iterations_feature: @project.licensed_feature_available?(:iterations).to_s, report_abuse_path: add_category_abuse_reports_path } } diff --git a/app/views/projects/issues/_sentry_stack_trace.html.haml b/app/views/projects/issues/_sentry_stack_trace.html.haml new file mode 100644 index 00000000000..40b29a74b53 --- /dev/null +++ b/app/views/projects/issues/_sentry_stack_trace.html.haml @@ -0,0 +1,4 @@ +- return unless issuable.sentry_issue.present? +- add_page_specific_style 'page_bundles/error_tracking_details' + +#js-sentry-error-stack-trace{ data: error_details_data(@project, issuable.sentry_issue.sentry_issue_identifier) } diff --git a/app/views/projects/issues/service_desk.html.haml b/app/views/projects/issues/service_desk.html.haml index 2d17719a8c2..4453cb2e538 100644 --- a/app/views/projects/issues/service_desk.html.haml +++ b/app/views/projects/issues/service_desk.html.haml @@ -2,10 +2,11 @@ - page_title _("Service Desk") - add_page_specific_style 'page_bundles/issuable_list' +- add_page_specific_style 'page_bundles/issues_list' - content_for :breadcrumbs_extra do = render "projects/issues/service_desk/nav_btns", show_export_button: false, show_rss_button: false -- support_bot_attrs = { service_desk_enabled: @project.service_desk_enabled?, **UserSerializer.new.represent(User.support_bot) }.to_json +- support_bot_attrs = { service_desk_enabled: @project.service_desk_enabled?, **UserSerializer.new.represent(Users::Internal.support_bot) }.to_json .js-service-desk-issues.service-desk-issues{ data: { support_bot: support_bot_attrs } } - if ::Feature.enabled?(:service_desk_vue_list, @project) diff --git a/app/views/projects/issues/service_desk/_issue.html.haml b/app/views/projects/issues/service_desk/_issue.html.haml index 5b98712d3eb..66b2eabac9d 100644 --- a/app/views/projects/issues/service_desk/_issue.html.haml +++ b/app/views/projects/issues/service_desk/_issue.html.haml @@ -48,10 +48,10 @@ .issuable-meta %ul.controls - if issue.closed? && issue.moved? - %li.issuable-status + %li = render Pajamas::BadgeComponent.new(_('Closed (moved)'), size: 'sm', variant: 'info') - elsif issue.closed? - %li.issuable-status + %li = render Pajamas::BadgeComponent.new(_('Closed'), size: 'sm', variant: 'info') - if issue.assignees.any? %li.gl-display-flex diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml index 7e8bf4ae57f..457eaf5e194 100644 --- a/app/views/projects/issues/show.html.haml +++ b/app/views/projects/issues/show.html.haml @@ -1,10 +1,18 @@ -- @content_class = "limit-container-width" unless fluid_layout - add_to_breadcrumbs _("Issues"), project_issues_path(@project) - breadcrumb_title @issue.to_reference + - page_title "#{@issue.title} (#{@issue.to_reference})", _("Issues") +- page_description @issue.description_html +- page_card_attributes @issue.card_attributes +- if @issue.relocation_target + - page_canonical_link @issue.relocation_target.present(current_user: current_user).web_url + - add_page_specific_style 'page_bundles/design_management' - add_page_specific_style 'page_bundles/incidents' +- add_page_specific_style 'page_bundles/issuable' - add_page_specific_style 'page_bundles/issues_show' - add_page_specific_style 'page_bundles/work_items' -= render 'projects/issuable/show', issuable: @issue, api_awards_path: award_emoji_issue_api_path(@issue) +- @content_class = "limit-container-width" unless fluid_layout + += render 'projects/issues/details_content', issuable: @issue, api_awards_path: award_emoji_issue_api_path(@issue) |