You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

repo-migrate.js 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import $ from 'jquery';
  2. import {hideElem, showElem} from '../utils/dom.js';
  3. const {appSubUrl, csrfToken} = window.config;
  4. export function initRepoMigrationStatusChecker() {
  5. const migrating = $('#repo_migrating');
  6. hideElem($('#repo_migrating_failed'));
  7. hideElem($('#repo_migrating_failed_image'));
  8. hideElem($('#repo_migrating_progress_message'));
  9. if (migrating) {
  10. const task = migrating.attr('task');
  11. if (task === undefined) {
  12. return;
  13. }
  14. $.ajax({
  15. type: 'GET',
  16. url: `${appSubUrl}/user/task/${task}`,
  17. data: {
  18. _csrf: csrfToken,
  19. },
  20. complete(xhr) {
  21. if (xhr.status === 200 && xhr.responseJSON) {
  22. if (xhr.responseJSON.status === 4) {
  23. window.location.reload();
  24. return;
  25. } else if (xhr.responseJSON.status === 3) {
  26. hideElem($('#repo_migrating_progress'));
  27. hideElem($('#repo_migrating'));
  28. showElem($('#repo_migrating_failed'));
  29. showElem($('#repo_migrating_failed_image'));
  30. $('#repo_migrating_failed_error').text(xhr.responseJSON.message);
  31. return;
  32. }
  33. if (xhr.responseJSON.message) {
  34. showElem($('#repo_migrating_progress_message'));
  35. $('#repo_migrating_progress_message').text(xhr.responseJSON.message);
  36. }
  37. setTimeout(() => {
  38. initRepoMigrationStatusChecker();
  39. }, 2000);
  40. return;
  41. }
  42. hideElem($('#repo_migrating_progress'));
  43. hideElem($('#repo_migrating'));
  44. showElem($('#repo_migrating_failed'));
  45. showElem($('#repo_migrating_failed_image'));
  46. }
  47. });
  48. }
  49. }