From 2a2f87a4ea83e709668b29e06130eeec8ccb086f Mon Sep 17 00:00:00 2001 From: Kara Engelhardt Date: Tue, 14 Jul 2026 15:25:01 +0200 Subject: [PATCH] preview from server, qrcode in apple event pass --- .../pretixplugins/wallet/components/app.vue | 112 ++++++++---------- .../static/pretixplugins/wallet/index.d.ts | 70 ++++++----- src/pretix/plugins/wallet/styles/apple.py | 16 ++- src/pretix/plugins/wallet/styles/base.py | 3 +- src/pretix/plugins/wallet/styles/google.py | 1 + 5 files changed, 108 insertions(+), 94 deletions(-) diff --git a/src/pretix/plugins/wallet/static/pretixplugins/wallet/components/app.vue b/src/pretix/plugins/wallet/static/pretixplugins/wallet/components/app.vue index 18e0934b25..4111f7e500 100644 --- a/src/pretix/plugins/wallet/static/pretixplugins/wallet/components/app.vue +++ b/src/pretix/plugins/wallet/static/pretixplugins/wallet/components/app.vue @@ -6,65 +6,53 @@ import Input from "./input/input.vue"; import PassPreview from "./preview/pass-preview.vue"; import { StoreKey } from "../walletStore"; +const store = inject(StoreKey)!; const gettext = (window as any).gettext; -const store = inject(StoreKey)!; - -const platformChoices = computed(() => { - return [ - [null, "Do not generate pass"], - ...Object.values(store.currentPlatformStyles).map((x) => [ - x.identifier, - x.name, - ]), - ]; -}); - function openForm(url: string, data: Record) { - let form = document.createElement("form"); - form.target = "_blank"; - form.method = "POST"; - form.action = url; - form.style.display = "none"; + let form = document.createElement("form"); + form.target = "_blank"; + form.method = "POST"; + form.action = url; + form.style.display = "none"; - for (var key in data) { - var input = document.createElement("input"); - input.type = "hidden"; - input.name = key; - input.value = data[key]; - form.appendChild(input); - } - document.body.appendChild(form); - form.submit(); - document.body.removeChild(form); + for (var key in data) { + var input = document.createElement("input"); + input.type = "hidden"; + input.name = key; + input.value = data[key]; + form.appendChild(input); + } + document.body.appendChild(form); + form.submit(); + document.body.removeChild(form); } function openPreview(e: SubmitEvent) { - e.preventDefault(); - openForm("../../preview/", { - csrfmiddlewaretoken: store.csrfToken, - platform: store.currentPlatform, - style: store.currentPlatformLayout.style, - layout: JSON.stringify(store.currentPlatformLayout.layout), - }); + e.preventDefault(); + openForm("../../preview/", { + csrfmiddlewaretoken: store.csrfToken, + platform: store.currentPlatform, + style: store.currentPlatformLayout.style, + layout: JSON.stringify(store.currentPlatformLayout.layout), + }); } -const preview_layouts = [ - [ - { - children: [ - { fieldgroup: "logo", relSize: 1 }, - { fieldgroup: "logo_text", relSize: 3 }, - { fieldgroup: "header", relSize: 2 }, - ], - }, - { fieldgroup: "primary" }, - { fieldgroup: "secondary" }, - { fieldgroup: "auxiliary" }, - { fieldgroup: "code" }, - ], - [{ fieldgroup: "back", mode: "column" }], -]; + + +const platformChoices = computed(() => { + return [ + [null, "Do not generate pass"], + ...Object.values(store.currentPlatformStyles).map((x) => [ + x.identifier, + x.name, + ]), + ]; +}); + +const preview_layout = computed(() => { + return JSON.parse(store.currentPlatformStyles[store.currentPlatformLayout.style].preview_layout) +})