Add CKndigung layout files and update cache timestamps; improve UI structure and error handling

This commit is contained in:
2026-01-25 10:26:44 +01:00
parent 30326da8c6
commit eaeba65487
8 changed files with 323 additions and 14 deletions

View File

@@ -177,50 +177,92 @@ Basierend auf der Analyse von Git-Commits und praktischen Erfahrungen treten bes
#### 2. Layout-Strukturfehler
**Problem:** Unnötige oder falsche Array-Elemente in Layouts, die zu UI-Problemen führen.
**Problem:** Falsche Platzhalter und Strukturen in Layouts führen zu UI-Problemen.
**⚠️ KRITISCH für EspoCRM 7.x:**
In EspoCRM 7.x ist `false` als Platzhalter **NICHT MEHR ERLAUBT**!
**Symptome:**
- Layout wird nicht geladen, Fehlermeldung in UI
- Felder werden nicht korrekt angeordnet
- Leere Bereiche in Detail-Views
- Inkonsistente Spaltenbreiten
- bottomPanelsDetail funktioniert nicht
**❌ FALSCH:**
**❌ FALSCH (EspoCRM 7.x):**
```json
// layouts/Entity/detail.json
{
"rows": [
[
{"name": "field1"}
],
[
{"name": "field1"},
{"name": "field2"},
false // ← Unnötiges false-Element!
false, // ← DEPRECATED! Funktioniert in 7.x NICHT!
false // ← Verursacht Layout-Fehler!
]
]
}
```
**✅ RICHTIG:**
**✅ RICHTIG (EspoCRM 7.x):**
```json
{
"rows": [
[
{"name": "field1"},
{"name": "field2"} // Beide in einer Row
{"name": "field2"},
{}, // ← Leeres Objekt verwenden!
{} // ← Funktioniert in 7.x korrekt
]
]
}
```
**❌ FALSCH - bottomPanelsDetail.json als Array:**
```json
// layouts/Entity/bottomPanelsDetail.json
[
{"name": "contacts"},
{"name": "documents"}
]
```
**✅ RICHTIG - bottomPanelsDetail.json als Objekt:**
```json
{
"contacts": {
"index": 0,
"sticked": true,
"style": "warning"
},
"_tabBreak_0": {
"index": 1,
"columnBreak": true
},
"documents": {
"index": 2
},
"activities": {
"disabled": true
},
"history": {
"disabled": true
}
}
```
**Häufige Layout-Fehler:**
-**`false` als Platzhalter** (seit EspoCRM 7.x nicht mehr unterstützt!)
- ❌ Width-Attribute in Detail-Layouts (nur für List-Layouts!)
-Leere Objekte `{}` oder `false` in Rows
- ❌ Index nicht angepasst nach Entfernung von Panels (bottomPanelsDetail)
-bottomPanelsDetail.json als Array statt Objekt
- ❌ Index nicht angepasst nach Entfernung von Panels
**Best Practice:**
- **Immer `{}` statt `false`** für leere Zellen in detail.json verwenden
- Width nur in `list.json` und `listSmall.json` verwenden
- Rows immer vollständig füllen oder Felder kombinieren
- bottomPanelsDetail.json **MUSS** Objekt-Format haben
- Rows immer mit 4 Spalten füllen (nutze `{}` zum Auffüllen)
- Nach Panel-Entfernung Indices neu nummerieren
- `_tabBreak_{index}` verwenden um Panels auf verschiedene Tabs zu verteilen
---