feat(orders): add resync and delete order buttons

Resync soft-deletes from Oracle then re-imports from GoMag with fresh
article data. Delete soft-deletes and marks DELETED_IN_ROA. Both have
invoice safety gates (refuse if invoiced or Oracle unavailable).

UI: split modal footer (Delete left, Resync+Close right), inline
confirm pattern (no native confirm()), dashboard row hover action
icons, disabled+tooltip for invoiced orders. 8 unit tests for safety
gates and happy paths.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-04-09 13:10:01 +00:00
parent 90a4906d87
commit 25f73db64d
8 changed files with 621 additions and 34 deletions

View File

@@ -367,6 +367,47 @@ input[type="checkbox"] {
border-color: var(--info-hover);
}
.btn-outline-warning {
color: var(--warning);
border-color: var(--warning);
}
.btn-outline-warning:hover {
background: var(--warning);
border-color: var(--warning);
color: #fff;
}
.btn-outline-danger {
color: var(--error);
border-color: var(--error);
}
.btn-outline-danger:hover {
background: var(--error);
border-color: var(--error);
color: #fff;
}
/* Compact button for dashboard row actions */
.btn-xs {
font-size: 0.75rem;
line-height: 1;
padding: 4px 8px;
}
/* Dashboard row hover actions */
#dashOrdersBody tr { position: relative; }
#dashOrdersBody tr .row-actions {
display: none;
position: absolute;
right: 8px;
top: 50%;
transform: translateY(-50%);
gap: 4px;
z-index: 1;
}
#dashOrdersBody tr:hover .row-actions {
display: inline-flex;
}
/* ── Forms ───────────────────────────────────────── */
.form-control, .form-select {
font-size: 0.9375rem;