Show detailed error information for erroneous documents

- Extract error details from Binect API for documents with status 7
- Display error details in a highlighted box below the status
- Map status 7 (ERRONEOUS) to 'failed' status in refresh handler
- Add CSS styling for error details display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-16 21:29:45 +01:00
parent 4f0f7ed9eb
commit f4c0481eda
3 changed files with 33 additions and 1 deletions

View File

@@ -464,6 +464,9 @@ function renderPDFItem(pdf: DocumentProxy, section: 'pending' | 'basket' | 'prod
break;
}
// Show detailed error info for erroneous documents
const hasErrorDetails = pdf.binectStatus === 'failed' && pdf.errorMessage && pdf.binectStatusCode === 7;
return `
<div class="pdf-list-item ${statusClass}" data-id="${escapeHtml(pdf.id)}">
<div class="pdf-item-icon">${getStatusIcon(pdf.binectStatus)}</div>
@@ -478,6 +481,7 @@ function renderPDFItem(pdf: DocumentProxy, section: 'pending' | 'basket' | 'prod
</div>
${pdf.recipientAddress ? `<div class="pdf-item-recipient">${escapeHtml(pdf.recipientAddress.split('\n')[0])}</div>` : ''}
<div class="pdf-item-status ${statusClass}">${statusText}</div>
${hasErrorDetails ? `<div class="pdf-item-error">${escapeHtml(pdf.errorMessage!)}</div>` : ''}
</div>
<div class="pdf-item-actions">
${actionsHtml}
@@ -896,6 +900,8 @@ async function handleRefreshStatus(id: string) {
newStatus = 'sent';
} else if (result.status === 6) {
newStatus = 'canceled';
} else if (result.status === 7) {
newStatus = 'failed'; // Erroneous
} else if (result.status === 3 || result.status === 4) {
newStatus = 'in_production';
} else if (result.status === 2) {
@@ -906,7 +912,8 @@ async function handleRefreshStatus(id: string) {
binectStatus: result.status,
binectStatusText: result.statusText,
price: result.price,
recipientAddress: result.recipientAddress
recipientAddress: result.recipientAddress,
errorMessage: result.errorDetails
};
// Update in background
@@ -923,6 +930,7 @@ async function handleRefreshStatus(id: string) {
pdf.binectStatusText = result.statusText;
if (result.price) pdf.price = result.price;
if (result.recipientAddress) pdf.recipientAddress = result.recipientAddress;
if (result.errorDetails) pdf.errorMessage = result.errorDetails;
renderPDFList();
} catch (error) {