fix(web): label required lengths as material list
Build CutList image / build-and-push (push) Successful in 27s

This commit is contained in:
aj
2026-08-02 18:32:45 +00:00
parent c1409bbdfb
commit 4f21d536f8
3 changed files with 9 additions and 7 deletions
+2
View File
@@ -101,6 +101,8 @@ CutList.Mcp is an stdio MCP server, not a hosted service — it's published to `
**Job title**: The job-editor page uses the `job-title` class to keep long job names at a compact, readable heading size without changing the larger dashboard hero typography. **Job title**: The job-editor page uses the `job-title` class to keep long job names at a compact, readable heading size without changing the larger dashboard hero typography.
**Material list semantics**: The Results tab labels lengths not covered by the job's configured stock as a **Material List**, not a purchase list. It identifies required material; purchasing remains a separate decision outside the cut-list result.
### CutList.Mcp — MCP Server ### CutList.Mcp — MCP Server
Stdio-transport MCP server (`ModelContextProtocol` SDK) exposing CutList.Web's REST API as tools for Claude Code. Registers tools via `WithToolsFromAssembly`; logging is disabled entirely so it doesn't interfere with the stdio transport. Stdio-transport MCP server (`ModelContextProtocol` SDK) exposing CutList.Web's REST API as tools for Claude Code. Registers tools via `WithToolsFromAssembly`; logging is disabled entirely so it doesn't interfere with the stdio transport.
+5 -5
View File
@@ -1042,10 +1042,10 @@ else
</div> </div>
</div> </div>
<!-- Purchase List --> <!-- Material List: required stock lengths not covered by job stock -->
<div class="card mb-4 print-purchase-list"> <div class="card mb-4 print-material-list">
<div class="card-header d-flex justify-content-between align-items-center"> <div class="card-header d-flex justify-content-between align-items-center">
<h5 class="mb-0"><i class="bi bi-cart me-2"></i>Purchase List</h5> <h5 class="mb-0"><i class="bi bi-box-seam me-2"></i>Material List</h5>
@if (job.IsLocked) @if (job.IsLocked)
{ {
<span class="badge bg-success"><i class="bi bi-lock-fill me-1"></i>Job Locked</span> <span class="badge bg-success"><i class="bi bi-lock-fill me-1"></i>Job Locked</span>
@@ -1064,7 +1064,7 @@ else
<div class="card-body"> <div class="card-body">
@if (summary.TotalToBePurchasedBins == 0) @if (summary.TotalToBePurchasedBins == 0)
{ {
<p class="text-muted mb-0">Everything is available in stock. No purchases needed.</p> <p class="text-muted mb-0">No additional material lengths are required beyond the stock configured for this job.</p>
} }
else else
{ {
@@ -1092,7 +1092,7 @@ else
</tbody> </tbody>
<tfoot> <tfoot>
<tr class="fw-bold"> <tr class="fw-bold">
<td colspan="2">Total</td> <td colspan="2">Total Required</td>
<td class="text-end">@summary.TotalToBePurchasedBins bars</td> <td class="text-end">@summary.TotalToBePurchasedBins bars</td>
</tr> </tr>
</tfoot> </tfoot>
+2 -2
View File
@@ -304,8 +304,8 @@
margin: 0 !important; margin: 0 !important;
} }
/* Keep purchase list with cut lists to save paper */ /* Keep material list with cut lists to save paper */
.print-purchase-list { .print-material-list {
break-inside: avoid; break-inside: avoid;
page-break-inside: avoid; page-break-inside: avoid;
} }