Merge branch 'import-feedback' into 'master'
Added loading icon to import buttons See #14488 for more details See merge request !3662
This commit is contained in:
commit
2c8c898318
|
@ -4,18 +4,33 @@ class @ImporterStatus
|
||||||
this.setAutoUpdate()
|
this.setAutoUpdate()
|
||||||
|
|
||||||
initStatusPage: ->
|
initStatusPage: ->
|
||||||
$(".js-add-to-import").click (event) =>
|
$('.js-add-to-import')
|
||||||
new_namespace = null
|
.off 'click'
|
||||||
tr = $(event.currentTarget).closest("tr")
|
.on 'click', (e) =>
|
||||||
id = tr.attr("id").replace("repo_", "")
|
new_namespace = null
|
||||||
if tr.find(".import-target input").length > 0
|
$btn = $(e.currentTarget)
|
||||||
new_namespace = tr.find(".import-target input").prop("value")
|
$tr = $btn.closest('tr')
|
||||||
tr.find(".import-target").empty().append(new_namespace + "/" + tr.find(".import-target").data("project_name"))
|
id = $tr.attr('id').replace('repo_', '')
|
||||||
$.post @import_url, {repo_id: id, new_namespace: new_namespace}, dataType: 'script'
|
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')}")
|
||||||
|
|
||||||
$(".js-import-all").click (event) =>
|
$btn
|
||||||
$(".js-add-to-import").each ->
|
.disable()
|
||||||
$(this).click()
|
.addClass 'is-loading'
|
||||||
|
|
||||||
|
$.post @import_url, {repo_id: id, new_namespace: new_namespace}, dataType: 'script'
|
||||||
|
|
||||||
|
$('.js-import-all')
|
||||||
|
.off 'click'
|
||||||
|
.on 'click', (e) ->
|
||||||
|
$btn = $(@)
|
||||||
|
$btn
|
||||||
|
.disable()
|
||||||
|
.addClass 'is-loading'
|
||||||
|
|
||||||
|
$('.js-add-to-import').each ->
|
||||||
|
$(this).trigger('click')
|
||||||
|
|
||||||
setAutoUpdate: ->
|
setAutoUpdate: ->
|
||||||
setInterval (=>
|
setInterval (=>
|
||||||
|
|
|
@ -16,3 +16,24 @@ i.icon-gitorious-big {
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.import-jobs-from-col,
|
||||||
|
.import-jobs-to-col {
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.import-jobs-status-col {
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-import {
|
||||||
|
.loading-icon {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.is-loading {
|
||||||
|
.loading-icon {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -20,10 +20,10 @@
|
||||||
job.attr("id", "project_#{@project.id}")
|
job.attr("id", "project_#{@project.id}")
|
||||||
target_field = job.find(".import-target")
|
target_field = job.find(".import-target")
|
||||||
target_field.empty()
|
target_field.empty()
|
||||||
target_field.append('<strong>#{link_to @project.path_with_namespace, namespace_project_path(@project.namespace, @project)}</strong>')
|
target_field.append('#{link_to @project.path_with_namespace, namespace_project_path(@project.namespace, @project)}')
|
||||||
$("table.import-jobs tbody").prepend(job)
|
$("table.import-jobs tbody").prepend(job)
|
||||||
job.addClass("active").find(".import-actions").html("<i class='fa fa-spinner fa-spin'></i> started")
|
job.addClass("active").find(".import-actions").html("<i class='fa fa-spinner fa-spin'></i> started")
|
||||||
- else
|
- else
|
||||||
:plain
|
:plain
|
||||||
job = $("tr#repo_#{@repo_id}")
|
job = $("tr#repo_#{@repo_id}")
|
||||||
job.find(".import-actions").html("<i class='fa fa-exclamation-circle'> Error saving project: #{escape_javascript(@project.errors.full_messages.join(','))}</i>")
|
job.find(".import-actions").html("<i class='fa fa-exclamation-circle'></i> Error saving project: #{escape_javascript(@project.errors.full_messages.join(','))}")
|
||||||
|
|
|
@ -10,13 +10,19 @@
|
||||||
%hr
|
%hr
|
||||||
%p
|
%p
|
||||||
- if @incompatible_repos.any?
|
- if @incompatible_repos.any?
|
||||||
= button_tag 'Import all compatible projects', class: "btn btn-success js-import-all"
|
= button_tag class: "btn btn-import btn-success js-import-all" do
|
||||||
|
Import all compatible projects
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
- else
|
- else
|
||||||
= button_tag 'Import all projects', class: "btn btn-success js-import-all"
|
= button_tag class: "btn btn-success js-import-all" do
|
||||||
|
Import all projects
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
|
.table-responsive
|
||||||
.table-holder
|
|
||||||
%table.table.import-jobs
|
%table.table.import-jobs
|
||||||
|
%colgroup.import-jobs-from-col
|
||||||
|
%colgroup.import-jobs-to-col
|
||||||
|
%colgroup.import-jobs-status-col
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th From Bitbucket
|
%th From Bitbucket
|
||||||
|
@ -28,7 +34,7 @@
|
||||||
%td
|
%td
|
||||||
= link_to project.import_source, "https://bitbucket.org/#{project.import_source}", target: "_blank"
|
= link_to project.import_source, "https://bitbucket.org/#{project.import_source}", target: "_blank"
|
||||||
%td
|
%td
|
||||||
%strong= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
||||||
%td.job-status
|
%td.job-status
|
||||||
- if project.import_status == 'finished'
|
- if project.import_status == 'finished'
|
||||||
%span
|
%span
|
||||||
|
@ -47,7 +53,9 @@
|
||||||
%td.import-target
|
%td.import-target
|
||||||
= "#{repo["owner"]}/#{repo["slug"]}"
|
= "#{repo["owner"]}/#{repo["slug"]}"
|
||||||
%td.import-actions.job-status
|
%td.import-actions.job-status
|
||||||
= button_tag "Import", class: "btn js-add-to-import"
|
= button_tag class: "btn btn-import js-add-to-import" do
|
||||||
|
Import
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
- @incompatible_repos.each do |repo|
|
- @incompatible_repos.each do |repo|
|
||||||
%tr{id: "repo_#{repo["owner"]}___#{repo["slug"]}"}
|
%tr{id: "repo_#{repo["owner"]}___#{repo["slug"]}"}
|
||||||
%td
|
%td
|
||||||
|
|
|
@ -13,10 +13,15 @@
|
||||||
how FogBugz email addresses and usernames are imported into GitLab.
|
how FogBugz email addresses and usernames are imported into GitLab.
|
||||||
%hr
|
%hr
|
||||||
%p
|
%p
|
||||||
= button_tag 'Import all projects', class: 'btn btn-success js-import-all'
|
= button_tag class: 'btn btn-import btn-success js-import-all' do
|
||||||
|
Import all projects
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
.table-holder
|
.table-responsive
|
||||||
%table.table.import-jobs
|
%table.table.import-jobs
|
||||||
|
%colgroup.import-jobs-from-col
|
||||||
|
%colgroup.import-jobs-to-col
|
||||||
|
%colgroup.import-jobs-status-col
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th From FogBugz
|
%th From FogBugz
|
||||||
|
@ -28,7 +33,7 @@
|
||||||
%td
|
%td
|
||||||
= project.import_source
|
= project.import_source
|
||||||
%td
|
%td
|
||||||
%strong= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
||||||
%td.job-status
|
%td.job-status
|
||||||
- if project.import_status == 'finished'
|
- if project.import_status == 'finished'
|
||||||
%span
|
%span
|
||||||
|
@ -47,7 +52,9 @@
|
||||||
%td.import-target
|
%td.import-target
|
||||||
= "#{current_user.username}/#{repo.name}"
|
= "#{current_user.username}/#{repo.name}"
|
||||||
%td.import-actions.job-status
|
%td.import-actions.job-status
|
||||||
= button_tag "Import", class: "btn js-add-to-import"
|
= button_tag class: "btn btn-import js-add-to-import" do
|
||||||
|
Import
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
new ImporterStatus("#{jobs_import_fogbugz_path}", "#{import_fogbugz_path}");
|
new ImporterStatus("#{jobs_import_fogbugz_path}", "#{import_fogbugz_path}");
|
||||||
|
|
|
@ -8,10 +8,15 @@
|
||||||
Select projects you want to import.
|
Select projects you want to import.
|
||||||
%hr
|
%hr
|
||||||
%p
|
%p
|
||||||
= button_tag 'Import all projects', class: "btn btn-success js-import-all"
|
= button_tag class: "btn btn-import btn-success js-import-all" do
|
||||||
|
Import all projects
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
.table-holder
|
.table-responsive
|
||||||
%table.table.import-jobs
|
%table.table.import-jobs
|
||||||
|
%colgroup.import-jobs-from-col
|
||||||
|
%colgroup.import-jobs-to-col
|
||||||
|
%colgroup.import-jobs-status-col
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th From GitHub
|
%th From GitHub
|
||||||
|
@ -23,7 +28,7 @@
|
||||||
%td
|
%td
|
||||||
= link_to project.import_source, "https://github.com/#{project.import_source}", target: "_blank"
|
= link_to project.import_source, "https://github.com/#{project.import_source}", target: "_blank"
|
||||||
%td
|
%td
|
||||||
%strong= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
||||||
%td.job-status
|
%td.job-status
|
||||||
- if project.import_status == 'finished'
|
- if project.import_status == 'finished'
|
||||||
%span
|
%span
|
||||||
|
@ -42,7 +47,9 @@
|
||||||
%td.import-target
|
%td.import-target
|
||||||
= repo.full_name
|
= repo.full_name
|
||||||
%td.import-actions.job-status
|
%td.import-actions.job-status
|
||||||
= button_tag "Import", class: "btn js-add-to-import"
|
= button_tag class: "btn btn-import js-add-to-import" do
|
||||||
|
Import
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
new ImporterStatus("#{jobs_import_github_path}", "#{import_github_path}");
|
new ImporterStatus("#{jobs_import_github_path}", "#{import_github_path}");
|
||||||
|
|
|
@ -8,10 +8,15 @@
|
||||||
Select projects you want to import.
|
Select projects you want to import.
|
||||||
%hr
|
%hr
|
||||||
%p
|
%p
|
||||||
= button_tag 'Import all projects', class: "btn btn-success js-import-all"
|
= button_tag class: "btn btn-import btn-success js-import-all" do
|
||||||
|
Import all projects
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
.table-holder
|
.table-responsive
|
||||||
%table.table.import-jobs
|
%table.table.import-jobs
|
||||||
|
%colgroup.import-jobs-from-col
|
||||||
|
%colgroup.import-jobs-to-col
|
||||||
|
%colgroup.import-jobs-status-col
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th From GitLab.com
|
%th From GitLab.com
|
||||||
|
@ -23,7 +28,7 @@
|
||||||
%td
|
%td
|
||||||
= link_to project.import_source, "https://gitlab.com/#{project.import_source}", target: "_blank"
|
= link_to project.import_source, "https://gitlab.com/#{project.import_source}", target: "_blank"
|
||||||
%td
|
%td
|
||||||
%strong= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
||||||
%td.job-status
|
%td.job-status
|
||||||
- if project.import_status == 'finished'
|
- if project.import_status == 'finished'
|
||||||
%span
|
%span
|
||||||
|
@ -42,7 +47,9 @@
|
||||||
%td.import-target
|
%td.import-target
|
||||||
= repo["path_with_namespace"]
|
= repo["path_with_namespace"]
|
||||||
%td.import-actions.job-status
|
%td.import-actions.job-status
|
||||||
= button_tag "Import", class: "btn js-add-to-import"
|
= button_tag class: "btn js-add-to-import" do
|
||||||
|
Import
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
new ImporterStatus("#{jobs_import_gitlab_path}", "#{import_gitlab_path}");
|
new ImporterStatus("#{jobs_import_gitlab_path}", "#{import_gitlab_path}");
|
||||||
|
|
|
@ -8,10 +8,15 @@
|
||||||
Select projects you want to import.
|
Select projects you want to import.
|
||||||
%hr
|
%hr
|
||||||
%p
|
%p
|
||||||
= button_tag 'Import all projects', class: "btn btn-success js-import-all"
|
= button_tag class: "btn btn-import btn-success js-import-all" do
|
||||||
|
Import all projects
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
.table-holder
|
.table-responsive
|
||||||
%table.table.import-jobs
|
%table.table.import-jobs
|
||||||
|
%colgroup.import-jobs-from-col
|
||||||
|
%colgroup.import-jobs-to-col
|
||||||
|
%colgroup.import-jobs-status-col
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th From Gitorious.org
|
%th From Gitorious.org
|
||||||
|
@ -23,7 +28,7 @@
|
||||||
%td
|
%td
|
||||||
= link_to project.import_source, "https://gitorious.org/#{project.import_source}", target: "_blank"
|
= link_to project.import_source, "https://gitorious.org/#{project.import_source}", target: "_blank"
|
||||||
%td
|
%td
|
||||||
%strong= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
||||||
%td.job-status
|
%td.job-status
|
||||||
- if project.import_status == 'finished'
|
- if project.import_status == 'finished'
|
||||||
%span
|
%span
|
||||||
|
@ -42,7 +47,9 @@
|
||||||
%td.import-target
|
%td.import-target
|
||||||
= repo.full_name
|
= repo.full_name
|
||||||
%td.import-actions.job-status
|
%td.import-actions.job-status
|
||||||
= button_tag "Import", class: "btn js-add-to-import"
|
= button_tag class: "btn btn-import js-add-to-import" do
|
||||||
|
Import
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
new ImporterStatus("#{jobs_import_gitorious_path}", "#{import_gitorious_path}");
|
new ImporterStatus("#{jobs_import_gitorious_path}", "#{import_gitorious_path}");
|
||||||
|
|
|
@ -14,12 +14,19 @@
|
||||||
%hr
|
%hr
|
||||||
%p
|
%p
|
||||||
- if @incompatible_repos.any?
|
- if @incompatible_repos.any?
|
||||||
= button_tag 'Import all compatible projects', class: "btn btn-success js-import-all"
|
= button_tag class: "btn btn-import btn-success js-import-all" do
|
||||||
|
Import all compatible projects
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
- else
|
- else
|
||||||
= button_tag 'Import all projects', class: "btn btn-success js-import-all"
|
= button_tag class: "btn btn-import btn-success js-import-all" do
|
||||||
|
Import all projects
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
|
|
||||||
.table-holder
|
.table-responsive
|
||||||
%table.table.import-jobs
|
%table.table.import-jobs
|
||||||
|
%colgroup.import-jobs-from-col
|
||||||
|
%colgroup.import-jobs-to-col
|
||||||
|
%colgroup.import-jobs-status-col
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th From Google Code
|
%th From Google Code
|
||||||
|
@ -31,7 +38,7 @@
|
||||||
%td
|
%td
|
||||||
= link_to project.import_source, "https://code.google.com/p/#{project.import_source}", target: "_blank"
|
= link_to project.import_source, "https://code.google.com/p/#{project.import_source}", target: "_blank"
|
||||||
%td
|
%td
|
||||||
%strong= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
||||||
%td.job-status
|
%td.job-status
|
||||||
- if project.import_status == 'finished'
|
- if project.import_status == 'finished'
|
||||||
%span
|
%span
|
||||||
|
@ -50,7 +57,9 @@
|
||||||
%td.import-target
|
%td.import-target
|
||||||
= "#{current_user.username}/#{repo.name}"
|
= "#{current_user.username}/#{repo.name}"
|
||||||
%td.import-actions.job-status
|
%td.import-actions.job-status
|
||||||
= button_tag "Import", class: "btn js-add-to-import"
|
= button_tag class: "btn btn-import js-add-to-import" do
|
||||||
|
Import
|
||||||
|
= icon("spinner spin", class: "loading-icon")
|
||||||
- @incompatible_repos.each do |repo|
|
- @incompatible_repos.each do |repo|
|
||||||
%tr{id: "repo_#{repo.id}"}
|
%tr{id: "repo_#{repo.id}"}
|
||||||
%td
|
%td
|
||||||
|
|
Loading…
Reference in New Issue