debian-mirror-gitlab/app/views/shared/milestones/_sidebar.html.haml

172 lines
9.8 KiB
Text
Raw Normal View History

2017-09-10 17:25:29 +05:30
- affix_offset = local_assigns.fetch(:affix_offset, "50")
2017-08-17 22:00:37 +05:30
- project = local_assigns[:project]
2021-03-11 19:13:27 +05:30
%aside.right-sidebar.js-right-sidebar{ data: { "offset-top" => affix_offset, "spy" => "affix", "always-show-toggle" => true }, class: sidebar_gutter_collapsed_class, 'aria-live' => 'polite', 'aria-label': _('Milestone') }
2017-08-17 22:00:37 +05:30
.issuable-sidebar.milestone-sidebar
.block.milestone-progress.issuable-sidebar-header
2020-06-23 00:09:42 +05:30
%a.gutter-toggle.float-right.js-sidebar-toggle.has-tooltip{ role: "button", href: "#", "aria-label" => s_('MilestoneSidebar|Toggle sidebar'), title: sidebar_gutter_tooltip_text, data: { container: 'body', placement: 'left', boundary: 'viewport' } }
2017-08-17 22:00:37 +05:30
= sidebar_gutter_toggle_icon
.title.hide-collapsed
2020-04-08 14:13:33 +05:30
%strong.bold== #{milestone.percent_complete}%
2017-08-17 22:00:37 +05:30
%span.hide-collapsed
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|complete')
2017-08-17 22:00:37 +05:30
.value.hide-collapsed
= milestone_progress_bar(milestone)
2018-10-15 14:42:47 +05:30
.block.milestone-progress.hide-expanded
2018-11-08 19:23:39 +05:30
.sidebar-collapsed-icon.has-tooltip{ title: milestone_progress_tooltip_text(milestone), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
2020-04-08 14:13:33 +05:30
%span== #{milestone.percent_complete}%
2018-10-15 14:42:47 +05:30
= milestone_progress_bar(milestone)
2017-08-17 22:00:37 +05:30
.block.start_date.hide-collapsed
.title
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Start date')
2017-08-17 22:00:37 +05:30
- if @project && can?(current_user, :admin_milestone, @project)
2020-06-23 00:09:42 +05:30
= link_to s_('MilestoneSidebar|Edit'), edit_project_milestone_path(@project, @milestone), class: 'js-sidebar-dropdown-toggle edit-link float-right'
2017-08-17 22:00:37 +05:30
.value
2020-07-28 23:09:34 +05:30
%span.value-content{ data: { qa_selector: 'start_date_content' } }
2017-08-17 22:00:37 +05:30
- if milestone.start_date
%span.bold= milestone.start_date.to_s(:medium)
- else
2020-06-23 00:09:42 +05:30
%span.no-value= s_('MilestoneSidebar|No start date')
2017-08-17 22:00:37 +05:30
.block.due_date
.sidebar-collapsed-icon
2021-01-03 14:25:43 +05:30
%span{ 'aria-hidden': 'true' }
= sprite_icon('calendar')
2017-08-17 22:00:37 +05:30
%span.collapsed-milestone-date
- if milestone.start_date && milestone.due_date
- if milestone.start_date.year == milestone.due_date.year
2018-11-08 19:23:39 +05:30
.milestone-date.has-tooltip{ title: milestone_time_for(milestone.start_date, :start), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
2018-10-15 14:42:47 +05:30
= milestone.start_date.strftime('%b %-d')
2017-08-17 22:00:37 +05:30
- else
2018-11-08 19:23:39 +05:30
.milestone-date.has-tooltip{ title: milestone_time_for(milestone.start_date, :start), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
2018-10-15 14:42:47 +05:30
= milestone.start_date.strftime('%b %-d %Y')
2017-08-17 22:00:37 +05:30
.date-separator -
2018-11-08 19:23:39 +05:30
.due_date.has-tooltip{ title: milestone_time_for(milestone.due_date, :end), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
2018-10-15 14:42:47 +05:30
= milestone.due_date.strftime('%b %-d %Y')
2017-08-17 22:00:37 +05:30
- elsif milestone.start_date
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|From')
2018-11-08 19:23:39 +05:30
.milestone-date.has-tooltip{ title: milestone_time_for(milestone.start_date, :start), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
2018-10-15 14:42:47 +05:30
= milestone.start_date.strftime('%b %-d %Y')
2017-08-17 22:00:37 +05:30
- elsif milestone.due_date
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Until')
2018-11-08 19:23:39 +05:30
.milestone-date.has-tooltip{ title: milestone_time_for(milestone.due_date, :end), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
2018-10-15 14:42:47 +05:30
= milestone.due_date.strftime('%b %-d %Y')
2017-08-17 22:00:37 +05:30
- else
2018-11-08 19:23:39 +05:30
.has-tooltip{ title: milestone_time_for(milestone.start_date, :start), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|None')
2017-08-17 22:00:37 +05:30
.title.hide-collapsed
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Due date')
2017-08-17 22:00:37 +05:30
- if @project && can?(current_user, :admin_milestone, @project)
2020-06-23 00:09:42 +05:30
= link_to s_('MilestoneSidebar|Edit'), edit_project_milestone_path(@project, @milestone), class: 'js-sidebar-dropdown-toggle edit-link float-right'
2017-08-17 22:00:37 +05:30
.value.hide-collapsed
2020-07-28 23:09:34 +05:30
%span.value-content{ data: { qa_selector: 'due_date_content' } }
2017-08-17 22:00:37 +05:30
- if milestone.due_date
%span.bold= milestone.due_date.to_s(:medium)
- else
2020-06-23 00:09:42 +05:30
%span.no-value= s_('MilestoneSidebar|No due date')
2019-02-15 15:39:39 +05:30
- remaining_days = remaining_days_in_words(milestone.due_date, milestone.start_date)
2017-08-17 22:00:37 +05:30
- if remaining_days.present?
= surround '(', ')' do
%span.remaining-days= remaining_days
- if !project || can?(current_user, :read_issue, project)
.block.issues
2018-11-08 19:23:39 +05:30
.sidebar-collapsed-icon.has-tooltip{ title: milestone_issues_tooltip_text(milestone), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
2017-08-17 22:00:37 +05:30
%strong
2017-09-10 17:25:29 +05:30
= custom_icon('issues')
2017-08-17 22:00:37 +05:30
%span= milestone.issues_visible_to_user(current_user).count
.title.hide-collapsed
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Issues')
2022-01-26 12:08:38 +05:30
= gl_badge_tag milestone.issues_visible_to_user(current_user).count, variant: :muted, size: :sm
2018-05-09 12:01:36 +05:30
- if show_new_issue_link?(project)
2020-06-23 00:09:42 +05:30
= link_to new_project_issue_path(project, issue: { milestone_id: milestone.id }), class: "float-right", title: s_('MilestoneSidebar|New Issue') do
= s_('MilestoneSidebar|New issue')
2017-08-17 22:00:37 +05:30
.value.hide-collapsed.bold
%span.milestone-stat
= link_to milestones_browse_issuables_path(milestone, type: :issues) do
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Open:')
2017-08-17 22:00:37 +05:30
= milestone.issues_visible_to_user(current_user).opened.count
%span.milestone-stat
= link_to milestones_browse_issuables_path(milestone, type: :issues, state: 'closed') do
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Closed:')
2017-08-17 22:00:37 +05:30
= milestone.issues_visible_to_user(current_user).closed.count
2018-03-27 19:54:05 +05:30
.block
2023-01-13 00:05:48 +05:30
.js-sidebar-time-tracking-root{ data: { time_estimate: @milestone.total_time_estimate,
2020-04-22 19:07:51 +05:30
time_spent: @milestone.total_time_spent,
human_time_estimate: @milestone.human_total_time_estimate,
human_time_spent: @milestone.human_total_time_spent,
2021-09-04 01:27:46 +05:30
iid: @milestone.iid,
2019-09-30 21:07:59 +05:30
limit_to_hours: Gitlab::CurrentSettings.time_tracking_limit_to_hours.to_s } }
2018-03-17 18:26:18 +05:30
2018-11-08 19:23:39 +05:30
= render_if_exists 'shared/milestones/weight', milestone: milestone
2020-01-01 13:55:28 +05:30
- if milestone.merge_requests_enabled?
.block.merge-requests
.sidebar-collapsed-icon.has-tooltip{ title: milestone_merge_requests_tooltip_text(milestone), data: { container: 'body', html: 'true', placement: 'left', boundary: 'viewport' } }
%strong
= custom_icon('mr_bold')
%span= milestone.merge_requests.count
.title.hide-collapsed
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Merge requests')
2022-01-26 12:08:38 +05:30
= gl_badge_tag milestone.merge_requests.count, variant: :muted, size: :sm
2020-01-01 13:55:28 +05:30
.value.hide-collapsed.bold
- if !project || can?(current_user, :read_merge_request, project)
%span.milestone-stat
= link_to milestones_browse_issuables_path(milestone, type: :merge_requests) do
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Open:')
2020-01-01 13:55:28 +05:30
= milestone.merge_requests.opened.count
%span.milestone-stat
= link_to milestones_browse_issuables_path(milestone, type: :merge_requests, state: 'closed') do
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Closed:')
2020-01-01 13:55:28 +05:30
= milestone.merge_requests.closed.count
%span.milestone-stat
= link_to milestones_browse_issuables_path(milestone, type: :merge_requests, state: 'merged') do
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Merged:')
2020-01-01 13:55:28 +05:30
= milestone.merge_requests.merged.count
- else
%span.milestone-stat
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Open:')
2017-08-17 22:00:37 +05:30
= milestone.merge_requests.opened.count
2020-01-01 13:55:28 +05:30
%span.milestone-stat
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Closed:')
2017-08-17 22:00:37 +05:30
= milestone.merge_requests.closed.count
2020-01-01 13:55:28 +05:30
%span.milestone-stat
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Merged:')
2017-08-17 22:00:37 +05:30
= milestone.merge_requests.merged.count
2019-12-26 22:10:19 +05:30
- if project
2022-07-01 11:34:44 +05:30
- recent_releases, total_count, more_count = recent_releases_with_counts(milestone, current_user)
2019-12-26 22:10:19 +05:30
.block.releases
.sidebar-collapsed-icon.has-tooltip{ title: milestone_releases_tooltip_text(milestone), data: { container: 'body', placement: 'left', boundary: 'viewport' } }
%strong
2020-10-24 23:57:45 +05:30
= sprite_icon("rocket")
2019-12-26 22:10:19 +05:30
%span= total_count
.title.hide-collapsed= n_('Release', 'Releases', total_count)
.hide-collapsed
2020-10-24 23:57:45 +05:30
- if total_count == 0
2020-06-23 00:09:42 +05:30
.no-value= s_('MilestoneSidebar|None')
2019-12-26 22:10:19 +05:30
- else
.font-weight-bold
- recent_releases.each do |release|
= link_to release.name, project_releases_path(project, :anchor => release.tag)
- unless release == recent_releases.last
%span.font-weight-normal •
- if more_count > 0
%span.font-weight-normal •
= link_to n_('%{count} more release', '%{count} more releases', more_count) % { count: more_count }, project_releases_path(project), class: 'font-weight-normal'
2017-08-17 22:00:37 +05:30
- milestone_ref = milestone.try(:to_reference, full: true)
- if milestone_ref.present?
.block.reference
2021-11-18 22:05:49 +05:30
.sidebar-collapsed-icon.js-dont-change-state
2020-06-23 00:09:42 +05:30
= clipboard_button(text: milestone_ref, title: s_('MilestoneSidebar|Copy reference'), placement: "left", boundary: 'viewport')
2022-07-16 23:28:13 +05:30
.gl-display-flex.gl-align-items-center.gl-justify-content-space-between.gl-mb-2.hide-collapsed
%span.gl-overflow-hidden.gl-text-overflow-ellipsis.gl-white-space-nowrap
2020-06-23 00:09:42 +05:30
= s_('MilestoneSidebar|Reference:')
2021-04-29 21:17:54 +05:30
%span{ title: milestone_ref }
2017-08-17 22:00:37 +05:30
= milestone_ref
2022-07-16 23:28:13 +05:30
= clipboard_button(text: milestone_ref, title: s_('MilestoneSidebar|Copy reference'), placement: "left", boundary: 'viewport')