From f265e3b3e1a893fba3305d9491282099b44db600 Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Fri, 16 Jan 2026 01:11:57 +0100 Subject: [PATCH] dfsasd --- public/assets/js/bridge/blocks-placeholder.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/public/assets/js/bridge/blocks-placeholder.js b/public/assets/js/bridge/blocks-placeholder.js index fa1f6a9..8945ce6 100644 --- a/public/assets/js/bridge/blocks-placeholder.js +++ b/public/assets/js/bridge/blocks-placeholder.js @@ -155,6 +155,35 @@ const refreshPlaceholderComponent = (component) => { return `{{${label}}}`; }; + const escapeAttr = (value) => { + return String(value || '') + .replace(/&/g, '&') + .replace(/"/g, '"') + .replace(//g, '>'); + }; + + const buildPlaceholderHTML = (payload) => { + const type = payload && payload.type === 'database' ? 'database' : 'custom'; + const key = payload && payload.key ? payload.key : 'UEBERSCHRIFT'; + const table = payload && payload.table ? payload.table : 'tabelle'; + const column = payload && payload.column ? payload.column : 'feld'; + const label = buildPlaceholderText(payload || {}); + const attrs = [ + `data-gjs-type="${PLACEHOLDER_COMPONENT}"`, + `data-placeholder-type="${escapeAttr(type)}"`, + `contenteditable="false"`, + `class="${INLINE_PLACEHOLDER_CLASS}"` + ]; + if (type === 'database') { + attrs.push(`data-placeholder-table="${escapeAttr(table)}"`); + attrs.push(`data-placeholder-column="${escapeAttr(column)}"`); + } else { + attrs.push(`data-placeholder-key="${escapeAttr(key)}"`); + } + return `${label}`; + }; + const buildField = (labelText, control) => { const controlId = `bridge-placeholder-field-${Math.random().toString(36).slice(2)}`; control.id = controlId;