From 78cc2123aa4bdf4ab56492476707c296eeba559b Mon Sep 17 00:00:00 2001 From: tree Date: Wed, 27 Apr 2022 14:10:41 +0200 Subject: [PATCH] v1.1.1 --- package-lock.json | 15 ++- package.json | 3 +- src/routes/vstupenky.svelte | 197 +++++++++++++++++++++++++++++++++++- 3 files changed, 208 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index e79f22f..cea6aa1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "utxo22-web", - "version": "1.0.0", + "version": "1.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "utxo22-web", - "version": "1.0.0", + "version": "1.1.0", "hasInstallScript": true, "dependencies": { "@fontsource/fira-mono": "^4.5.0", @@ -20,6 +20,7 @@ "date-fns": "^2.28.0", "ethereum-blockies-base64": "^1.0.2", "fuse.js": "^6.5.3", + "lodash": "^4.17.21", "remove-markdown": "^0.3.0" }, "devDependencies": { @@ -1414,6 +1415,11 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/magic-string": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", @@ -2965,6 +2971,11 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "magic-string": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", diff --git a/package.json b/package.json index fab3c2e..8699d78 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "utxo22-web", - "version": "1.1.0", + "version": "1.1.1", "scripts": { "dev": "svelte-kit dev", "build": "svelte-kit build", @@ -37,6 +37,7 @@ "date-fns": "^2.28.0", "ethereum-blockies-base64": "^1.0.2", "fuse.js": "^6.5.3", + "lodash": "^4.17.21", "remove-markdown": "^0.3.0" } } diff --git a/src/routes/vstupenky.svelte b/src/routes/vstupenky.svelte index 8da90c3..2c4dd14 100644 --- a/src/routes/vstupenky.svelte +++ b/src/routes/vstupenky.svelte @@ -7,6 +7,7 @@ import { faker } from "@faker-js/faker"; import SvelteMarkdown from "svelte-markdown"; import Link from "$lib/Link.svelte"; + import * as _ from "lodash"; import { orderTicketForm, bundle, @@ -308,6 +309,75 @@ }); loadOrders($userData); } + + let ticketEdit = null; + let ticketEditSecret = null; + let ticketEditData = {}; + let ticketEditProcessing = null; + let ticketEditError = null; + + function handleTicketEditShow( + ticketId, + ticketData = {}, + orderId = null, + ud = null + ) { + return () => { + ticketEdit = ticketId; + ticketEditData = _.pick(ticketData, ["name", "org", "twitter"]); + const tsecret = ud.tickets.find((t) => + t.match(new RegExp(`^${ticketId}:`)) + ); + ticketEditSecret = orderId + ? `order:${orderId}` + : tsecret + ? `ticket:${tsecret.split(":")[1]}` + : "error"; + }; + } + + async function changeEditForm() { + ticketEditError = false; + } + + async function handleTicketEdit() { + if (!ticketEdit || ticketEditProcessing) { + return null; + } + ticketEditProcessing = true; + console.log(ticketEdit, ticketEditData); + + const resp = await api.apiCall( + "updateTicket", + { method: "POST" }, + { + id: ticketEdit, + data: ticketEditData, + secret: ticketEditSecret, + } + ); + ticketEditProcessing = false; + if (resp.error) { + let msg = ""; + if (resp.error.formErrors) { + switch (resp.error.formErrors[0].instancePath) { + case "/twitter": + msg = "Neplatný twitter účet"; + break; + case "/name": + msg = "Nesprávně vyplněné jméno (max. počet znaků je 25)"; + break; + case "/org": + msg = "Nesprávně vyplněná organizace (max. počet znaků je 25)"; + break; + } + } + ticketEditError = msg || "Neznámá chyba"; + } else { + ticketEdit = false; + await loadOrders($userData); + } + } @@ -323,11 +393,25 @@ {#if tickets.length > 0}