kundenkarte/ChangeLog.md
data 844e6060c6 feat(pwa): Offline-fähige Progressive Web App für Elektriker
PWA Mobile App für Schaltschrank-Dokumentation vor Ort:
- Token-basierte Authentifizierung (15 Tage gültig)
- Kundensuche mit Offline-Cache
- Anlagen-Auswahl und Offline-Laden
- Felder/Hutschienen/Automaten erfassen
- Automatische Synchronisierung wenn wieder online
- Installierbar auf dem Smartphone Home Screen
- Touch-optimiertes Dark Mode Design
- Quick-Select für Automaten-Werte (B16, C32, etc.)

Schaltplan-Editor Verbesserungen:
- Block Hover-Tooltip mit show_in_hover Feldern
- Produktinfo mit Icon im Tooltip
- Position und Breite in TE

Neue Dateien:
- pwa.php, pwa_auth.php - PWA Einstieg & Auth
- ajax/pwa_api.php - PWA AJAX API
- js/pwa.js, css/pwa.css - PWA App & Styles
- sw.js, manifest.json - Service Worker & Manifest
- img/pwa-icon-192.png, img/pwa-icon-512.png

Version: 5.2.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-23 15:27:06 +01:00

244 lines
9.3 KiB
Markdown
Executable file

# CHANGELOG MODULE KUNDENKARTE FOR [DOLIBARR ERP CRM](https://www.dolibarr.org)
## 5.2.0 (2026-02)
### Neue Features
- **PWA Mobile App**: Offline-faehige Progressive Web App fuer Elektriker
- Schaltschrank-Dokumentation direkt vor Ort im Keller (ohne Internet)
- Kundensuche, Anlagen-Auswahl, Felder/Hutschienen/Automaten erfassen
- Token-basierte Authentifizierung (15 Tage gueltig)
- Automatische Synchronisierung wenn wieder online
- Installierbar auf dem Smartphone Home Screen
- Touch-optimiertes Dark Mode Design
- Quick-Select fuer Automaten-Werte (B16, C32, etc.)
- **Schaltplan-Editor: Block Hover-Tooltip**
- Zeigt alle Felder mit `show_in_hover=1` Einstellung
- Produktinfo mit Icon wenn Produkt zugewiesen
- Position und Breite in TE
- Schickes dunkles Design
- **Schaltplan-Editor: Produkt-Zuordnung**
- Autocomplete-Suche fuer Produkte beim Hinzufuegen/Bearbeiten
- Produktinfo im Klick-Popup angezeigt
### Verbesserungen
- Equipment-Popup zeigt jetzt Produktinfo mit Cube-Icon
- Loeschbestaetigung fuer Panels und Hutschienen mit Inhalt
### Neue Dateien
- `pwa.php` - PWA Haupteinstieg
- `pwa_auth.php` - Token-basierte Authentifizierung
- `ajax/pwa_api.php` - PWA AJAX API
- `js/pwa.js` - PWA JavaScript App
- `css/pwa.css` - PWA Mobile Styles
- `sw.js` - Service Worker (Offline-Cache)
- `manifest.json` - PWA Web App Manifest
- `img/pwa-icon-192.png`, `img/pwa-icon-512.png` - App Icons
---
## 5.1.0 (2026-02)
### Verbesserungen
- **Graph-Ansicht: Intelligente Feldanzeige**
- Felder nach `position` sortiert (nicht mehr nach JSON-Reihenfolge)
- Nur Felder mit `show_in_tree=1` werden auf den Graph-Nodes angezeigt
- Nur Felder mit `show_in_hover=1` erscheinen im Tooltip
- Badge-Werte im Graph mit Feldbezeichnung (z.B. "Hersteller: ABB")
- Tooltip: Typ/System entfernt (redundant mit Graph-Node)
- Tooltip: Farbige Badge-Kaesten wie in der Baumansicht
- Shared Library `lib/graph_view.lib.php` fuer Toolbar/Container/Legende
### Neue Dateien
- `lib/graph_view.lib.php` - Gemeinsame Graph-Funktionen (Toolbar, Container, Legende)
---
## 5.0.0 (2026-02)
### Neue Features
- **Cytoscape.js Graph-Ansicht**: Neue interaktive Netzwerk-Visualisierung
- Raeume als Compound-Container, Geraete als Nodes darin
- Kabelverbindungen als sichtbare Edges (auch raumuebergreifend)
- Durchgeschleifte Leitungen als gestrichelte Linien
- Dagre-Layout: Hierarchischer Stromfluss top-down
- Zoom/Pan/Fit-Controls, Mausrad-Zoom Toggle
- Kabeltyp-Legende mit Farben
- **Bearbeitungsmodus**: Nodes nur per "Anordnen"-Button verschiebbar,
Positionen per "Speichern"-Button fest, "Abbrechen" setzt zurueck
- Viewport-Persistenz (Zoom/Pan bleibt beim Seitenwechsel)
- Klick auf Node/Edge oeffnet Detail-/Bearbeitungsseite
- Suche als Overlay im Graph-Container (Nodes hervorheben/abdunkeln)
- Kontextmenue (Rechtsklick): Ansehen, Bearbeiten, Kopieren, Loeschen
- PNG-Export des Graphen
- Admin-Setting: Ansichtsmodus (Baum/Graph) in Setup waehlbar
- Toolbar zweizeilig: Aktionen oben, Graph-Steuerung unten
- **Verbindungsformular verbessert**
- Select-Dropdowns zeigen nur Geraete (keine Gebaeude/Raeume)
- Icons (FontAwesome) in Select-Optionen via select2
- Gebaeude-Pfad als Kontext (z.B. "EG > Zahlerschrank")
- Systemuebergreifende Geraete-Auswahl (kein Systemfilter)
### Neue Dateien
- `js/kundenkarte_cytoscape.js` - Graph-Namespace (~750 Zeilen)
- `css/kundenkarte_cytoscape.css` - Graph-Styles mit Dark Mode
- `ajax/graph_data.php` - AJAX: Baum+Verbindungen → Cytoscape-Format
- `ajax/graph_save_positions.php` - AJAX: Node-Positionen speichern
- `js/cytoscape.min.js`, `js/dagre.min.js`, `js/cytoscape-dagre.js`, `js/cytoscape-cose-bilkent.js` - Bibliotheken
### Bugfixes
- **Contact-Filter im Graph**: Graph zeigte faelschlicherweise Kontakt-Elemente auf Kunden-Ebene
- Fix: `fk_contact` Filter in `graph_data.php` analog zum Baum
- **Verbindung hinzufuegen**: Formular zeigte "Feld erforderlich"-Fehler beim Oeffnen
- Ursache: `action=create` in URL triggerte Handler vor Formular-Anzeige
- Fix: Korrekte Dolibarr-Konvention (create=Formular, add=Verarbeitung)
- **Leere Dropdowns**: Quelle/Ziel-Auswahl war leer wenn System keine Elemente hatte
- Fix: Kein System-Filter mehr (Kabel koennen systemuebergreifend sein)
- **Kontakt-Redirect**: Nach Verbindung-Bearbeiten landete man auf Kundenansicht statt Kontaktansicht
- Fix: `contactid` wird jetzt in allen Edit-URLs mitgegeben
- **Kontakt-Anlagen**: Auf Stand von Kunden-Anlagen gebracht
- tree_display_mode, badge_color, Schaltplan-Editor, Drag&Drop Upload
### Datenbank-Aenderungen
- Neue Spalten `graph_x`, `graph_y` in `llx_kundenkarte_anlage` (Node-Positionen)
- Neue Spalte `fk_building_node` in `llx_kundenkarte_anlage` (vorbereitet fuer Phase 2)
### Admin-Settings
- `KUNDENKARTE_DEFAULT_VIEW`: `tree` (Standard) oder `graph`
---
## 4.0.1 (2026-02)
### Neue Features
- **Badge-Farben pro Feld**: Individuelle Farben fuer Badges im Baum konfigurierbar
- Neue Spalte in Admin > Element-Typen > Felder
- Color-Picker fuer einfache Farbauswahl
- Hex-Format (#RRGGBB)
- **Datei-Vorschau Tooltip**: Hover ueber Datei-Badge zeigt Vorschau
- Thumbnails fuer Bilder
- Icons fuer Dokumente (PDF, Word, Excel, etc.)
- Neuer AJAX-Endpoint `ajax/file_preview.php`
- **Mobile/Kompakte Ansicht**: Optimiert fuer mobile Geraete
- Kompakt-Modus Toggle-Button
- Einheitliche Button-Groessen auf mobilen Geraeten
- 2x2 Grid-Layout auf sehr kleinen Bildschirmen
- Touch-freundliche Bedienelemente
### Bugfixes
- **Dolibarr App Navigation**: Vor/Zurueck-Pfeile funktionieren jetzt korrekt
- Module akzeptieren nun `id` UND `socid`/`contactid` Parameter
- Kunden-Kontext bleibt beim Navigieren erhalten
- Betroffene Dateien: alle Tab-PHP-Files
- **Datei-Badge Icon**: Zeigt jetzt Bueroklammer-Icon statt nur Zahl
- **Kontakt-Anlagen Kategorie-Filter**: Fehlende Kategorie-Auswahl hinzugefuegt
- Gebaeude/Standort vs. Technisches Element jetzt auch bei Kontakten waehlbar
- Strom-Typen sind jetzt auswaehlbar
- **Schematic Editor**: Hutschiene hinzufuegen Button bei leerem Panel
- Button erscheint jetzt auch wenn noch keine Hutschiene existiert
- **Panel-Hoehe**: Korrektur der Berechnung bei mehreren Hutschienen
- Unterer Rand wird nicht mehr abgeschnitten
### Datenbank-Aenderungen
- Neue Spalte `badge_color` in `llx_kundenkarte_anlage_type_field`
---
## 3.5.0 (2026-02)
### Neue Features
- **Drag & Drop Sortierung**: Elemente im Anlagenbaum per Drag & Drop umsortieren
- Geschwister-Elemente auf gleicher Ebene verschieben
- Visuelle Drop-Indikatoren (blaue Linie)
- Reihenfolge wird sofort per AJAX gespeichert (kein Seitenreload)
- Funktioniert in Kunden- und Kontakt-Anlagen
### Bugfixes
- **Duplicate-Key-Fehler behoben**: UNIQUE KEY `uk_kundenkarte_societe_system` um `fk_contact` erweitert
- Systeme koennen nun gleichzeitig auf Kunden- und Kontaktebene existieren
- Migration wird automatisch beim Modul-Aktivieren ausgefuehrt
### Verbesserungen
- Visueller Abstand zwischen Root-Elementen im Anlagenbaum
- INSERT fuer Kunden-Systeme setzt explizit `fk_contact = 0`
---
## 2.0 (2026-01)
### Neue Features
- **PDF Export mit Vorlage**: Briefpapier/Hintergrund-PDF kann als Vorlage hochgeladen werden
- Upload im Admin-Bereich unter Einstellungen
- Vorlage wird als Hintergrund auf allen Seiten verwendet
- **PDF Schriftgroessen konfigurierbar**: Anpassbare Schriftgroessen fuer den PDF-Export
- Ueberschriften (7-14pt)
- Inhalte (6-12pt)
- Feldbezeichnungen (5-10pt)
- **Verbesserte PDF-Baumdarstellung**: Professionelle Darstellung der Anlagenstruktur
- Farbcodierte Header pro Hierarchie-Ebene (dezente Grauabstufungen)
- Abgerundete Rahmen um Elemente
- Visuelle Verbindungslinien zwischen Elementen
- Bessere Einrueckung und Lesbarkeit
### Verbesserungen
- Logo aus PDF-Export entfernt (ersetzt durch Vorlagen-System)
- Dynamische Felder fuer Element-Typen (Ueberschrift als neuer Feldtyp)
- Kopierfunktion fuer Elemente und Typen
---
## 1.1 (2026-01)
### Neue Features
- **Kontakt/Adressen-Unterstuetzung**: Favoriten und Anlagen koennen nun auch auf Kontakt-/Adressebene verwaltet werden
- Ideal fuer Kunden mit mehreren Gebaeuden/Standorten
- Neue Tabs "Favoriten" und "Anlagen" auf Kontaktkarten
- Vollstaendige Trennung der Daten zwischen Kunde und Kontakten
### Verbesserungen
- Mengen-Eingabe bei Favoriten vereinfacht (Textfeld + Speichern-Button)
- Modul-Icon geaendert zu fa-id-card
- Dokumentation aktualisiert
### Datenbank-Aenderungen
- Neue Spalte `fk_contact` in Tabelle `llx_kundenkarte_favorite_products`
- Neue Spalte `fk_contact` in Tabelle `llx_kundenkarte_anlage`
- Neue Spalte `fk_contact` in Tabelle `llx_kundenkarte_societe_system`
### Hinweis zum Upgrade
Nach dem Update bitte das Modul einmal deaktivieren und wieder aktivieren, damit die SQL-Aenderungen ausgefuehrt werden.
---
## 1.0
### Features
- Favoriten-Produkte fuer Kunden
- Produkte als Favoriten markieren
- Standardmengen festlegen
- Bestellungen aus Favoriten generieren
- Sortierbare Liste
- Technische Anlagen (Baumstruktur)
- Systemkategorien (Strom, Internet, Kabel, Sat)
- Konfigurierbare Element-Typen
- Individuelle Felder pro Typ
- Datei-Upload mit Vorschau
- Hierarchische Struktur
- Admin-Bereich
- Systeme verwalten
- Typen verwalten
- Felder konfigurieren
Initial version