diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 16:18:24 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 16:18:24 +0300 |
commit | 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c (patch) | |
tree | 4dcc884cf6d81db44adae4aa99f8ec1233a41f55 /app/views/shared | |
parent | 744144d28e3e7fddc117924fef88de5d9674fe4c (diff) |
Add latest changes from gitlab-org/gitlab@14-3-stable-eev14.3.0-rc42
Diffstat (limited to 'app/views/shared')
32 files changed, 108 insertions, 220 deletions
diff --git a/app/views/shared/_help_dropdown_forum_link.html.haml b/app/views/shared/_help_dropdown_forum_link.html.haml index 351c875475a..f3c69a7c897 100644 --- a/app/views/shared/_help_dropdown_forum_link.html.haml +++ b/app/views/shared/_help_dropdown_forum_link.html.haml @@ -1,2 +1,2 @@ = link_to _("Community forum"), "https://forum.gitlab.com/", target: '_blank', class: 'text-nowrap', - rel: 'noopener noreferrer', data: { 'track_event': 'click_forum', 'track_property': 'question_menu' } + rel: 'noopener noreferrer', data: { 'track_action': 'click_forum', 'track_property': 'question_menu' } diff --git a/app/views/shared/_check_recovery_settings.html.haml b/app/views/shared/_two_factor_auth_recovery_settings_check.html.haml index 2ba0cca9ef6..d4764d1a5d9 100644 --- a/app/views/shared/_check_recovery_settings.html.haml +++ b/app/views/shared/_two_factor_auth_recovery_settings_check.html.haml @@ -1,7 +1,7 @@ = render 'shared/global_alert', variant: :warning, alert_class: 'js-recovery-settings-callout', - alert_data: { feature_id: 'account_recovery_regular_check', dismiss_endpoint: user_callouts_path, defer_links: 'true' }, + alert_data: { feature_id: UserCalloutsHelper::TWO_FACTOR_AUTH_RECOVERY_SETTINGS_CHECK, dismiss_endpoint: user_callouts_path, defer_links: 'true' }, close_button_data: { testid: 'close-account-recovery-regular-check-callout' } do .gl-alert-body = s_('Profiles|Ensure you have two-factor authentication recovery codes stored in a safe place.') diff --git a/app/views/shared/_visibility_level.html.haml b/app/views/shared/_visibility_level.html.haml index 84ce40e240c..3e30dcaf35a 100644 --- a/app/views/shared/_visibility_level.html.haml +++ b/app/views/shared/_visibility_level.html.haml @@ -7,7 +7,7 @@ = _('Who can see this group?') - visibility_docs_path = help_page_path('public_access/public_access') - docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: visibility_docs_path } - = s_('Check the %{docs_link_start}documentation%{docs_link_end}.').html_safe % { docs_link_start: docs_link_start, docs_link_end: '</a>'.html_safe } + = _('%{docs_link_start}Learn about visibility levels.%{docs_link_end}').html_safe % { docs_link_start: docs_link_start, docs_link_end: '</a>'.html_safe } - if can_change_visibility_level = render('shared/visibility_radios', model_method: :visibility_level, form: f, selected_level: visibility_level, form_model: form_model) - else diff --git a/app/views/shared/_visibility_radios.html.haml b/app/views/shared/_visibility_radios.html.haml index 90b12557bc8..f48bfcd0e72 100644 --- a/app/views/shared/_visibility_radios.html.haml +++ b/app/views/shared/_visibility_radios.html.haml @@ -3,7 +3,7 @@ - available_visibility_levels.each do |level| .form-check - = form.radio_button model_method, level, checked: (selected_level == level), class: 'form-check-input', data: { track_label: "blank_project", track_event: "activate_form_input", track_property: "#{model_method}_#{level}", track_value: "", qa_selector: "#{visibility_level_label(level).downcase}_radio" } + = form.radio_button model_method, level, checked: (selected_level == level), class: 'form-check-input', data: { track_label: "blank_project", track_action: "activate_form_input", track_property: "#{model_method}_#{level}", track_value: "", qa_selector: "#{visibility_level_label(level).downcase}_radio" } = form.label "#{model_method}_#{level}", class: 'form-check-label' do = visibility_level_icon(level) .option-title diff --git a/app/views/shared/access_tokens/_table.html.haml b/app/views/shared/access_tokens/_table.html.haml index 33d6b9573d4..c096044e439 100644 --- a/app/views/shared/access_tokens/_table.html.haml +++ b/app/views/shared/access_tokens/_table.html.haml @@ -51,7 +51,7 @@ = _('Expired') - else %span{ class: ('text-warning' if token.expires_soon?) } - = _('In %{time_to_now}') % { time_to_now: distance_of_time_in_words_to_now(token.expires_at) } + = time_ago_with_tooltip(token.expires_at) - else %span.token-never-expires-label= _('Never') - if project diff --git a/app/views/shared/boards/_show.html.haml b/app/views/shared/boards/_show.html.haml index a49c17e9265..98752345074 100644 --- a/app/views/shared/boards/_show.html.haml +++ b/app/views/shared/boards/_show.html.haml @@ -1,5 +1,4 @@ - board = local_assigns.fetch(:board, nil) -- group = local_assigns.fetch(:group, false) - @no_breadcrumb_container = true - @no_container = true - @content_wrapper_class = "#{@content_wrapper_class} gl-relative" @@ -18,8 +17,5 @@ - add_page_specific_style 'page_bundles/boards' = render 'shared/issuable/search_bar', type: :boards, board: board -#board-app.boards-app.position-relative{ "v-cloak" => "true", data: board_data, ":class" => "{ 'is-compact': detailIssueVisible }" } - %board-content{ ":lists" => "state.lists", ":disabled" => "disabled" } - - if !is_epic_board && !Feature.enabled?(:graphql_board_lists, default_enabled: :yaml) - = render "shared/boards/components/sidebar", group: group - %board-settings-sidebar + +#js-issuable-board-app{ data: board_data } diff --git a/app/views/shared/boards/components/_sidebar.html.haml b/app/views/shared/boards/components/_sidebar.html.haml deleted file mode 100644 index 8976e89b3d3..00000000000 --- a/app/views/shared/boards/components/_sidebar.html.haml +++ /dev/null @@ -1,27 +0,0 @@ -%board-sidebar{ "inline-template" => true, ":current-user" => (UserSerializer.new.represent(current_user) || {}).to_json } - %transition{ name: "boards-sidebar-slide" } - %aside.right-sidebar.right-sidebar-expanded.boards-sidebar{ "v-show" => "showSidebar", 'aria-label': s_('Boards|Board'), 'data-testid': 'issue-boards-sidebar' } - .issuable-sidebar - .block.issuable-sidebar-header.position-relative - %span.issuable-header-text.hide-collapsed.float-left - %strong.bold - {{ issue.title }} - %br/ - %span - = render_if_exists "shared/boards/components/sidebar/issue_project_path" - = precede "#" do - {{ issue.iid }} - %a.gutter-toggle.position-absolute.position-top-0.position-right-0{ role: "button", - href: "#", - "@click.prevent" => "closeSidebar", - "aria-label" => "Toggle sidebar" } - = custom_icon("icon_close", size: 15) - .js-issuable-update - = render "shared/boards/components/sidebar/assignee" - = render_if_exists "shared/boards/components/sidebar/epic" - = render "shared/boards/components/sidebar/milestone" - = render "shared/boards/components/sidebar/time_tracker" - = render "shared/boards/components/sidebar/due_date" - = render "shared/boards/components/sidebar/labels" - = render_if_exists "shared/boards/components/sidebar/weight" - = render "shared/boards/components/sidebar/notifications" diff --git a/app/views/shared/boards/components/sidebar/_assignee.html.haml b/app/views/shared/boards/components/sidebar/_assignee.html.haml deleted file mode 100644 index 79817025565..00000000000 --- a/app/views/shared/boards/components/sidebar/_assignee.html.haml +++ /dev/null @@ -1,10 +0,0 @@ -- dropdown_options = assignees_dropdown_options('issue') -- relative_url = Gitlab.config.gitlab.relative_url_root || '/' - -.block.assignee{ ref: "assigneeBlock" } - %template{ "v-if" => "issue.assignees" } - %sidebar-assignees-widget{ ":iid" => "String(issue.iid)", - ":full-path" => "issue.path.split('/-/')[0].substring(1).replace(`#{relative_url}`, '')", - ":initial-assignees" => "issue.assignees", - ":allow-multiple-assignees" => "!Boolean(#{dropdown_options[:data][:"max-select"]})", - "@assignees-updated" => "setAssignees" } diff --git a/app/views/shared/boards/components/sidebar/_due_date.html.haml b/app/views/shared/boards/components/sidebar/_due_date.html.haml deleted file mode 100644 index ab4d22ac03d..00000000000 --- a/app/views/shared/boards/components/sidebar/_due_date.html.haml +++ /dev/null @@ -1,31 +0,0 @@ -.block.due_date - .title.gl-h-5.gl-display-flex.gl-align-items-center - = _("Due date") - - if can_admin_issue? - = loading_icon(css_class: 'gl-ml-2 block-loading') - = link_to _("Edit"), "#", class: "js-sidebar-dropdown-toggle edit-link gl-ml-auto" - .value - .value-content - %span.no-value{ "v-if" => "!issue.dueDate" } - = _("None") - %span.bold{ "v-if" => "issue.dueDate" } - {{ issue.dueDate | due-date }} - - if can_admin_issue? - %span.no-value.js-remove-due-date-holder{ "v-if" => "issue.dueDate" } - \- - %a.js-remove-due-date{ href: "#", role: "button" } - = _('remove due date') - - if can_admin_issue? - .selectbox - %input{ type: "hidden", - name: "issue[due_date]", - ":value" => "issue.dueDate" } - .dropdown - %button.dropdown-menu-toggle.js-due-date-select.js-issue-boards-due-date{ type: 'button', - data: { toggle: 'dropdown', field_name: "issue[due_date]", ability_name: "issue" } } - %span.dropdown-toggle-text= _("Due date") - = sprite_icon('chevron-down', css_class: "dropdown-menu-toggle-icon gl-top-3") - .dropdown-menu.dropdown-menu-due-date - = dropdown_title(_('Due date')) - = dropdown_content do - .js-due-date-calendar diff --git a/app/views/shared/boards/components/sidebar/_labels.html.haml b/app/views/shared/boards/components/sidebar/_labels.html.haml deleted file mode 100644 index 5af52d4de23..00000000000 --- a/app/views/shared/boards/components/sidebar/_labels.html.haml +++ /dev/null @@ -1,34 +0,0 @@ -.block.labels - .title.gl-h-5.gl-display-flex.gl-align-items-center - = _("Labels") - - if can_admin_issue? - = loading_icon(css_class: 'gl-ml-2 block-loading') - = link_to _("Edit"), "#", class: "js-sidebar-dropdown-toggle edit-link gl-ml-auto" - .value.issuable-show-labels.dont-hide - %span.no-value{ "v-if" => "issue.labels && issue.labels.length === 0" } - = _("None") - %span{ "v-for" => "label in issue.labels" } - %gl-label{ ":key" => "label.id", - ":background-color" => "label.color", - ":title" => "label.title", - ":description" => "label.description", - ":scoped" => "showScopedLabels(label)" } - - - if can_admin_issue? - .selectbox - %input{ type: "hidden", - name: "issue[label_names][]", - "v-for" => "label in issue.labels", - ":value" => "label.id" } - .dropdown - %button.dropdown-menu-toggle.js-label-select.js-multiselect.js-issue-board-sidebar{ type: "button", - ":data-selected" => "selectedLabels", - ":data-labels" => "issue.assignableLabelsEndpoint", - data: label_dropdown_data(@project, namespace_path: @namespace_path, field_name: "issue[label_names][]") } - %span.dropdown-toggle-text - {{ labelDropdownTitle }} - = sprite_icon('chevron-down', css_class: "dropdown-menu-toggle-icon gl-top-3") - .dropdown-menu.dropdown-select.dropdown-menu-paging.dropdown-menu-labels.dropdown-menu-selectable.dropdown-extended-height - = render partial: "shared/issuable/label_page_default" - - if can?(current_user, :admin_label, current_board_parent) - = render partial: "shared/issuable/label_page_create", locals: { show_add_list: true } diff --git a/app/views/shared/boards/components/sidebar/_milestone.html.haml b/app/views/shared/boards/components/sidebar/_milestone.html.haml deleted file mode 100644 index 6143f1d5afe..00000000000 --- a/app/views/shared/boards/components/sidebar/_milestone.html.haml +++ /dev/null @@ -1,29 +0,0 @@ -.block.milestone - .title.gl-h-5.gl-display-flex.gl-align-items-center - = _("Milestone") - - if can_admin_issue? - = loading_icon(css_class: 'gl-ml-2 block-loading') - = link_to _("Edit"), "#", class: "js-sidebar-dropdown-toggle edit-link gl-ml-auto" - .value - %span.no-value{ "v-if" => "!issue.milestone" } - = _("None") - %span.bold.has-tooltip{ "v-if" => "issue.milestone" } - {{ issue.milestone.title }} - - if can_admin_issue? - .selectbox - %input{ type: "hidden", - ":value" => "issue.milestone.id", - name: "issue[milestone_id]", - "v-if" => "issue.milestone" } - .dropdown - %button.dropdown-menu-toggle.js-milestone-select.js-issue-board-sidebar{ type: "button", data: { toggle: "dropdown", show_no: "true", field_name: "issue[milestone_id]", ability_name: "issue", use_id: "true", default_no: "true" }, - ":data-selected" => "milestoneTitle", - ":data-issuable-id" => "issue.iid", - ":data-project-id" => "issue.project_id" } - = _("Milestone") - = sprite_icon('chevron-down', css_class: "dropdown-menu-toggle-icon gl-top-3") - .dropdown-menu.dropdown-select.dropdown-menu-selectable - = dropdown_title(_("Assign milestone")) - = dropdown_filter(_("Search milestones")) - = dropdown_content - = dropdown_loading diff --git a/app/views/shared/boards/components/sidebar/_notifications.html.haml b/app/views/shared/boards/components/sidebar/_notifications.html.haml deleted file mode 100644 index 333dd1a00b4..00000000000 --- a/app/views/shared/boards/components/sidebar/_notifications.html.haml +++ /dev/null @@ -1,5 +0,0 @@ -- if current_user - .block.subscriptions - %subscriptions{ ":loading" => "issue.isFetching && issue.isFetching.subscriptions", - ":subscribed" => "issue.subscribed", - ":id" => "issue.id" } diff --git a/app/views/shared/boards/components/sidebar/_time_tracker.html.haml b/app/views/shared/boards/components/sidebar/_time_tracker.html.haml deleted file mode 100644 index eea3ec35000..00000000000 --- a/app/views/shared/boards/components/sidebar/_time_tracker.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -.block.time-tracking - %time-tracker{ ":limit-to-hours" => "timeTrackingLimitToHours", - ":issuable-id" => "issue.id ? issue.id.toString() : ''", - ":issuable-iid" => "issue.iid ? issue.iid.toString() : ''", - ":full-path" => "issue.project ? issue.project.fullPath : ''", - "root-path" => "#{root_url}" } diff --git a/app/views/shared/deploy_tokens/_form.html.haml b/app/views/shared/deploy_tokens/_form.html.haml index e7bbb351633..652da4b396a 100644 --- a/app/views/shared/deploy_tokens/_form.html.haml +++ b/app/views/shared/deploy_tokens/_form.html.haml @@ -48,7 +48,7 @@ .text-secondary= s_('DeployTokens|Allows read-only access to the package registry.') %fieldset.form-group.form-check - = f.check_box :write_package_registry, class: 'form-check-input' + = f.check_box :write_package_registry, class: 'form-check-input', data: { qa_selector: 'deploy_token_write_package_registry_checkbox' } = f.label :write_package_registry, 'write_package_registry', class: 'label-bold form-check-label' .text-secondary= s_('DeployTokens|Allows read and write access to the package registry.') diff --git a/app/views/shared/deploy_tokens/_table.html.haml b/app/views/shared/deploy_tokens/_table.html.haml index fe32fcf94d0..db9c646b694 100644 --- a/app/views/shared/deploy_tokens/_table.html.haml +++ b/app/views/shared/deploy_tokens/_table.html.haml @@ -20,7 +20,7 @@ %td - if token.expires? %span{ class: ('text-warning' if token.expires_soon?) } - In #{distance_of_time_in_words_to_now(token.expires_at)} + = time_ago_with_tooltip(token.expires_at) - else %span.token-never-expires-label= _('Never') %td= token.scopes.present? ? token.scopes.join(', ') : _('no scopes selected') diff --git a/app/views/shared/doorkeeper/applications/_form.html.haml b/app/views/shared/doorkeeper/applications/_form.html.haml index 91a32b55542..180c658dbdc 100644 --- a/app/views/shared/doorkeeper/applications/_form.html.haml +++ b/app/views/shared/doorkeeper/applications/_form.html.haml @@ -18,6 +18,12 @@ %span.form-text.text-muted = _('The application will be used where the client secret can be kept confidential. Native mobile apps and Single Page Apps are considered non-confidential.') + .form-group.form-check + = f.check_box :expire_access_tokens, class: 'form-check-input' + = f.label :expire_access_tokens, class: 'label-bold form-check-label' + %span.form-text.text-muted + = _('Access tokens expire after 2 hours. A refresh token may be used at any time to generate a new access token. Non-expiring access tokens are deprecated. Clear this setting to enable backward compatibility.') + .form-group = f.label :scopes, class: 'label-bold' = render 'shared/tokens/scopes_form', prefix: 'doorkeeper_application', token: @application, scopes: @scopes diff --git a/app/views/shared/empty_states/_merge_requests.html.haml b/app/views/shared/empty_states/_merge_requests.html.haml index 879447f16ae..72db4d4c846 100644 --- a/app/views/shared/empty_states/_merge_requests.html.haml +++ b/app/views/shared/empty_states/_merge_requests.html.haml @@ -20,7 +20,7 @@ = _("To widen your search, change or remove filters above") .text-center - if can_create_merge_request - = link_to _("New merge request"), project_new_merge_request_path(@project), class: "gl-button btn btn-confirm", title: _("New merge request") + = link_to _("New merge request"), button_path || project_new_merge_request_path(@project), class: "gl-button btn btn-confirm", title: _("New merge request") - elsif is_opened_state && opened_merged_count == 0 && closed_merged_count > 0 %h4.text-center = _("There are no open merge requests") @@ -28,7 +28,7 @@ = _("To keep this project going, create a new merge request") .text-center - if can_create_merge_request - = link_to _("New merge request"), project_new_merge_request_path(@project), class: "gl-button btn btn-confirm", title: _("New merge request") + = link_to _("New merge request"), button_path || project_new_merge_request_path(@project), class: "gl-button btn btn-confirm", title: _("New merge request") - elsif is_closed_state && opened_merged_count > 0 && closed_merged_count == 0 %h4.text-center = _("There are no closed merge requests") 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")} diff --git a/app/views/shared/issue_type/_details_header.html.haml b/app/views/shared/issue_type/_details_header.html.haml index a25e35cdcd4..eca61819cca 100644 --- a/app/views/shared/issue_type/_details_header.html.haml +++ b/app/views/shared/issue_type/_details_header.html.haml @@ -15,7 +15,7 @@ = _('Open') .issuable-meta - #js-issuable-header-warnings + #js-issuable-header-warnings{ data: { hidden: issue_hidden?(issuable).to_s } } = issuable_meta(issuable, @project) %a.btn.gl-button.btn-default.btn-icon.float-right.gl-display-block.d-sm-none.gutter-toggle.issuable-gutter-toggle.js-sidebar-toggle{ href: "#" } diff --git a/app/views/shared/labels/_form.html.haml b/app/views/shared/labels/_form.html.haml index 604aac9237c..6f65dbe4811 100644 --- a/app/views/shared/labels/_form.html.haml +++ b/app/views/shared/labels/_form.html.haml @@ -28,7 +28,7 @@ = render_suggested_colors .form-actions - if @label.persisted? - = f.submit 'Save changes', class: 'btn gl-button btn-confirm js-save-button' + = f.submit _('Save changes'), class: 'btn gl-button btn-confirm js-save-button' - else = f.submit 'Create label', class: 'btn gl-button btn-confirm js-save-button qa-label-create-button' - = link_to 'Cancel', back_path, class: 'btn gl-button btn-default btn-cancel' + = link_to _('Cancel'), back_path, class: 'btn gl-button btn-default btn-cancel' diff --git a/app/views/shared/members/_access_request_links.html.haml b/app/views/shared/members/_access_request_links.html.haml index a983a736a1e..8600db25e65 100644 --- a/app/views/shared/members/_access_request_links.html.haml +++ b/app/views/shared/members/_access_request_links.html.haml @@ -5,13 +5,11 @@ = link_to link_text, polymorphic_path([:leave, source, :members]), method: :delete, data: { confirm: leave_confirmation_message(source), qa_selector: 'leave_group_link' }, - class: '.gl-pl-3.gl-border-l-1.gl-border-l-solid.gl-border-l-gray-500 js-leave-link' + class: 'js-leave-link' - elsif requester = source.requesters.find_by(user_id: current_user.id) # rubocop: disable CodeReuse/ActiveRecord = link_to _('Withdraw Access Request'), polymorphic_path([:leave, source, :members]), method: :delete, - data: { confirm: remove_member_message(requester) }, - class: '.gl-pl-3.gl-border-l-1.gl-border-l-solid.gl-border-l-gray-500' + data: { confirm: remove_member_message(requester) } - elsif source.request_access_enabled && can?(current_user, :request_access, source) = link_to _('Request Access'), polymorphic_path([:request_access, source, :members]), - method: :post, - class: '.gl-pl-3.gl-border-l-1.gl-border-l-solid.gl-border-l-gray-500' + method: :post diff --git a/app/views/shared/runners/_runner_details.html.haml b/app/views/shared/runners/_runner_details.html.haml index 672f0b6a83f..a7b2947057d 100644 --- a/app/views/shared/runners/_runner_details.html.haml +++ b/app/views/shared/runners/_runner_details.html.haml @@ -60,4 +60,4 @@ - if runner.contacted_at = time_ago_with_tooltip runner.contacted_at - else - = s_('Never') + = _('Never') diff --git a/app/views/shared/wikis/pages.html.haml b/app/views/shared/wikis/pages.html.haml index c1918198594..0a8ca309823 100644 --- a/app/views/shared/wikis/pages.html.haml +++ b/app/views/shared/wikis/pages.html.haml @@ -1,4 +1,4 @@ -- add_to_breadcrumbs "Wiki", wiki_path(@wiki) +- add_to_breadcrumbs _('Wiki'), wiki_path(@wiki) - breadcrumb_title s_("Wiki|Pages") - page_title s_("Wiki|Pages"), _("Wiki") - sort_title = wiki_sort_title(params[:sort]) |