From ca4c21a843512ce285374ab2d254de3564756e35 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 21 Feb 2019 15:23:29 +0100 Subject: [PATCH] Show QR code of a ticket directly from order details --- .../templates/pretixcontrol/order/index.html | 4 +++ src/pretix/static/pretixcontrol/js/ui/main.js | 30 +++++++++++++++++++ .../static/pretixcontrol/scss/main.scss | 10 +++++++ 3 files changed, 44 insertions(+) diff --git a/src/pretix/control/templates/pretixcontrol/order/index.html b/src/pretix/control/templates/pretixcontrol/order/index.html index 2a1b7522a..93e38542d 100644 --- a/src/pretix/control/templates/pretixcontrol/order/index.html +++ b/src/pretix/control/templates/pretixcontrol/order/index.html @@ -280,6 +280,10 @@ {% endfor %} {% endif %} + {% eventsignal event "pretix.control.signals.order_position_buttons" order=order position=line request=request %} {% endif %} diff --git a/src/pretix/static/pretixcontrol/js/ui/main.js b/src/pretix/static/pretixcontrol/js/ui/main.js index 431207489..513e0155f 100644 --- a/src/pretix/static/pretixcontrol/js/ui/main.js +++ b/src/pretix/static/pretixcontrol/js/ui/main.js @@ -614,6 +614,36 @@ $(function () { return false; }); + $("button[data-toggle=qrcode]").click(function (e) { + e.preventDefault(); + var $current = $(".qr-code-overlay[data-qrcode=" + $(this).attr("data-qrcode") + "]"); + if ($current.length) { + $(".qr-code-overlay").attr("data-qrcode", "").slideUp(200); + return false; + } + $(".qr-code-overlay").remove(); + var $div = $("
").addClass("qr-code-overlay").attr("data-qrcode", $(this).attr("data-qrcode")); + $div.appendTo($("body")); + var offset = $(this).offset(); + $div.css("top", offset.top + $(this).outerHeight() + 10).css("left", offset.left); + var $child = $("
"); + $child.appendTo($div); + $child.qrcode( + { + text: $(this).attr("data-qrcode"), + correctLevel: 0, // M + width: 196, + height: 196 + } + ); + $div.append(gettext("Click to close")); + $div.slideDown(200); + $div.click(function (e) { + $(".qr-code-overlay").slideUp(200); + }); + return false; + }); + $("#ajaxerr").on("click", ".ajaxerr-close", ajaxErrDialog.hide); moment.locale($("body").attr("data-datetimelocale")); }); diff --git a/src/pretix/static/pretixcontrol/scss/main.scss b/src/pretix/static/pretixcontrol/scss/main.scss index 0d13d49ae..7ead3e5b6 100644 --- a/src/pretix/static/pretixcontrol/scss/main.scss +++ b/src/pretix/static/pretixcontrol/scss/main.scss @@ -608,3 +608,13 @@ details summary { h1 .label { display: inline-block; } + +.qr-code-overlay { + display: none; + position: absolute; + padding: 30px; + background: white; + text-align: center; + border-radius: $border-radius-small; + box-shadow: 0 7px 14px 0 rgba(78, 50, 92, 0.1),0 3px 6px 0 rgba(0,0,0,.07); +}