summaryrefslogtreecommitdiff
path: root/app/views/import/bitbucket/status.html.haml
blob: d405acef75c3b482465a3b3c0245991d03bbe2a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
- page_title _('Bitbucket import')
- header_title _('Projects'), root_path

%h3.page-title
  %i.fa.fa-bitbucket
  = _('Import projects from Bitbucket')

- if Feature.enabled?(:new_import_ui)
  = render 'import/githubish_status', provider: 'bitbucket'
- else
  - if @repos.any?
    %p.light
      = _('Select projects you want to import.')
    %p
    - if @incompatible_repos.any?
      = button_tag class: 'btn btn-import btn-success js-import-all' do
        = _('Import all compatible projects')
        = icon('spinner spin', class: 'loading-icon')
    - else
      = button_tag class: 'btn btn-import btn-success js-import-all' do
        = _('Import all projects')
        = icon('spinner spin', class: 'loading-icon')

  .position-relative.ms-no-clear.d-flex.flex-fill.float-right.append-bottom-10
    = form_tag status_import_bitbucket_path, method: 'get' do
      = text_field_tag :filter, @filter, class: 'form-control pr-5', placeholder: _('Filter projects'), size: 40, autofocus: true, 'aria-label': _('Search')
      .position-absolute.position-top-0.d-flex.align-items-center.text-muted.position-right-0.h-100
        .border-left
          %button{ class: 'btn btn-transparent btn-secondary', 'aria-label': _('Search Button'), type: 'submit' }
            %i{ class: 'fa fa-search', 'aria-hidden': true }

  .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 Bitbucket')
          %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://bitbucket.org/#{project.import_source}", target: '_blank', rel: 'noopener noreferrer'
            %td
              = link_to project.full_path, [project.namespace.becomes(Namespace), project]
            %td.job-status
              - case project.import_status
              - when 'finished'
                %span
                  %i.fa.fa-check
                  = _('done')
              - when 'started'
                %i.fa.fa-spinner.fa-spin
                = _('started')
              - else
                = project.human_import_status_name

        - @repos.each do |repo|
          %tr{ id: "repo_#{repo.owner}___#{repo.slug}" }
            %td
              = link_to repo.full_name, "https://bitbucket.org/#{repo.full_name}", target: '_blank', rel: 'noopener noreferrer'
            %td.import-target
              %fieldset.row
              .input-group
                .project-path.input-group-prepend
                  - 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-group-text input-large form-control", tabindex: 1, disabled: true
                %span.input-group-prepend
                  .input-group-text /
                = text_field_tag :path, sanitize_project_name(repo.slug), 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')
                = icon('spinner spin', class: 'loading-icon')
        - @incompatible_repos.each do |repo|
          %tr{ id: "repo_#{repo.owner}___#{repo.slug}" }
            %td
              = link_to repo.full_name, "https://bitbucket.org/#{repo.full_name}", target: '_blank', rel: 'noopener noreferrer'
            %td.import-target
            %td.import-actions-job-status
              = label_tag _('Incompatible Project'), nil, class: 'label badge-danger'

  - if @incompatible_repos.any?
    %p
      = _("One or more of your Bitbucket projects cannot be imported into GitLab directly because they use Subversion or Mercurial for version control, rather than Git.")
      - link_to_git = link_to(_('Git'), 'https://www.atlassian.com/git/tutorials/migrating-overview')
      - link_to_import_flow = link_to(_('import flow'), status_import_bitbucket_path)
      = _("Please convert them to %{link_to_git}, and go through the %{link_to_import_flow} again.").html_safe % { link_to_git: link_to_git, link_to_import_flow: link_to_import_flow }

  .js-importer-status{ data: { jobs_import_path: "#{jobs_import_bitbucket_path}", import_path: "#{import_bitbucket_path}" } }