- C1 (issue 1): over target follows VISUAL ticket hours, not the timer. - C2 (issue 24): a Q.C. reject always needs a reason; accept needs an NCR number after a reject without one. - C3 (issue 25): an incomplete unit ITP blocks filing. - C4 (issue 27): prints open the print dialog on the page, no new tab. - C5 (issue 31): filing is blocked while VISUAL shows a work order open; the feed sets vclosed on VISUAL packets. - C6 (issue 8): the data book leaves out the history pages. - C7 (issue 18): the supervisor approves each received short; accept and filing wait for it. - C8 (issue 23): per-department checklists, edited by the department supervisor or Admin, frozen at START. - C9 (issue 32): Q.C. and Clerical may run the stamp check. - C10 (issue 33): the PM screen and reports are for PS-ProjectMgmt and Admin only. - C11 (issue 36): the Stall screen lists the packets assigned to the welder, at the supervisor's stall. Migration 0011. Docs: PLAN (also issue 9 confirmed, issue 4 asked), POLICY, SECURITY, SCHEMA, FEED, README, CHANGELOG. Co-Authored-By: Claude Opus 5.5 <[email protected]>
45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { useId } from "react";
|
|
import type { PacketRead } from "../api/types";
|
|
import { Sheet } from "../components/Sheet";
|
|
import { openPrint, printRows } from "./closeUtil";
|
|
|
|
/** The print menu: one row per print kind. A row closes the sheet and opens the print dialog on the stamped copy. */
|
|
export function PrintMenu({ p, sub, onClose }: { p: PacketRead; sub: string; onClose: () => void }) {
|
|
const base = useId();
|
|
const rows = printRows(p);
|
|
return (
|
|
<Sheet title="Print" sub={sub} onClose={onClose}>
|
|
<div className="ck">
|
|
{rows.map((r) => (
|
|
<button
|
|
key={r.kind}
|
|
type="button"
|
|
className="ck-item prow"
|
|
aria-label={r.label}
|
|
aria-describedby={`${base}-${r.kind}`}
|
|
onClick={() => {
|
|
onClose();
|
|
openPrint(p.id, r.kind);
|
|
}}
|
|
>
|
|
<span className="t">
|
|
<b>{r.label}</b>
|
|
<span className="small muted" id={`${base}-${r.kind}`}>
|
|
{r.desc}
|
|
</span>
|
|
</span>
|
|
</button>
|
|
))}
|
|
</div>
|
|
<div className="small muted">
|
|
Every printed page is stamped with who printed it and when, plus "verify revision before use". Printing is recorded.
|
|
</div>
|
|
<div className="sheet-acts start">
|
|
<button className="btn ghost" type="button" onClick={onClose}>
|
|
Cancel
|
|
</button>
|
|
</div>
|
|
</Sheet>
|
|
);
|
|
}
|