From 948ddf5c70b263da7f0150d01bb5edd5b99c97d7 Mon Sep 17 00:00:00 2001 From: Andrei Laas Date: Wed, 23 Sep 2026 12:58:57 +0200 Subject: [PATCH] Verhaeltnis als Auswahlliste, und im Organigramm keine Vakanz ganz oben Zwei Nachtraege zur Rueckmeldung des Kunden. Das Fenster fuer den Notfallkontakt hatte ein Freitextfeld fuer das Verhaeltnis, waehrend der Einstellungsassistent und "Daten aendern" dieselbe Auswahlliste fuehren (EMERGENCY_RELATIONS). Freitext hiesse, dass "Gattin", "Ehefrau" und "Frau" nebeneinander stehen und sich nicht auswerten lassen -- genau der Grund, aus dem die Liste ueberhaupt existiert. Jetzt fuehren alle drei Stellen dieselbe. Und "Leitung vakant" stand im Organigramm weiterhin bei der obersten Einheit. Entfernt wurde es zuletzt nur im Druck; die Ansicht am Bildschirm hat ihre eigene Beschriftung. Die Gesellschaft wird nicht gefuehrt, sondern ist das Ganze -- der Vermerk las sich dort wie eine offene Stelle und faerbte den obersten Knoten obendrein als Vakanz ein. Ueberall sonst bleibt er. --- components/employees/NotfallkontaktModal.tsx | 11 ++++++++--- components/orgchart/PositionTree.tsx | 11 +++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/components/employees/NotfallkontaktModal.tsx b/components/employees/NotfallkontaktModal.tsx index 346d257..f536a19 100644 --- a/components/employees/NotfallkontaktModal.tsx +++ b/components/employees/NotfallkontaktModal.tsx @@ -4,10 +4,11 @@ import { useRouter } from "next/navigation"; import { useState } from "react"; import { changeEmployeeData } from "@/actions/employees"; import { Button } from "@/components/ui/Button"; -import { TextField } from "@/components/ui/Field"; +import { SelectField, TextField } from "@/components/ui/Field"; import { Modal } from "@/components/ui/Modal"; import { useToast } from "@/components/ui/Toast"; import { todayIso } from "@/lib/format"; +import { EMERGENCY_RELATIONS } from "@/lib/types"; // Der Notfallkontakt, ohne den Umweg über „Daten ändern". // @@ -96,11 +97,15 @@ export function NotfallkontaktModal({ - ({ value: r, label: r }))} /> diff --git a/components/orgchart/PositionTree.tsx b/components/orgchart/PositionTree.tsx index 528bf8f..15c8745 100644 --- a/components/orgchart/PositionTree.tsx +++ b/components/orgchart/PositionTree.tsx @@ -204,10 +204,17 @@ export function buildUnitTree(units: OrgUnitNode[], employees: OrgEmployee[], va id: key, kind: "role", label: `${unit.org_number} · ${unit.name}`, + // Die Gesellschaft bleibt ohne Vermerk: sie wird nicht geführt, sondern + // ist das Ganze. „Leitung vakant" las sich dort wie eine offene Stelle, + // die jemand besetzen müsste, und färbte obendrein den obersten Knoten + // als Vakanz ein. Überall sonst ist der Vermerk genau das und gehört + // hin — wie im Druck (PrintChart). sublabel: chief ? `Leitung: ${fmtName(chief.first_name, chief.last_name)}${chief.absent ? " (abwesend)" : ""}` - : "Leitung vakant", - vacant: !chief, + : unit.unit_type === "Gesellschaft" + ? undefined + : "Leitung vakant", + vacant: !chief && unit.unit_type !== "Gesellschaft", children: [...subUnits, ...titleGroups, ...vacancyNodes], }; }