diff options
Diffstat (limited to 'app/views/shared/issuable')
10 files changed, 83 insertions, 53 deletions
diff --git a/app/views/shared/issuable/_board_create_list_dropdown.html.haml b/app/views/shared/issuable/_board_create_list_dropdown.html.haml deleted file mode 100644 index 74b064648c0..00000000000 --- a/app/views/shared/issuable/_board_create_list_dropdown.html.haml +++ /dev/null @@ -1,8 +0,0 @@ -.dropdown.gl-display-flex.gl-align-items-center.gl-ml-3#js-add-list - %button.gl-button.btn.btn-confirm.js-new-board-list{ type: "button", data: board_list_data } - Add list - .dropdown-menu.dropdown-extended-height.dropdown-menu-paging.dropdown-menu-right.dropdown-menu-issues-board-new.dropdown-menu-selectable.js-tab-container-labels - = render partial: "shared/issuable/label_page_default", locals: { show_footer: true, show_create: true, show_boards_content: true, title: "Add list" } - - if can?(current_user, :admin_label, board.resource_parent) - = render partial: "shared/issuable/label_page_create", locals: { show_add_list: true, add_list: true, add_list_class: 'd-none' } - = dropdown_loading diff --git a/app/views/shared/issuable/_feed_buttons.html.haml b/app/views/shared/issuable/_feed_buttons.html.haml index c3e4c3a15cc..f0e4b915ac8 100644 --- a/app/views/shared/issuable/_feed_buttons.html.haml +++ b/app/views/shared/issuable/_feed_buttons.html.haml @@ -1,4 +1,8 @@ -= link_to safe_params.merge(rss_url_options), class: 'btn gl-button btn-default btn-icon has-tooltip', data: { container: 'body', testid: 'rss-feed-link' }, title: _('Subscribe to RSS feed') do +- show_calendar_button = local_assigns.fetch(:show_calendar_button, true) + += link_to safe_params.merge(rss_url_options), class: 'btn gl-button btn-default btn-icon has-tooltip', data: { container: 'body', testid: 'rss-feed-link' }, title: _('Subscribe to RSS feed') , 'aria-label': _('Subscribe to RSS feed') do = sprite_icon('rss', css_class: 'qa-rss-icon') -= link_to safe_params.merge(calendar_url_options), class: 'btn gl-button btn-default btn-icon has-tooltip', data: { container: 'body' }, title: _('Subscribe to calendar') do - = sprite_icon('calendar') + +- if show_calendar_button + = link_to safe_params.merge(calendar_url_options), class: 'btn gl-button btn-default btn-icon has-tooltip', data: { container: 'body' }, title: _('Subscribe to calendar'), 'aria-label': _('Subscribe to calendar') do + = sprite_icon('calendar') diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index dc93442d6cd..cb03bd4c473 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -66,7 +66,7 @@ - if issuable.new_record? = form.submit "Create #{issuable.class.model_name.human.downcase}", class: 'gl-button btn btn-confirm gl-mr-2', data: { qa_selector: 'issuable_create_button' } - else - = form.submit 'Save changes', class: 'gl-button btn btn-confirm gl-mr-2' + = form.submit _('Save changes'), class: 'gl-button btn btn-confirm gl-mr-2' - if issuable.new_record? = link_to _('Cancel'), polymorphic_path([@project, issuable.class]), class: 'btn gl-button btn-default' diff --git a/app/views/shared/issuable/_issuable.atom.builder b/app/views/shared/issuable/_issuable.atom.builder new file mode 100644 index 00000000000..931fb74dc00 --- /dev/null +++ b/app/views/shared/issuable/_issuable.atom.builder @@ -0,0 +1,38 @@ +# frozen_string_literal: true +builder.title truncate(issuable.title, length: 80) +builder.updated issuable.updated_at.xmlschema +builder.media :thumbnail, width: "40", height: "40", url: image_url(avatar_icon_for_user(issuable.author)) + +builder.author do + builder.name issuable.author_name + builder.email issuable.author_public_email +end + +builder.summary issuable.title +builder.description truncate(issuable.description, length: 240) if issuable.description +builder.content issuable.description if issuable.description +builder.milestone issuable.milestone.title if issuable.milestone + +unless issuable.labels.empty? + builder.labels do + issuable.labels.each do |label| + builder.label label.name + end + end +end + +if issuable.assignees.any? + builder.assignees do + issuable.assignees.each do |assignee| + builder.assignee do + builder.name assignee.name + builder.email assignee.public_email + end + end + end + + builder.assignee do + builder.name issuable.assignees.first.name + builder.email issuable.assignees.first.public_email + end +end diff --git a/app/views/shared/issuable/_search_bar.html.haml b/app/views/shared/issuable/_search_bar.html.haml index 737a0ff8c5b..e6c4b3f4814 100644 --- a/app/views/shared/issuable/_search_bar.html.haml +++ b/app/views/shared/issuable/_search_bar.html.haml @@ -207,10 +207,7 @@ #js-board-epics-swimlanes-toggle .js-board-config{ data: { can_admin_list: user_can_admin_list.to_s, has_scope: board.scoped?.to_s } } - if user_can_admin_list - - if Feature.enabled?(:board_new_list, board.resource_parent, default_enabled: :yaml) || board.to_type == "EpicBoard" - .js-create-column-trigger{ data: board_list_data } - - else - = render 'shared/issuable/board_create_list_dropdown', board: board + .js-create-column-trigger{ data: board_list_data } #js-toggle-focus-btn - elsif type != :productivity_analytics && show_sorting_dropdown = render 'shared/issuable/sort_dropdown' diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index c76aa176696..1e8724c3448 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -88,7 +88,7 @@ = custom_icon('icon_arrow_right') .dropdown.sidebar-move-issue-dropdown.hide-collapsed %button.gl-button.btn.btn-default.btn-block.js-sidebar-dropdown-toggle.js-move-issue{ type: 'button', - data: { toggle: 'dropdown', display: 'static', track_label: "right_sidebar", track_property: "move_issue", track_event: "click_button", track_value: "" } } + data: { toggle: 'dropdown', display: 'static', track_label: "right_sidebar", track_property: "move_issue", track_action: "click_button", track_value: "" } } = _('Move issue') .dropdown-menu.dropdown-menu-selectable.dropdown-extended-height = dropdown_title(_('Move issue')) diff --git a/app/views/shared/issuable/_sidebar_user_dropdown.html.haml b/app/views/shared/issuable/_sidebar_user_dropdown.html.haml index 84d2fc033c8..c058e7ebe3e 100644 --- a/app/views/shared/issuable/_sidebar_user_dropdown.html.haml +++ b/app/views/shared/issuable/_sidebar_user_dropdown.html.haml @@ -6,7 +6,7 @@ - options[:footer_content] = true - options[:wrapper_class] = local_assigns.fetch(:wrapper_class) - options[:toggle_class] += ' js-invite-members-track' - - data['track-event'] = 'show_invite_members' + - data['track-action'] = 'show_invite_members' - data['track-label'] = local_assigns.fetch(:track_label) = dropdown_tag(data['dropdown-title'], options: options) do diff --git a/app/views/shared/issuable/_sort_dropdown.html.haml b/app/views/shared/issuable/_sort_dropdown.html.haml index f5bf010e4db..5742f22ce05 100644 --- a/app/views/shared/issuable/_sort_dropdown.html.haml +++ b/app/views/shared/issuable/_sort_dropdown.html.haml @@ -21,5 +21,6 @@ = sortable_item(sort_title_merged_date, page_filter_path(sort: sort_value_merged_date), sort_title) if viewing_merge_requests = sortable_item(sort_title_closed_date, page_filter_path(sort: sort_value_closed_date), sort_title) if viewing_merge_requests = sortable_item(sort_title_relative_position, page_filter_path(sort: sort_value_relative_position), sort_title) if viewing_issues + = sortable_item(sort_title_title, page_filter_path(sort: sort_value_title), sort_title) if viewing_issues = render_if_exists('shared/ee/issuable/sort_dropdown', viewing_issues: viewing_issues, sort_title: sort_title) = issuable_sort_direction_button(sort_value) diff --git a/app/views/shared/issuable/form/_metadata.html.haml b/app/views/shared/issuable/form/_metadata.html.haml index 1043eb49752..2f05d272ca3 100644 --- a/app/views/shared/issuable/form/_metadata.html.haml +++ b/app/views/shared/issuable/form/_metadata.html.haml @@ -1,13 +1,10 @@ - project = local_assigns.fetch(:project) - issuable = local_assigns.fetch(:issuable) - presenter = local_assigns.fetch(:presenter) - -- return unless can?(current_user, :"set_#{issuable.to_ability_name}_metadata", issuable) - - has_due_date = issuable.has_attribute?(:due_date) - form = local_assigns.fetch(:form) -- if issuable.respond_to?(:confidential) +- if issuable.respond_to?(:confidential) && can?(current_user, :set_confidentiality, issuable) .form-group.row .offset-sm-2.col-sm-10 .form-check @@ -15,39 +12,40 @@ = form.label :confidential, class: 'form-check-label' do This issue is confidential and should only be visible to team members with at least Reporter access. -%hr -.row - %div{ class: (has_due_date ? "col-lg-6" : "col-12") } - .form-group.row.merge-request-assignee - = render "shared/issuable/form/metadata_issuable_assignee", issuable: issuable, form: form, has_due_date: has_due_date - - - if issuable.allows_reviewers? - .form-group.row.merge-request-reviewer - = render "shared/issuable/form/metadata_issuable_reviewer", issuable: issuable, form: form, has_due_date: has_due_date, presenter: presenter +- if can?(current_user, :"set_#{issuable.to_ability_name}_metadata", issuable) + %hr + .row + %div{ class: (has_due_date ? "col-lg-6" : "col-12") } + .form-group.row.merge-request-assignee + = render "shared/issuable/form/metadata_issuable_assignee", issuable: issuable, form: form, has_due_date: has_due_date - = render_if_exists "shared/issuable/form/epic", issuable: issuable, form: form, project: project - - - if issuable.supports_milestone? - .form-group.row.issue-milestone - = form.label :milestone_id, "Milestone", class: "col-form-label #{has_due_date ? "col-md-2 col-lg-4" : "col-sm-2"}" - .col-sm-10{ class: ("col-md-8" if has_due_date) } - .issuable-form-select-holder - = render "shared/issuable/milestone_dropdown", selected: issuable.milestone, name: "#{issuable.class.model_name.param_key}[milestone_id]", show_any: false, show_upcoming: false, show_started: false, extra_class: "qa-issuable-milestone-dropdown js-issuable-form-dropdown js-dropdown-keep-input", dropdown_title: "Select milestone" + - if issuable.allows_reviewers? + .form-group.row.merge-request-reviewer + = render "shared/issuable/form/metadata_issuable_reviewer", issuable: issuable, form: form, has_due_date: has_due_date, presenter: presenter - .form-group.row - = form.label :label_ids, "Labels", class: "col-form-label #{has_due_date ? "col-md-2 col-lg-4" : "col-sm-2"}" - = form.hidden_field :label_ids, multiple: true, value: '' - .col-sm-10{ class: "#{"col-md-8" if has_due_date}" } - .issuable-form-select-holder - = render "shared/issuable/label_dropdown", classes: ["js-issuable-form-dropdown"], selected: issuable.labels, data_options: { field_name: "#{issuable.class.model_name.param_key}[label_ids][]", show_any: false }, dropdown_title: "Select label" + = render_if_exists "shared/issuable/form/epic", issuable: issuable, form: form, project: project - = render_if_exists "shared/issuable/form/merge_request_blocks", issuable: issuable, form: form + - if issuable.supports_milestone? + .form-group.row.issue-milestone + = form.label :milestone_id, "Milestone", class: "col-form-label #{has_due_date ? "col-md-2 col-lg-4" : "col-sm-2"}" + .col-sm-10{ class: ("col-md-8" if has_due_date) } + .issuable-form-select-holder + = render "shared/issuable/milestone_dropdown", selected: issuable.milestone, name: "#{issuable.class.model_name.param_key}[milestone_id]", show_any: false, show_upcoming: false, show_started: false, extra_class: "qa-issuable-milestone-dropdown js-issuable-form-dropdown js-dropdown-keep-input", dropdown_title: "Select milestone" - - if has_due_date - .col-lg-6 - = render_if_exists "shared/issuable/form/weight", issuable: issuable, form: form .form-group.row - = form.label :due_date, "Due date", class: "col-form-label col-md-2 col-lg-4" - .col-8 + = form.label :label_ids, "Labels", class: "col-form-label #{has_due_date ? "col-md-2 col-lg-4" : "col-sm-2"}" + = form.hidden_field :label_ids, multiple: true, value: '' + .col-sm-10{ class: "#{"col-md-8" if has_due_date}" } .issuable-form-select-holder - = form.text_field :due_date, id: "issuable-due-date", class: "datepicker form-control", placeholder: "Select due date", autocomplete: 'off' + = render "shared/issuable/label_dropdown", classes: ["js-issuable-form-dropdown"], selected: issuable.labels, data_options: { field_name: "#{issuable.class.model_name.param_key}[label_ids][]", show_any: false }, dropdown_title: "Select label" + + = render_if_exists "shared/issuable/form/merge_request_blocks", issuable: issuable, form: form + + - if has_due_date + .col-lg-6 + = render_if_exists "shared/issuable/form/weight", issuable: issuable, form: form + .form-group.row + = form.label :due_date, "Due date", class: "col-form-label col-md-2 col-lg-4" + .col-8 + .issuable-form-select-holder + = form.text_field :due_date, id: "issuable-due-date", class: "datepicker form-control", placeholder: "Select due date", autocomplete: 'off' diff --git a/app/views/shared/issuable/form/_type_selector.html.haml b/app/views/shared/issuable/form/_type_selector.html.haml index 3b4ab22ce32..f5f6f32d5ba 100644 --- a/app/views/shared/issuable/form/_type_selector.html.haml +++ b/app/views/shared/issuable/form/_type_selector.html.haml @@ -21,7 +21,7 @@ %li.js-filter-issuable-type = link_to new_project_issue_path(@project), class: ("is-active" if issuable.issue?) do #{sprite_icon(work_item_type_icon(:issue), css_class: 'gl-icon')} #{_("Issue")} - %li.js-filter-issuable-type{ data: { track: { event: "select_issue_type_incident", label: "select_issue_type_incident_dropdown_option" } } } + %li.js-filter-issuable-type{ data: { track: { action: "select_issue_type_incident", label: "select_issue_type_incident_dropdown_option" } } } = link_to new_project_issue_path(@project, { issuable_template: 'incident', issue: { issue_type: 'incident' } }), class: ("is-active" if issuable.incident?) do #{sprite_icon(work_item_type_icon(:incident), css_class: 'gl-icon')} #{_("Incident")} |