feat(deploy): async compose-up for instant UI feedback (v0.28.2)
Deploy API now returns immediately after validation + config save. docker compose up -d runs in a background goroutine so the UI shows progress during image pulls instead of blocking for 30-60s. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -632,8 +632,23 @@ document.getElementById('deploy-form').addEventListener('submit', async function
|
||||
var sd = await sr.json();
|
||||
if (!sd.ok || !sd.data) return;
|
||||
var state = sd.data.state;
|
||||
var deployError = sd.data.deploy_error;
|
||||
|
||||
if (state === 'running') {
|
||||
if (deployError) {
|
||||
// Async compose-up failed
|
||||
clearInterval(pollTimer);
|
||||
setStep(stepContainers, 'error', 'Telepítés sikertelen');
|
||||
setStep(stepHealth, 'error');
|
||||
progressEl.querySelector('h3').textContent = 'Telepítés sikertelen';
|
||||
resultEl.innerHTML = '<div class="alert alert-error" style="margin-top:1rem">' +
|
||||
'A telepítés nem sikerült: ' + deployError +
|
||||
'</div><a href="/stacks/' + stackName + '/logs" class="btn btn-outline" style="margin-top:.75rem">Naplók megtekintése</a>' +
|
||||
' <a href="/stacks" class="btn btn-primary" style="margin-top:.75rem">Alkalmazások</a>';
|
||||
resultEl.style.display = 'block';
|
||||
} else if (state === 'deploying') {
|
||||
// Compose up in progress (pulling images, creating containers)
|
||||
setStep(stepContainers, 'active', 'Képek letöltése, konténerek indítása...');
|
||||
} else if (state === 'running') {
|
||||
clearInterval(pollTimer);
|
||||
setStep(stepContainers, 'done', 'Konténerek elindultak');
|
||||
setStep(stepHealth, 'done', 'Alkalmazás kész!');
|
||||
|
||||
Reference in New Issue
Block a user