From 13189d799081e8a953cc33ccd8f9ae246893f9dc Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 19 Dec 2024 09:54:21 +0100 Subject: [PATCH] fix(share): render conflict modal in public shares Handle templates with license comments in `octemplate.js`. Signed-off-by: Max --- core/src/jquery/octemplate.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/jquery/octemplate.js b/core/src/jquery/octemplate.js index cecbe880aa6..83d6fd57d4f 100644 --- a/core/src/jquery/octemplate.js +++ b/core/src/jquery/octemplate.js @@ -83,7 +83,7 @@ const Template = { }, // From stackoverflow.com/questions/1408289/best-way-to-do-variable-interpolation-in-javascript _build(o) { - const data = this.elem.attr('type') === 'text/template' ? this.elem.html() : this.elem.get(0).outerHTML + const data = this._getData() try { return data.replace(/{([^{}]*)}/g, function(a, b) { @@ -95,6 +95,15 @@ const Template = { console.error(e, 'data:', data) } }, + _getData() { + if (this.elem.attr('type') === 'text/template') { + return this.elem.html() + } + // Leave out comments, etc and take the first html element + const htmlElem = $.makeArray(this.elem) + .find(e => e instanceof HTMLElement) + return htmlElem.outerHTML + }, options: { escapeFunction: escapeHTML, },