From e7d6bfd8b11e72f986285d66ce8f4106826be6d8 Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Tue, 16 May 2023 10:23:42 +0200 Subject: [PATCH] Fix spin-buttons when no max-attribute present (Z#23122239) (#3317) --- .../pretixpresale/event/fragment_product_list.html | 12 ++++++++---- src/pretix/static/pretixpresale/js/ui/main.js | 2 +- src/pretix/static/pretixpresale/js/widget/widget.js | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_product_list.html b/src/pretix/presale/templates/pretixpresale/event/fragment_product_list.html index bb9d93f3f2..1502b68e1e 100644 --- a/src/pretix/presale/templates/pretixpresale/event/fragment_product_list.html +++ b/src/pretix/presale/templates/pretixpresale/event/fragment_product_list.html @@ -198,7 +198,8 @@ {% else %}
- + - +
{% endif %} @@ -339,7 +341,8 @@ {% else %}
- + - +
{% endif %} diff --git a/src/pretix/static/pretixpresale/js/ui/main.js b/src/pretix/static/pretixpresale/js/ui/main.js index 22077e0cc6..11b488e0e6 100644 --- a/src/pretix/static/pretixpresale/js/ui/main.js +++ b/src/pretix/static/pretixpresale/js/ui/main.js @@ -122,7 +122,7 @@ var form_handlers = function (el) { var step = parseFloat(this.getAttribute("data-step")); var controls = document.getElementById(this.getAttribute("data-controls")); var currentValue = parseFloat(controls.value); - controls.value = Math.max(controls.min, Math.min(controls.max, (currentValue || 0) + step)); + controls.value = Math.max(controls.min, Math.min(controls.max || Number.MAX_SAFE_INTEGER, (currentValue || 0) + step)); controls.dispatchEvent(new Event("change")); }); diff --git a/src/pretix/static/pretixpresale/js/widget/widget.js b/src/pretix/static/pretixpresale/js/widget/widget.js index 6b7fc98e89..66cf2e6c44 100644 --- a/src/pretix/static/pretixpresale/js/widget/widget.js +++ b/src/pretix/static/pretixpresale/js/widget/widget.js @@ -317,7 +317,7 @@ Vue.component('availbox', { var t = e.target.tagName == 'BUTTON' ? e.target : e.target.closest('button'); var step = parseFloat(t.getAttribute("data-step")); var controls = document.getElementById(t.getAttribute("data-controls")); - this.amount_selected = Math.max(controls.min, Math.min(controls.max, (this.amount_selected || 0) + step)); + this.amount_selected = Math.max(controls.min, Math.min(controls.max || Number.MAX_SAFE_INTEGER, (this.amount_selected || 0) + step)); } } });