feat: Quickstart, Benutzerverwaltung und Orion-Ergebnisbox
This commit is contained in:
parent
4f669a3426
commit
e9e46f2cb4
404 changed files with 1032 additions and 600 deletions
|
|
@ -9,6 +9,7 @@ import { z } from "zod";
|
|||
import { ActionButton, ActionState } from "@/components/action-button";
|
||||
import { useAuth } from "@/components/auth";
|
||||
import { API_BASE, apiGet, apiSend, Contact, Customer, Device, Equipment, Location, normalizeValidationPayload, Paginated, ValidationItem } from "@/lib/api";
|
||||
import { getValidationResultPresentation, normalizeValidationResult, validationResultValues } from "@/lib/validation-result";
|
||||
|
||||
const triState = ["yes", "no", "na"] as const;
|
||||
const today = new Date().toISOString().slice(0, 10);
|
||||
|
|
@ -86,7 +87,7 @@ function defaults(reportNumber = ""): FormValues {
|
|||
examiner_name: "",
|
||||
participants: "",
|
||||
status: "ENTWURF",
|
||||
result: "offen",
|
||||
result: "OFFEN",
|
||||
customer_id: "",
|
||||
location_id: "",
|
||||
contact_id: "",
|
||||
|
|
@ -180,6 +181,7 @@ export function ValidationEditor({ validationId }: { validationId?: string }) {
|
|||
const watched = useWatch({ control: form.control });
|
||||
const selectedDevice = devices.data?.items.find((item) => item.id === form.watch("device_id"));
|
||||
const selectedEquipment = equipment.data?.items.filter((item) => form.watch("equipment_ids").includes(item.id)) ?? [];
|
||||
const selectedResult = getValidationResultPresentation(form.watch("result"));
|
||||
const recommendations = useFieldArray({ control: form.control, name: "recommendations" });
|
||||
const attachments = useFieldArray({ control: form.control, name: "attachments" });
|
||||
|
||||
|
|
@ -195,7 +197,7 @@ export function ValidationEditor({ validationId }: { validationId?: string }) {
|
|||
form.reset({
|
||||
...defaults(),
|
||||
...data,
|
||||
result: data.result ?? "offen",
|
||||
result: normalizeValidationResult(data.result),
|
||||
project: data.project ?? "",
|
||||
test_location: data.test_location ?? "",
|
||||
examiner_name: data.examiner_name ?? "",
|
||||
|
|
@ -405,7 +407,7 @@ export function ValidationEditor({ validationId }: { validationId?: string }) {
|
|||
<Field label="Pruefer *"><input className={inputClass} {...form.register("examiner_name")} /></Field>
|
||||
<Field label="Mitwirkende Personen"><textarea className={areaClass} {...form.register("participants")} /></Field>
|
||||
<Field label="Status"><select className={selectClass} {...form.register("status")}><option value="ENTWURF">Entwurf</option><option value="BEREIT_ZUR_PRUEFUNG">Bereit zur Pruefung</option><option value="IN_PRUEFUNG">In Pruefung</option><option value="FREIGEGEBEN">Freigegeben</option><option value="ABGESCHLOSSEN">Abgeschlossen</option><option value="STORNIERT">Storniert</option></select></Field>
|
||||
<Field label="Gesamtergebnis"><select className={selectClass} {...form.register("result")}><option value="offen">Offen</option><option value="bestanden">Bestanden</option><option value="nicht_bestanden">Nicht bestanden</option><option value="mit_auflagen">Mit Auflagen</option></select></Field>
|
||||
<Field label="Gesamtergebnis"><select className={selectClass} {...form.register("result")}>{validationResultValues.map((value) => <option key={value} value={value}>{getValidationResultPresentation(value).label}</option>)}</select><div className={`mt-3 flex min-h-12 items-center justify-center rounded-lg border px-4 text-sm font-semibold ${selectedResult.previewClass}`}>{selectedResult.label}</div></Field>
|
||||
</div>
|
||||
</Accordion>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue