5678
This commit is contained in:
@@ -173,10 +173,18 @@
|
||||
|
||||
<!-- Node elements positioned over SVG -->
|
||||
<div class="workflow-nodes">
|
||||
<div class="wf-node wf-node-1" title="Telefon">📞</div>
|
||||
<div class="wf-node wf-node-2" title="KI Verarbeitung">🤖</div>
|
||||
<div class="wf-node wf-node-3" title="CRM">📊</div>
|
||||
<div class="wf-node wf-node-4" title="Team">👥</div>
|
||||
<div class="wf-node wf-node-1" title="Telefon">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#d63384" stroke-width="2"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></svg>
|
||||
</div>
|
||||
<div class="wf-node wf-node-2" title="KI Verarbeitung">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#6f42c1" stroke-width="2"><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="3"/><path d="M12 8v3M7 15h2M15 15h2"/></svg>
|
||||
</div>
|
||||
<div class="wf-node wf-node-3" title="CRM">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#fd7e14" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9"/></svg>
|
||||
</div>
|
||||
<div class="wf-node wf-node-4" title="Team">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#0d6efd" stroke-width="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -221,10 +229,18 @@
|
||||
|
||||
<!-- Node elements positioned over SVG -->
|
||||
<div class="workflow-nodes">
|
||||
<div class="wf-node wf-node-1" title="Website">🌐</div>
|
||||
<div class="wf-node wf-node-2" title="KI Verarbeitung">🤖</div>
|
||||
<div class="wf-node wf-node-3" title="Kategorisierung">📋</div>
|
||||
<div class="wf-node wf-node-4" title="Mitarbeiter">👤</div>
|
||||
<div class="wf-node wf-node-1" title="Website">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#20c997" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>
|
||||
</div>
|
||||
<div class="wf-node wf-node-2" title="KI Verarbeitung">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#6f42c1" stroke-width="2"><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="3"/><path d="M12 8v3M7 15h2M15 15h2"/></svg>
|
||||
</div>
|
||||
<div class="wf-node wf-node-3" title="Kategorisierung">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#fd7e14" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6M16 13H8M16 17H8M10 9H8"/></svg>
|
||||
</div>
|
||||
<div class="wf-node wf-node-4" title="Mitarbeiter">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#0d6efd" stroke-width="2"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -308,11 +324,21 @@
|
||||
|
||||
<!-- Node elements positioned over SVG -->
|
||||
<div class="internal-nodes">
|
||||
<div class="int-node int-node-1" title="Suchanfrage">🔍</div>
|
||||
<div class="int-node int-node-2" title="Dokumente">📄</div>
|
||||
<div class="int-node int-node-3" title="Nachrichten">💬</div>
|
||||
<div class="int-node int-node-4" title="KI Verarbeitung">🤖</div>
|
||||
<div class="int-node int-node-5" title="Antwort">💡</div>
|
||||
<div class="int-node int-node-1" title="Suchanfrage">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#6c757d" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
|
||||
</div>
|
||||
<div class="int-node int-node-2" title="Dokumente">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#6f42c1" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/></svg>
|
||||
</div>
|
||||
<div class="int-node int-node-3" title="Nachrichten">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#6c757d" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
|
||||
</div>
|
||||
<div class="int-node int-node-4" title="KI Verarbeitung">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#6f42c1" stroke-width="2"><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="3"/><path d="M12 8v3M7 15h2M15 15h2"/></svg>
|
||||
</div>
|
||||
<div class="int-node int-node-5" title="Antwort">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="#ffc107" stroke-width="2"><path d="M9 18h6M10 22h4M12 2v1M4.22 4.22l.71.71M1 12h1M4.22 19.78l.71-.71M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10z"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -177,17 +177,28 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
const centralNode = systemGraphic.querySelector('.central-node');
|
||||
const otherNodes = systemGraphic.querySelectorAll('.node:not(.central-node)');
|
||||
|
||||
if (!centralNode || !systemGraphic) return;
|
||||
if (!centralNode || !systemGraphic || !connections) return;
|
||||
|
||||
// Get the computed transform scale of the system graphic
|
||||
const computedStyle = window.getComputedStyle(systemGraphic);
|
||||
const transform = computedStyle.transform;
|
||||
let scale = 1;
|
||||
if (transform && transform !== 'none') {
|
||||
const matrix = new DOMMatrix(transform);
|
||||
scale = matrix.a; // Get the X scale factor
|
||||
}
|
||||
|
||||
const graphicRect = systemGraphic.getBoundingClientRect();
|
||||
const centralRect = centralNode.getBoundingClientRect();
|
||||
|
||||
// Calculate center position relative to the graphic container
|
||||
const centerX = centralRect.left - graphicRect.left + centralRect.width / 2;
|
||||
const centerY = centralRect.top - graphicRect.top + centralRect.height / 2;
|
||||
// Calculate center position relative to the graphic container, accounting for scale
|
||||
const centerX = (centralRect.left - graphicRect.left + centralRect.width / 2) / scale;
|
||||
const centerY = (centralRect.top - graphicRect.top + centralRect.height / 2) / scale;
|
||||
|
||||
// Set SVG viewBox to match container
|
||||
connections.setAttribute('viewBox', `0 0 ${graphicRect.width} ${graphicRect.height}`);
|
||||
// Set SVG viewBox to match container (unscaled dimensions)
|
||||
const viewBoxWidth = graphicRect.width / scale;
|
||||
const viewBoxHeight = graphicRect.height / scale;
|
||||
connections.setAttribute('viewBox', `0 0 ${viewBoxWidth} ${viewBoxHeight}`);
|
||||
connections.style.width = '100%';
|
||||
connections.style.height = '100%';
|
||||
|
||||
@@ -196,9 +207,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
otherNodes.forEach(node => {
|
||||
const nodeRect = node.getBoundingClientRect();
|
||||
|
||||
// Calculate node center position relative to the graphic container
|
||||
const nodeX = nodeRect.left - graphicRect.left + nodeRect.width / 2;
|
||||
const nodeY = nodeRect.top - graphicRect.top + nodeRect.height / 2;
|
||||
// Calculate node center position relative to the graphic container, accounting for scale
|
||||
const nodeX = (nodeRect.left - graphicRect.left + nodeRect.width / 2) / scale;
|
||||
const nodeY = (nodeRect.top - graphicRect.top + nodeRect.height / 2) / scale;
|
||||
|
||||
// Create dashed line for better visibility
|
||||
const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
|
||||
|
||||
@@ -796,8 +796,8 @@
|
||||
.workflow-nodes .node-5 { left: 85%; }
|
||||
}
|
||||
|
||||
/* Phone System Visual */
|
||||
.phone-system {
|
||||
/* Phone System Visual - OLD STYLES (overridden by .phone-workflow) */
|
||||
.phone-system:not(.phone-workflow) {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
@@ -924,8 +924,8 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Chat System Visual */
|
||||
.chat-system {
|
||||
/* Chat System Visual - OLD STYLES (overridden by .chat-workflow) */
|
||||
.chat-system:not(.chat-workflow) {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
@@ -1141,6 +1141,11 @@
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.int-node svg {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
/* Node positions - matching SVG viewBox 320x120, centered on node boxes */
|
||||
.int-node-1 { left: 4.7%; top: 50%; transform: translate(0, -50%); }
|
||||
.int-node-2 { left: 42.2%; top: 8.3%; transform: translate(0, 0); }
|
||||
@@ -1203,6 +1208,11 @@
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.wf-node svg {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
/* Linear 4-node workflow positions (Phone & Chat) - viewBox 280x120 */
|
||||
/* Nodes at x: 10, 90, 170, 250 (center of 40px boxes) */
|
||||
.wf-node-1 { left: 3.6%; top: 50%; transform: translate(0, -50%); }
|
||||
|
||||
Reference in New Issue
Block a user