diff --git a/components/orgchart/PrintChart.tsx b/components/orgchart/PrintChart.tsx index 9f70c0b..7f5bcbb 100644 --- a/components/orgchart/PrintChart.tsx +++ b/components/orgchart/PrintChart.tsx @@ -2,7 +2,7 @@ import { ChevronRight, Printer } from "lucide-react"; import Link from "next/link"; -import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react"; +import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react"; import { Button } from "@/components/ui/Button"; import { fmtDate } from "@/lib/format"; import type { PrintModel, PrintPerson, PrintUnit } from "@/lib/orgchart-print"; @@ -40,6 +40,16 @@ const TIEFEN: { wert: Tiefe; label: string; hinweis: string }[] = [ { wert: "personen", label: "mit Personen", hinweis: "je Abteilung ein Blatt, mit allen Namen" }, ]; +/** + * Ob die Personalnummer mitgedruckt wird. + * + * Als Kontext und nicht als Eigenschaft durch den Baum: die Angabe betrifft + * eine einzige Zeile ganz unten (PersonZeile), müsste aber sonst durch jede + * Ebene der Seitenerzeugung durchgereicht werden — vier Signaturen für ein + * Häkchen. Gewünscht von Max am 30.09., ausdrücklich mit Wahlmöglichkeit. + */ +const NummerImDruck = createContext(false); + type Format = "a4" | "a3"; // Die Satzfläche ist die Blattgrösse abzüglich der Ränder aus @page, ein // wenig knapper gerechnet. Die Vorschau bekommt genau diese Masse fest @@ -160,6 +170,7 @@ function seitenBauen(model: PrintModel, bereiche: PrintUnit[], tiefe: Tiefe, asO export function PrintChart({ model, asOf, today }: { model: PrintModel; asOf: string; today: string }) { const [format, setFormat] = useState("a4"); const [tiefe, setTiefe] = useState("team"); + const [mitNummer, setMitNummer] = useState(false); const [gewaehlt, setGewaehlt] = useState>(() => new Set(model.divisions.map((d) => d.id))); const [schritt, setSchritt] = useState<"auswahl" | "vorschau">("auswahl"); @@ -203,6 +214,7 @@ export function PrintChart({ model, asOf, today }: { model: PrintModel; asOf: st } return ( +