diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index 2112342aebeb6ad778c32eee4ad37569cbfd80cd..2090a7e12d60445b1cb5e220dd589538654723e9 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -40,7 +40,7 @@ import Group from './group'; import GroupName from './group_name'; import GroupsList from './groups_list'; import ProjectsList from './projects_list'; -import ProjectEdit from './project_edit'; +import setupProjectEdit from './project_edit'; import MiniPipelineGraph from './mini_pipeline_graph_dropdown'; import BlobLinePermalinkUpdater from './blob/blob_line_permalink_updater'; import Landing from './landing'; @@ -266,7 +266,7 @@ import ShortcutsBlob from './shortcuts_blob'; } break; case 'projects:edit': - new ProjectEdit(); + setupProjectEdit(); break; case 'projects:pipelines:builds': case 'projects:pipelines:failures': diff --git a/app/assets/javascripts/project_edit.js b/app/assets/javascripts/project_edit.js index 042ec8e4494d538012148b8f0bded16ead0f4b81..d7d284b6c86ff132be1818c2c255c212b632e0fa 100644 --- a/app/assets/javascripts/project_edit.js +++ b/app/assets/javascripts/project_edit.js @@ -1,16 +1,9 @@ -export default class ProjectEdit { - constructor() { - this.transferForm = $('.js-project-transfer-form'); - this.selectNamespace = $('.js-project-transfer-form').find('.select2'); +export default function setupProjectEdit() { + const $transferForm = $('.js-project-transfer-form'); + const $selectNamespace = $transferForm.find('.select2'); - this.selectNamespaceChangedWrapper = this.selectNamespaceChanged.bind(this); - this.selectNamespace.on('change', this.selectNamespaceChangedWrapper); - this.selectNamespaceChanged(); - } - - selectNamespaceChanged() { - const selectedNamespaceValue = this.selectNamespace.val(); - - this.transferForm.find(':submit').prop('disabled', !selectedNamespaceValue); - } + $selectNamespace.on('change', () => { + $transferForm.find(':submit').prop('disabled', !$selectNamespace.val()); + }); + $selectNamespace.trigger('change'); } diff --git a/app/services/projects/transfer_service.rb b/app/services/projects/transfer_service.rb index a5e5d713ebd0f103295a9793b97dba2fe7113e41..eae352d35ce1c4e377d491a3b1c6545da213fa4a 100644 --- a/app/services/projects/transfer_service.rb +++ b/app/services/projects/transfer_service.rb @@ -16,9 +16,9 @@ module Projects transfer(project, new_namespace) else error_message = if new_namespace.blank? - 'Please select a namespace to transfer the project to' + 'Please select a new namespace for your project.' else - 'Transfer failed, please contact an admin' + 'Transfer failed, please contact an admin.' end project.errors.add(:new_namespace, error_message) false diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml index 435d5f4aa87689eca490d91b76d6f5de106162e5..f5549d7f4cde80efad4a32e3b22882d72e312b5f 100644 --- a/app/views/projects/edit.html.haml +++ b/app/views/projects/edit.html.haml @@ -253,7 +253,7 @@ = form_for([@project.namespace.becomes(Namespace), @project], url: transfer_namespace_project_path(@project.namespace, @project), method: :put, remote: true, html: { class: 'js-project-transfer-form' } ) do |f| .form-group = label_tag :new_namespace_id, nil, class: 'label-light' do - %span Select namespace to transfer to + %span Select a new namespace .form-group = select_tag :new_namespace_id, namespaces_options(nil), include_blank: true, class: 'select2' %ul diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index f117598555b3a6f0fd044e46a6a789524009eb55..5f9c747634c1b2f9c994aba14c3b10a0543b3913 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -266,7 +266,7 @@ describe ProjectsController do expect(project.namespace.id).to eq(old_namespace_id) expect(response).to have_http_status(200) - expect(flash[:alert]).to eq 'Please select a namespace to transfer the project to' + expect(flash[:alert]).to eq 'Please select a new namespace for your project.' end end end diff --git a/spec/services/projects/transfer_service_spec.rb b/spec/services/projects/transfer_service_spec.rb index 5c872047bdfd0aa3fa4f66fd1e84577cc75021ce..2bddb6f3e422dac18394a609a3cf87fac6b52b19 100644 --- a/spec/services/projects/transfer_service_spec.rb +++ b/spec/services/projects/transfer_service_spec.rb @@ -26,7 +26,7 @@ describe Projects::TransferService, services: true do it { expect(@result).to eq false } it { expect(project.namespace).to eq(user.namespace) } - it { expect(project.errors.messages[:new_namespace][0]).to eq 'Please select a namespace to transfer the project to' } + it { expect(project.errors.messages[:new_namespace][0]).to eq 'Please select a new namespace for your project.' } end context 'disallow transfering of project with tags' do