2022-01-28 13:00:11 -08:00
import $ from 'jquery' ;
2023-02-19 12:06:14 +08:00
import { hideElem , showElem } from '../utils/dom.js' ;
2022-01-28 13:00:11 -08:00
2021-10-21 15:37:43 +08:00
const { appSubUrl , csrfToken } = window . config ;
2021-10-17 01:28:04 +08:00
export function initRepoMigrationStatusChecker ( ) {
const migrating = $ ( '#repo_migrating' ) ;
2023-02-19 12:06:14 +08:00
hideElem ( $ ( '#repo_migrating_failed' ) ) ;
hideElem ( $ ( '#repo_migrating_failed_image' ) ) ;
hideElem ( $ ( '#repo_migrating_progress_message' ) ) ;
2021-10-17 01:28:04 +08:00
if ( migrating ) {
const task = migrating . attr ( 'task' ) ;
2022-11-22 01:58:55 +01:00
if ( task === undefined ) {
2021-10-17 01:28:04 +08:00
return ;
}
$ . ajax ( {
type : 'GET' ,
2021-10-21 15:37:43 +08:00
url : ` ${ appSubUrl } /user/task/ ${ task } ` ,
2021-10-17 01:28:04 +08:00
data : {
2021-10-21 15:37:43 +08:00
_csrf : csrfToken ,
2021-10-17 01:28:04 +08:00
} ,
complete ( xhr ) {
if ( xhr . status === 200 && xhr . responseJSON ) {
if ( xhr . responseJSON . status === 4 ) {
window . location . reload ( ) ;
return ;
} else if ( xhr . responseJSON . status === 3 ) {
2023-02-19 12:06:14 +08:00
hideElem ( $ ( '#repo_migrating_progress' ) ) ;
hideElem ( $ ( '#repo_migrating' ) ) ;
showElem ( $ ( '#repo_migrating_failed' ) ) ;
showElem ( $ ( '#repo_migrating_failed_image' ) ) ;
2021-10-17 01:28:04 +08:00
$ ( '#repo_migrating_failed_error' ) . text ( xhr . responseJSON . message ) ;
return ;
}
if ( xhr . responseJSON . message ) {
2023-02-19 12:06:14 +08:00
showElem ( $ ( '#repo_migrating_progress_message' ) ) ;
2021-10-17 01:28:04 +08:00
$ ( '#repo_migrating_progress_message' ) . text ( xhr . responseJSON . message ) ;
}
setTimeout ( ( ) => {
initRepoMigrationStatusChecker ( ) ;
} , 2000 ) ;
return ;
}
2023-02-19 12:06:14 +08:00
hideElem ( $ ( '#repo_migrating_progress' ) ) ;
hideElem ( $ ( '#repo_migrating' ) ) ;
showElem ( $ ( '#repo_migrating_failed' ) ) ;
showElem ( $ ( '#repo_migrating_failed_image' ) ) ;
2021-10-17 01:28:04 +08:00
}
} ) ;
}
}