From c880e427c5eaa708d1a104bb94bb6fc28245368f Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Fri, 16 May 2025 20:53:00 +0200 Subject: [PATCH] add dialog js --- .../control/templates/pretixcontrol/base.html | 21 +--- .../templates/pretixpresale/fragment_js.html | 1 + .../pretixpresale/fragment_modals.html | 31 ------ src/pretix/static/pretixbase/js/dialogs.js | 100 ++++++++++++++++++ 4 files changed, 103 insertions(+), 50 deletions(-) create mode 100644 src/pretix/static/pretixbase/js/dialogs.js diff --git a/src/pretix/control/templates/pretixcontrol/base.html b/src/pretix/control/templates/pretixcontrol/base.html index 1801a76faf..67cd8ed834 100644 --- a/src/pretix/control/templates/pretixcontrol/base.html +++ b/src/pretix/control/templates/pretixcontrol/base.html @@ -38,6 +38,8 @@ + + @@ -54,7 +56,6 @@ - @@ -465,23 +466,5 @@ - diff --git a/src/pretix/presale/templates/pretixpresale/fragment_js.html b/src/pretix/presale/templates/pretixpresale/fragment_js.html index 304452adc2..42a048be78 100644 --- a/src/pretix/presale/templates/pretixpresale/fragment_js.html +++ b/src/pretix/presale/templates/pretixpresale/fragment_js.html @@ -10,6 +10,7 @@ + diff --git a/src/pretix/presale/templates/pretixpresale/fragment_modals.html b/src/pretix/presale/templates/pretixpresale/fragment_modals.html index 07a29352c7..db3a9a1fb6 100644 --- a/src/pretix/presale/templates/pretixpresale/fragment_modals.html +++ b/src/pretix/presale/templates/pretixpresale/fragment_modals.html @@ -31,37 +31,6 @@ - - {% if request.organizer and request.organizer.settings.cookie_consent %} {% if cookie_consent_from_widget %} diff --git a/src/pretix/static/pretixbase/js/dialogs.js b/src/pretix/static/pretixbase/js/dialogs.js new file mode 100644 index 0000000000..779f1278b0 --- /dev/null +++ b/src/pretix/static/pretixbase/js/dialogs.js @@ -0,0 +1,100 @@ +/*global $,gettext,ngettext */ +function EL(tagName, attrs) { + var el = document.createElement(tagName); + if (attrs) for(var key in attrs) + if (key === 'style' && typeof attrs[key] === 'object') Object.assign(el.style, attrs[key]); + else if (key === 'innerHTML') el.innerHTML = attrs[key]; + else if (key === 'appendTo' && (attrs.appendTo instanceof HTMLElement || attrs.appendTo instanceof ShadowRoot)) attrs.appendTo.append(el); + else if (key === 'prependTo' && (attrs.prependTo instanceof HTMLElement || attrs.prependTo instanceof ShadowRoot)) attrs.prependTo.prepend(el); + else if (key === 'insertBefore' && attrs.insertBefore instanceof HTMLElement) attrs.insertBefore.before(el); + else if (key === 'insertAfter' && attrs.insertAfter instanceof HTMLElement) attrs.insertAfter.after(el); + else if (key.startsWith("on")) el.addEventListener(key.substring(2), attrs[key], false); + else if (key.startsWith(":")) el[key.substring(1)] = attrs[key]; + else if (key === 'checked' && 'checked' in el) el.checked = attrs.checked; + else if (key === 'selected' && 'selected' in el) el.selected = attrs.selected; + else if (key === 'multiple' && 'multiple' in el) el.multiple = attrs.multiple; + else el.setAttribute(key, attrs[key]); + + if (arguments[2] instanceof Array) + var args = arguments[2], i = 0; + else + var args = arguments, i = 2; + for(;i