From 7995faeb6764d36c600cc209df20071abd4d4d30 Mon Sep 17 00:00:00 2001 From: jmiocene <jmiocene@gitlab.com> Date: Mon, 8 Apr 2024 13:37:49 +0200 Subject: [PATCH] Show alert when project transfer is still running Changelog: changed --- app/views/layouts/project.html.haml | 1 + app/views/projects/_transferring_alert.haml | 9 ++++++++ locale/gitlab.pot | 6 +++++ spec/views/layouts/project.html.haml_spec.rb | 23 +++++++++++++++++++- 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 app/views/projects/_transferring_alert.haml diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml index a0d993c73c54f..ee87e0ae159e7 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 0000000000000..3546b7a17c519 --- /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 0117709fb6e42..470921040ba49 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 d19c600d9f20e..ac75c8259470b 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 -- GitLab