diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml index a0d993c73c54f6c3561dfc83f6fa0b108fa02a63..ee87e0ae159e74bb6f63babae8068b4068fbbcec 100644 --- a/app/views/layouts/project.html.haml +++ b/app/views/layouts/project.html.haml @@ -22,6 +22,7 @@ = render 'projects/invite_members_modal', project: @project = render_if_exists "shared/saml_reload_modal", group_or_project: @project += dispensable_render_if_exists "projects/transferring_alert", project: @project = dispensable_render_if_exists "projects/importing_alert", project: @project = dispensable_render_if_exists "shared/web_hooks/web_hook_disabled_alert" = dispensable_render_if_exists "projects/free_user_cap_alert", project: @project diff --git a/app/views/projects/_transferring_alert.haml b/app/views/projects/_transferring_alert.haml new file mode 100644 index 0000000000000000000000000000000000000000..3546b7a17c51987ea1ed709db5d0e867fe25ad6d --- /dev/null +++ b/app/views/projects/_transferring_alert.haml @@ -0,0 +1,9 @@ +- return unless project.git_transfer_in_progress? + +- content_for :page_level_alert do + = render Pajamas::AlertComponent.new(variant: :warning, + dismissible: false, + title: _('Transfer in progress'), + alert_options: { class: 'gl-mb-3', data: { testid: "transferring-alert" } }) do |c| + - c.with_body do + = s_('TransferProject|This project is being transferred. Do not make any changes to the project until the transfer is complete.') diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 0117709fb6e42859cbe76e13a3fb4ce7eeb1f4db..470921040ba49a2f6ad0563f9dbbdfb2dd7bb2d9 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -54011,6 +54011,9 @@ msgstr "" msgid "Transfer group to another parent group." msgstr "" +msgid "Transfer in progress" +msgstr "" + msgid "Transfer project" msgstr "" @@ -54065,6 +54068,9 @@ msgstr "" msgid "TransferProject|Root namespace can't be updated if the project has NPM packages scoped to the current root level namespace." msgstr "" +msgid "TransferProject|This project is being transferred. Do not make any changes to the project until the transfer is complete." +msgstr "" + msgid "TransferProject|You don't have permission to transfer projects into that namespace." msgstr "" diff --git a/spec/views/layouts/project.html.haml_spec.rb b/spec/views/layouts/project.html.haml_spec.rb index d19c600d9f20e565d809b7b104b65ab68ae8d338..ac75c8259470b8834971d0f91e8aa074d4a8e29d 100644 --- a/spec/views/layouts/project.html.haml_spec.rb +++ b/spec/views/layouts/project.html.haml_spec.rb @@ -4,10 +4,11 @@ RSpec.describe 'layouts/project', feature_category: :groups_and_projects do let(:invite_member) { true } + let(:project) { build_stubbed(:project) } before do allow(view).to receive(:can_admin_project_member?).and_return(invite_member) - assign(:project, build_stubbed(:project)) + assign(:project, project) allow(view).to receive(:current_user_mode).and_return(Gitlab::Auth::CurrentUserMode.new(build_stubbed(:user))) end @@ -26,4 +27,24 @@ it { is_expected.not_to have_selector('.js-invite-members-modal') } end + + context 'with no transfer in progress' do + before do + allow(project).to receive(:git_transfer_in_progress?).and_return(false) + end + + it 'does not render the alert' do + is_expected.not_to have_css('[data-testid="transferring-alert"]') + end + end + + context 'with transfer in progress' do + before do + allow(project).to receive(:git_transfer_in_progress?).and_return(true) + end + + it 'renders the alert' do + is_expected.to have_css('[data-testid="transferring-alert"]') + end + end end