@@ -139,7 +139,7 @@
-
diff --git a/apps/flowlord/handler/static/backload.js b/apps/flowlord/handler/static/backload.js
index 8644cdc..4ab0ca0 100644
--- a/apps/flowlord/handler/static/backload.js
+++ b/apps/flowlord/handler/static/backload.js
@@ -40,6 +40,7 @@
elements.executeBtn = document.getElementById('executeBtn');
elements.resetBtn = document.getElementById('resetBtn');
elements.previewSection = document.getElementById('previewSection');
+ elements.previewResultsHeading = document.getElementById('previewResultsHeading');
elements.previewStatus = document.getElementById('previewStatus');
elements.previewTableBody = document.getElementById('previewTableBody');
elements.previewCount = document.getElementById('previewCount');
@@ -549,12 +550,22 @@
}
}
+ // Parse API error body: JSON Status or raw text
+ function messageFromApiResponse(responseText, fallback) {
+ if (responseText == null || responseText === '') {
+ return fallback || 'Request failed';
+ }
+ try {
+ const j = JSON.parse(responseText);
+ if (j && typeof j.Status === 'string' && j.Status.length > 0) {
+ return j.Status;
+ }
+ } catch (e) { /* use raw */ }
+ return responseText;
+ }
+
// Execute button click handler
async function handleExecuteClick() {
- if (!confirm('Are you sure you want to execute this backload? This will create ' + previewTasks.length + ' tasks.')) {
- return;
- }
-
const request = buildRequest(true);
elements.requestBodyDisplay.textContent = JSON.stringify(request, null, 2);
@@ -568,31 +579,36 @@
});
const responseText = await response.text();
- let data;
-
+ let data = null;
try {
data = JSON.parse(responseText);
} catch (e) {
- throw new Error(responseText || 'Execution failed');
+ data = null;
}
if (!response.ok) {
- throw new Error(data.Status || responseText || 'Execution failed');
+ const msg = messageFromApiResponse(responseText, 'Execution failed');
+ elements.executionSection.style.display = 'block';
+ elements.executionStatus.className = 'execution-status error';
+ elements.executionStatus.textContent = msg;
+ return;
}
- elements.executionSection.style.display = 'block';
- elements.executionStatus.className = 'execution-status success';
- elements.executionStatus.innerHTML = `
- Success!
Preview Results
+Preview Results
| ${index + 1} | @@ -643,17 +656,9 @@ `; elements.previewTableBody.appendChild(row); }); - - elements.previewCount.textContent = `Total tasks to be created: ${data.Count}`; - elements.executeBtn.style.display = 'inline-block'; - elements.executeBtn.disabled = false; } else { - elements.previewTableBody.innerHTML = '||||
| No tasks would be created | ||||
| No tasks | ||||
| No tasks would be created | ||||
| No tasks were sent |