feat(admin): Akte-Anzeige-Felder visuell gruppiert + Hinweistext
Objekttyp-Art/Zugfahrzeug/Ressourcenbuchung/Wartung/Zählerstand standen bisher lose in derselben Reihe wie die Pflichtfelder (Bereich/Kategorie/ Name) - eigener umrandeter Block "Akte-Anzeige" mit Hinweis, dass die Einstellung für alle Objekte dieses Typs gilt, nicht nur eins. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VDMvneg6wKfXdXvTYNd3dN
This commit is contained in:
1 parent
20d4903d9c
commit
1fd5649282
2 files changed
+194
-73
No files matched your search
@@ -15851,3 +15851,107 @@ Keine Commits in dieser Session.
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 19 ++++++++++++++++++
|
||||
|
||||
---
|
||||
## 2026-09-14 11:54 – 11:56 (2m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** frontend
|
||||
|
||||
### Commits
|
||||
- 20d4903 feat(admin): Objekttyp-Presets beim Anlegen statt drei Einzel-Regler
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- frontend/DEVLOG.md | 42 +++++++++++++++++++++++++++++++++
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
|
||||
---
|
||||
## 2026-09-14 11:56 – 11:57 (0m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** asb-material
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- frontend/DEVLOG.md | 42 +++++++++++++++++++++++++++++++++
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
|
||||
---
|
||||
## 2026-09-14 11:58 – 11:58 (0m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** asb-material
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- frontend/DEVLOG.md | 42 +++++++++++++++++++++++++++++++++
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
|
||||
---
|
||||
## 2026-09-14 11:59 – 11:59 (0m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** asb-material
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- frontend/DEVLOG.md | 42 +++++++++++++++++++++++++++++++++
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
|
||||
---
|
||||
## 2026-09-14 12:03 – 12:03 (0m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** asb-material
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- frontend/DEVLOG.md | 42 +++++++++++++++++++++++++++++++++
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
|
||||
---
|
||||
## 2026-09-14 12:24 – 12:24 (0m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** asb-material
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- frontend/DEVLOG.md | 42 +++++++++++++++++++++++++++++++++
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
|
||||
---
|
||||
## 2026-09-14 13:08 – 13:08 (0m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** asb-material
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- frontend/DEVLOG.md | 42 +++++++++++++++++++++++++++++++++
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
|
||||
---
|
||||
## 2026-09-14 22:56 – 22:58 (1m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** asb-material
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
- frontend/DEVLOG.md | 42 +++++++++++++++++++++++++++++++++
|
||||
- frontend/src/pages/admin/ObjekttypSection.tsx | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
|
||||
|
||||
---
|
||||
@@ -246,83 +246,100 @@ export function ObjekttypSection({
|
||||
<input {...feldProps} className="input" value={name} onChange={(e) => setName(e.target.value)} />
|
||||
)}
|
||||
</FormField>
|
||||
<FormField label="Objekttyp-Art">
|
||||
{(feldProps) => (
|
||||
<select
|
||||
{...feldProps}
|
||||
className="input"
|
||||
value={preset}
|
||||
onChange={(e) => presetAnwenden(e.target.value as ObjekttypPreset)}
|
||||
>
|
||||
{Object.entries(PRESET_LABEL).map(([wert, label]) => (
|
||||
<option key={wert} value={wert}>
|
||||
{label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
)}
|
||||
</FormField>
|
||||
<label className="row" style={{ alignItems: "center", gap: "0.4rem", marginTop: "1.5rem" }}>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={istZugfahrzeug}
|
||||
onChange={(e) => {
|
||||
setIstZugfahrzeug(e.target.checked);
|
||||
setPreset("benutzerdefiniert");
|
||||
}}
|
||||
/>
|
||||
Zugfahrzeug (koppelbar)
|
||||
</label>
|
||||
<label className="row" style={{ alignItems: "center", gap: "0.4rem", marginTop: "1.5rem" }}>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={ressourcenbuchungAktiv}
|
||||
onChange={(e) => {
|
||||
setRessourcenbuchungAktiv(e.target.checked);
|
||||
setPreset("benutzerdefiniert");
|
||||
}}
|
||||
/>
|
||||
Ressourcenbuchung in der Akte anzeigen
|
||||
</label>
|
||||
<label className="row" style={{ alignItems: "center", gap: "0.4rem", marginTop: "1.5rem" }}>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={wartungAktiv}
|
||||
onChange={(e) => {
|
||||
setWartungAktiv(e.target.checked);
|
||||
setPreset("benutzerdefiniert");
|
||||
}}
|
||||
/>
|
||||
Wartung in der Akte anzeigen
|
||||
</label>
|
||||
<FormField label="Zählerstand in der Akte">
|
||||
{(feldProps) => (
|
||||
<select
|
||||
{...feldProps}
|
||||
className="input"
|
||||
value={zaehlerTyp}
|
||||
</div>
|
||||
|
||||
{/* Nutzer-Vorschlag 2026-09-14: eigener, visuell abgesetzter Block
|
||||
statt lose in derselben Reihe wie die Pflichtfelder - macht
|
||||
deutlicher, dass diese Einstellungen den ganzen Objekttyp
|
||||
betreffen (nicht ein einzelnes Objekt). */}
|
||||
<div
|
||||
className="stack"
|
||||
style={{ marginTop: "1rem", padding: "0.75rem", border: "1px solid var(--color-border)", borderRadius: "0.5rem" }}
|
||||
>
|
||||
<strong style={{ fontSize: "0.9rem" }}>Akte-Anzeige</strong>
|
||||
<p className="text-muted" style={{ fontSize: "0.85rem", marginTop: 0, marginBottom: "0.5rem" }}>
|
||||
Gilt für alle Objekte dieses Typs, nicht nur ein einzelnes Objekt.
|
||||
</p>
|
||||
<div className="row" style={{ flexWrap: "wrap", alignItems: "flex-start" }}>
|
||||
<FormField label="Objekttyp-Art">
|
||||
{(feldProps) => (
|
||||
<select
|
||||
{...feldProps}
|
||||
className="input"
|
||||
value={preset}
|
||||
onChange={(e) => presetAnwenden(e.target.value as ObjekttypPreset)}
|
||||
>
|
||||
{Object.entries(PRESET_LABEL).map(([wert, label]) => (
|
||||
<option key={wert} value={wert}>
|
||||
{label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
)}
|
||||
</FormField>
|
||||
<label className="row" style={{ alignItems: "center", gap: "0.4rem", marginTop: "1.5rem" }}>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={istZugfahrzeug}
|
||||
onChange={(e) => {
|
||||
setZaehlerTyp(e.target.value as ZaehlerTyp);
|
||||
setIstZugfahrzeug(e.target.checked);
|
||||
setPreset("benutzerdefiniert");
|
||||
}}
|
||||
>
|
||||
{Object.entries(ZAEHLER_TYP_LABEL).map(([wert, label]) => (
|
||||
<option key={wert} value={wert}>
|
||||
{label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
)}
|
||||
</FormField>
|
||||
<button
|
||||
className="btn btn-primary"
|
||||
style={{ marginTop: "1.5rem" }}
|
||||
onClick={anlegen}
|
||||
disabled={!name || wirdAngelegt}
|
||||
>
|
||||
Anlegen
|
||||
</button>
|
||||
/>
|
||||
Zugfahrzeug (koppelbar)
|
||||
</label>
|
||||
<label className="row" style={{ alignItems: "center", gap: "0.4rem", marginTop: "1.5rem" }}>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={ressourcenbuchungAktiv}
|
||||
onChange={(e) => {
|
||||
setRessourcenbuchungAktiv(e.target.checked);
|
||||
setPreset("benutzerdefiniert");
|
||||
}}
|
||||
/>
|
||||
Ressourcenbuchung in der Akte anzeigen
|
||||
</label>
|
||||
<label className="row" style={{ alignItems: "center", gap: "0.4rem", marginTop: "1.5rem" }}>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={wartungAktiv}
|
||||
onChange={(e) => {
|
||||
setWartungAktiv(e.target.checked);
|
||||
setPreset("benutzerdefiniert");
|
||||
}}
|
||||
/>
|
||||
Wartung in der Akte anzeigen
|
||||
</label>
|
||||
<FormField label="Zählerstand in der Akte">
|
||||
{(feldProps) => (
|
||||
<select
|
||||
{...feldProps}
|
||||
className="input"
|
||||
value={zaehlerTyp}
|
||||
onChange={(e) => {
|
||||
setZaehlerTyp(e.target.value as ZaehlerTyp);
|
||||
setPreset("benutzerdefiniert");
|
||||
}}
|
||||
>
|
||||
{Object.entries(ZAEHLER_TYP_LABEL).map(([wert, label]) => (
|
||||
<option key={wert} value={wert}>
|
||||
{label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
)}
|
||||
</FormField>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button
|
||||
className="btn btn-primary"
|
||||
style={{ marginTop: "1rem" }}
|
||||
onClick={anlegen}
|
||||
disabled={!name || wirdAngelegt}
|
||||
>
|
||||
Anlegen
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
{objekttypen.length > 0 && (
|
||||
|
||||
Reference in new issue
Block a user