diff --git a/api/src/routes/admin.ts b/api/src/routes/admin.ts index 1fa0fad..d26bcac 100644 --- a/api/src/routes/admin.ts +++ b/api/src/routes/admin.ts @@ -704,9 +704,11 @@ router.get("/api/v1/admin/compliance-orders/:order_number/documents", requireAdm const exists = await pool.query("SELECT 1 FROM compliance_orders WHERE order_number = $1", [req.params.order_number]); if (exists.rows.length === 0) { res.status(404).json({ error: "Order not found." }); return; } const docs = await collectOrderDocuments(req.params.order_number); - // Verify each object actually exists in storage so the UI can disable dead - // links (a key can be recorded in the DB before the object is uploaded, e.g. - // a prepared-filing path written for an order whose prep never completed). + // Verify each object actually exists in storage. A key can be recorded in + // the DB before (or without) the object ever being uploaded -- e.g. a + // template pdf_minio_path, or a stray esign_records row from the shared + // remediation pipeline. We DROP non-existent objects so the UI only ever + // lists documents you can actually open; the empty state explains the rest. const checked = await Promise.all(docs.map(async (d) => { let present = false; try { @@ -721,7 +723,8 @@ router.get("/api/v1/admin/compliance-orders/:order_number/documents", requireAdm } catch { /* treat as missing */ } return { ...d, exists: present }; })); - res.json({ order_number: req.params.order_number, documents: checked }); + const available = checked.filter((d) => d.exists); + res.json({ order_number: req.params.order_number, documents: available }); } catch (err) { console.error("[admin/compliance-orders/documents] Error:", err); res.status(500).json({ error: "Could not list documents." }); diff --git a/site/public/admin/compliance-orders/index.html b/site/public/admin/compliance-orders/index.html index 4c9abd2..bd70c5e 100644 --- a/site/public/admin/compliance-orders/index.html +++ b/site/public/admin/compliance-orders/index.html @@ -401,13 +401,12 @@ box.innerHTML = documents.map((d) => { const u = API + "/api/v1/admin/compliance-orders/" + encodeURIComponent(orderNumber) + "/document?key=" + encodeURIComponent(d.key) + "&token=" + tok; - const action = (d.exists === false) - ? `not generated yet` - : `View`; return `