kundenkarte/ChangeLog.md
data 848232c5a6 feat(schematic): Wire-Dragging, Farbpropagierung, Busbar-Typen
- Wire-Segment-Dragging: Shift+Klick/Mittlere Maustaste zum Verschieben
  - Horizontale Segmente nur vertikal, vertikale nur horizontal
  - Grid-Snapping, Live-Vorschau, Start/End-Segmente fixiert
- PWA: Automatische Farbpropagierung bei Einspeisung (L1/L2/L3/N/PE)
  - N-Phase als Input hinzugefuegt
  - propagateInputColor() aktualisiert Abgaenge
- Busbar-Typen aus Datenbank statt hardcodiert
- ChangeLog aktualisiert

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 15:46:46 +01:00

16 KiB

CHANGELOG MODULE KUNDENKARTE FOR DOLIBARR ERP CRM

11.0 (2026-03)

Neue Features

  • Terminal-Farben nach Verbindung: Terminals zeigen die Farbe der angeschlossenen Leitung

    • Grau = keine Verbindung, farbig = Leitung angeschlossen
    • Farbe entspricht dem Leitungstyp (L1=braun, L2=schwarz, L3=grau, N=blau, PE=gruen)
    • Neue Hilfsfunktion getTerminalConnectionColor()
  • Leitungen hinter Bloecken: Wires werden nun hinter den Equipment-Bloecken gerendert

    • Layer-Reihenfolge geaendert: connections-layer vor blocks-layer
    • Leitungen "verschwinden" hinter Bloecken und kommen auf der anderen Seite wieder raus
    • Professionelleres Erscheinungsbild wie in echten Schaltplan-Editoren
  • Wire-Segment-Dragging: Leitungen koennen verschoben werden ohne Verbindungen zu verlieren

    • Shift+Klick oder Mittlere Maustaste auf Leitungssegment zum Ziehen
    • Horizontale Segmente nur vertikal verschiebbar, vertikale nur horizontal
    • Start- und End-Segmente (an Terminals) bleiben fix
    • Automatisches Grid-Snapping (25px)
    • Live-Vorschau waehrend dem Ziehen
    • Neue Funktionen: parsePathToPoints(), pointsToPath(), findClickedSegment()
    • startWireDrag(), handleWireDragMove(), finishWireDrag(), cancelWireDrag()
  • Busbar-Typen aus Datenbank: Phasenschienen-Typen dynamisch aus DB laden

    • Edit-Dialog nutzt jetzt busbarTypes Array statt hardcodierter Optionen
    • fk_busbar_type wird beim Update korrekt gespeichert
    • Admin-Seite fuer Busbar-Typen mit phases_config JSON-Feld
  • PWA: Farbpropagierung bei Einspeisung: Automatische Farbuebernahme

    • Bei Auswahl einer Input-Phase (L1/L2/L3/N/PE) wird Farbe automatisch gesetzt
    • Funktion propagateInputColor() aktualisiert Farben auf Abgaengen
    • Phase-Matching: L1 matched L1, LN, L1N; N matched N; etc.
    • Funktioniert online und offline (mit Queue)
  • PWA: N-Phase als Einspeisung: Neutralleiter jetzt als Input-Phase waehlbar

    • INPUT_PHASES erweitert um 'N': ['L1', 'L2', 'L3', 'N', 'PE']
    • 3P und 3P+N entfernt (nur Einzel-Phasen)

Verbesserungen

  • Zeichenmodus-Verhalten: Konsistentes Verhalten im manuellen Zeichenmodus

    • Rechtsklick bricht nur aktuelle Linie ab, nicht den Zeichenmodus
    • Escape-Taste verhaelt sich identisch (Linie abbrechen, Modus bleibt aktiv)
    • Crosshair-Cursor ueberall im SVG waehrend Zeichenmodus (nicht nur auf Terminals)
    • Keine Unterbrechung mehr beim Klicken auf leere Flaechen
  • Terminal Hit-Area: Verbesserte Klickbarkeit der Terminals

    • 30px Radius fuer einfacheres Anklicken
    • pointer-events:all fuer zuverlaessige Event-Erfassung

Bugfixes

  • Cursor zeigte nicht ueberall Crosshair im Zeichenmodus
  • Zeichenmodus wurde bei Rechtsklick/Escape komplett beendet statt nur Linie abzubrechen
  • Junction-Verbindungen (Terminal zu Leitung) werden korrekt gerendert

8.6 (2026-03)

Neue Features

  • has_product Typ-Flag: Produkt-Zuordnung pro Element- und Gebaeudetyp ein-/abschaltbar

    • Neue Checkbox "Produkt-Zuordnung" in Admin > Element-Typen und Gebaeudetypen
    • Produkt-Zeile im Formular wird per JS dynamisch ein-/ausgeblendet je nach Typ
    • data-has-product und data-has-accessories Attribute auf Options fuer JS-Steuerung
  • Decommissioned Default-Setting: Standard-Sichtbarkeit fuer ausgebaute Elemente

    • Neues Admin-Setting KUNDENKARTE_SHOW_DECOMMISSIONED unter Einstellungen
    • Toggle-Button startet mit Admin-Default in allen 3 Ansichten (Kunden, Kontakte, Mein Betrieb)
    • Tree-Div erhaelt show-decommissioned CSS-Klasse basierend auf Setting

Bugfixes

  • Select2 Typ-Select im Edit-Modus: Wert wurde nicht angezeigt beim Bearbeiten

    • Ursache: Wert wurde vor Select2-Initialisierung gesetzt ohne .trigger("change")
    • Fix: Wert wird jetzt nach initSelect2() mit Trigger gesetzt
    • Betrifft: anlagen.php und contact_anlagen.php (Kategorie-Filter mit Select2)
  • Fehlende color-Property: fetchAllBySystem() hat $type->color nicht gesetzt

    • Options mit data-color Attribut hatten leeren Wert

Datenbank-Aenderungen

  • Neue Spalte has_product (tinyint) in llx_kundenkarte_anlage_type
  • Neue Spalte has_product (tinyint) in llx_kundenkarte_building_type
  • Migration migrate_v860_has_product() in modKundenKarte.class.php

8.5 (2026-03)

Neue Features

  • Mein Betrieb (Werkzeuge & Maschinen): Eigene Baumansicht fuer Firmen-Equipment

    • Neue Seite werkzeuge.php mit System-Tabs, Baum und Graph-Ansicht
    • Neues System "WERKZEUG" fuer firmeneigene Geraete
    • Menue-Eintrag unter KundenKarte > Mein Betrieb
  • Zubehoer-System: Zubehoer und Ersatzteile pro Anlage zuordnen

    • Neue Klasse AnlageAccessory mit CRUD und Bestellfunktion
    • Lieferantenbestellung direkt aus Zubehoer-Liste generierbar
    • Typ-Flag has_accessories steuert Verfuegbarkeit pro Typ
  • Produkt-Zuordnung: Dolibarr-Produkt mit Anlage verknuepfen

    • fk_product Spalte in llx_kundenkarte_anlage
    • Autocomplete-Suche im Formular
    • Produkt-Details (Ref, Label, Preis) unter Element im Baum
  • Ausgebaut-Status: Anlagen als "ausgebaut" markieren

    • Toggle per Rechtsklick/Button am Element
    • Ausgebaute Elemente ausgegraut (opacity 0.4, dashed border)
    • Toggle-Button in Toolbar zum Ein-/Ausblenden
    • Ausbaudatum wird erfasst und angezeigt

Datenbank-Aenderungen

  • Neue Spalte decommissioned in llx_kundenkarte_anlage
  • Neue Spalte date_decommissioned in llx_kundenkarte_anlage
  • Neue Spalte fk_product in llx_kundenkarte_anlage
  • Neue Spalte has_accessories in llx_kundenkarte_anlage_type
  • Neue Tabelle llx_kundenkarte_anlage_accessory
  • Neues System WERKZEUG in llx_c_kundenkarte_anlage_system

7.5 (2026-03)

Neue Features

  • FI/RCD-Schutzgruppen: Equipment kann Schutzgeraeten zugeordnet werden

    • Farbliche Markierung der Schutzgruppen im Schaltplan
    • Dropdown zur Auswahl des Schutzgeraets im Equipment-Dialog
    • Visuelle Verbindung durch farbige Raender
  • Gebuendelte Terminals: Multi-Phasen-Abgaenge fuer Drehstrom-Verbraucher

    • "Alle buendeln" Option fuer E-Herd, Durchlauferhitzer etc.
    • Ein Abgang belegt alle Terminals des Equipment
    • Zentrierter Pfeil ueber alle Terminals
  • Terminal-Konfiguration: Korrekte Terminal-Anzahl aus Typ-Konfiguration

    • Neozed 3F zeigt 3 statt 4 Terminals (trotz 4 TE Breite)
    • Neue getTerminalCount() Hilfsfunktion
  • Zuletzt bearbeitete Kunden: Quick-Access auf Search-Screen

    • Speichert die letzten 5 bearbeiteten Kunden
    • Schneller Zugriff ohne Suche
  • Medium-Typen aus Datenbank: Dynamisches Kabeltyp-Dropdown

    • Kategorisierte Auswahl (NYM, NYY, Datenkabel, etc.)
    • Querschnitt-Spezifikationen als Unter-Dropdown
    • Offline-Cache fuer die Auswahl

Verbesserungen

  • Terminal-Labels anklickbar zum direkten Bearbeiten
  • Kontextmenue fuer leere Terminals (Wahl Input/Output)
  • Equipment-Block-Value (B16A) kleiner dargestellt (8px)
  • Terminals direkt am Equipment-Block ausgerichtet
  • Block-Label mit Einheiten und Leerzeichen (40A 30mA)

Bugfixes

  • Abgaenge werden nach Positionswechsel (oben/unten) korrekt angezeigt
  • Bundle-Option nur bei Equipment mit mehr als 1 Terminal sichtbar
  • Login-Fehler durch doppelte Variable-Deklaration behoben

Datenbank-Aenderungen

  • Neue Spalte bundled_terminals in llx_kundenkarte_equipment_connection
  • Neue Spalten fk_protection, protection_label in llx_kundenkarte_equipment

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