new and improve admin async upgrade process

This commit is contained in:
Andy Miller
2025-10-16 17:31:57 -06:00
parent b23940fb10
commit f08a32cf67
4 changed files with 398 additions and 31 deletions

View File

@@ -870,9 +870,17 @@ class AdminController extends AdminBaseController
'decisions' => isset($post['decisions']) && is_array($post['decisions']) ? $post['decisions'] : [],
];
$result = $this->getSafeUpgradeManager()->run($options);
$manager = $this->getSafeUpgradeManager();
$result = $manager->queue($options);
$status = $result['status'] ?? 'error';
if ($status === 'error') {
$manager->clearJobContext();
$result = $manager->run($options);
$status = $result['status'] ?? 'error';
$result['fallback'] = true;
}
$response = [
'status' => $status === 'error' ? 'error' : 'success',
'data' => $result,
@@ -905,11 +913,21 @@ class AdminController extends AdminBaseController
return false;
}
$progress = $this->getSafeUpgradeManager()->getProgress();
$manager = $this->getSafeUpgradeManager();
$jobId = isset($_GET['job']) ? (string)$_GET['job'] : '';
if ($jobId !== '') {
$data = $manager->getJobStatus($jobId);
} else {
$data = [
'job' => null,
'progress' => $manager->getProgress(),
];
}
$this->sendJsonResponse([
'status' => 'success',
'data' => $progress,
'data' => $data,
]);
return true;