Add CKndigung layout files and update cache timestamps; improve UI structure and error handling
This commit is contained in:
66
README.md
66
README.md
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user