Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2020-07-22 06:09:44 +00:00
parent 448ff1fb83
commit 6c7fe15312
15 changed files with 41 additions and 39 deletions

View file

@ -495,6 +495,10 @@
} }
} }
// The .btn-svg class is available for legacy icon buttons to
// preserve a 34px height and have 16x16 icons at the same time.
// Once a button is migrated (to the current 32px height)
// please remove this class from the new button.
.btn-svg svg { .btn-svg svg {
@include btn-svg; @include btn-svg;
} }

View file

@ -1,8 +1,8 @@
.nav-block.activities .nav-block.activities
= render 'shared/event_filter' = render 'shared/event_filter'
.controls .controls
= link_to dashboard_projects_path(rss_url_options), class: 'btn d-none d-sm-inline-block has-tooltip', title: 'Subscribe' do = link_to dashboard_projects_path(rss_url_options), class: 'btn gl-button btn-default btn-icon d-none d-sm-inline-flex has-tooltip', title: 'Subscribe' do
%i.fa.fa-rss = sprite_icon('rss', css_class: 'qa-rss-icon gl-icon', size: 16)
.content_list .content_list
.loading .loading

View file

@ -1,8 +1,8 @@
.nav-block.activities .nav-block.activities
= render 'shared/event_filter', show_group_events: @group.supports_events? = render 'shared/event_filter', show_group_events: @group.supports_events?
.controls .controls
= link_to group_path(@group, rss_url_options), class: 'btn d-none d-sm-inline-block has-tooltip' , title: 'Subscribe' do = link_to group_path(@group, rss_url_options), class: 'btn gl-button btn-default btn-icon d-none d-sm-inline-flex has-tooltip' , title: 'Subscribe' do
%i.fa.fa-rss = sprite_icon('rss', css_class: 'qa-rss-icon gl-icon', size: 16)
.content_list .content_list
.loading .loading

View file

@ -69,8 +69,8 @@
= render layout: 'users/cover_controls' do = render layout: 'users/cover_controls' do
= link_to '#', class: link_classes + 'btn btn-default' do = link_to '#', class: link_classes + 'btn btn-default' do
= sprite_icon('pencil') = sprite_icon('pencil')
= link_to '#', class: link_classes + 'btn btn-default' do = link_to '#', class: link_classes + 'btn btn-svg btn-default' do
= icon('rss') = sprite_icon('rss', css_class: 'qa-rss-icon', size: 16)
.avatar-holder .avatar-holder
= image_tag avatar_icon_for_email('admin@example.com', 90), class: "avatar s90", alt: '' = image_tag avatar_icon_for_email('admin@example.com', 90), class: "avatar s90", alt: ''
.cover-title .cover-title

View file

@ -4,8 +4,8 @@
.nav-block.d-none.d-sm-flex.activities.gl-static .nav-block.d-none.d-sm-flex.activities.gl-static
= render 'shared/event_filter' = render 'shared/event_filter'
.controls.gl-display-flex .controls.gl-display-flex
= link_to project_path(@project, rss_url_options), title: s_("ProjectActivityRSS|Subscribe"), class: 'btn d-none d-sm-inline-block has-tooltip' do = link_to project_path(@project, rss_url_options), title: s_("ProjectActivityRSS|Subscribe"), class: 'btn gl-button btn-default btn-icon d-none d-sm-inline-flex has-tooltip' do
= icon('rss') = sprite_icon('rss', css_class: 'qa-rss-icon gl-icon', size: 16)
- if is_project_overview && can?(current_user, :download_code, @project) - if is_project_overview && can?(current_user, :download_code, @project)
.project-clone-holder.d-none.d-md-inline-flex.gl-ml-2 .project-clone-holder.d-none.d-md-inline-flex.gl-ml-2
= render "projects/buttons/clone", dropdown_class: 'dropdown-menu-right' = render "projects/buttons/clone", dropdown_class: 'dropdown-menu-right'

View file

@ -26,8 +26,8 @@
= form_tag(project_commits_path(@project, @id), method: :get, class: 'commits-search-form js-signature-container', data: { 'signatures-path' => namespace_project_signatures_path }) do = form_tag(project_commits_path(@project, @id), method: :get, class: 'commits-search-form js-signature-container', data: { 'signatures-path' => namespace_project_signatures_path }) do
= search_field_tag :search, params[:search], { placeholder: _('Search by message'), id: 'commits-search', class: 'form-control search-text-input input-short gl-mt-3 gl-sm-mt-0 gl-min-w-full', spellcheck: false } = search_field_tag :search, params[:search], { placeholder: _('Search by message'), id: 'commits-search', class: 'form-control search-text-input input-short gl-mt-3 gl-sm-mt-0 gl-min-w-full', spellcheck: false }
.control.d-none.d-md-block .control.d-none.d-md-block
= link_to project_commits_path(@project, @ref, rss_url_options), title: _("Commits feed"), class: 'btn' do = link_to project_commits_path(@project, @ref, rss_url_options), title: _("Commits feed"), class: 'btn btn-svg' do
= icon("rss") = sprite_icon('rss', css_class: 'qa-rss-icon', size: 16)
= render_if_exists 'projects/commits/mirror_status' = render_if_exists 'projects/commits/mirror_status'

View file

@ -26,8 +26,8 @@
- if can?(current_user, :admin_tag, @project) - if can?(current_user, :admin_tag, @project)
= link_to new_project_tag_path(@project), class: 'btn btn-success new-tag-btn', data: { qa_selector: "new_tag_button" } do = link_to new_project_tag_path(@project), class: 'btn btn-success new-tag-btn', data: { qa_selector: "new_tag_button" } do
= s_('TagsPage|New tag') = s_('TagsPage|New tag')
= link_to project_tags_path(@project, rss_url_options), title: _("Tags feed"), class: 'btn d-none d-sm-inline-block has-tooltip' do = link_to project_tags_path(@project, rss_url_options), title: _("Tags feed"), class: 'btn btn-svg d-none d-sm-inline-block has-tooltip' do
= icon("rss") = sprite_icon('rss', css_class: 'qa-rss-icon', size: 16)
= render_if_exists 'projects/commits/mirror_status' = render_if_exists 'projects/commits/mirror_status'

View file

@ -1,4 +1,4 @@
= link_to safe_params.merge(rss_url_options), class: 'btn has-tooltip js-rss-button', data: { container: 'body' }, title: _('Subscribe to RSS feed') do = link_to safe_params.merge(rss_url_options), class: 'btn btn-svg has-tooltip', data: { container: 'body' }, title: _('Subscribe to RSS feed') do
= sprite_icon('rss') = sprite_icon('rss', css_class: 'qa-rss-icon', size: 16)
= link_to safe_params.merge(calendar_url_options), class: 'btn has-tooltip', data: { container: 'body' }, title: _('Subscribe to calendar') do = link_to safe_params.merge(calendar_url_options), class: 'btn has-tooltip', data: { container: 'body' }, title: _('Subscribe to calendar') do
= sprite_icon('calendar') = sprite_icon('calendar')

View file

@ -25,8 +25,8 @@
title: s_('UserProfile|Report abuse'), data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do title: s_('UserProfile|Report abuse'), data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do
= icon('exclamation-circle') = icon('exclamation-circle')
- if can?(current_user, :read_user_profile, @user) - if can?(current_user, :read_user_profile, @user)
= link_to user_path(@user, rss_url_options), class: link_classes + 'btn btn-default has-tooltip', title: s_('UserProfile|Subscribe'), 'aria-label': 'Subscribe' do = link_to user_path(@user, rss_url_options), class: link_classes + 'btn btn-svg btn-default has-tooltip', title: s_('UserProfile|Subscribe'), 'aria-label': 'Subscribe' do
= icon('rss') = sprite_icon('rss', css_class: 'qa-rss-icon', size: 16)
- if current_user && current_user.admin? - if current_user && current_user.admin?
= link_to [:admin, @user], class: link_classes + 'btn btn-default', title: s_('UserProfile|View user in admin area'), = link_to [:admin, @user], class: link_classes + 'btn btn-default', title: s_('UserProfile|View user in admin area'),
data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do

View file

@ -0,0 +1,5 @@
---
title: Replace fa-rss with GitLab SVG icon
merge_request: 36553
author:
type: other

View file

@ -1031,11 +1031,11 @@ also be logged with an accompanying replication job ID.
If your GitLab instance already has repositories, these won't be migrated If your GitLab instance already has repositories, these won't be migrated
automatically. automatically.
Repositories may be moved from one storage location using the [Repository Repositories may be moved from one storage location using the [Project repository storage moves API](../../api/project_repository_storage_moves.md):
API](../../api/projects.html#edit-project):
```shell ```shell
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --data "repository_storage=praefect" https://example.gitlab.com/api/v4/projects/123 curl --request POST --header "PRIVATE_TOKEN: <your_access_token>" --header "Content-Type: application/json" \
--data '{"destination_storage_name":"praefect"}' "https://gitlab.example.com/api/v4/projects/123/repository_storage_moves"
``` ```
## Debugging Praefect ## Debugging Praefect

View file

@ -3,17 +3,18 @@
module QA module QA
RSpec.describe 'Plan', :smoke, :reliable do RSpec.describe 'Plan', :smoke, :reliable do
describe 'mention' do describe 'mention' do
before do let(:user) { Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1) }
Flow::Login.sign_in let(:project) do
Resource::Project.fabricate_via_api! do |project|
@user = Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1)
project = Resource::Project.fabricate_via_api! do |project|
project.name = 'project-to-test-mention' project.name = 'project-to-test-mention'
project.visibility = 'private' project.visibility = 'private'
end end
end
project.add_member(@user) before do
Flow::Login.sign_in
project.add_member(user)
Resource::Issue.fabricate_via_api! do |issue| Resource::Issue.fabricate_via_api! do |issue|
issue.project = project issue.project = project
@ -22,7 +23,7 @@ module QA
it 'mentions another user in an issue' do it 'mentions another user in an issue' do
Page::Project::Issue::Show.perform do |show| Page::Project::Issue::Show.perform do |show|
at_username = "@#{@user.username}" at_username = "@#{user.username}"
show.select_all_activities_filter show.select_all_activities_filter
show.comment(at_username) show.comment(at_username)

View file

@ -2,13 +2,11 @@
require 'spec_helper' require 'spec_helper'
RSpec.describe 'User filters issues' do RSpec.describe 'User filters issues', :js do
let_it_be(:user) { create(:user) } let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project_empty_repo, :public) } let_it_be(:project) { create(:project_empty_repo, :public) }
before do before do
stub_feature_flags(vue_issuables_list: false)
%w[foobar barbaz].each do |title| %w[foobar barbaz].each do |title|
create(:issue, create(:issue,
author: user, author: user,

View file

@ -2,14 +2,10 @@
require 'spec_helper' require 'spec_helper'
RSpec.describe 'Issues > User sees empty state' do RSpec.describe 'Issues > User sees empty state', :js do
let_it_be(:project) { create(:project, :public) } let_it_be(:project) { create(:project, :public) }
let_it_be(:user) { project.creator } let_it_be(:user) { project.creator }
before do
stub_feature_flags(vue_issuables_list: false)
end
shared_examples_for 'empty state with filters' do shared_examples_for 'empty state with filters' do
it 'user sees empty state with filters' do it 'user sees empty state with filters' do
create(:issue, author: user, project: project) create(:issue, author: user, project: project)

View file

@ -9,8 +9,7 @@ end
RSpec.shared_examples "it has an RSS button with current_user's feed token" do RSpec.shared_examples "it has an RSS button with current_user's feed token" do
it "shows the RSS button with current_user's feed token" do it "shows the RSS button with current_user's feed token" do
expect(page) expect(page)
.to have_css("a:has(.fa-rss)[href*='feed_token=#{user.feed_token}']") .to have_css("a:has(.qa-rss-icon)[href*='feed_token=#{user.feed_token}']")
.or have_css("a.js-rss-button[href*='feed_token=#{user.feed_token}']")
end end
end end
@ -23,7 +22,6 @@ end
RSpec.shared_examples "it has an RSS button without a feed token" do RSpec.shared_examples "it has an RSS button without a feed token" do
it "shows the RSS button without a feed token" do it "shows the RSS button without a feed token" do
expect(page) expect(page)
.to have_css("a:has(.fa-rss):not([href*='feed_token'])") .to have_css("a:has(.qa-rss-icon):not([href*='feed_token'])")
.or have_css("a.js-rss-button:not([href*='feed_token'])")
end end
end end