From 865d2221c0f4b2a8623ff9299930c9bab0da2c78 Mon Sep 17 00:00:00 2001 From: Kerwin Bryant Date: Fri, 4 Aug 2023 10:21:32 +0800 Subject: Add `Retry` button when creating a mirror-repo fails (#26228) fixed #26156 * Added a retry button in the frontend (only displayed when the status is abnormal) * After clicking Retry, the backend adds the task back to the task queue ![7UJDNM671RI})EA8~~XPL39](https://github.com/go-gitea/gitea/assets/3371163/e088fd63-5dcc-4bc6-8849-7db3086511b7) ![T83F1WL9)VGHR@MB956$VT9](https://github.com/go-gitea/gitea/assets/3371163/744425bb-dde1-4315-be2e-5c99ac3a44d4) --------- Co-authored-by: wxiaoguang --- web_src/js/features/repo-migrate.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'web_src/js') 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(); +} -- cgit v1.2.3