status.html.haml 1.99 KB
Newer Older
Valery Sizov's avatar
Valery Sizov committed
1
%h3.page-title
2 3
  %i.fa.fa-github
  Import repositories from GitHub.com
Valery Sizov's avatar
Valery Sizov committed
4

5
%p.light
6
  Select projects you want to import.  
7 8 9

%hr
%table.table.import-jobs
Valery Sizov's avatar
Valery Sizov committed
10 11 12 13 14 15
  %thead
    %tr
      %th From GitHub
      %th To GitLab
      %th Status
  %tbody
16
    - @already_added_projects.each do |project|
17
      %tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"}
18 19
        %td= project.import_source
        %td
20
          %strong= link_to project.path_with_namespace, project
21
        %td.job-status
22 23 24 25 26 27 28
          - if project.import_status == 'finished'
            %span.cgreen
              %i.fa.fa-check
              done
          - else
            = project.human_import_status_name

Valery Sizov's avatar
Valery Sizov committed
29 30 31
    - @repos.each do |repo|
      %tr{id: "repo_#{repo.id}"}
        %td= repo.full_name
32
        %td.import-target
Valery Sizov's avatar
Valery Sizov committed
33
          = repo.full_name
34
        %td.import-actions.job-status
Valery Sizov's avatar
Valery Sizov committed
35
          = button_tag "Add", class: "btn btn-add-to-import"
36

Valery Sizov's avatar
Valery Sizov committed
37 38 39 40 41 42 43 44 45

:coffeescript
  $(".btn-add-to-import").click () ->
    new_namespace = null
    tr = $(this).closest("tr")
    id = tr.attr("id").replace("repo_", "")
    if tr.find(".import-target input").length > 0
      new_namespace = tr.find(".import-target input").prop("value")
      tr.find(".import-target").empty().append(new_namespace + "/" + tr.find(".import-target").data("project_name"))
46
    $.post "#{import_github_url}", {repo_id: id, new_namespace: new_namespace}, dataType: 'script'
47 48 49
  

  setInterval (->
50
    $.get "#{jobs_import_github_path}", (data)->
51 52 53 54 55 56 57 58 59 60 61 62 63
      $.each data, (i, job) ->
        job_item = $("#project_" + job.id)
        status_field = job_item.find(".job-status")
        
        if job.import_status == 'finished'
          job_item.removeClass("active").addClass("success")
          status_field.html('<span class="cgreen"><i class="fa fa-check"></i> done</span>')
        else if job.import_status == 'started'
          status_field.html("<i class='fa fa-spinner fa-spin'></i> started")
        else
          status_field.html(job.import_status)
        
  ), 4000