summaryrefslogtreecommitdiffstats
path: root/web_src/js/features/repo-migrate.js
diff options
context:
space:
mode:
Diffstat (limited to 'web_src/js/features/repo-migrate.js')
-rw-r--r--web_src/js/features/repo-migrate.js16
1 files changed, 15 insertions, 1 deletions
diff --git a/web_src/js/features/repo-migrate.js b/web_src/js/features/repo-migrate.js
index e57348d31b..de9f7b023c 100644
--- a/web_src/js/features/repo-migrate.js
+++ b/web_src/js/features/repo-migrate.js
@@ -1,12 +1,14 @@
import $ from 'jquery';
import {hideElem, showElem} from '../utils/dom.js';
-const {appSubUrl} = window.config;
+const {appSubUrl, csrfToken} = window.config;
export function initRepoMigrationStatusChecker() {
const $repoMigrating = $('#repo_migrating');
if (!$repoMigrating.length) return;
+ $('#repo_migrating_retry').on('click', doMigrationRetry);
+
const task = $repoMigrating.attr('data-migrating-task-id');
// returns true if the refresh still need to be called after a while
@@ -31,6 +33,7 @@ export function initRepoMigrationStatusChecker() {
if (data.status === 3) {
hideElem('#repo_migrating_progress');
hideElem('#repo_migrating');
+ showElem('#repo_migrating_retry');
showElem('#repo_migrating_failed');
showElem('#repo_migrating_failed_image');
$('#repo_migrating_failed_error').text(data.message);
@@ -53,3 +56,14 @@ export function initRepoMigrationStatusChecker() {
syncTaskStatus(); // no await
}
+
+async function doMigrationRetry(e) {
+ await fetch($(e.target).attr('data-migrating-task-retry-url'), {
+ method: 'post',
+ headers: {
+ 'X-Csrf-Token': csrfToken,
+ 'Content-Type': 'application/json',
+ },
+ });
+ window.location.reload();
+}