Show Failure Cause block and add Retry button for failed jobs in queue UI
This commit is contained in:
+15
-4
@@ -1369,8 +1369,13 @@ async function loadQueue() {
|
|||||||
<span><i class="fa-solid fa-file-video"></i> Source: ${job.video_path.split('/').pop()}</span>
|
<span><i class="fa-solid fa-file-video"></i> Source: ${job.video_path.split('/').pop()}</span>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
let errorHtml = "";
|
||||||
if (job.status === "failed" && job.error) {
|
if (job.status === "failed" && job.error) {
|
||||||
metaHtml += `<span style="color: var(--danger);"><i class="fa-solid fa-triangle-exclamation"></i> Error: ${job.error}</span>`;
|
errorHtml = `
|
||||||
|
<div class="queue-item-error" style="margin-top: 0.5rem; padding: 0.5rem 0.75rem; background: rgba(255, 0, 85, 0.08); border-left: 3px solid var(--danger); border-radius: 4px; font-size: 0.78rem; color: var(--danger); width: 100%; word-break: break-word;">
|
||||||
|
<i class="fa-solid fa-triangle-exclamation" style="margin-right: 0.25rem;"></i> <strong>Failure Cause:</strong> ${job.error}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
} else if (job.status !== "queued" && job.status !== "failed" && job.status !== "cancelled" && job.status !== "completed" && job.status !== "interrupted") {
|
} else if (job.status !== "queued" && job.status !== "failed" && job.status !== "cancelled" && job.status !== "completed" && job.status !== "interrupted") {
|
||||||
metaHtml += `<span><i class="fa-solid fa-clock"></i> ETA: ${job.eta || 'Calculating...'}</span>`;
|
metaHtml += `<span><i class="fa-solid fa-clock"></i> ETA: ${job.eta || 'Calculating...'}</span>`;
|
||||||
}
|
}
|
||||||
@@ -1393,10 +1398,15 @@ async function loadQueue() {
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (job.status === "interrupted") {
|
if (job.status === "interrupted" || job.status === "failed") {
|
||||||
|
const btnLabel = job.status === "failed" ? "Retry" : "Resume";
|
||||||
|
const btnIcon = job.status === "failed" ? "fa-rotate-right" : "fa-play";
|
||||||
actionsHtml = `
|
actionsHtml = `
|
||||||
<button class="btn btn-primary btn-small btn-resume-job" data-id="${job.job_id}">
|
<button class="btn btn-primary btn-small btn-resume-job" data-id="${job.job_id}">
|
||||||
<i class="fa-solid fa-play"></i> Resume
|
<i class="fa-solid ${btnIcon}"></i> ${btnLabel}
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-secondary btn-small btn-view-job" data-id="${job.job_id}">
|
||||||
|
<i class="fa-solid fa-eye"></i> View
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-secondary btn-small btn-delete-job" data-id="${job.job_id}">
|
<button class="btn btn-secondary btn-small btn-delete-job" data-id="${job.job_id}">
|
||||||
<i class="fa-solid fa-trash"></i> Clear
|
<i class="fa-solid fa-trash"></i> Clear
|
||||||
@@ -1427,7 +1437,7 @@ async function loadQueue() {
|
|||||||
const progressStyle = showProgress ? "display: block;" : "display: none;";
|
const progressStyle = showProgress ? "display: block;" : "display: none;";
|
||||||
|
|
||||||
item.innerHTML = `
|
item.innerHTML = `
|
||||||
<div class="queue-item-details">
|
<div class="queue-item-details" style="width: 100%;">
|
||||||
<div class="queue-item-title">
|
<div class="queue-item-title">
|
||||||
${titleLabel}
|
${titleLabel}
|
||||||
<span class="status-badge ${job.status}" style="font-size: 0.7rem; padding: 0.15rem 0.5rem; margin-left: 0.5rem;">${job.status}</span>
|
<span class="status-badge ${job.status}" style="font-size: 0.7rem; padding: 0.15rem 0.5rem; margin-left: 0.5rem;">${job.status}</span>
|
||||||
@@ -1435,6 +1445,7 @@ async function loadQueue() {
|
|||||||
<div class="queue-item-meta">
|
<div class="queue-item-meta">
|
||||||
${metaHtml}
|
${metaHtml}
|
||||||
</div>
|
</div>
|
||||||
|
${errorHtml}
|
||||||
</div>
|
</div>
|
||||||
<div class="queue-item-status-bar">
|
<div class="queue-item-status-bar">
|
||||||
<div class="queue-item-progress-container" style="${progressStyle}">
|
<div class="queue-item-progress-container" style="${progressStyle}">
|
||||||
|
|||||||
Reference in New Issue
Block a user