Commit 07ab6c2e authored by James Lopez's avatar James Lopez

refactoring and fixing a bunch of stuff

parent 7ebf22e0
...@@ -12,13 +12,7 @@ class Import::GitlabProjectsController < Import::BaseController ...@@ -12,13 +12,7 @@ class Import::GitlabProjectsController < Import::BaseController
end end
def status def status
@repos = client.projects
@incompatible_repos = client.incompatible_projects
@already_added_projects = current_user.created_projects.where(import_type: "gitlab_project")
already_added_projects_names = @already_added_projects.pluck(:import_source)
@repos.to_a.reject!{ |repo| already_added_projects_names.include? "#{repo["owner"]}/#{repo["slug"]}" }
end end
def jobs def jobs
...@@ -39,6 +33,8 @@ class Import::GitlabProjectsController < Import::BaseController ...@@ -39,6 +33,8 @@ class Import::GitlabProjectsController < Import::BaseController
tmp_file: File.expand_path(file.path), tmp_file: File.expand_path(file.path),
namespace_id: namespace_id, namespace_id: namespace_id,
project_path: path) project_path: path)
redirect_to status_import_gitlab_project_path
end end
private private
......
- page_title "Gitlab_project import"
- header_title "Projects", root_path
%h3.page-title
%i.icon-gitlab.icon-gitlab-big
Import Gitlab projects
%p.light
Select projects you want to import.
%hr
%p
= button_tag class: "btn btn-import btn-success js-import-all" do
Import all projects
= icon("spinner spin", class: "loading-icon")
.table-responsive
%table.table.import-jobs
%colgroup.import-jobs-from-col
%colgroup.import-jobs-to-col
%colgroup.import-jobs-status-col
%thead
%tr
%th From Gitlab_project.org
%th To GitLab
%th Status
%tbody
- @already_added_projects.each do |project|
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"}
%td
= link_to project.import_source, "https://gitlab_project.org/#{project.import_source}", target: "_blank"
%td
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
%td.job-status
- if project.import_status == 'finished'
%span
%i.fa.fa-check
done
- elsif project.import_status == 'started'
%i.fa.fa-spinner.fa-spin
started
- else
= project.human_import_status_name
- @repos.each do |repo|
%tr{id: "repo_#{repo.id}"}
%td
= link_to repo.full_name, "https://gitlab_project.org/#{repo.full_name}", target: "_blank"
%td.import-target
= repo.full_name
%td.import-actions.job-status
= button_tag class: "btn btn-import js-add-to-import" do
Import
= icon("spinner spin", class: "loading-icon")
:javascript
new ImporterStatus("#{jobs_import_gitlab_project_path}", "#{import_gitlab_project_path}");
...@@ -9,7 +9,7 @@ module Gitlab ...@@ -9,7 +9,7 @@ module Gitlab
untar_with_options(archive: archive, dir: dir, options: 'zxf') untar_with_options(archive: archive, dir: dir, options: 'zxf')
end end
def untar_czf(archive:, dir:) def untar_xf(archive:, dir:)
untar_with_options(archive: archive, dir: dir, options: 'xf') untar_with_options(archive: archive, dir: dir, options: 'xf')
end end
......
...@@ -15,8 +15,7 @@ module Gitlab ...@@ -15,8 +15,7 @@ module Gitlab
def execute def execute
Gitlab::ImportExport::Importer.import(archive_file: @archive_file, storage_path: storage_path) Gitlab::ImportExport::Importer.import(archive_file: @archive_file, storage_path: storage_path)
restore_project_tree project_tree.project if [restore_project_tree, restore_repo].all?
restore_repo
end end
private private
......
...@@ -15,7 +15,7 @@ module Gitlab ...@@ -15,7 +15,7 @@ module Gitlab
FileUtils.mkdir_p(repos_path) FileUtils.mkdir_p(repos_path)
FileUtils.mkdir_p(path_to_repo) FileUtils.mkdir_p(path_to_repo)
untar_zxf(archive: @path, dir: path_to_repo) untar_xf(archive: @path, dir: path_to_repo)
end end
private private
......
...@@ -8,6 +8,8 @@ feature 'project import', feature: true, js: true do ...@@ -8,6 +8,8 @@ feature 'project import', feature: true, js: true do
let(:file) { File.join(Rails.root, 'spec', 'features', 'projects', 'import_export', 'test_project_export.tar.gz') } let(:file) { File.join(Rails.root, 'spec', 'features', 'projects', 'import_export', 'test_project_export.tar.gz') }
background do background do
export_path = "#{Dir::tmpdir}/import_file_spec"
allow_any_instance_of(Gitlab::ImportExport).to receive(:storage_path).and_return(export_path)
login_as(user) login_as(user)
end end
...@@ -27,9 +29,6 @@ feature 'project import', feature: true, js: true do ...@@ -27,9 +29,6 @@ feature 'project import', feature: true, js: true do
sleep 1 sleep 1
click_on 'Continue to the next step' click_on 'Continue to the next step'
sleep 1
end end
def drop_in_dropzone(file_path) def drop_in_dropzone(file_path)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment