Compare commits

..

8 Commits

Author SHA1 Message Date
8c56aa3c46 Merge branch 'dev' into feature/anonyme-spende 2025-04-28 10:57:14 +02:00
f642849dbb wip 2025-04-28 10:56:45 +02:00
7ac92ae6ca wip 2025-04-28 10:45:47 +02:00
95af9f9914 i18n 2025-04-28 10:44:02 +02:00
1004aee16c implement DonationDonor 2025-04-28 10:40:23 +02:00
0baf2fc460 wip 2025-04-28 10:38:27 +02:00
09b59175ee wip 2025-04-28 10:35:45 +02:00
a21f61f3f3 wip 2025-04-28 10:24:07 +02:00
12 changed files with 528 additions and 621 deletions

View File

@@ -2,41 +2,8 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [1.12.2](https://git.odit.services/lfk/frontend/compare/1.12.1...1.12.2)
- feat(cardassignment): Now with hand scanner support [`9e8c236`](https://git.odit.services/lfk/frontend/commit/9e8c236281f6686318c27dcb1bd02dfbc2b30ee8)
#### [1.12.1](https://git.odit.services/lfk/frontend/compare/1.12.0...1.12.1)
> 28 April 2025
- chore(release): 1.12.1 [`827fb31`](https://git.odit.services/lfk/frontend/commit/827fb317bc946268e4a1d60b15f3805b67b240f6)
- fix(donations): Don't show enter payment for anon donations [`32f72df`](https://git.odit.services/lfk/frontend/commit/32f72df10583a08efb26e0983c0c5c829ab03e19)
- chore(deps): Fresh lock [`1ec8e21`](https://git.odit.services/lfk/frontend/commit/1ec8e2186bdcd69c2acbc785feef4927973bc986)
- fix(donations): Support anon donations in deletion modal [`27187b4`](https://git.odit.services/lfk/frontend/commit/27187b428da1e757f85392d77d49670f51a19829)
- fix(donations): Don't show details for anon donations [`ecd418c`](https://git.odit.services/lfk/frontend/commit/ecd418c5db0910d64cdf5336d72a10ebff38e065)
- refactor(i18n): Update translations [`77a4328`](https://git.odit.services/lfk/frontend/commit/77a432817ef644ff1be8a5ebcd284b7d67f742bd)
- fix(donations): Remove paid from anon donations [`31a4ff9`](https://git.odit.services/lfk/frontend/commit/31a4ff9d909742df3ed3d6cecae57870e287afcc)
- fix(donations): Move amount to extra line [`edd5da8`](https://git.odit.services/lfk/frontend/commit/edd5da89a7e741d48078125f68b6dd6d3d88a7a1)
- refactor(i18n): Shortened translation [`657fb04`](https://git.odit.services/lfk/frontend/commit/657fb04f1b5b439ef5fac834740ba00548b758de)
- feat(donation): Use new endpoint for creating anon donations [`e28f543`](https://git.odit.services/lfk/frontend/commit/e28f543d89efff80a84131df59bfb26a5ea92d14)
- fix(donations): Translate modal title [`dc1e6b7`](https://git.odit.services/lfk/frontend/commit/dc1e6b7a67c4761a007ffe3b71fd851fb569fb7c)
- chore(deps): Bump @odit/lfk-client-js [`cb315d9`](https://git.odit.services/lfk/frontend/commit/cb315d94fd2331bd49aa6d54b9ca0bfbf11f00d9)
- feat(shared): Hide link while keeping width [`724e844`](https://git.odit.services/lfk/frontend/commit/724e84441e8b71b7d89a8c3804467edebfd58365)
#### [1.12.0](https://git.odit.services/lfk/frontend/compare/1.11.5...1.12.0)
> 28 April 2025
- feat: anonymous donations [`9c03e35`](https://git.odit.services/lfk/frontend/commit/9c03e359a4e8f43452475b02bcabcb354987ab75)
- refactor: use modern tailwindcss features [`1505080`](https://git.odit.services/lfk/frontend/commit/1505080afdd8b272b76584e2777df732001ce004)
- chore(release): 1.12.0 [`5dcb4cb`](https://git.odit.services/lfk/frontend/commit/5dcb4cb508b204c5634804811a9f37db78e764ce)
#### [1.11.5](https://git.odit.services/lfk/frontend/compare/1.11.4...1.11.5) #### [1.11.5](https://git.odit.services/lfk/frontend/compare/1.11.4...1.11.5)
> 25 April 2025
- chore(release): 1.11.5 [`8cb6093`](https://git.odit.services/lfk/frontend/commit/8cb6093f0b3474c0952a8a51a47683262fc31f8f)
- fix(cards): Update table for edit events [`27396e1`](https://git.odit.services/lfk/frontend/commit/27396e17f2cd8be72c9c8100afe6ec75ac66dceb) - fix(cards): Update table for edit events [`27396e1`](https://git.odit.services/lfk/frontend/commit/27396e17f2cd8be72c9c8100afe6ec75ac66dceb)
#### [1.11.4](https://git.odit.services/lfk/frontend/compare/1.11.3...1.11.4) #### [1.11.4](https://git.odit.services/lfk/frontend/compare/1.11.3...1.11.4)

View File

@@ -13,7 +13,7 @@
<body> <body>
<span style="display: none; visibility: hidden" id="buildinfo" <span style="display: none; visibility: hidden" id="buildinfo"
>RELEASE_INFO-1.12.2-RELEASE_INFO</span >RELEASE_INFO-1.11.5-RELEASE_INFO</span
> >
<noscript>You need to enable JavaScript to run this app.</noscript> <noscript>You need to enable JavaScript to run this app.</noscript>
<script src="/env.js"></script> <script src="/env.js"></script>

View File

@@ -1,6 +1,6 @@
{ {
"name": "@odit/lfk-frontend", "name": "@odit/lfk-frontend",
"version": "1.12.2", "version": "1.11.5",
"type": "module", "type": "module",
"scripts": { "scripts": {
"i18n-order": "node order.js", "i18n-order": "node order.js",
@@ -43,7 +43,7 @@
"dependencies": { "dependencies": {
"@bwip-js/browser": "^4.6.0", "@bwip-js/browser": "^4.6.0",
"@fontsource/athiti": "^5.2.5", "@fontsource/athiti": "^5.2.5",
"@odit/lfk-client-js": "1.2.5", "@odit/lfk-client-js": "1.2.4",
"@paralleldrive/cuid2": "2.2.2", "@paralleldrive/cuid2": "2.2.2",
"@tailwindcss/vite": "^4.1.4", "@tailwindcss/vite": "^4.1.4",
"@tanstack/svelte-table": "8.9.1", "@tanstack/svelte-table": "8.9.1",

10
pnpm-lock.yaml generated
View File

@@ -15,8 +15,8 @@ importers:
specifier: ^5.2.5 specifier: ^5.2.5
version: 5.2.5 version: 5.2.5
'@odit/lfk-client-js': '@odit/lfk-client-js':
specifier: 1.2.5 specifier: 1.2.4
version: 1.2.5 version: 1.2.4
'@paralleldrive/cuid2': '@paralleldrive/cuid2':
specifier: 2.2.2 specifier: 2.2.2
version: 2.2.2 version: 2.2.2
@@ -491,8 +491,8 @@ packages:
'@octokit/types@13.10.0': '@octokit/types@13.10.0':
resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==}
'@odit/lfk-client-js@1.2.5': '@odit/lfk-client-js@1.2.4':
resolution: {integrity: sha512-a5vwqpjFXB5cVOCmjC/tZVi9OXJS8aMesNidSqwK2cwA/oC5yTJAqxKXGDhq9k/JLLipVGDJdaKMYmYVzRWkgA==} resolution: {integrity: sha512-eJRsjtpMm/VsQ1v2I+inMWCZmzL+WoOvsA+hj8IGsyCVn0td+z/HAwQ0SuXXNZpLPL3qSlENHXjFNrgztExEgA==}
'@odit/license-exporter@0.2.0': '@odit/license-exporter@0.2.0':
resolution: {integrity: sha512-RRyfQzDLoyLQlGSd8ThJQ3h0fiCe4tkmm935AUvSVQWP+p88FcnI4iaktKBJJVBnIpDhkv/7sDSA5dFc/QMM5w==} resolution: {integrity: sha512-RRyfQzDLoyLQlGSd8ThJQ3h0fiCe4tkmm935AUvSVQWP+p88FcnI4iaktKBJJVBnIpDhkv/7sDSA5dFc/QMM5w==}
@@ -2412,7 +2412,7 @@ snapshots:
dependencies: dependencies:
'@octokit/openapi-types': 24.2.0 '@octokit/openapi-types': 24.2.0
'@odit/lfk-client-js@1.2.5': {} '@odit/lfk-client-js@1.2.4': {}
'@odit/license-exporter@0.2.0': '@odit/license-exporter@0.2.0':
dependencies: dependencies:

View File

@@ -75,8 +75,12 @@
} else if (type === "anonymous") { } else if (type === "anonymous") {
let postdata = { let postdata = {
amount: amount_cent, amount: amount_cent,
paidAmount: 0,
}; };
DonationService.donationControllerPostAnonymous(postdata) if (is_paid) {
postdata.paidAmount = amount_cent;
}
DonationService.donationControllerPostFixed(postdata)
.then((result) => { .then((result) => {
amount_input = 0; amount_input = 0;
modal_open = false; modal_open = false;
@@ -175,7 +179,7 @@
</div> </div>
<div class="mt-3"> <div class="mt-3">
<h3 class="text-xl leading-6 font-medium text-neutral-900"> <h3 class="text-xl leading-6 font-medium text-neutral-900">
{$_("add-donation")} Sponsoring erstellen
</h3> </h3>
<nav <nav
class="relative z-0 flex border border-neutral-200 rounded-xl overflow-hidden mb-2" class="relative z-0 flex border border-neutral-200 rounded-xl overflow-hidden mb-2"
@@ -333,7 +337,7 @@
{/if} {/if}
</div> </div>
{/if} {/if}
{#if type === "fixed"} {#if type === "fixed" || type === "anonymous"}
<div class="flex"> <div class="flex">
<input <input
bind:checked={is_paid} bind:checked={is_paid}

View File

@@ -13,7 +13,6 @@
firstname: "", firstname: "",
lastname: "", lastname: "",
}, },
amount: 0,
}; };
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
onMount(() => { onMount(() => {
@@ -87,12 +86,8 @@
</h3> </h3>
<div class="w-full"> <div class="w-full">
<span class="inline-block" <span class="inline-block"
>{#if delete_donation.donor}<b>{$_("donor")}</b>: {delete_donation.donor.firstname} ><b>{$_("donor")}</b>: {delete_donation.donor.firstname}
{delete_donation.donor.lastname}{:else}{$_("anonymer_sponsor")}{/if} {delete_donation.donor.lastname}</span
<br>
<b>{$_("amount")}</b>: {`${(delete_donation.amount / 100)
.toFixed(2)
.toLocaleString("de-DE", { valute: "EUR" })}€`}</span
> >
</div> </div>
</div> </div>

View File

@@ -9,15 +9,10 @@
export let paymentAction; export let paymentAction;
</script> </script>
{#if paymentAction}
<button <button
on:click={paymentAction} on:click={paymentAction}
class="text-[#025a21] hover:text-green-900 mr-4">{$_("enter-payment")}</button class="text-[#025a21] hover:text-green-900 mr-4">{$_("enter-payment")}</button
> >
{:else}
<span class="inline-block opacity-0 cursor-default mr-4" style="">{$_("enter-payment")}</span>
{/if}
<TableActions <TableActions
bind:detailsAction bind:detailsAction
bind:detailsLink bind:detailsLink

View File

@@ -112,25 +112,18 @@
accessorKey: "actions", accessorKey: "actions",
header: () => $_("action"), header: () => $_("action"),
cell: (info) => { cell: (info) => {
let detailsLink
let paymentAction
if (info.row.original.donor != undefined){
detailsLink = `./${info.row.original.id}`
paymentAction = () => {
active_edits = current_donations.filter(
(r) => r.id == info.row.original.id
);
}
}
return renderComponent(DonationTableAction, { return renderComponent(DonationTableAction, {
detailsLink: detailsLink, detailsLink: `./${info.row.original.id}`,
deleteAction: () => { deleteAction: () => {
active_deletes = current_donations.filter( active_deletes = current_donations.filter(
(r) => r.id == info.row.original.id (r) => r.id == info.row.original.id
); );
}, },
paymentAction: paymentAction, paymentAction: () => {
active_edits = current_donations.filter(
(r) => r.id == info.row.original.id
);
},
deleteEnabled: deleteEnabled:
store.state.jwtinfo.userdetails.permissions.includes( store.state.jwtinfo.userdetails.permissions.includes(
"DONATION:DELETE" "DONATION:DELETE"

File diff suppressed because it is too large Load Diff

View File

@@ -15,8 +15,6 @@
<button on:click={detailsAction} class="text-indigo-600 hover:text-indigo-900" <button on:click={detailsAction} class="text-indigo-600 hover:text-indigo-900"
>{$_("details")}</button >{$_("details")}</button
> >
{:else}
<span class="inline-block opacity-0 cursor-default" style="">{$_("details")}</span>
{/if} {/if}
{#if deleteEnabled} {#if deleteEnabled}
<button <button

View File

@@ -42,7 +42,7 @@
"amount": "Anzahl", "amount": "Anzahl",
"amount-per-kilometer": "Betrag pro Kilometer", "amount-per-kilometer": "Betrag pro Kilometer",
"anonyme_spende": "Anonyme Spende", "anonyme_spende": "Anonyme Spende",
"anonymer_sponsor": "👻 Anonym", "anonymer_sponsor": "👻 Anonymer Sponsor",
"apartment-suite-etc": "Apartment, Wohnung, etc.", "apartment-suite-etc": "Apartment, Wohnung, etc.",
"api-endpoint": "API-Endpunkt", "api-endpoint": "API-Endpunkt",
"application_name": "Lauf für Kaya! - Admin", "application_name": "Lauf für Kaya! - Admin",
@@ -52,7 +52,6 @@
"available-permissions": "Verfügbar", "available-permissions": "Verfügbar",
"average-distance": "∅ Strecke/Läufer", "average-distance": "∅ Strecke/Läufer",
"average-donation": "∅ Sponsoring", "average-donation": "∅ Sponsoring",
"barcode_scanner": "Scannen mit Handscanner",
"by": "von", "by": "von",
"cancel": "Abbrechen", "cancel": "Abbrechen",
"cancel-delete": "Löschen abbrechen", "cancel-delete": "Löschen abbrechen",

View File

@@ -41,8 +41,8 @@
"already-paid": "Already paid", "already-paid": "Already paid",
"amount": "Amount", "amount": "Amount",
"amount-per-kilometer": "Amount per kilometer", "amount-per-kilometer": "Amount per kilometer",
"anonyme_spende": "Anonymous", "anonyme_spende": "Anonymous Donation",
"anonymer_sponsor": "👻 Anonymous", "anonymer_sponsor": "👻 Anonymous Donor",
"apartment-suite-etc": "Apartment, suite, etc.", "apartment-suite-etc": "Apartment, suite, etc.",
"api-endpoint": "API-Endpoint", "api-endpoint": "API-Endpoint",
"application_name": "Lauf für Kaya! - Admin", "application_name": "Lauf für Kaya! - Admin",
@@ -52,7 +52,6 @@
"available-permissions": "available", "available-permissions": "available",
"average-distance": "∅ distance", "average-distance": "∅ distance",
"average-donation": "∅ donation", "average-donation": "∅ donation",
"barcode_scanner": "Scan via barcode scanner",
"by": "by", "by": "by",
"cancel": "Cancel", "cancel": "Cancel",
"cancel-delete": "Cancel Delete", "cancel-delete": "Cancel Delete",
@@ -227,7 +226,7 @@
"error_on_login": "Error on login", "error_on_login": "Error on login",
"everything-concerning-your-profile": "Everything concerning your profile", "everything-concerning-your-profile": "Everything concerning your profile",
"faq": "FAQ", "faq": "FAQ",
"festbetrag": "Fixed amount", "festbetrag": "Fixed Donation",
"filename_sponsoringquittungsliste": "DonorReceiptList", "filename_sponsoringquittungsliste": "DonorReceiptList",
"filter-by-organization-team": "Filter by Organization/ Team", "filter-by-organization-team": "Filter by Organization/ Team",
"first-name": "First name", "first-name": "First name",
@@ -422,7 +421,7 @@
"settings": "Settings", "settings": "Settings",
"settings-for-your-profile": "Settings for your profile", "settings-for-your-profile": "Settings for your profile",
"something-about-the-group": "Something about the group...", "something-about-the-group": "Something about the group...",
"spende_pro_km": "Per Kilometer", "spende_pro_km": "donation per km",
"sponsoring-quittungs-liste_herunterladen": "Download donor receipt list", "sponsoring-quittungs-liste_herunterladen": "Download donor receipt list",
"sponsorings": "Sponsorings", "sponsorings": "Sponsorings",
"station-deleted": "station deleted", "station-deleted": "station deleted",