diff --git a/src/app/projects/[projectId]/revit/page.tsx b/src/app/projects/[projectId]/revit/page.tsx index fc8b85e..46c3d5d 100644 --- a/src/app/projects/[projectId]/revit/page.tsx +++ b/src/app/projects/[projectId]/revit/page.tsx @@ -45,7 +45,7 @@ export default function RevitPage() { {error ?
{error}
: null}

XLSX-Konfiguration

{snapshot ? "Die Linear-Spalten und das Tabellenlayout sind konfiguriert." : "Noch keine XLSX-Konfiguration gespeichert."}

{snapshot ? "Konfiguriert" : "Offen"}

Importstatus

{importStatus?.imported ? <>

{importStatus.objectCount} Revit-Objekte{importStatus.fileName ? ` aus ${importStatus.fileName}` : ""}

Quelle: {importStatus.sourceName}

:

Noch kein Linear-XLSX-Import vorhanden.

}
{importStatus?.imported ? setProject((current) => current ? { ...current, currentRevision: revision } : current)} /> : null} - {settingsOpen ? setSettingsOpen(false)} onInspectSample={async (file, configuration) => { const result = await detectExternalModelWorkbook(projectId, file, configuration); return `Muster erkannt: ${result.sheetName}, ${result.columnCount} Spalten, ${result.objectCount} Objekte.`; }} onSave={save} /> : null} + {settingsOpen ? setSettingsOpen(false)} onInspectSample={async (file, configuration) => { const result = await detectExternalModelWorkbook(projectId, file, configuration); return `Muster erkannt: ${result.sheetName}, ${result.columnCount} Spalten, ${result.objectCount} Objekte.`; }} onSave={save} /> : null} {importOpen && project && snapshot ? setImportOpen(false)} onImported={({ history }) => { setProject({ ...project, currentRevision: history.currentRevision }); setImportOpen(false); void Promise.all([getExternalInitialImportStatus(projectId), getExternalModelConfiguration(projectId)]).then(([status, configuration]) => { setImportStatus(status); setSnapshot(configuration.configuration); }); }} /> : null} ; } diff --git a/src/frontend/components/revit-xlsx-settings-modal.tsx b/src/frontend/components/revit-xlsx-settings-modal.tsx index 7041ebc..899c3ca 100644 --- a/src/frontend/components/revit-xlsx-settings-modal.tsx +++ b/src/frontend/components/revit-xlsx-settings-modal.tsx @@ -13,8 +13,9 @@ const labels: Record = { electricalPowerW: "Elektrische Leistung", voltageV: "Spannung", currentA: "Stromstärke", }; -export function RevitXlsxSettingsModal({ configuration, isSaving, onClose, onInspectSample, onSave }: { +export function RevitXlsxSettingsModal({ configuration, isNewConfiguration = false, isSaving, onClose, onInspectSample, onSave }: { configuration: ExternalModelConfiguration; + isNewConfiguration?: boolean; isSaving: boolean; onClose: () => void; onInspectSample: (file: File, configuration: ExternalModelConfiguration) => Promise; @@ -33,7 +34,7 @@ export function RevitXlsxSettingsModal({ configuration, isSaving, onClose, onIns } } - return { event.preventDefault(); void onSave(draft); }}> + return { event.preventDefault(); void onSave(draft); }}>
void inspectSample(event.target.files?.[0])} />{sampleStatus ?
{sampleStatus}
: null}
{(["headerRow", "firstDataRow", "firstDataColumn"] as const).map((key) =>
setDraft({ ...draft, layout: { ...draft.layout, [key]: Number(event.target.value) } })} />
)} diff --git a/tests/revit-xlsx-settings-api.test.ts b/tests/revit-xlsx-settings-api.test.ts index ed91b57..4f13b70 100644 --- a/tests/revit-xlsx-settings-api.test.ts +++ b/tests/revit-xlsx-settings-api.test.ts @@ -59,6 +59,8 @@ describe("Revit XLSX settings", () => { assert.match(revitPage, /Importstatus/); assert.match(settings, /Musterdatei prüfen/); assert.match(settings, /Kombinierte Stromkreisspalte/); + assert.match(settings, /isNewConfiguration/); + assert.match(revitPage, /isNewConfiguration={snapshot === null}/); assert.match(wizard, /Schritt.*von/); assert.match(wizard, /keine Gerätezeilen, Stromkreise oder BMKs/); assert.match(wizard, /GZF 1/);