Move board export into the edit dialog and shorten supply types in the list
Some checks are pending
security-baseline / secrets (push) Waiting to run
security-baseline / node (push) Waiting to run
security-baseline / semgrep (push) Waiting to run
security-baseline / trivy (push) Waiting to run

The distribution-board export now sits in the board's edit dialog next to
copying instead of in every list row. The board list shows only the
supply-type code (AV, SV, EV, USV, MSR, SiBe) with the full name as a
tooltip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Julian Appel 2026-10-30 09:03:29 +01:00
parent 084002bea9
commit 1f3b903809
2 changed files with 34 additions and 13 deletions

View file

@ -365,7 +365,8 @@ Projektgeräte-Verknüpfungen samt Override-Metadaten, Raum-IDs (Raumnummer und
freigegebene Netzart und der Revit-Anteil der Anzahl (`quantity =
manualQuantity`). Stromkreisspannungen folgen den Spannungen des Zielprojekts.
Die Antwort nennt diese Anpassungen in `adjustments`; die Projektseite bietet
Export je Verteilung und Import im Kopf der Verteilerkarte an.
den Export im Bearbeiten-Dialog der Verteilung und den Import im Kopf der
Verteilerkarte an.
`distribution-board-component.insert` und
`distribution-board-component.delete` sowie
`distribution-board-component.update` versionieren Anlage, Entfernung,

View file

@ -5,7 +5,6 @@ import { useParams } from "next/navigation";
import { FormEvent, useEffect, useMemo, useRef, useState } from "react";
import {
ArrowLeft,
Download,
FileSpreadsheet,
Library,
Link2,
@ -1230,12 +1229,14 @@ export default function ProjectDetailPage() {
? floorById.get(board.floorId)?.name ?? "Unbekannt"
: "Ohne Etage"}
</td>
<td>
{board.supplyType
? distributionBoardSupplyTypeLabels[
<td
title={
board.supplyType
]
: "Nicht festgelegt"}
? distributionBoardSupplyTypeLabels[board.supplyType]
: undefined
}
>
{board.supplyType ?? "Nicht festgelegt"}
</td>
<td>{formatBoardFeedingReference(board)}</td>
<td>
@ -1255,11 +1256,6 @@ export default function ProjectDetailPage() {
label="Bearbeiten"
onClick={() => openBoardEditor(board)}
/>
<IconButton
icon={Download}
label="Verteilung exportieren"
onClick={() => void handleExportBoard(board)}
/>
{circuitList ? (
<IconLink
href={`/projects/${projectId}/circuit-lists/${circuitList.id}/tree-edit`}
@ -1928,6 +1924,30 @@ export default function ProjectDetailPage() {
</div>
</section>
<hr className="my-4" />
<section aria-labelledby="export-distribution-board-heading">
<h3
className="h6"
id="export-distribution-board-heading"
>
Verteilung exportieren
</h3>
<p className="text-secondary small">
Lädt den zuletzt gespeicherten Stand als Datei
(.verteiler.json) herunter. Sie lässt sich über „Verteilung
importieren“ in dieses oder ein anderes Projekt übernehmen;
Verknüpfungen zu Projektgeräten, Räumen, Etage und Einspeisung
werden dabei gelöst.
</p>
<button
className="btn btn-outline-primary"
disabled={isSaving}
onClick={() => void handleExportBoard(editingBoard)}
type="button"
>
Verteilung exportieren
</button>
</section>
<hr className="my-4" />
<section
aria-labelledby="delete-distribution-board-heading"
className="border border-danger-subtle rounded p-3"