diff --git a/src/components/auth/Login.svelte b/src/components/auth/Login.svelte index 6be88339..54ccffbc 100644 --- a/src/components/auth/Login.svelte +++ b/src/components/auth/Login.svelte @@ -76,7 +76,7 @@ // last login was not processed yet } else { Toastify({ - text: "chill...", + text: $_('please-wait-a-moment-your-login-is-still-being-processed'), duration: 1500, backgroundColor: "linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)", diff --git a/src/components/contacts/AddContactModal.svelte b/src/components/contacts/AddContactModal.svelte index d24dec4e..3b4bb2ad 100644 --- a/src/components/contacts/AddContactModal.svelte +++ b/src/components/contacts/AddContactModal.svelte @@ -86,7 +86,7 @@ if (processed_last_submit === true) { processed_last_submit = false; const toast = Toastify({ - text: "Contact is being added...", + text: $_('contact-is-being-added'), duration: -1, }).showToast(); let address = {}; @@ -123,7 +123,7 @@ modal_open = false; // Toastify({ - text: "Contact added", + text: $_('contact-added'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); diff --git a/src/components/donations/AddDonationModal.svelte b/src/components/donations/AddDonationModal.svelte index 63e781e3..0c06b184 100644 --- a/src/components/donations/AddDonationModal.svelte +++ b/src/components/donations/AddDonationModal.svelte @@ -9,6 +9,7 @@ } from "@odit/lfk-client-js"; import Select from "svelte-select"; import Toastify from "toastify-js"; +import { is_promise } from "svelte/internal"; export let modal_open; export let current_donations; const getDonorLabel = (option) => @@ -24,6 +25,7 @@ $: donors = []; $: runners = []; $: is_fixed = false; + $: is_paid = false; DonorService.donorControllerGetAll().then((val) => { donors = val.map((r) => { return { label: getDonorLabel(r), value: r }; @@ -57,14 +59,18 @@ let amount_cent = Math.floor(amount_input * 100); processed_last_submit = false; const toast = Toastify({ - text: "adding donation", + text: $_('adding-donation'), duration: -1, }).showToast(); if (is_fixed) { let postdata = { donor, amount: amount_cent, + paidAmount: 0 }; + if(is_paid){ + postdata.paidAmount = amount_cent; + } DonationService.donationControllerPostFixed(postdata) .then((result) => { donor = donors[0].id || 0; @@ -73,7 +79,7 @@ modal_open = false; // Toastify({ - text: "donation_added", + text: $_('donation_added'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); @@ -102,7 +108,7 @@ modal_open = false; // Toastify({ - text: "donation_added", + text: $_('donation_added'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); @@ -123,7 +129,7 @@ @@ -195,7 +201,7 @@ class="ml-2 text-base" class:text-gray-300={is_fixed}>{$_('distance-donation')} {/if} + {#if is_fixed} +
+ +

+ + + + {#if is_paid} + {$_('paid')} + {:else} + {$_('open')} + {/if} + +

+
+ {/if} diff --git a/src/components/donations/AddDonationPaymentModal.svelte b/src/components/donations/AddDonationPaymentModal.svelte new file mode 100644 index 00000000..45f952e9 --- /dev/null +++ b/src/components/donations/AddDonationPaymentModal.svelte @@ -0,0 +1,202 @@ + + +{#if payment_modal_open} +
{ + payment_modal_open = false; + }}> +
+ +
+{/if} diff --git a/src/components/donations/DonationDetail.svelte b/src/components/donations/DonationDetail.svelte index b481a6fa..7747f5ec 100644 --- a/src/components/donations/DonationDetail.svelte +++ b/src/components/donations/DonationDetail.svelte @@ -20,6 +20,8 @@ $: current_runners = []; $: amount_input = 0; $: is_amount_valid = amount_input > 0; + $: paid_amount_input = 0; + $: is_paid_amount_valid = paid_amount_input > 0; $: is_everything_set = editable.donor != null && ((original_data.responseType == "DISTANCEDONATION" && @@ -30,15 +32,17 @@ (original_data.responseType == "DISTANCEDONATION" && !(Math.floor(amount_input * 100) === original_data.amountPerDistance)) || (original_data.responseType !== "DISTANCEDONATION" && - !(Math.floor(amount_input * 100) === original_data.amount)); + !(Math.floor(amount_input * 100) === original_data.amount)) || + !(Math.floor(paid_amount_input * 100) === original_data.paidAmount); $: save_enabled = changes_performed && is_amount_valid && is_everything_set; const promise = DonationService.donationControllerGetOne( params.donationid ).then((data) => { data_loaded = true; - original_data = Object.assign(original_data, data); - editable = Object.assign(editable, original_data); + original_data = Object.assign({}, data); + editable = Object.assign({}, original_data); + paid_amount_input = data.paidAmount / 100; if (data.responseType == "DISTANCEDONATION") { amount_input = data.amountPerDistance / 100; RunnerService.runnerControllerGetAll().then((val) => { @@ -66,10 +70,11 @@ function submit() { if (data_loaded === true && save_enabled) { Toastify({ - text: "Donation is being updated", + text: $_('updating-donation'), duration: 2500, }).showToast(); let postdata = {}; + editable.paidAmount = paid_amount_input*100; if (original_data.responseType === "DISTANCEDONATION") { editable.amountPerDistance = Math.floor(amount_input * 100); postdata = Object.assign(postdata, editable); @@ -83,7 +88,7 @@ Object.assign(original_data, editable); original_data = original_data; Toastify({ - text: "updated donation", + text: $_('donation-updated'), duration: 2500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); @@ -98,7 +103,7 @@ Object.assign(original_data, editable); original_data = original_data; Toastify({ - text: "updated donation", + text: $_('donation-updated'), duration: 2500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); @@ -112,7 +117,7 @@ DonationService.donationControllerRemove(original_data.id, false) .then((resp) => { Toastify({ - text: "Donation delete", + text: $_('donation-deleted'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); @@ -219,7 +224,24 @@ {(editable.amount / 100) .toFixed(2) .toLocaleString('de-DE', { valute: 'EUR' })}€ + | + {$_('paid-amount')}: + {(editable.paidAmount / 100) + .toFixed(2) + .toLocaleString('de-DE', { valute: 'EUR' })}€ + | + {$_('status')}: + {#if editable.status =="PAID"} + {$_('paid')} + {:else} + {$_('open')} + {/if}
+
{#if original_data.responseType == 'DISTANCEDONATION'} @@ -280,6 +302,39 @@
{/if} +
+ +
+ + + +
+ {#if !is_paid_amount_valid} + + {$_('payment-amount-must-be-greater-than-0-00eur')} + + {/if} +
{:catch error} diff --git a/src/components/donations/DonationsOverview.svelte b/src/components/donations/DonationsOverview.svelte index c417614b..8db4ea4d 100644 --- a/src/components/donations/DonationsOverview.svelte +++ b/src/components/donations/DonationsOverview.svelte @@ -4,9 +4,14 @@ import store from "../../store"; import Toastify from "toastify-js"; import DonationsEmptyState from "./DonationsEmptyState.svelte"; + import AddDonationPaymentModal from "./AddDonationPaymentModal.svelte"; $: searchvalue = ""; $: active_deletes = []; export let current_donations = []; + export let payment_modal_open = false; + export let editable = {}; + export let original_data = {}; + export let paid_amount_input = 0; const donations_promise = DonationService.donationControllerGetAll().then( (val) => { current_donations = val; @@ -18,8 +23,15 @@ } return id.toString() === searchvalue; } + function open_payment_modal(donation) { + editable = Object.assign({}, donation); + original_data = Object.assign({}, donation); + paid_amount_input = (donation.paidAmount/100).toFixed(2); + payment_modal_open = true; + } + {#if store.state.jwtinfo.userdetails.permissions.includes('DONATION:GET')} {#await donations_promise}
{$_('donation-amount')} + + {$_('paid-amount')} + + + {$_('status')} + {$_('action')} @@ -132,6 +154,22 @@ .toLocaleString('de-DE', { valute: 'EUR' })}€
+ +
+ {(donation.paidAmount / 100) + .toFixed(2) + .toLocaleString('de-DE', { valute: 'EUR' })}€ +
+ + + {#if donation.status =="PAID"} + {$_('paid')} + {:else} + {$_('open')} + {/if} + {#if active_deletes[donation.id] === true} @@ -149,7 +187,7 @@ (obj) => obj.id !== donation.id ); Toastify({ - text: 'Donation deleted', + text: $_('donation-deleted'), duration: 500, backgroundColor: 'linear-gradient(to right, #00b09b, #96c93d)', @@ -163,6 +201,9 @@ {:else} + {$_('details')} diff --git a/src/components/donors/ConfirmDonorDeletion.svelte b/src/components/donors/ConfirmDonorDeletion.svelte index 01100045..28799797 100644 --- a/src/components/donors/ConfirmDonorDeletion.svelte +++ b/src/components/donors/ConfirmDonorDeletion.svelte @@ -19,7 +19,7 @@ ) .then((resp) => { Toastify({ - text: "Donor deleted", + text: $_('donor-deleted'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); diff --git a/src/components/donors/DonorDetail.svelte b/src/components/donors/DonorDetail.svelte index bb88f84a..222bb46d 100644 --- a/src/components/donors/DonorDetail.svelte +++ b/src/components/donors/DonorDetail.svelte @@ -193,6 +193,12 @@ {(editable.donationAmount / 100) .toFixed(2) .toLocaleString('de-DE', { valute: 'EUR' })}€ + | + {$_('total-paid-amount')}: + {(editable.paidDonationAmount / 100) + .toFixed(2) + .toLocaleString('de-DE', { valute: 'EUR' })}€
{$_('donations')}: {#if current_donations.filter((d) => d.donor.id == editable.id).length > 0} diff --git a/src/components/donors/DonorsOverview.svelte b/src/components/donors/DonorsOverview.svelte index d167554f..e7a1c45a 100644 --- a/src/components/donors/DonorsOverview.svelte +++ b/src/components/donors/DonorsOverview.svelte @@ -77,6 +77,11 @@ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> {$_('total-donation-amount')} + + {$_('total-paid-amount')} + {$_('action')} @@ -145,6 +150,11 @@ .toFixed(2) .toLocaleString('de-DE', { valute: 'EUR' })}€ + + {(donor.paidDonationAmount / 100) + .toFixed(2) + .toLocaleString('de-DE', { valute: 'EUR' })}€ + {#if active_deletes[donor.id] === true} diff --git a/src/components/orgs/ConfirmOrgDeletion.svelte b/src/components/orgs/ConfirmOrgDeletion.svelte index 7fb936d8..449f0568 100644 --- a/src/components/orgs/ConfirmOrgDeletion.svelte +++ b/src/components/orgs/ConfirmOrgDeletion.svelte @@ -19,7 +19,7 @@ ) .then((resp) => { Toastify({ - text: "Organization deleted", + text: $_('organization-deleted'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); diff --git a/src/components/runners/ImportRunnerModal.svelte b/src/components/runners/ImportRunnerModal.svelte index 37d450e7..c1d4ab8d 100644 --- a/src/components/runners/ImportRunnerModal.svelte +++ b/src/components/runners/ImportRunnerModal.svelte @@ -202,7 +202,7 @@ toast.hideToast(); recent_processed = true; Toastify({ - text: "Import finished", + text: $_('import-finished'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); diff --git a/src/components/settings/ConfirmProfileDeletion.svelte b/src/components/settings/ConfirmProfileDeletion.svelte index 10e79cd6..db0df385 100644 --- a/src/components/settings/ConfirmProfileDeletion.svelte +++ b/src/components/settings/ConfirmProfileDeletion.svelte @@ -17,7 +17,7 @@ MeService.meControllerRemove(true) .then((resp) => { Toastify({ - text: "Profile deleted!", + text: $_('profile-deleted'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); diff --git a/src/components/teams/AddTeamModal.svelte b/src/components/teams/AddTeamModal.svelte index 06ba6a49..8795158e 100644 --- a/src/components/teams/AddTeamModal.svelte +++ b/src/components/teams/AddTeamModal.svelte @@ -43,7 +43,7 @@ if (processed_last_submit === true) { processed_last_submit = false; const toast = Toastify({ - text: "Team is being added...", + text: $_('team-is-being-added'), duration: -1, }).showToast(); RunnerTeamService.runnerTeamControllerPost({ @@ -55,7 +55,7 @@ modal_open = false; // Toastify({ - text: "Team added", + text: $_('team-added'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); diff --git a/src/components/teams/ConfirmTeamDeletion.svelte b/src/components/teams/ConfirmTeamDeletion.svelte index bfafe8aa..5f9ee92c 100644 --- a/src/components/teams/ConfirmTeamDeletion.svelte +++ b/src/components/teams/ConfirmTeamDeletion.svelte @@ -16,7 +16,7 @@ RunnerTeamService.runnerTeamControllerRemove(delete_team.id, true) .then((resp) => { Toastify({ - text: "Team deleted", + text: $_('team-deleted'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); diff --git a/src/components/teams/TeamDetail.svelte b/src/components/teams/TeamDetail.svelte index 2be431bb..baad6076 100644 --- a/src/components/teams/TeamDetail.svelte +++ b/src/components/teams/TeamDetail.svelte @@ -67,7 +67,7 @@ RunnerTeamService.runnerTeamControllerRemove(original.id, false) .then((resp) => { Toastify({ - text: "Organization deleted", + text: $_('team-deleted'), duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); @@ -81,7 +81,7 @@ function submit() { if (data_loaded === true && save_enabled) { Toastify({ - text: "updating team", + text: $_('updating-team'), duration: 2500, }).showToast(); let postdata = teamdata; @@ -92,7 +92,7 @@ Object.assign(original, teamdata); original = original; Toastify({ - text: "updated team", + text: $_('updated-team'), duration: 2500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); diff --git a/src/components/tracks/Tracks.svelte b/src/components/tracks/Tracks.svelte index f3d586f0..4dcabb1c 100644 --- a/src/components/tracks/Tracks.svelte +++ b/src/components/tracks/Tracks.svelte @@ -34,7 +34,7 @@ `[data-id="triggered_table_actions_${trackid}"]` ).parentNode.parentNode.parentNode; Toastify({ - text: "Track is being updated...", + text: $_('track-is-being-updated'), duration: 500, }).showToast(); TrackService.trackControllerPut(trackid, { @@ -45,7 +45,7 @@ }) .then((r) => { Toastify({ - text: "Track was updated!", + text: $_('track-was-updated'), backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", duration: 1000, }).showToast(); diff --git a/src/components/users/UserPermissions.svelte b/src/components/users/UserPermissions.svelte index 92071b12..8265d880 100644 --- a/src/components/users/UserPermissions.svelte +++ b/src/components/users/UserPermissions.svelte @@ -27,7 +27,7 @@ }); function submit() { Toastify({ - text: "updating permissions...", + text: $_('updating-permissions'), duration: 2500, }).showToast(); to_delete.forEach((d) => { diff --git a/src/locales/de.json b/src/locales/de.json index dc21f32c..5269b15d 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -22,6 +22,7 @@ "add-your-fist-donation": "Erstelle dein erstes Sponsoring", "add-your-fist-scan": "Füge deinen ersten Scan hinzu", "adding-card": "Karte wird erstellt", + "adding-donation": "Sponsoring wird erstellt...", "adding-scan": "Scan wird hinzugefügt", "address": "Adresse", "address-is-required": "Du musst eine Adresse angeben", @@ -30,6 +31,7 @@ "all-associated-donations-will-get-deleted-as-well": "Alle Sponsorings dieser Sponsor:in werden ebenfalls gelöscht", "all-associated-runners-will-be-deleted-too": "Alle zugehörigen Läufer:innen werden auch gelöscht!", "all-associated-teams-and-runners-will-be-deleted-too": "Alle assoziierten Teams und Läufer:innen werden auch gelöscht!", + "already-paid": "Bereits bezahlt", "amount": "Anzahl", "amount-per-kilometer": "Betrag pro Kilometer", "apartment-suite-etc": "Apartment, Wohnung, etc.", @@ -68,8 +70,10 @@ "confirm-deletion": "Löschung Bestätigen", "confirm-the-new-password": "Neues Passwort bestätigen", "contact": "Kontakt", + "contact-added": "Kontakt wurde hinzugefügt", "contact-deleted": "Kontakt gelöscht", "contact-information": "Kontaktinformation", + "contact-is-being-added": "Kontakt wird erstellt...", "contact-is-being-updated": "Kontakt wird aktualisiert ...", "contact-is-not-a-member-in-any-group": "Kontakt gehört zu keiner Gruppe", "contacts": "Kontakte", @@ -129,7 +133,7 @@ }, "delete": "Löschen", "delete-contact": "Kontakt löschen", - "delete-donation": "Sponsporing löschen", + "delete-donation": "Sponsoring löschen", "delete-donor": "Sponsor:in löschen", "delete-group": "Gruppe löschen", "delete-organization": "Organisation löschen", @@ -157,6 +161,9 @@ "documentation": "Dokumentation", "donation-amount": "Sponsoringbetrag", "donation-amount-must-be-greater-that-0-00eur": "Der Sponsoringbetrag muss größer als 0.00€ sein.", + "donation-deleted": "Sponsoring gelöscht", + "donation-updated": "Sponsoring wurde aktualisiert", + "donation_added": "Sponsoring hinzugefügt", "donations": "Sponsorings", "donor": "Sponsor:in", "donor-added": "Sponsor:in hinzugefügt", @@ -176,6 +183,7 @@ "enabled": "aktiviert", "enabled_large": "Aktiviert", "english": "Englisch", + "enter-payment": "Zahlung eingeben", "error-during-import": "Fehler beim Importieren", "error-whyile-copying-to-clipboard": "Fehler beim Kopieren in die Zwischenablage", "error_on_login": "😢Fehler beim Login", @@ -269,6 +277,7 @@ "no-runners-found": "Keine Läufer:innen gefunden", "no-tracks-added-yet": "Es wurden noch keine Tracks erstellt.", "non-blanko": "Keine/Blankokarte", + "open": "OFFEN", "organization": "Organisation", "organization-added": "Organisation hinzugefügt", "organization-deleted": "Organisation gelöscht", @@ -279,6 +288,8 @@ "organizations-are-being-loaded": "Organisationen werden geladen ...", "orgs": "Organisationen", "oss_credit_description": "Wir verwenden eine Menge Open Source-Software bei diesen Projekten und möchten uns bei den folgenden Projekten und Mitwirkenden bedanken, die dazu beitragen, Open Source großartig zu machen!", + "paid": "BEZAHLT", + "paid-amount": "Gezahlter Betrag", "password": "Passwort", "password-changed": "Passwort wurde aktualisiert!", "password-is-required": "Passwort muss angegeben werden", @@ -287,6 +298,7 @@ "password-reset-mail-sent": "Passwort-Reset Mail wurde an \"{usersEmail}\" geschickt.", "password-reset-successful": "Passwort erfolgreich zurückgesetzt!", "passwords-dont-match": "Die Passwörter stimmen nicht überein!", + "payment-amount-must-be-greater-than-0-00eur": "Der Zahlungsbetrag muss größer als 0.00€ sein!", "pdf-generation-failed": "PDF Generierung fehlgeschlagen!", "pdf-successfully-generated": "PDF wurde erfolgreich generiert!", "pdfs-successfully-generated": "Alle PDFs wurden generiert!", @@ -309,9 +321,11 @@ "please-provide-the-required-information-to-add-a-new-user": "Bitte gebe alle nötigen Informationen an, im die neue Benutzer:in zu erstellen.", "please-provide-the-required-information-to-create-a-new-scanstation": "Bitte gebe alle für eine Scannerstation notwendigen Informationen an", "please-request-a-new-reset-mail": "Bitte eine neue Passwortreset-Mail anfordern...", + "please-wait-a-moment-your-login-is-still-being-processed": "Bitte warte einen Moment, deine Anmeldung wird verarbeitet", "privacy": "Datenschutz", "privacy-loading": "Datenschutzerklärung lädt...", "profile": "Profil", + "profile-deleted": "Profil gelöscht!", "profile-picture": "Profilbild", "profile-updated": "Profil wurde aktualisiert!", "read-license": "Lizenz-Text lesen", @@ -362,7 +376,10 @@ "stuff-that-could-harm-your-profile": "Einstellungen, die deinem Profil nachhaltig schaden können", "successful-password-reset": "Passwort erfolgreich zurückgesetzt!", "team": "Team", + "team-added": "Team wurde hinzugefügt", + "team-deleted": "Team gelöscht", "team-detail-is-being-loaded": "Team wird geladen...", + "team-is-being-added": "Team wird erstellt...", "team-name": "Teamname", "team-name-is-required": "Teamname ist erforderlich", "teams": "Teams", @@ -387,28 +404,35 @@ "total-distance": "gelaufene Strecke", "total-donation-amount": "Gesamtbetrag", "total-donations": "Spendensumme", + "total-paid-amount": "Gezahlter Gesamtbetrag", "total-scans": "gesamte Scans", "total_donation_amount_in_eur": "Gesamtbetrag in €", "track": "Track", "track-added": "Track hinzugefügt", "track-data-is-being-loaded": "Trackdaten werden geladen", "track-is-being-added": "Track wird hinzugefügt...", + "track-is-being-updated": "Track wird aktualisiert...", "track-length-in-m": "Tracklänge (in Metern)", "track-length-must-be-greater-than-0": "Die Länge muss größer als 0 (Meter) sein", "track-name": "Trackname", "track-name-must-not-be-empty": "Der Name muss angegeben werden", + "track-was-updated": "Track wurde aktualisiert", "tracks": "Tracks", + "unpaid": "Offen", "update-card": "Karte aktualisieren", "update-password": "Passwort ändern", "updated-contact": "Kontakt aktualisiert!", "updated-donor": "Sponsor:in wurde aktualisiert", "updated-organization": "Organisation wurde aktualisiert", "updated-scan": "Scan wurde aktualisiert", + "updated-team": "Team wurde aktualisiert", "updateing-group": "Gruppe wird aktualisiert...", "updating-card": "Karte wird aktualisiert", + "updating-donation": "Sponsoring wird aktualisiert", "updating-organization": "Organisation wird aktualisiert", "updating-permissions": "Berechtigungen werden aktualisiert...", "updating-runner": "Läufer:in wird aktualisiert.", + "updating-team": "Team wird aktualisiert", "updating-user": "Benutzer:in wird aktualisiert...", "updating-your-profile": "Profil wird aktualisiert...", "user-added": "Benutzer hinzugefügt", @@ -426,6 +450,7 @@ "welcome_wavinghand": "Willkommen 👋", "yes-i-copied-the-token": "Ja, ich habe den Token kopiert", "you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "Du wirst all deine Berechtigungen und den Zugriff aufs Läufersystem verlieren!", + "you-can-enter-the-donations-paid-amount-manually-or-use-the-max-button-to-use-the-donations-exact-amount": "Du kannst den Betrag der Zahlung entweder manuell eingeben oder über den MAX Button auf den Spendenbetrag setzen", "you-can-now-use-your-new-password-to-log-in-to-your-account": "Du kannst dich jetzt mit deinem neuen Passwort anmelden! 🎉", "you-can-provide-a-runner-but-you-dont-have-to": "Du kannst eine Läufer:in angeben, musst aber nicht.", "you-dont-have-any-scanstations-yet": "Es gibt noch keine Scannerstationen", diff --git a/src/locales/en.json b/src/locales/en.json index 79922067..b705edd8 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -7,6 +7,7 @@ "add-card": "Add Card", "add-donation": "Add donation", "add-donor": "Add donor", + "add-or-update-a-payment": "Add or update a payment", "add-scan": "Add scan", "add-the-first-scanstation": "Add your first scanstation.", "add-user-group": "Add User Group", @@ -22,6 +23,7 @@ "add-your-fist-donation": "Add your fist donation", "add-your-fist-scan": "Add your fist scan", "adding-card": "Adding Card", + "adding-donation": "Adding donation...", "adding-scan": "Adding Scan", "address": "Address", "address-is-required": "Address is required", @@ -30,6 +32,7 @@ "all-associated-donations-will-get-deleted-as-well": "All associated donations will get deleted as well", "all-associated-runners-will-be-deleted-too": "All associated runners will be deleted too!", "all-associated-teams-and-runners-will-be-deleted-too": "All associated teams and runners will be deleted too!", + "already-paid": "Already paid", "amount": "Amount", "amount-per-kilometer": "Amount per kilometer", "apartment-suite-etc": "Apartment, suite, etc.", @@ -68,8 +71,10 @@ "confirm-deletion": "Confirm Deletion", "confirm-the-new-password": "Confirm the new password", "contact": "Contact", + "contact-added": "Contact added", "contact-deleted": "Contact deleted", "contact-information": "Contact Information", + "contact-is-being-added": "Contact is being added...", "contact-is-being-updated": "Contact is being updated...", "contact-is-not-a-member-in-any-group": "Contact is not a member in any group", "contacts": "Contacts", @@ -157,6 +162,9 @@ "documentation": "Documentation", "donation-amount": "Donation amount", "donation-amount-must-be-greater-that-0-00eur": "Donation amount must be greater that 0.00€", + "donation-deleted": "Donation deleted", + "donation-updated": "Donation updated", + "donation_added": "Donation_added", "donations": "Donations", "donor": "Donor", "donor-added": "Donor added", @@ -176,6 +184,7 @@ "enabled": "enabled", "enabled_large": "Enabled", "english": "English", + "enter-payment": "Enter payment", "error-during-import": "Error during import", "error-whyile-copying-to-clipboard": "Error while copying to clipboard", "error_on_login": "Error on login", @@ -269,6 +278,7 @@ "no-runners-found": "No runners found", "no-tracks-added-yet": "there are no tracks added yet.", "non-blanko": "Non/Blanko", + "open": "OPEN", "organization": "Organization", "organization-added": "Organization added", "organization-deleted": "Organization deleted", @@ -279,6 +289,8 @@ "organizations-are-being-loaded": "organizations are being loaded...", "orgs": "Organizations", "oss_credit_description": "We use a lot of open source software on these projects, and would like to thank the following projects and contributors who help make open source great!", + "paid": "PAID", + "paid-amount": "Paid amount", "password": "Password", "password-changed": "Password changed!", "password-is-required": "Password is required", @@ -287,6 +299,7 @@ "password-reset-mail-sent": "Password reset mail was sent to \"{usersEmail}\".", "password-reset-successful": "Password Reset successful!", "passwords-dont-match": "Passwords don't match!", + "payment-amount-must-be-greater-than-0-00eur": "Payment amount must be greater than 0.00€!", "pdf-generation-failed": "PDF generation failed!", "pdf-successfully-generated": "PDF successfully generated!", "pdfs-successfully-generated": "PDFs successfully generated!", @@ -309,9 +322,11 @@ "please-provide-the-required-information-to-add-a-new-user": "Please provide the required information to add a new user.", "please-provide-the-required-information-to-create-a-new-scanstation": "Please provide the required information to create a new scanstation", "please-request-a-new-reset-mail": "Please request a new reset mail...", + "please-wait-a-moment-your-login-is-still-being-processed": "Please wait a moment, your login is still being processed", "privacy": "Privacy", "privacy-loading": "Privacy loading...", "profile": "Profile", + "profile-deleted": "Profile deleted!", "profile-picture": "Profile Picture", "profile-updated": "Profile updated!", "read-license": "Read License", @@ -362,7 +377,10 @@ "stuff-that-could-harm-your-profile": "Stuff that could harm your profile", "successful-password-reset": "Successful password reset!", "team": "Team", + "team-added": "Team added", + "team-deleted": "Team deleted", "team-detail-is-being-loaded": "team detail is being loaded...", + "team-is-being-added": "Team is being added...", "team-name": "Team name", "team-name-is-required": "team name is required", "teams": "Teams", @@ -387,28 +405,35 @@ "total-distance": "total distance", "total-donation-amount": "total donation amount", "total-donations": "total donations", + "total-paid-amount": "Total paid amount", "total-scans": "total scans", "total_donation_amount_in_eur": "Total donation amount in €", "track": "Track", "track-added": "Track added", "track-data-is-being-loaded": "Track data is being loaded", "track-is-being-added": "Track is being added...", + "track-is-being-updated": "Track is being updated...", "track-length-in-m": "Track Length in m", "track-length-must-be-greater-than-0": "Track length must be greater than 0", "track-name": "Track name", "track-name-must-not-be-empty": "Track name must not be empty", + "track-was-updated": "Track was updated!", "tracks": "Tracks", + "unpaid": "Unpaid", "update-card": "Update Card", "update-password": "Update password", "updated-contact": "Updated contact!", "updated-donor": "updated donor", "updated-organization": "updated organization", "updated-scan": "updated scan", + "updated-team": "Updated team", "updateing-group": "updateing group...", "updating-card": "Updating card", + "updating-donation": "Updating donation", "updating-organization": "updating organization", "updating-permissions": "updating permissions...", "updating-runner": "Updating runner...", + "updating-team": "Updating team", "updating-user": "updating user...", "updating-your-profile": "Updating your profile...", "user-added": "User added", @@ -426,6 +451,7 @@ "welcome_wavinghand": "Welcome 👋", "yes-i-copied-the-token": "Yes, I copied the token", "you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "You are going to loose all permissions and access to the runner system!", + "you-can-enter-the-donations-paid-amount-manually-or-use-the-max-button-to-use-the-donations-exact-amount": "You can enter the donation's paid amount manually or use the MAX button to use the donation's exact amount.", "you-can-now-use-your-new-password-to-log-in-to-your-account": "You can now use your new password to log in to your account! 🎉", "you-can-provide-a-runner-but-you-dont-have-to": "You can provide a runner, but you don't have to.", "you-dont-have-any-scanstations-yet": "You don't have any scanstations yet",