Commit graph

17 commits

Author SHA1 Message Date
71272fa425 fix(schematic): Terminal-Farbpropagierung, Auto-Naming, PWA-Abgänge
- buildTerminalPhaseMap: Schritt 1b - Leitungen mit expliziter Farbe als
  Startpunkte (nur Gerät→Gerät, keine Abgänge)
- buildTerminalPhaseMap: Block-Durchreichung (Top↔Bottom) entfernt
- buildTerminalPhaseMap: Junction-Verbindungen (Terminal→Leitung)
  bidirektional verarbeitet via _connectionById Index
- PWA: Abgangs-Rendering mit Index-Fallback wenn source_terminal_id fehlt
- PWA: Abgangs-Labels max-height 130px, min-height 30px
- Auto-Naming: EquipmentCarrier create/update → 'R' + count
- Auto-Naming: EquipmentPanel update → 'Feld ' + count
- pwa_api.php: Hardcoded Fallbacks 'Feld'/'Hutschiene' entfernt
- pwa.js: Hutschiene Auto-Naming dynamisch aus Panel-Carrier-Anzahl
- kundenkarte.js: Carrier-Dialog Placeholder 'z.B. R1 (automatisch)'
- SW Cache auf v12.5 hochgezählt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 09:57:58 +01:00
16e51a799a feat(v8.6): Räumlichkeit, Verteilungs-Tabellen, Bundled-Terminals, PWA-Updates
- output_location (Räumlichkeit): Neues Textfeld am Abgang für Raum/Ort des
  Verbrauchers. DB-Migration, Backend (AJAX), Frontend (Website + PWA),
  Anzeige im Schaltplan (kursiv) und in PDF-Tabellen.
- Verteilungs-Tabellen: Kundenansicht (A4, Nr/Verbraucher/Räumlichkeit) und
  Technikeransicht (A4, R.Klem/FI/Nr/Verbraucher/Räumlichkeit/Typ) im
  Leitungslaufplan-PDF. Gruppiert nach Feld/Reihe mit automatischem Seitenumbruch.
- Bundled-Terminals Checkbox: Im Website-Abgang-Dialog (war vorher nur PWA).
- PWA: Diverse Verbesserungen, Service Worker v12.4, Connection-Modal erweitert.
- Typ-Flags: has_product auch für Gebäudetypen, Equipment-Typ Erweiterungen.
- CLAUDE.md + Doku aktualisiert.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 01:33:05 +01:00
8826c286ef feat(schematic): Leitungslaufplan PDF-Export nach DIN EN 61082
Neues separates Feature: Stromlaufplan in aufgelöster Darstellung als PDF.

- WiringDiagramAnalyzer: PHP-Port der JS Phase-Map-Logik, Strompfad-Tracing
- WiringDiagramRenderer: TCPDF-Zeichnung mit VDE-Symbolen (LS, FI/RCD)
- PDF enthält: Schaltplan, Abgangsverzeichnis pro Hutschiene, Legende
- Abgangsnummern im Format R{Reihe}.{Position}
- Grüner Button in Schaltplan-Editor (Kunden + Kontakte)
- CLAUDE.md: Dateistruktur komplett überarbeitet, neue Features dokumentiert
- Version 9.7

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 17:06:26 +01:00
95e1860940 Anschlusspunkt Fix 2026-03-04 15:35:25 +01:00
6b3b6d7e95 feat(schematic): Terminal-Farben, Leitungen hinter Blöcken, Zeichenmodus v11.0
Terminal-Farben nach Verbindung:
- Terminals zeigen Farbe der angeschlossenen Leitung
- Grau = keine Verbindung, farbig = Leitung angeschlossen
- Neue Hilfsfunktion getTerminalConnectionColor()

Leitungen hinter Blöcken:
- Layer-Reihenfolge geändert: connections vor blocks
- Professionelleres Erscheinungsbild

Zeichenmodus-Verbesserungen:
- Rechtsklick/Escape bricht nur Linie ab, nicht Modus
- Crosshair-Cursor überall im SVG während Zeichenmodus
- 30px Hit-Area für bessere Klickbarkeit

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 13:44:52 +01:00
50ae4e4a08 fix(pwa): Terminal-Ausrichtung, gebündelte Pfeile, Block-Value Größe
- Gebündelte Terminals: Pfeil jetzt in Zeile 2/4 statt Label-Zeile
- Terminal-Punkte mit CSS-Klassen terminal-row-top/bottom
- Equipment-Block-Value auf 8px verkleinert
- Grid gap auf 0 für kompaktere Darstellung
- Service Worker v6.1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 08:34:17 +01:00
a14b33b7c7 feat: Firmen-Werkzeuge, Zubehör-System und Produkt-Zuordnung
- Neue Seite werkzeuge.php mit Baumansicht für Firmen-Maschinen/Werkzeuge
- Menüpunkt "Firmen-Werkzeuge" unter Start-Menü
- Neue Klasse AnlageAccessory für Zubehör/Ersatzteile pro Anlage
- AJAX-Endpunkt ajax/anlage_accessory.php (CRUD + Lieferantenbestellung)
- DB: fk_product auf Anlage, has_accessories auf AnlageType, Zubehör-Tabelle
- Neues System WERKZEUG in Systemkategorien
- Admin: Checkbox "Hat Zubehör" im Typ-Editor
- Produkt-Autocomplete, Zubehör-Liste mit Bestellfunktion (CommandeFournisseur)
- Produkt-JOIN in fetchChildren für product_ref im Baum
- Übersetzungen de_DE + en_US

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 20:23:29 +01:00
fd8d11e764 feat: Ausgebaut-Status für Anlagen-Elemente
Elemente können als "ausgebaut" markiert werden mit Datum.
Bleiben in der DB für Nachvollziehbarkeit, werden ausgegraut
dargestellt und können per Toggle ein-/ausgeblendet werden.

- DB: decommissioned + date_decommissioned Spalten
- Dialog mit Datumsauswahl beim Ausbauen
- Toggle-Button in Baum- und Graph-Toolbar
- Ausgebaute Elemente ausgegraut (opacity 0.4, durchgestrichen)
- Badge mit Ausbau-Datum im Baum
- Kontextmenü im Graph für Ausbauen/Einbauen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 19:49:31 +01:00
ee4c6688d9 feat(graph): View-Modes pro System, Compound-Node Fixes, Resize-Handles, Admin-Gear
- Ansichtsmodus (tree/graph/both) pro System konfigurierbar
- Admin-Zahnrad-Icon auf Kunden- und Kontakt-Anlagen-Tab
- Compound-Nodes: Alle Nachkommen eines Gebäudes werden umschlossen
- Leitungen/Verbindungen aus der Baumansicht entfernt (nur noch im Graph)
- Resize-Handles für Gebäude-Nodes im Bearbeitungsmodus
- graph_width/graph_height Spalten für persistente Gebäudegrößen
- view_modes Spalte in System-Tabelle
- DB-Migrationen in modKundenKarte

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 20:35:22 +01:00
619d14e8d5 feat(pwa): FI-Schutzgruppen, gebündelte Terminals, Terminal-Konfiguration
- Schutzgruppen-Zuordnung: Equipment kann FI/RCD zugeordnet werden
  - Farbliche Markierung der Schutzgruppen im Schaltplan
  - Dropdown zur Auswahl des Schutzgeräts im Equipment-Dialog
- Gebündelte Terminals: Multi-Phasen-Abgänge (E-Herd, Durchlauferhitzer)
  - "Alle bündeln" Option im Abgang-Dialog
  - Zentriertes Label über alle Terminals des Equipment
- Terminal-Anzahl aus terminals_config statt TE-Breite
  - Neozed 3F zeigt korrekt 3 statt 4 Terminals
  - Neue getTerminalCount() Hilfsfunktion
- Zuletzt bearbeitete Kunden (max. 5) auf Search-Screen
- Medium-Typen dynamisch aus DB mit Spezifikationen-Dropdown
- Terminal-Labels anklickbar zum direkten Bearbeiten
- Kontextmenü für leere Terminals (Input/Output Auswahl)
- Block-Label mit Einheiten (40A 30mA statt 40A30mA)
- Online-Status-Anzeige entfernt (funktionierte nicht zuverlässig)
- Service Worker v5.2: Versionierte Assets nicht cachen

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-02 14:34:54 +01:00
241229659b feat(pwa): Equipment-Detail mit Feldlabels, Typ-Kategorien
- API: field_meta mit Labels/Typ/Optionen pro Equipment-Typ hinzugefügt
- Detail-Sheet zeigt jetzt Feld-Labels statt DB-Codes (z.B. "Nennstrom (A)" statt "ampere")
- Felder in konfigurierter Reihenfolge (position) angezeigt
- Typ-Auswahl nach Kategorien gruppiert (Leitungsschutz, Schutzgeräte, etc.)
- Alle Systeme laden statt nur Elektro (fetchAllBySystem(0))
- fieldMeta wird im Offline-Cache mitgespeichert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 14:31:43 +01:00
20fb9d3b05 feat: Dezimal-TE, Equipment-Kategorien, Schaltplan-Fixes
- Dezimal-TE (0.1 Schritte): DB DECIMAL(4,1), JS parseFloat statt parseInt,
  Drag&Drop mit 0.1-Snap, SVG-Markierungen (ganzzahlig deutlich, 0.5er subtil)
- Equipment-Kategorien: automat/schutz/steuerung/klemme im Typ-Editor und Dialog
- Hutschiene löschen Fix: showConfirmDialog → KundenKarte.showConfirm() (3 Stellen)
- terminals_config JSON-Sanitizer: PHP beim Speichern + JS-Fallback
  (Dolibarr GETPOST konvertiert Newlines zu literal \r\n → ungültiges JSON)
- Equipment duplizieren: Label-Inkrement, Feldwerte werden mitkopiert
- Statusleiste Größen-Sprung behoben (min-height statt dynamisch)
- Duplikat-Docblock in equipmentcarrier.class.php bereinigt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 14:04:17 +01:00
4fb9d8e472 fix: Hutschienen/Feld-Position wird beim Bearbeiten nicht mehr zurückgesetzt
GETPOSTINT('position') gab 0 zurück wenn kein position-Parameter
gesendet wurde, was die Reihenfolge der Hutschienen zerstörte.
Jetzt wird position nur noch überschrieben wenn GETPOSTISSET() true ist.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 12:24:28 +01:00
143ddcb958 feat: Graph-Toggle, Baum-Farben, PWA-Baumansicht
- Graph-Integration von feature/cytoscape-graph auf main portiert
  (anlagen.php + contact_anlagen.php: View-Mode, Toolbar, Container)
- Baum-Knoten farblich unterschieden: grün=Gebäude, blau=Equipment, orange=Endgerät
  (CSS border-left + Icon-Farbe je nach can_have_children/can_have_equipment)
- PWA: Kompletter Anlagen-Baum statt flache Liste
  (API liefert rekursiven Baum, Frontend mit aufklappbaren Knoten)
- PWA: Equipment-Container öffnen Editor, Strukturknoten klappen auf/zu
- Connection-URLs in contact_anlagen.php: contactid Parameter ergänzt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 12:09:13 +01:00
da4ed40ad2 feat(pwa): Anlagen-Übersicht Redesign, TE-Lücken, Feld-Badges
- Anlagen-Screen: Kontakte/Adressen oben als vertikale Liste mit Chevron
- Anlagen-Cards: Horizontales Layout (Icon + Titel + Pfeil), volle Breite
- Feld-Badges aus Admin-Einstellungen (show_in_tree) auf Anlagen-Cards
- Kunden-Adresse als Trennlabel bei Anlagen ohne Kontaktzuweisung
- Back-Navigation Fix: Anlagen werden nachgeladen falls leer (Refresh→Back)
- TE-Lücken-Berechnung: getMaxGap() für zusammenhängende freie Slots
- Typ-Buttons gefiltert: Nur Typen die in verfügbare Lücke passen
- Equipment-Blöcke: 80px Höhe, Sicherungsautomat-Optik
- PHP 8.1: trim() null-safe mit ?? ''
- Cache-Versionen synchronisiert auf v2.7
- equipmentconnection: source/target_terminal_id im UPDATE SQL ergänzt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 11:46:09 +01:00
6e88f0eb87 feat(pwa): Kontakt-Adressen, Grid-Layout, Abgang-Labels, jQuery
- Kontakt-Adressen als aufklappbare Gruppen in Anlagen-Übersicht
- Equipment-Blöcke als CSS Grid (TE-basiert) statt Flex-Wrap
- Abgang-Labels (Outputs) über/unter Automaten, Toggle-Button
- jQuery statt eigener ElementCollection, aus Dolibarr geladen
- Design-System auf Dolibarr Dark Theme Variablen umgestellt
- Session-State-Wiederherstellung bei Refresh
- Browser-History Support (Hardware-Zurück)
- Quick-Select erweitert: AFDD, FI/LS-Kombi
- Intelligente Positionsberechnung mit Lücken-Erkennung
- Hutschiene zeigt belegt/gesamt TE
- $user->getrights() nach Token-Validierung
- Doku aktualisiert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 21:37:17 +01:00
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