diff --git a/app/controllers/import/gitlab_project_controller.rb b/app/controllers/import/gitlab_projects_controller.rb similarity index 86% rename from app/controllers/import/gitlab_project_controller.rb rename to app/controllers/import/gitlab_projects_controller.rb index fa3e0c7876d..c99c97893ad 100644 --- a/app/controllers/import/gitlab_project_controller.rb +++ b/app/controllers/import/gitlab_projects_controller.rb @@ -1,14 +1,13 @@ -class Import::GitlabProjectController < Import::BaseController +class Import::GitlabProjectsController < Import::BaseController before_action :verify_gitlab_project_import_enabled - before_action :gitlab_project_auth, except: :callback + #before_action :gitlab_project_auth, except: :callback rescue_from OAuth::Error, with: :gitlab_project_unauthorized #TODO permissions stuff - def callback + def new - redirect_to status_import_gitlab_project_url end def status diff --git a/app/views/import/gitlab_projects/new.html.haml b/app/views/import/gitlab_projects/new.html.haml new file mode 100644 index 00000000000..64ea536698d --- /dev/null +++ b/app/views/import/gitlab_projects/new.html.haml @@ -0,0 +1,17 @@ +- page_title "FogBugz Import" +- header_title "Projects", root_path +%h3.page-title + %i.fa.fa-bug + Import projects from FogBugz +%hr + += form_tag status_import_gitlab_project_url, class: 'form-horizontal' do + %p + To get started you add your project export file below. + .form-group + = label_tag :file, class: 'control-label' do + %span GitLab export file + .col-sm-10 + = file_field_tag :file, class: '' + .form-actions + = submit_tag 'Continue to the next step', class: 'btn btn-create' diff --git a/app/views/import/gitlab_projects/status.html.haml b/app/views/import/gitlab_projects/status.html.haml new file mode 100644 index 00000000000..2b879f0c595 --- /dev/null +++ b/app/views/import/gitlab_projects/status.html.haml @@ -0,0 +1,55 @@ +- 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}"); diff --git a/app/views/projects/_project_import_form.html.haml b/app/views/projects/_project_import_form.html.haml deleted file mode 100644 index 62d4b55424c..00000000000 --- a/app/views/projects/_project_import_form.html.haml +++ /dev/null @@ -1,8 +0,0 @@ -.form-group.import-url-data - = f.label :import_url, class: 'control-label' do - %span GitLab export file - .col-sm-10 - = f.file_field :file, class: '' - - .well.prepend-top-20 - The project must have a valid Gitlab export format \ No newline at end of file diff --git a/app/views/projects/new.html.haml b/app/views/projects/new.html.haml index cf24c4cacf3..d4bb57aafc7 100644 --- a/app/views/projects/new.html.haml +++ b/app/views/projects/new.html.haml @@ -91,14 +91,12 @@ %span Repo by URL - if gitlab_project_import_enabled? - = link_to "#", class: 'btn import_gitlab_project', onclick: '$(".js-toggle-content2").toggle();' do + = link_to new_import_gitlab_project_path, class: 'btn import_gitlab_project' do %i.fa.fa-gitlab %span GitLab project .js-toggle-content.hide = render "shared/import_form", f: f - .js-toggle-content2.hide - = render "project_import_form", f: f .prepend-botton-10 diff --git a/config/routes.rb b/config/routes.rb index b4e1abd2768..05e89e81500 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -159,7 +159,6 @@ Rails.application.routes.draw do resource :gitlab_project, only: [:create, :new], controller: :gitlab_projects do get :status - get :callback get :jobs end end