summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-11-11 14:44:31 -0800
committerStan Hu <stanhu@gmail.com>2016-11-21 16:47:27 -0800
commit478730bebd5c8a9505490d2b396ac3c866da1b09 (patch)
tree868429d273ffafe700a568080086734b0c3fbe38
parenta0959430516f57ad27df21447777ebb226890647 (diff)
downloadgitlab-ce-478730bebd5c8a9505490d2b396ac3c866da1b09.tar.gz
Support selection of different namespace and project destination
-rw-r--r--app/controllers/import/bitbucket_controller.rb6
-rw-r--r--app/views/import/bitbucket/status.html.haml14
2 files changed, 15 insertions, 5 deletions
diff --git a/app/controllers/import/bitbucket_controller.rb b/app/controllers/import/bitbucket_controller.rb
index 5326dce4ebb..e7150cb8e95 100644
--- a/app/controllers/import/bitbucket_controller.rb
+++ b/app/controllers/import/bitbucket_controller.rb
@@ -39,9 +39,9 @@ class Import::BitbucketController < Import::BaseController
client = Bitbucket::Client.new(credentials)
@repo_id = params[:repo_id].to_s
- name = @repo_id.to_s.gsub('___', '/')
+ name = @repo_id.gsub('___', '/')
repo = client.repo(name)
- @project_name = repo.name
+ @project_name = params[:new_name].presence || repo.name
repo_owner = repo.owner
repo_owner = current_user.username if repo_owner == client.user.username
@@ -50,7 +50,7 @@ class Import::BitbucketController < Import::BaseController
namespace = find_or_create_namespace(@target_namespace, repo_owner)
if current_user.can?(:create_projects, namespace)
- @project = Gitlab::BitbucketImport::ProjectCreator.new(repo, namespace, current_user, credentials).execute
+ @project = Gitlab::BitbucketImport::ProjectCreator.new(repo, @project_name, namespace, current_user, credentials).execute
else
render 'unauthorized'
end
diff --git a/app/views/import/bitbucket/status.html.haml b/app/views/import/bitbucket/status.html.haml
index e62ff5f61f6..cc262e97ceb 100644
--- a/app/views/import/bitbucket/status.html.haml
+++ b/app/views/import/bitbucket/status.html.haml
@@ -15,7 +15,7 @@
Import all compatible projects
= icon('spinner spin', class: 'loading-icon')
- else
- = button_tag class: 'btn btn-success js-import-all' do
+ = button_tag class: 'btn btn-import btn-success js-import-all' do
Import all projects
= icon('spinner spin', class: 'loading-icon')
@@ -52,7 +52,17 @@
%td
= link_to "#{repo.full_name}", "https://bitbucket.org/#{repo.full_name}", target: "_blank"
%td.import-target
- = "#{repo.full_name}"
+ %fieldset.row
+ .input-group
+ .project-path.input-group-btn
+ - if current_user.can_select_namespace?
+ - selected = params[:namespace_id] || :current_user
+ - opts = current_user.can_create_group? ? { extra_group: Group.new(name: repo.owner, path: repo.owner) } : {}
+ = select_tag :namespace_id, namespaces_options(selected, opts.merge({ display_path: true })), { class: 'select2 js-select-namespace', tabindex: 1 }
+ - else
+ = text_field_tag :path, current_user.namespace_path, class: "input-large form-control", tabindex: 1, disabled: true
+ %span.input-group-addon /
+ = text_field_tag :path, repo.name, class: "input-mini form-control", tabindex: 2, autofocus: true, required: true
%td.import-actions.job-status
= button_tag class: 'btn btn-import js-add-to-import' do
Import