diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-19 14:01:45 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-12-19 14:01:45 +0300 |
commit | 9297025d0b7ddf095eb618dfaaab2ff8f2018d8b (patch) | |
tree | 865198c01d1824a9b098127baa3ab980c9cd2c06 /app/views/shared | |
parent | 6372471f43ee03c05a7c1f8b0c6ac6b8a7431dbe (diff) |
Add latest changes from gitlab-org/gitlab@16-7-stable-eev16.7.0-rc42
Diffstat (limited to 'app/views/shared')
44 files changed, 93 insertions, 190 deletions
diff --git a/app/views/shared/_allow_request_access.html.haml b/app/views/shared/_allow_request_access.html.haml index ab5f2fb1772..c7df9354b11 100644 --- a/app/views/shared/_allow_request_access.html.haml +++ b/app/views/shared/_allow_request_access.html.haml @@ -1,3 +1,3 @@ = form.gitlab_ui_checkbox_component :request_access_enabled, _('Users can request access (if visibility is public or internal)'), - checkbox_options: { data: { qa_selector: 'request_access_checkbox' } } + checkbox_options: { data: { testid: 'request-access-checkbox' } } diff --git a/app/views/shared/_auto_devops_callout.html.haml b/app/views/shared/_auto_devops_callout.html.haml index 3f613a1b383..af09b62c229 100644 --- a/app/views/shared/_auto_devops_callout.html.haml +++ b/app/views/shared/_auto_devops_callout.html.haml @@ -1,6 +1,4 @@ -- container = @no_top_bar_container ? 'container-fluid' : container_class - -%div{ class: [container, @content_class, 'gl-pt-5!'] } +%div{ class: [container_class, @content_class, 'gl-pt-5!'] } = render Pajamas::BannerComponent.new(button_text: s_('AutoDevOps|Enable in settings'), button_link: project_settings_ci_cd_path(@project, anchor: 'autodevops-settings'), svg_path: 'illustrations/autodevops.svg', diff --git a/app/views/shared/_clone_panel.html.haml b/app/views/shared/_clone_panel.html.haml index 4b39ec52837..7dce8737eb4 100644 --- a/app/views/shared/_clone_panel.html.haml +++ b/app/views/shared/_clone_panel.html.haml @@ -10,9 +10,9 @@ = default_clone_protocol.upcase = sprite_icon('chevron-down', css_class: 'gl-icon') %ul.dropdown-menu.dropdown-menu-selectable.clone-options-dropdown{ data: { testid: 'clone-dropdown-content' } } - %li + %li.js-clone-links = ssh_clone_button(container) - %li + %li.js-clone-links = http_clone_button(container) = render_if_exists 'shared/kerberos_clone_button', container: container diff --git a/app/views/shared/_event_filter.html.haml b/app/views/shared/_event_filter.html.haml index 82b4a314b59..9d55db102f9 100644 --- a/app/views/shared/_event_filter.html.haml +++ b/app/views/shared/_event_filter.html.haml @@ -1,6 +1,6 @@ - show_group_events = local_assigns.fetch(:show_group_events, false) -.scrolling-tabs-container.inner-page-scroll-tabs.is-smaller.flex-fill +.scrolling-tabs-container.inner-page-scroll-tabs.gl-flex-grow-1.gl-min-w-0.gl-w-full %button.fade-left{ type: 'button', title: _('Scroll left'), 'aria-label': _('Scroll left') } = sprite_icon('chevron-lg-left', size: 12) %button.fade-right{ type: 'button', title: _('Scroll right'), 'aria-label': _('Scroll right') } diff --git a/app/views/shared/_groups_projects_more_actions_dropdown.html.haml b/app/views/shared/_groups_projects_more_actions_dropdown.html.haml new file mode 100644 index 00000000000..5189dc54f0c --- /dev/null +++ b/app/views/shared/_groups_projects_more_actions_dropdown.html.haml @@ -0,0 +1,16 @@ +- dropdown_data = groups_projects_more_actions_dropdown_data(source) + +- if dropdown_data[:is_group] && can?(current_user, :read_group, @group) + - id = @group.id + + %span.gl-sr-only{ itemprop: 'identifier', data: { testid: 'group-id-content' } } + = s_('GroupPage|Group ID: %{id}') % { id: id } + +- elsif can?(current_user, :read_project, @project) + - id = @project.id + + %span.gl-sr-only{ itemprop: 'identifier', data: { testid: 'project-id-content' } } + = s_('ProjectPage|Project ID: %{id}') % { id: id } + +- if id || current_user + .js-groups-projects-more-actions-dropdown{ data: dropdown_data } diff --git a/app/views/shared/_help_dropdown_forum_link.html.haml b/app/views/shared/_help_dropdown_forum_link.html.haml deleted file mode 100644 index 6d65f2e61bd..00000000000 --- a/app/views/shared/_help_dropdown_forum_link.html.haml +++ /dev/null @@ -1,2 +0,0 @@ -= link_to _("Community forum"), ApplicationHelper.community_forum, target: '_blank', class: 'text-nowrap', - rel: 'noopener noreferrer', data: { 'track_action': 'click_link', 'track_label': 'community_forum', 'track_property': 'navigation_top' } diff --git a/app/views/shared/_ide_root.html.haml b/app/views/shared/_ide_root.html.haml index db3e76e188c..173b081d693 100644 --- a/app/views/shared/_ide_root.html.haml +++ b/app/views/shared/_ide_root.html.haml @@ -5,6 +5,6 @@ -# 100vh because of the presence of the bottom bar #ide.gl-h-full{ data: data } - .web-ide-loader.gl-display-flex.gl-justify-content-center.gl-align-items-center.gl-flex-direction-column.gl-h-full.gl-mr-auto.gl-ml-auto + .web-ide-loader.gl-display-flex.gl-justify-content-center.gl-align-items-center.gl-flex-direction-column.gl-h-full.gl-mx-auto = brand_header_logo %h3.clblack.gl-mt-6= loading_text diff --git a/app/views/shared/_mobile_clone_panel.html.haml b/app/views/shared/_mobile_clone_panel.html.haml index c594cee326e..2f7fb348c17 100644 --- a/app/views/shared/_mobile_clone_panel.html.haml +++ b/app/views/shared/_mobile_clone_panel.html.haml @@ -8,9 +8,9 @@ = sprite_icon("chevron-down", css_class: "dropdown-btn-icon icon") %ul.dropdown-menu.dropdown-menu-selectable.dropdown-menu-right.clone-options-dropdown{ data: { dropdown: true } } - if ssh_enabled? - %li + %li.js-clone-links = dropdown_item_with_description(ssh_copy_label, ssh_clone_url_to_repo(project), href: ssh_clone_url_to_repo(project), data: { clone_type: 'ssh' }, default: true) - if http_enabled? - %li + %li.js-clone-links = dropdown_item_with_description(http_copy_label, http_clone_url_to_repo(project), href: http_clone_url_to_repo(project), data: { clone_type: 'http' }) = render_if_exists 'shared/mobile_kerberos_clone' diff --git a/app/views/shared/_sidebar_toggle_button.html.haml b/app/views/shared/_sidebar_toggle_button.html.haml deleted file mode 100644 index 4cdf1340d64..00000000000 --- a/app/views/shared/_sidebar_toggle_button.html.haml +++ /dev/null @@ -1,7 +0,0 @@ -%a.toggle-sidebar-button.js-toggle-sidebar.rspec-toggle-sidebar{ role: "button", type: "button", title: "Toggle sidebar" } - = sprite_icon('chevron-double-lg-left', size: 12, css_class: 'icon-chevron-double-lg-left') - %span.collapse-text.gl-ml-3= _("Collapse sidebar") - -= button_tag class: 'close-nav-button', type: 'button' do - = sprite_icon('close') - %span.collapse-text.gl-ml-3= _("Close sidebar") diff --git a/app/views/shared/_user_dropdown_contributing_link.html.haml b/app/views/shared/_user_dropdown_contributing_link.html.haml deleted file mode 100644 index 70d9db998fc..00000000000 --- a/app/views/shared/_user_dropdown_contributing_link.html.haml +++ /dev/null @@ -1,2 +0,0 @@ -= link_to "https://about.gitlab.com/contributing", target: '_blank', class: 'text-nowrap', data: {track_action: 'click_link', track_label: 'contribute_to_gitlab', track_property: 'navigation_top'} do - = _("Contribute to GitLab") diff --git a/app/views/shared/_user_dropdown_instance_review.html.haml b/app/views/shared/_user_dropdown_instance_review.html.haml deleted file mode 100644 index 1a02f9958b0..00000000000 --- a/app/views/shared/_user_dropdown_instance_review.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -- return unless instance_review_permitted? - -%li.divider -%li - = link_to admin_instance_review_path, target: '_blank', class: 'text-nowrap', data: {track_action: 'click_link', track_label: 'instance_review', track_property: 'navigation_top'} do - = _("Get a free instance review") diff --git a/app/views/shared/_web_ide_button.html.haml b/app/views/shared/_web_ide_button.html.haml index 803f6f9efce..5f281946d3c 100644 --- a/app/views/shared/_web_ide_button.html.haml +++ b/app/views/shared/_web_ide_button.html.haml @@ -1,5 +1,6 @@ - type = blob ? 'blob' : 'tree' - button_data = web_ide_button_data({ blob: blob }) - fork_options = fork_modal_options(@project, blob) +- css_classes = false unless local_assigns[:css_classes] -.gl-display-inline-block{ data: { options: button_data.merge(fork_options).to_json, web_ide_promo_popover_img: image_path('web-ide-promo-popover.svg') }, id: "js-#{type}-web-ide-link" } +.gl-display-inline-block{ data: { options: button_data.merge(fork_options).to_json, web_ide_promo_popover_img: image_path('web-ide-promo-popover.svg'), css_classes: css_classes }, id: "js-#{type}-web-ide-link" } diff --git a/app/views/shared/access_tokens/_form.html.haml b/app/views/shared/access_tokens/_form.html.haml index 3bf85da83b1..79c4bfca630 100644 --- a/app/views/shared/access_tokens/_form.html.haml +++ b/app/views/shared/access_tokens/_form.html.haml @@ -15,7 +15,7 @@ .form-group = f.label :name, s_('AccessTokens|Token name'), class: 'label-bold' - = f.text_field :name, class: 'form-control gl-form-input gl-form-input-xl', required: true, data: { qa_selector: 'access_token_name_field' }, :'aria-describedby' => 'access_token_help_text' + = f.text_field :name, class: 'form-control gl-form-input gl-form-input-xl', required: true, data: { testid: 'access-token-name-field' }, :'aria-describedby' => 'access_token_help_text' %span.form-text.text-muted#access_token_help_text - if resource - resource_type = resource.is_a?(Group) ? "group" : "project" @@ -42,6 +42,6 @@ = render 'shared/tokens/scopes_form', prefix: prefix, description_prefix: description_prefix, token: token, scopes: scopes, f: f .gl-mt-3 - = f.submit s_('AccessTokens|Create %{type}') % { type: type }, data: { qa_selector: 'create_token_button' }, pajamas_button: true + = f.submit s_('AccessTokens|Create %{type}') % { type: type }, data: { testid: 'create-token-button' }, pajamas_button: true = render Pajamas::ButtonComponent.new(button_options: { type: 'reset', class: 'gl-ml-2 js-toggle-button' }) do = _('Cancel') diff --git a/app/views/shared/boards/_show.html.haml b/app/views/shared/boards/_show.html.haml index 882730f536d..7ea2062eea1 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) -- @no_top_bar_container = true - @no_container = true - @content_wrapper_class = "#{@content_wrapper_class} gl-relative gl-pb-0" - @content_class = "issue-boards-content js-focus-mode-board" diff --git a/app/views/shared/deploy_keys/_form.html.haml b/app/views/shared/deploy_keys/_form.html.haml index bbaf5bf9627..f36de252c01 100644 --- a/app/views/shared/deploy_keys/_form.html.haml +++ b/app/views/shared/deploy_keys/_form.html.haml @@ -17,6 +17,10 @@ - link_end = '</a>' = _('Paste a public key here. %{link_start}How do I generate it?%{link_end}').html_safe % { link_start: link_start, link_end: link_end.html_safe } = form.text_area :key, class: 'form-control gl-form-input thin_area', rows: 5, data: { testid: 'deploy-key-field' } + + .form-group + = form.label :expires_at, _('Expiration date (optional)'), class: 'label-bold' + = form.gitlab_ui_datepicker :expires_at - else - if deploy_key.fingerprint_sha256.present? .form-group @@ -26,10 +30,10 @@ .form-group = form.label :fingerprint, _('Fingerprint (MD5)') = form.text_field :fingerprint, class: 'form-control gl-form-input', readonly: 'readonly' - -.form-group - = form.label :expires_at, _('Expiration date (optional)'), class: 'label-bold' - = form.text_field :expires_at, class: 'form-control gl-form-input', readonly: 'readonly' + - if deploy_key.expires_at.present? + .form-group + = form.label :expires_at, _('Expiration date'), class: 'label-bold' + = form.gitlab_ui_datepicker :expires_at, class: 'form-control gl-form-input', readonly: 'readonly' - if deploy_keys_project.present? = form.fields_for :deploy_keys_projects, deploy_keys_project do |deploy_keys_project_form| diff --git a/app/views/shared/doorkeeper/applications/_index.html.haml b/app/views/shared/doorkeeper/applications/_index.html.haml index f28cc64b969..c1aeff9acee 100644 --- a/app/views/shared/doorkeeper/applications/_index.html.haml +++ b/app/views/shared/doorkeeper/applications/_index.html.haml @@ -61,8 +61,9 @@ = _("You don't have any applications.") - else - .bs-callout.bs-callout-disabled - = _('Adding new applications is disabled in your GitLab instance. Please contact your GitLab administrator to get the permission.') + = render Pajamas::AlertComponent.new(variant: :warning, dismissible: false, alert_options: { class: 'gl-mb-5' }) do |c| + - c.with_body do + = s_('Adding new applications is disabled in your GitLab instance. Please contact your GitLab administrator to get the permission.') - if oauth_authorized_applications_enabled = render Pajamas::CardComponent.new(card_options: { class: 'gl-new-card oauth-authorized-applications' }, header_options: { class: 'gl-new-card-header' }, body_options: { class: 'gl-new-card-body gl-px-0' }) do |c| diff --git a/app/views/shared/groups/_group.html.haml b/app/views/shared/groups/_group.html.haml index f8304d5e44e..375e10de065 100644 --- a/app/views/shared/groups/_group.html.haml +++ b/app/views/shared/groups/_group.html.haml @@ -2,9 +2,9 @@ - access = user&.max_member_access_for_group(group.id) %li.group-row.py-3.gl-align-items-center{ class: "gl-display-flex!" } - .avatar-container.rect-avatar.s40.gl-flex-shrink-0 + .avatar-container.rect-avatar.s48.gl-flex-shrink-0 = link_to group do - = group_icon(group, class: "avatar s40") + = render Pajamas::AvatarComponent.new(group, alt: group.name, size: 48) .gl-min-w-0.gl-flex-grow-1 .title = link_to group.full_name, group, class: 'group-name' @@ -17,11 +17,11 @@ = markdown_field(group, :description) .stats.gl-text-gray-500.gl-flex-shrink-0 - %span.gl-ml-5 - = sprite_icon('bookmark', css_class: 'gl-vertical-align-text-bottom') + %span.gl-ml-5.has-tooltip{ title: _('Projects') } + = sprite_icon('project', css_class: 'gl-vertical-align-text-bottom') = number_with_delimiter(group.projects.non_archived.count) - %span.gl-ml-5 + %span.gl-ml-5.has-tooltip{ title: _('Users') } = sprite_icon('users', css_class: 'gl-vertical-align-text-bottom') = number_with_delimiter(group.users.count) diff --git a/app/views/shared/groups/_search_form.html.haml b/app/views/shared/groups/_search_form.html.haml index 2afac0ad733..f8e400ab688 100644 --- a/app/views/shared/groups/_search_form.html.haml +++ b/app/views/shared/groups/_search_form.html.haml @@ -1,2 +1,2 @@ = form_tag request.path, method: :get, class: "group-filter-form js-group-filter-form", id: 'group-filter-form' do |f| - = search_field_tag :filter, params[:filter], placeholder: s_('GroupsTree|Search by name'), class: 'group-filter-form-field form-control js-groups-list-filter', data: { qa_selector: 'groups_filter_field' }, spellcheck: false, id: 'group-filter-form-field' + = search_field_tag :filter, params[:filter], placeholder: s_('GroupsTree|Search by name'), class: 'group-filter-form-field form-control js-groups-list-filter', data: { testid: 'groups-filter-field' }, spellcheck: false, id: 'group-filter-form-field' diff --git a/app/views/shared/icons/_caret_down.svg b/app/views/shared/icons/_caret_down.svg deleted file mode 100644 index fd80fd0f651..00000000000 --- a/app/views/shared/icons/_caret_down.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" class="caret-down" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 10.243l-4.95-4.95a1 1 0 0 0-1.414 1.414l5.657 5.657a.997.997 0 0 0 1.414 0l5.657-5.657a1 1 0 0 0-1.414-1.414L8 10.243z"/></svg> diff --git a/app/views/shared/issuable/_search_bar.html.haml b/app/views/shared/issuable/_search_bar.html.haml index 52c8a4d4123..8db7f7345f4 100644 --- a/app/views/shared/issuable/_search_bar.html.haml +++ b/app/views/shared/issuable/_search_bar.html.haml @@ -1,6 +1,8 @@ - type = local_assigns.fetch(:type) - show_sorting_dropdown = local_assigns.fetch(:show_sorting_dropdown, true) - disable_target_branch = local_assigns.fetch(:disable_target_branch, false) +- disable_releases = local_assigns.fetch(:disable_releases, false) +- disable_environments = local_assigns.fetch(:disable_environments, false) - placeholder = local_assigns[:placeholder] || _('Search or filter results…') - block_css_class = type != :productivity_analytics ? 'row-content-block second-block' : '' @@ -111,19 +113,20 @@ %button.btn.btn-link.js-data-value{ type: 'button' } {{title}} = render_if_exists 'shared/issuable/filter_iteration', type: type - #js-dropdown-release.filtered-search-input-dropdown-menu.dropdown-menu - %ul{ data: { dropdown: true } } - %li.filter-dropdown-item{ data: { value: 'None' } } - %button.btn.btn-link{ type: 'button' } - = _('None') - %li.filter-dropdown-item{ data: { value: 'Any' } } - %button.btn.btn-link{ type: 'button' } - = _('Any') - %li.divider.droplab-item-ignore - %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } } - %li.filter-dropdown-item - %button.btn.btn-link.js-data-value{ type: 'button' } - {{title}} + - unless disable_releases + #js-dropdown-release.filtered-search-input-dropdown-menu.dropdown-menu + %ul{ data: { dropdown: true } } + %li.filter-dropdown-item{ data: { value: 'None' } } + %button.btn.btn-link{ type: 'button' } + = _('None') + %li.filter-dropdown-item{ data: { value: 'Any' } } + %button.btn.btn-link{ type: 'button' } + = _('Any') + %li.divider.droplab-item-ignore + %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } } + %li.filter-dropdown-item + %button.btn.btn-link.js-data-value{ type: 'button' } + {{title}} #js-dropdown-label.filtered-search-input-dropdown-menu.dropdown-menu %ul{ data: { dropdown: true } } %li.filter-dropdown-item{ data: { value: 'None' } } @@ -190,11 +193,12 @@ %li.filter-dropdown-item %button.btn.btn-link.js-data-value.monospace {{title}} - #js-dropdown-environment.filtered-search-input-dropdown-menu.dropdown-menu - %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } } - %li.filter-dropdown-item - %button.btn.btn-link.js-data-value{ type: 'button' } - {{title}} + - unless disable_environments + #js-dropdown-environment.filtered-search-input-dropdown-menu.dropdown-menu + %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } } + %li.filter-dropdown-item + %button.btn.btn-link.js-data-value{ type: 'button' } + {{title}} = render_if_exists 'shared/issuable/filter_weight', type: type diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index f018e4f122e..9477d36c9b9 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -15,7 +15,7 @@ %aside.right-sidebar.js-right-sidebar.js-issuable-sidebar{ data: { always_show_toggle: true, signed: { in: signed_in }, issuable_type: issuable_type }, class: "#{sidebar_gutter_collapsed_class(is_merge_request_with_flag)} #{'right-sidebar-merge-requests' if is_merge_request_with_flag}", 'aria-live' => 'polite', 'aria-label': issuable_type } .issuable-sidebar{ class: "#{'is-merge-request' if is_merge_request_with_flag}" } - .issuable-sidebar-header{ class: "gl-pb-4! #{'gl-pb-2! gl-md-display-flex gl-justify-content-end gl-lg-display-none!' if is_merge_request_with_flag}" } + .issuable-sidebar-header{ class: "#{'gl-pb-2! gl-md-display-flex gl-justify-content-end gl-lg-display-none!' if is_merge_request_with_flag}" } = render Pajamas::ButtonComponent.new(button_options: { class: "gutter-toggle float-right js-sidebar-toggle has-tooltip gl-shadow-none! #{'gl-display-block' if moved_sidebar_enabled} #{'gl-mt-2' if notifications_todos_buttons_enabled?}" , type: 'button', 'aria-label' => _('Toggle sidebar'), title: sidebar_gutter_tooltip_text, data: { container: 'body', placement: 'left', boundary: 'viewport' } }) do = sidebar_gutter_toggle_icon - if signed_in @@ -51,7 +51,7 @@ - if in_group_context_with_iterations .block.gl-collapse-empty{ data: { testid: 'iteration-container' } }< - = render_if_exists 'shared/issuable/iteration_select', can_edit: can_edit_issuable.to_s, group_path: @project.group.full_path, project_path: issuable_sidebar[:project_full_path], issue_iid: issuable_sidebar[:iid], issuable_type: issuable_type + = render_if_exists 'shared/issuable/iteration_select', can_edit: can_edit_issuable.to_s, group_path: @project.group.full_path, project_path: issuable_sidebar[:project_full_path], issue_iid: issuable_sidebar[:iid], issuable_type: issuable_type, issue_id: issuable_sidebar[:id] - if issuable_sidebar[:show_crm_contacts] .block.contact diff --git a/app/views/shared/members/_access_request_links.html.haml b/app/views/shared/members/_access_request_links.html.haml deleted file mode 100644 index 0d692ee753a..00000000000 --- a/app/views/shared/members/_access_request_links.html.haml +++ /dev/null @@ -1,18 +0,0 @@ -- model_name = source.model_name.to_s.downcase - -- if can?(current_user, :"destroy_#{model_name}_member", source.members.find_by(user_id: current_user.id)) # rubocop: disable CodeReuse/ActiveRecord - - link_text = source.is_a?(Group) ? _('Leave group') : _('Leave project') - = link_to link_text, polymorphic_path([:leave, source, :members]), - method: :delete, - aria: { label: link_text }, - data: { confirm: leave_confirmation_message(source), confirm_btn_variant: 'danger', qa_selector: 'leave_group_link' }, - class: 'js-leave-link' -- elsif requester = source.requesters.find_by(user_id: current_user.id) # rubocop: disable CodeReuse/ActiveRecord - - if can?(current_user, :withdraw_member_access_request, requester) - = link_to _('Withdraw Access Request'), polymorphic_path([:leave, source, :members]), - method: :delete, - 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, - data: { testid: 'request-access-link' } diff --git a/app/views/shared/nav/_admin_scope_header.html.haml b/app/views/shared/nav/_admin_scope_header.html.haml deleted file mode 100644 index 3a18b3660d4..00000000000 --- a/app/views/shared/nav/_admin_scope_header.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -%li.context-header - = link_to admin_root_path, title: _('Admin Area'), class: 'has-tooltip', data: { container: 'body', placement: 'right' } do - %span.avatar-container.icon-avatar.rect-avatar.s32 - = sprite_icon('admin', size: 18) - %span.sidebar-context-title - = _('Admin Area') diff --git a/app/views/shared/nav/_explore_scope_header.html.haml b/app/views/shared/nav/_explore_scope_header.html.haml deleted file mode 100644 index da22d6dbcf2..00000000000 --- a/app/views/shared/nav/_explore_scope_header.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -%li.context-header - = link_to explore_root_url, title: _('Explore'), class: 'has-tooltip', data: { container: 'body', placement: 'right' } do - %span.avatar-container.icon-avatar.rect-avatar.s32 - = sprite_icon('compass', size: 18) - %span.sidebar-context-title - = _('Explore') diff --git a/app/views/shared/nav/_scope_menu.html.haml b/app/views/shared/nav/_scope_menu.html.haml deleted file mode 100644 index 4e570086bf8..00000000000 --- a/app/views/shared/nav/_scope_menu.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -= nav_link(**scope_menu.active_routes, html_options: scope_menu.nav_link_html_options) do - = link_to scope_menu.link, **scope_menu.link_html_options, data: { qa_selector: 'sidebar_menu_link', qa_menu_item: scope_qa_menu_item(scope_menu.container) } do - %span{ class: scope_avatar_classes(scope_menu.container) } - = source_icon(scope_menu.container, alt: scope_menu.title, class: ['avatar', 'avatar-tile', 's32'], width: 32, height: 32) - %span.sidebar-context-title - = scope_menu.title diff --git a/app/views/shared/nav/_sidebar.html.haml b/app/views/shared/nav/_sidebar.html.haml deleted file mode 100644 index 91b0582e04a..00000000000 --- a/app/views/shared/nav/_sidebar.html.haml +++ /dev/null @@ -1,16 +0,0 @@ -%aside.nav-sidebar{ class: ('sidebar-collapsed-desktop' if collapsed_sidebar?), **sidebar_tracking_attributes_by_object(sidebar.container), 'aria-label': sidebar.aria_label } - .nav-sidebar-inner-scroll - %ul.sidebar-top-level-items{ data: { testid: sidebar_qa_selector(sidebar.container) } } - - if sidebar.render_raw_scope_menu_partial - = render sidebar.render_raw_scope_menu_partial - - elsif sidebar.scope_menu - = render partial: 'shared/nav/scope_menu', object: sidebar.scope_menu - - - if sidebar.renderable_menus.any? - = render partial: 'shared/nav/sidebar_menu', collection: sidebar.renderable_menus - - - if sidebar.render_raw_menus_partial - = render sidebar.render_raw_menus_partial - - = render partial: 'shared/nav/sidebar_hidden_menu_item', collection: sidebar.hidden_menu&.renderable_items - = render 'shared/sidebar_toggle_button' diff --git a/app/views/shared/nav/_sidebar_hidden_menu_item.html.haml b/app/views/shared/nav/_sidebar_hidden_menu_item.html.haml deleted file mode 100644 index d0ae5e99707..00000000000 --- a/app/views/shared/nav/_sidebar_hidden_menu_item.html.haml +++ /dev/null @@ -1,3 +0,0 @@ -%li.hidden - = link_to sidebar_hidden_menu_item.link, **sidebar_hidden_menu_item.link_html_options do - = sidebar_hidden_menu_item.title diff --git a/app/views/shared/nav/_sidebar_menu.html.haml b/app/views/shared/nav/_sidebar_menu.html.haml deleted file mode 100644 index 27f77ed4813..00000000000 --- a/app/views/shared/nav/_sidebar_menu.html.haml +++ /dev/null @@ -1,19 +0,0 @@ -= nav_link(**sidebar_menu.all_active_routes, html_options: sidebar_menu.nav_link_html_options) do - - if sidebar_menu.menu_with_partial? - = render_if_exists sidebar_menu.menu_partial, **sidebar_menu.menu_partial_options - - else - = link_to sidebar_menu.link, **sidebar_menu.link_html_options, data: { testid: 'sidebar_menu_link', qa_menu_item: sidebar_menu.title } do - - if sidebar_menu.icon_or_image? - %span.nav-icon-container - - if sidebar_menu.image_path - = image_tag(sidebar_menu.image_path, **sidebar_menu.image_html_options) - - elsif sidebar_menu.sprite_icon - = sprite_icon(sidebar_menu.sprite_icon, **sidebar_menu.sprite_icon_html_options) - - %span.nav-item-name{ **sidebar_menu.title_html_options } - = sidebar_menu.title - - if sidebar_menu.has_pill? - = gl_badge_tag({ variant: :info, size: :sm }, { class: "count #{sidebar_menu.pill_html_options[:class]}" }) do - = number_with_delimiter(sidebar_menu.pill_count) - - = render partial: 'shared/nav/sidebar_submenu', locals: { sidebar_menu: sidebar_menu } diff --git a/app/views/shared/nav/_sidebar_menu_item.html.haml b/app/views/shared/nav/_sidebar_menu_item.html.haml deleted file mode 100644 index ef488d06e87..00000000000 --- a/app/views/shared/nav/_sidebar_menu_item.html.haml +++ /dev/null @@ -1,11 +0,0 @@ -= nav_link(**sidebar_menu_item.active_routes, html_options: sidebar_menu_item.nav_link_html_options) do - = link_to sidebar_menu_item.link, **sidebar_menu_item.link_html_options, data: { testid: 'sidebar_menu_item_link', qa_menu_item: sidebar_menu_item.title } do - %span.gl-flex-grow-1 - = sidebar_menu_item.title - - if sidebar_menu_item.sprite_icon - = sprite_icon(sidebar_menu_item.sprite_icon, **sidebar_menu_item.sprite_icon_html_options) - - if sidebar_menu_item.has_pill? - = gl_badge_tag({ size: :sm, variant: :neutral }, { class: "count fly-out-badge gl-ml-3" }) do - = number_with_delimiter(sidebar_menu_item.pill_count) - - if sidebar_menu_item.show_hint? - .js-feature-highlight{ **sidebar_menu_item.hint_html_options } diff --git a/app/views/shared/nav/_sidebar_submenu.html.haml b/app/views/shared/nav/_sidebar_submenu.html.haml deleted file mode 100644 index 33b48470020..00000000000 --- a/app/views/shared/nav/_sidebar_submenu.html.haml +++ /dev/null @@ -1,12 +0,0 @@ -%ul.sidebar-sub-level-items{ class: ('is-fly-out-only' unless sidebar_menu.has_renderable_items?) } - = nav_link(**sidebar_menu.all_active_routes, html_options: { class: 'fly-out-top-item' }) do - %span.fly-out-top-item-container - %strong.fly-out-top-item-name - = sidebar_menu.title - - if sidebar_menu.has_pill? - = gl_badge_tag({ variant: :info, size: :sm }, { class: "count fly-out-badge #{sidebar_menu.pill_html_options[:class]}" }) do - = number_with_delimiter(sidebar_menu.pill_count) - - - if sidebar_menu.has_renderable_items? - %li.divider.fly-out-top-item - = render partial: 'shared/nav/sidebar_menu_item', collection: sidebar_menu.renderable_items diff --git a/app/views/shared/nav/_user_settings_scope_header.html.haml b/app/views/shared/nav/_user_settings_scope_header.html.haml deleted file mode 100644 index c1601822736..00000000000 --- a/app/views/shared/nav/_user_settings_scope_header.html.haml +++ /dev/null @@ -1,4 +0,0 @@ -%li.context-header - = link_to profile_path, title: _('User Settings'), class: 'has-tooltip', data: { container: 'body', placement: 'right' } do - = render Pajamas::AvatarComponent.new(current_user, size: 32, alt: current_user.name, class: 'gl-mr-3 js-sidebar-user-avatar', avatar_options: { data: { testid: 'sidebar-user-avatar' } }) - %span.sidebar-context-title= _('User Settings') diff --git a/app/views/shared/nav/_your_work_scope_header.html.haml b/app/views/shared/nav/_your_work_scope_header.html.haml deleted file mode 100644 index cdd0be3c682..00000000000 --- a/app/views/shared/nav/_your_work_scope_header.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -%li.context-header - = link_to root_path, title: _('Your work'), class: 'has-tooltip', data: { container: 'body', placement: 'right' } do - %span.avatar-container.icon-avatar.rect-avatar.s32 - = sprite_icon('work', size: 18) - %span.sidebar-context-title - = _('Your work') diff --git a/app/views/shared/notes/_edit_form.html.haml b/app/views/shared/notes/_edit_form.html.haml index d4dec49c367..76737ff99c5 100644 --- a/app/views/shared/notes/_edit_form.html.haml +++ b/app/views/shared/notes/_edit_form.html.haml @@ -1,3 +1,4 @@ +.js-snippets-note-edit-form-holder .snippets.note-edit-form = form_tag '#', method: :put, class: 'edit-note common-note-form js-quick-submit' do = hidden_field_tag :target_id, '', class: 'js-form-target-id' diff --git a/app/views/shared/projects/_project.html.haml b/app/views/shared/projects/_project.html.haml index e65dcd68f66..5bb15c2f5ca 100644 --- a/app/views/shared/projects/_project.html.haml +++ b/app/views/shared/projects/_project.html.haml @@ -38,7 +38,7 @@ = visibility_level_content(project, css_class: 'gl-mr-2') - if project.catalog_resource - = render partial: 'shared/ci_catalog_badge', locals: { href: project_ci_catalog_resource_path(project, project.catalog_resource), css_class: 'gl-mr-2' } + = render partial: 'shared/ci_catalog_badge', locals: { href: explore_catalog_path(project.catalog_resource), css_class: 'gl-mr-2' } - if explore_projects_tab? && project_license_name(project) %span.gl-display-inline-flex.gl-align-items-center.gl-mr-3 diff --git a/app/views/shared/projects/_topics.html.haml b/app/views/shared/projects/_topics.html.haml index c4524125a21..33e4ac58fa5 100644 --- a/app/views/shared/projects/_topics.html.haml +++ b/app/views/shared/projects/_topics.html.haml @@ -2,8 +2,9 @@ - if project.topics.present? .gl-w-full.gl-display-inline-flex.gl-flex-wrap.gl-font-base.gl-font-weight-normal.gl-align-items-center.gl-mx-n2.gl-my-n2{ 'data-testid': 'project_topic_list' } - %span.gl-p-2.gl-text-gray-500 - = _('Topics') + ':' + - if Feature.disabled?(:project_overview_reorg) + %span.gl-p-2.gl-text-gray-500 + = _('Topics') + ':' - project.topics_to_show.each do |topic| - explore_project_topic_path = topic_explore_projects_cleaned_path(topic_name: topic[:name]) - if topic[:title].length > max_project_topic_length diff --git a/app/views/shared/runners/_runner_description.html.haml b/app/views/shared/runners/_runner_description.html.haml index dc689303f77..6f918ae8103 100644 --- a/app/views/shared/runners/_runner_description.html.haml +++ b/app/views/shared/runners/_runner_description.html.haml @@ -19,4 +19,4 @@ %p = s_("Runners|Tags control which type of jobs a runner can handle. By tagging a runner, you make sure shared runners only handle the jobs they are equipped to run.") - = link_to _("Learn more."), help_page_path("ci/runners/configure_runners", anchor: "use-tags-to-control-which-jobs-a-runner-can-run"), target: '_blank' + = link_to _("Learn more."), help_page_path("ci/runners/configure_runners", anchor: "how-the-runner-uses-tags"), target: '_blank' diff --git a/app/views/shared/snippets/_snippet.html.haml b/app/views/shared/snippets/_snippet.html.haml index 9767f7929d0..56cdc30e760 100644 --- a/app/views/shared/snippets/_snippet.html.haml +++ b/app/views/shared/snippets/_snippet.html.haml @@ -6,6 +6,9 @@ = link_to gitlab_snippet_path(snippet), class: "title" do = snippet.title + - if snippet.hidden_due_to_author_ban? + %span{ class: 'has-tooltip gl-bg-orange-50 gl-text-orange-600 border-radius-default gl-p-2', title: s_("Snippets|This snippet is hidden because its author has been banned") } + = sprite_icon('spam', size: '16') %ul.controls{ data: { testid: 'snippet-file-count-content', qa_snippet_files: snippet.statistics&.file_count } } %li diff --git a/app/views/shared/wikis/_main_links.html.haml b/app/views/shared/wikis/_main_links.html.haml index 9a76069e8f6..2b9a64d6d04 100644 --- a/app/views/shared/wikis/_main_links.html.haml +++ b/app/views/shared/wikis/_main_links.html.haml @@ -1,6 +1,4 @@ - if @page&.persisted? - = link_button_to wiki_page_path(@wiki, @page, action: :history), role: "button", data: { testid: 'page-history-button' } do - = s_("Wiki|Page history") - if can?(current_user, :create_wiki, @wiki.container) = link_button_to wiki_path(@wiki, action: :new), role: "button", data: { testid: 'new-page-button' }, variant: :confirm, category: :secondary do = s_("Wiki|New page") diff --git a/app/views/shared/wikis/_sidebar_wiki_page.html.haml b/app/views/shared/wikis/_sidebar_wiki_page.html.haml index 710ecf6196e..afb26cf1d67 100644 --- a/app/views/shared/wikis/_sidebar_wiki_page.html.haml +++ b/app/views/shared/wikis/_sidebar_wiki_page.html.haml @@ -2,6 +2,6 @@ %li{ class: active_when(params[:id] == wiki_page.slug) } .gl-relative.gl-display-flex.gl-align-items-center.js-wiki-list-toggle.wiki-list{ data: { testid: 'wiki-list' } } - = render Pajamas::ButtonComponent.new(icon: 'plus', href: "#{wiki_path}/{new_page_title}", button_options: { class: 'wiki-list-create-child-button gl-bg-transparent! gl-hover-bg-gray-50! gl-focus-bg-gray-50! gl-absolute gl-top-half gl-translate-y-n50 gl-cursor-pointer gl-right-3' }) + = render Pajamas::ButtonComponent.new(icon: 'plus', size: :small, href: "#{wiki_path}/{new_page_title}", button_options: { class: 'wiki-list-create-child-button gl-bg-transparent! gl-hover-bg-gray-50! gl-focus-bg-gray-50! gl-absolute gl-top-half gl-translate-y-n50 gl-cursor-pointer gl-right-2' }) = link_to wiki_path, data: { testid: 'wiki-page-link', qa_page_name: wiki_page.human_title } do = wiki_page.human_title diff --git a/app/views/shared/wikis/_wiki_directory.html.haml b/app/views/shared/wikis/_wiki_directory.html.haml index 8b0b6dbd8f7..d939208811a 100644 --- a/app/views/shared/wikis/_wiki_directory.html.haml +++ b/app/views/shared/wikis/_wiki_directory.html.haml @@ -1,10 +1,10 @@ - wiki_path = wiki_page_path(@wiki, wiki_directory) -%li{ class: ['wiki-directory', active_when(params[:id] == wiki_directory.slug)], data: { testid: 'wiki-directory-content' } } +%li{ data: { testid: 'wiki-directory-content' } } .gl-relative.gl-display-flex.gl-align-items-center.js-wiki-list-toggle.wiki-list{ data: { testid: 'wiki-list' } }< = sprite_icon('chevron-right', css_class: 'js-wiki-list-expand-button wiki-list-expand-button gl-mr-2 gl-cursor-pointer') = sprite_icon('chevron-down', css_class: 'js-wiki-list-collapse-button wiki-list-collapse-button gl-mr-2 gl-cursor-pointer') - = render Pajamas::ButtonComponent.new(icon: 'plus', href: "#{wiki_path}/{new_page_title}", button_options: { class: 'wiki-list-create-child-button gl-bg-transparent! gl-hover-bg-gray-50! gl-focus-bg-gray-50! gl-absolute gl-top-half gl-translate-y-n50 gl-cursor-pointer gl-right-3' }) + = render Pajamas::ButtonComponent.new(icon: 'plus', size: :small, href: "#{wiki_path}/{new_page_title}", button_options: { class: 'wiki-list-create-child-button gl-bg-transparent! gl-hover-bg-gray-50! gl-focus-bg-gray-50! gl-absolute gl-top-half gl-translate-y-n50 gl-cursor-pointer gl-right-2' }) = link_to wiki_path, data: { testid: 'wiki-dir-page-link', qa_page_name: wiki_directory.title } do = wiki_directory.title %ul.gl-pl-8 diff --git a/app/views/shared/wikis/diff.html.haml b/app/views/shared/wikis/diff.html.haml index 67772ec40c1..700d8a903a4 100644 --- a/app/views/shared/wikis/diff.html.haml +++ b/app/views/shared/wikis/diff.html.haml @@ -12,7 +12,7 @@ = _('Changes') .nav-controls.pb-md-3.pb-lg-0 - = link_button_to wiki_page_path(@wiki, @page, action: :history), role: 'button', data: { qa_selector: 'page_history_button' } do + = link_button_to wiki_page_path(@wiki, @page, action: :history), role: 'button', data: { testid: 'page-history-button' } do = s_('Wiki|Page history') .page-content-header diff --git a/app/views/shared/wikis/edit.html.haml b/app/views/shared/wikis/edit.html.haml index fc56a191cad..ce8c7782c7f 100644 --- a/app/views/shared/wikis/edit.html.haml +++ b/app/views/shared/wikis/edit.html.haml @@ -6,13 +6,13 @@ - if @error #js-wiki-error{ data: { error: @error, wiki_page_path: wiki_page_path(@wiki, @page) } } -.js-wiki-edit-page.wiki-page-header.top-area.has-sidebar-toggle.flex-column.flex-lg-row +.js-wiki-edit-page.wiki-page-header.has-sidebar-toggle.flex-column.flex-lg-row = wiki_sidebar_toggle_button %h1.page-title.gl-font-size-h-display.gl-flex-grow-1 - if @page.persisted? = link_to_wiki_page @page - %span.light + %span.gl-text-secondary · = s_("Wiki|Edit Page") - else diff --git a/app/views/shared/wikis/history.html.haml b/app/views/shared/wikis/history.html.haml index 052bbb3b410..4560f374fdf 100644 --- a/app/views/shared/wikis/history.html.haml +++ b/app/views/shared/wikis/history.html.haml @@ -11,7 +11,7 @@ = _('History') .prepend-top-default.gl-mb-3 - .table-holder + .table-holder{ data: { testid: 'wiki-history-table' } } %table.table.wiki-history %thead %tr diff --git a/app/views/shared/wikis/show.html.haml b/app/views/shared/wikis/show.html.haml index 2cd03c20080..a896aa29f52 100644 --- a/app/views/shared/wikis/show.html.haml +++ b/app/views/shared/wikis/show.html.haml @@ -1,7 +1,8 @@ - wiki_page_title @page - add_page_specific_style 'page_bundles/wiki' +- page_history = @page&.persisted? ? wiki_page_path(@wiki, @page, action: :history) : '' -.wiki-page-header.top-area.has-sidebar-toggle.flex-column.flex-lg-row +.wiki-page-header.top-area.has-sidebar-toggle.flex-column.flex-lg-row.gl-border-b-0 = wiki_sidebar_toggle_button .nav-text.flex-fill @@ -11,8 +12,12 @@ = time_ago_with_tooltip(@page.last_version.authored_date) .nav-controls.pb-md-3.pb-lg-0 + - if can?(current_user, :create_wiki, @wiki.container) && @page.latest? && @valid_encoding + = render Pajamas::ButtonComponent.new(href: wiki_page_path(@wiki, @page, action: :edit), button_options: { class: 'js-wiki-edit', data: { testid: 'wiki-edit-button' }}) do + = _('Edit') = render 'shared/wikis/main_links' - #js-export-actions{ data: { options: { target: '.js-wiki-page-content', title: @page.human_title, stylesheet: [stylesheet_path('application')] }.to_json } } + + #js-export-actions{ data: { options: { history: page_history, print: { target: '.js-wiki-page-content', title: @page.human_title, stylesheet: [stylesheet_path('application')] } }.to_json } } - if @page.historical? = render Pajamas::AlertComponent.new(variant: :warning, @@ -26,12 +31,9 @@ = render Pajamas::ButtonComponent.new(href: wiki_page_path(@wiki, @page, action: :history)) do = s_('WikiHistoricalPage|Browse history') -.gl-mt-5.gl-mb-3 +.gl-mb-3 .gl-display-flex.gl-justify-content-space-between %h2.gl-mt-0.gl-mb-5{ data: { testid: 'wiki-page-title' } }= @page.human_title - %div - - if can?(current_user, :create_wiki, @wiki.container) && @page.latest? && @valid_encoding - = render Pajamas::ButtonComponent.new(href: wiki_page_path(@wiki, @page, action: :edit), icon: 'pencil', button_options: { class: 'js-wiki-edit', title: "Edit", data: { testid: 'wiki-edit-button' }}) .js-async-wiki-page-content.md.gl-pt-2{ data: { qa_selector: 'wiki_page_content', testid: 'wiki-page-content', tracking_context: wiki_page_tracking_context(@page).to_json, get_wiki_content_url: wiki_page_render_api_endpoint(@page) } } |