From da0373ac6b9187d367473a326e00cb8953f6ff3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Br=C3=A4utigam?= Date: Thu, 14 Mar 2019 18:59:23 +0100 Subject: [PATCH 1/2] fix template rendering (needs to be tested in safari/ios). fixes error reported here: https://knx-user-forum.de/forum/supportforen/cometvisu/1340694-oberfl%C3%A4chen-als-template-werden-nicht-angezeigt --- source/class/cv/parser/MetaParser.js | 3 ++- source/class/cv/parser/WidgetParser.js | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/source/class/cv/parser/MetaParser.js b/source/class/cv/parser/MetaParser.js index 707d6d0fad4..1c174c2f183 100644 --- a/source/class/cv/parser/MetaParser.js +++ b/source/class/cv/parser/MetaParser.js @@ -363,10 +363,11 @@ qx.Class.define("cv.parser.MetaParser", { }, this); areq.send(); } else { + var cleaned = qx.bom.element.Attribute.get(elem, 'html').replace(/\n\s*/g, '').trim(); cv.parser.WidgetParser.addTemplate( templateName, // templates can only have one single root element, so we wrap it here - '' + qx.bom.element.Attribute.get(elem, 'html') + '' + '' + cleaned + '' ); } }, this); diff --git a/source/class/cv/parser/WidgetParser.js b/source/class/cv/parser/WidgetParser.js index 5206d305125..6bd3f9b9507 100644 --- a/source/class/cv/parser/WidgetParser.js +++ b/source/class/cv/parser/WidgetParser.js @@ -60,10 +60,10 @@ qx.Class.define('cv.parser.WidgetParser', { if (this.__templates.hasOwnProperty(templateName)) { var renderedString = qx.bom.Template.render(this.__templates[templateName], variables).replace('\n', '').trim(); - var div = document.createElement('div'); - qx.bom.element.Attribute.set(div, 'html', renderedString.substring(6, renderedString.length - 7).trim()); - // replace existing element with the rendered template (without ) - elem.parentNode.replaceChild(div.firstChild, elem); + var helperNode = elem.ownerDocument.createElement('template'); + qx.bom.element.Attribute.set(helperNode, 'html', renderedString.substring(6, renderedString.length - 7).trim()); + // replace existing element with the rendered templates child + elem.parentNode.replaceChild(helperNode.firstElementChild, elem); } }, this); }, From a7a31ee0e3766b57256962474c3dbe6eaf1b89e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Br=C3=A4utigam?= Date: Thu, 14 Mar 2019 19:05:09 +0100 Subject: [PATCH 2/2] no more trims and template might not be supported by browser --- source/class/cv/parser/WidgetParser.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/class/cv/parser/WidgetParser.js b/source/class/cv/parser/WidgetParser.js index 6bd3f9b9507..93ac34e773d 100644 --- a/source/class/cv/parser/WidgetParser.js +++ b/source/class/cv/parser/WidgetParser.js @@ -59,11 +59,11 @@ qx.Class.define('cv.parser.WidgetParser', { }, this); if (this.__templates.hasOwnProperty(templateName)) { - var renderedString = qx.bom.Template.render(this.__templates[templateName], variables).replace('\n', '').trim(); - var helperNode = elem.ownerDocument.createElement('template'); - qx.bom.element.Attribute.set(helperNode, 'html', renderedString.substring(6, renderedString.length - 7).trim()); + var renderedString = qx.bom.Template.render(this.__templates[templateName], variables); + var helperNode = elem.ownerDocument.createElement('div'); + qx.bom.element.Attribute.set(helperNode, 'html', renderedString.substring(6, renderedString.length - 7)); // replace existing element with the rendered templates child - elem.parentNode.replaceChild(helperNode.firstElementChild, elem); + elem.parentNode.replaceChild(helperNode.firstChild, elem); } }, this); },