diff --git a/js/kundenkarte.js b/js/kundenkarte.js index 668cc30..7ff1720 100755 --- a/js/kundenkarte.js +++ b/js/kundenkarte.js @@ -7784,10 +7784,30 @@ var sourceEqId = self.wireDrawSourceEq; var sourceTermId = self.wireDrawSourceTerm; var targetEqId = conn.fk_target; - var targetTermId = conn.target_terminal || 'input'; + var targetTermId = conn.target_terminal_id || 'input'; + + // Build path: source terminal → existing points → target terminal + var pathPoints = self.wireDrawPoints.slice(); // Copy existing points + + // Add target terminal position + var targetEq = self.equipment.find(function(eq) { return eq.id == targetEqId; }); + if (targetEq) { + var terminals = self.getTerminals(targetEq); + var targetPos = self.getTerminalPosition(targetEq, targetTermId, terminals); + if (targetPos) { + pathPoints.push({x: targetPos.x, y: targetPos.y}); + } + } + + // Build path string + var pathData = ''; + for (var i = 0; i < pathPoints.length; i++) { + pathData += (i === 0 ? 'M' : 'L') + ' ' + pathPoints[i].x + ' ' + pathPoints[i].y + ' '; + } // Store connection values to inherit self._inheritFromConnection = conn; + self._pendingPathData = pathData.trim() || null; // Clear source terminal but keep draw mode active self.cleanupWireDrawState(true); @@ -7829,9 +7849,25 @@ var sourceEqId = self.wireDrawSourceEq; var sourceTermId = self.wireDrawSourceTerm; var targetEqId = conn.fk_source; - var targetTermId = conn.source_terminal || 'output'; + var targetTermId = conn.source_terminal_id || 'output'; + + // Build path with existing points + var pathPoints = self.wireDrawPoints.slice(); + var targetEq = self.equipment.find(function(eq) { return eq.id == targetEqId; }); + if (targetEq) { + var terminals = self.getTerminals(targetEq); + var targetPos = self.getTerminalPosition(targetEq, targetTermId, terminals); + if (targetPos) { + pathPoints.push({x: targetPos.x, y: targetPos.y}); + } + } + var pathData = ''; + for (var i = 0; i < pathPoints.length; i++) { + pathData += (i === 0 ? 'M' : 'L') + ' ' + pathPoints[i].x + ' ' + pathPoints[i].y + ' '; + } self._inheritFromConnection = conn; + self._pendingPathData = pathData.trim() || null; self.cleanupWireDrawState(true); self.showConnectionLabelDialog(sourceEqId, sourceTermId, targetEqId, targetTermId); return; @@ -7868,9 +7904,25 @@ var sourceEqId = self.wireDrawSourceEq; var sourceTermId = self.wireDrawSourceTerm; var targetEqId = conn.fk_target; - var targetTermId = conn.target_terminal || 'input'; + var targetTermId = conn.target_terminal_id || 'input'; + + // Build path with existing points + var pathPoints = self.wireDrawPoints.slice(); + var targetEq = self.equipment.find(function(eq) { return eq.id == targetEqId; }); + if (targetEq) { + var terminals = self.getTerminals(targetEq); + var targetPos = self.getTerminalPosition(targetEq, targetTermId, terminals); + if (targetPos) { + pathPoints.push({x: targetPos.x, y: targetPos.y}); + } + } + var pathData = ''; + for (var i = 0; i < pathPoints.length; i++) { + pathData += (i === 0 ? 'M' : 'L') + ' ' + pathPoints[i].x + ' ' + pathPoints[i].y + ' '; + } self._inheritFromConnection = conn; + self._pendingPathData = pathData.trim() || null; self.cleanupWireDrawState(true); self.showConnectionLabelDialog(sourceEqId, sourceTermId, targetEqId, targetTermId); return; diff --git a/sw.js b/sw.js index 7e9c489..ff9d7f9 100755 --- a/sw.js +++ b/sw.js @@ -3,8 +3,8 @@ * Offline-First für Schaltschrank-Dokumentation */ -const CACHE_NAME = 'kundenkarte-pwa-v9.1'; -const OFFLINE_CACHE = 'kundenkarte-offline-v9.1'; +const CACHE_NAME = 'kundenkarte-pwa-v9.2'; +const OFFLINE_CACHE = 'kundenkarte-offline-v9.2'; // Statische Assets die immer gecached werden (ohne Query-String) const STATIC_ASSETS = [