diff --git a/src/pretix/presale/views/cart.py b/src/pretix/presale/views/cart.py index 01a0dbfca8..cb2533c8c7 100644 --- a/src/pretix/presale/views/cart.py +++ b/src/pretix/presale/views/cart.py @@ -543,7 +543,10 @@ class CartExtendReservation(EventViewMixin, CartActionMixin, AsyncAction, View): known_errortypes = ['CartError'] def _ajax_response_data(self, value): - return value or {} + if isinstance(value, dict): + return value + else: + return {} def get_success_message(self, value): if value['success'] > 0: diff --git a/src/pretix/static/pretixbase/js/asynctask.js b/src/pretix/static/pretixbase/js/asynctask.js index 9e90663703..7bbd72fa68 100644 --- a/src/pretix/static/pretixbase/js/asynctask.js +++ b/src/pretix/static/pretixbase/js/asynctask.js @@ -41,7 +41,7 @@ function async_task_schedule_check(context, timeout) { function async_task_on_success(data) { "use strict"; - if ((async_task_is_download || async_task_dont_redirect) && data.success) { + if ((async_task_is_download && data.success) || async_task_dont_redirect) { waitingDialog.hide(); if (location.href.indexOf("async_id") !== -1) { history.replaceState({}, "pretix", async_task_old_url); diff --git a/src/pretix/static/pretixpresale/js/ui/cart.js b/src/pretix/static/pretixpresale/js/ui/cart.js index 819e819d5c..b34b298ee4 100644 --- a/src/pretix/static/pretixpresale/js/ui/cart.js +++ b/src/pretix/static/pretixpresale/js/ui/cart.js @@ -101,8 +101,11 @@ $(function () { cart.init(); } - $("#cart-extend-form").on("pretix:async-task-success", function(e, data, x, y, z) { - cart.set_deadline(data.expiry, data.max_expiry_extend); + $("#cart-extend-form").on("pretix:async-task-success", function(e, data) { + if (data.success) + cart.set_deadline(data.expiry, data.max_expiry_extend); + else + alert(data.message); }); $("#cart-extend-modal button").click(function() {