From cd729a7717f4b17931f1cb81b9d34398053248f3 Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Mon, 2 Jun 2025 21:49:11 +0200 Subject: [PATCH] [A11y] add alertidalog to confirm successful cart renewal --- .../pretixpresale/event/fragment_cart.html | 9 +++++++ src/pretix/static/pretixpresale/js/ui/cart.js | 24 +++++++++++++++---- .../static/pretixpresale/scss/_cart.scss | 6 +++++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html index aba0754eec..afa2097cba 100644 --- a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html +++ b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html @@ -1,4 +1,5 @@ {% load i18n %} +{% load icon %} {% load eventurl %} {% load daterange %} {% load safelink %} @@ -510,6 +511,14 @@

+ +
+ + +
+
{% else %}

{% trans "Overview of your ordered products." %}

{% endif %} diff --git a/src/pretix/static/pretixpresale/js/ui/cart.js b/src/pretix/static/pretixpresale/js/ui/cart.js index 1a8593de45..e9446c40ab 100644 --- a/src/pretix/static/pretixpresale/js/ui/cart.js +++ b/src/pretix/static/pretixpresale/js/ui/cart.js @@ -59,7 +59,6 @@ var cart = { $("#cart-deadline").text(gettext("Your cart is about to expire.")) } else { $("#cart-deadline").text( - cart._renewed_message + " " + ngettext( "The items in your cart are reserved for you for one minute.", "The items in your cart are reserved for you for {num} minutes.", @@ -67,6 +66,12 @@ var cart = { ).replace(/\{num\}/g, diff_minutes) ); } + $("#cart-extend-feedback").text(cart._renewed_message); + var dialog = $("#cart-extend-feedback-dialog").get(0); + if (cart._renewed_message) { + dialog.show(); + } + cart._prev_diff_minutes = diff_minutes; } @@ -101,6 +106,19 @@ var cart = { $("#cart-deadline").attr("data-expires"), $("#cart-deadline").attr("data-max-expiry-extend") ); + $("#cart-extend-feedback-dialog").on("close", function () { + var cart_panel_heading = $(this).closest(".panel").find(".panel-heading").get(0); + if (cart_panel_heading) { + window.setTimeout(function () { + cart_panel_heading.focus(); + }, 50); + } + } + }).find("button").on("blur", function() { + var dialog = this.closest("dialog"); + if (dialog.open) { + } + }); }, set_deadline: function (expiry, max_extend, renewed_message) { @@ -127,10 +145,6 @@ $(function () { $("#cart-extend-form").on("pretix:async-task-success", function(e, data) { if (data.success) { cart.set_deadline(data.expiry, data.max_expiry_extend, data.message); - var cart_panel_heading = $(this).closest(".panel").find(".panel-heading").get(0); - if (cart_panel_heading) { - cart_panel_heading.focus(); - } } else { alert(data.message); } diff --git a/src/pretix/static/pretixpresale/scss/_cart.scss b/src/pretix/static/pretixpresale/scss/_cart.scss index 2c91bf4b5b..ce41b84567 100644 --- a/src/pretix/static/pretixpresale/scss/_cart.scss +++ b/src/pretix/static/pretixpresale/scss/_cart.scss @@ -254,6 +254,12 @@ #cart-deadline-short { font-variant-numeric: tabular-nums; } +#cart-extend-feedback-dialog { + position: static; + padding: 0; + margin: 0; + border: none; +} .btn-invisible { opacity: 0 !important; }