Den Notfallkontakt an Ort und Stelle anlegen statt ueber "Daten aendern"
Bei den Angehoerigen steht ein "+ Hinzufuegen", beim Notfallkontakt stand nichts: der einzige Weg zu einer Telefonnummer fuehrte ueber ein Formular ueber saemtliche Stammdaten. Jetzt steht der Knopf an derselben Stelle, mit einem Fenster fuer Name, Telefonnummer und Verhaeltnis; ist ein Kontakt hinterlegt, heisst er "Aendern" und daneben laesst er sich entfernen. Geschrieben wird ueber dieselbe Funktion wie in "Daten aendern" -- change_employee_data mit nur den drei Feldern. Der Eintrag landet damit in der Historie und im Protokoll wie jede andere Stammdatenaenderung. Die Datenbank fasst nur die Felder an, die im Aufruf stehen: sie prueft auf das Vorhandensein des Schluessels, nicht auf seinen Wert (Migration 20260917120000, Zeilen 209-211). Adresse, E-Mail und der Rest bleiben unberuehrt.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { AngehoerigeSection } from "@/components/employees/AngehoerigeSection";
|
||||
import { NotfallkontaktSection } from "@/components/employees/NotfallkontaktSection";
|
||||
import { brauchtAufenthaltstitel } from "@/lib/countries";
|
||||
import { fmtAge, fmtDate } from "@/lib/format";
|
||||
import type { Database } from "@/lib/types";
|
||||
@@ -71,43 +72,14 @@ export function StammdatenTab({ employee, location, dependents }: { employee: Em
|
||||
|
||||
<AngehoerigeSection employeeId={employee.id} dependents={dependents} />
|
||||
|
||||
{/* Eigener Abschnitt statt einer Zelle im Raster, und unterhalb der
|
||||
Angehörigen: beides sind Personen im Umfeld, und der Notfallkontakt
|
||||
ist die Ausnahme davon — deshalb steht er zuletzt, nicht dazwischen.
|
||||
Im Ernstfall greift jemand in Eile danach; dann muss die Nummer
|
||||
sofort zu finden sein und wählbar. */}
|
||||
<div className="border-t border-border pt-6">
|
||||
<h3 className="mb-3 text-xs font-bold uppercase tracking-wide text-brand-700">Notfallkontakt</h3>
|
||||
{employee.emergency_contact_name ? (
|
||||
<dl className="grid grid-cols-1 gap-x-8 gap-y-4 sm:grid-cols-2 lg:grid-cols-3">
|
||||
<div>
|
||||
<dt className="text-xs font-semibold uppercase tracking-wide text-ink-muted">Name</dt>
|
||||
<dd className="mt-1 text-sm text-ink">{employee.emergency_contact_name}</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt className="text-xs font-semibold uppercase tracking-wide text-ink-muted">Telefon</dt>
|
||||
<dd className="mt-1 text-sm font-semibold text-ink">
|
||||
{employee.emergency_contact_phone ? (
|
||||
<a
|
||||
href={`tel:${employee.emergency_contact_phone.replace(/\s/g, "")}`}
|
||||
className="rounded hover:text-brand-700 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand-500"
|
||||
>
|
||||
{employee.emergency_contact_phone}
|
||||
</a>
|
||||
) : (
|
||||
"–"
|
||||
)}
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt className="text-xs font-semibold uppercase tracking-wide text-ink-muted">Verhältnis</dt>
|
||||
<dd className="mt-1 text-sm text-ink">{employee.emergency_contact_relation || "–"}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
) : (
|
||||
<p className="text-sm text-ink-muted">Kein Notfallkontakt hinterlegt.</p>
|
||||
)}
|
||||
</div>
|
||||
<NotfallkontaktSection
|
||||
employeeId={employee.id}
|
||||
kontakt={{
|
||||
name: employee.emergency_contact_name,
|
||||
telefon: employee.emergency_contact_phone,
|
||||
verhaeltnis: employee.emergency_contact_relation,
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user