From f67e089ff39aa885983c063b82b60ba0ea432b69 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 13:29:52 +0100 Subject: [PATCH 01/29] Added basic files for scans ref #92 --- src/components/scans/Scans.svelte | 29 +++++++++++++++++++++ src/components/scans/ScansEmptyState.svelte | 12 +++++++++ src/components/scans/scans.svg | 1 + 3 files changed, 42 insertions(+) create mode 100644 src/components/scans/Scans.svelte create mode 100644 src/components/scans/ScansEmptyState.svelte create mode 100644 src/components/scans/scans.svg diff --git a/src/components/scans/Scans.svelte b/src/components/scans/Scans.svelte new file mode 100644 index 00000000..d8e7d983 --- /dev/null +++ b/src/components/scans/Scans.svelte @@ -0,0 +1,29 @@ + + +
+ + Scans + {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:CREATE')} + + {/if} + + +
+ +{#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:CREATE')} + +{/if} diff --git a/src/components/scans/ScansEmptyState.svelte b/src/components/scans/ScansEmptyState.svelte new file mode 100644 index 00000000..6afaa185 --- /dev/null +++ b/src/components/scans/ScansEmptyState.svelte @@ -0,0 +1,12 @@ + + +
+

+ + There are no scans yet
+ Add your fist scan +

+
diff --git a/src/components/scans/scans.svg b/src/components/scans/scans.svg new file mode 100644 index 00000000..13a97190 --- /dev/null +++ b/src/components/scans/scans.svg @@ -0,0 +1 @@ + \ No newline at end of file -- 2.47.2 From 915bbbbde023c34feb4595629d59546970ba8c94 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 13:32:05 +0100 Subject: [PATCH 02/29] Now routing scans "start" page ref #92 --- src/App.svelte | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/App.svelte b/src/App.svelte index 9871981e..87dbb58d 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -69,9 +69,10 @@ import Donations from "./components/donations/Donations.svelte"; import DonationDetail from "./components/donations/DonationDetail.svelte"; import GroupDetail from "./components/groups/GroupDetail.svelte"; -import ScanStationsOverview from "./components/scanstations/ScanStationsOverview.svelte"; -import ScanStations from "./components/scanstations/ScanStations.svelte"; -import ScanStationDetail from "./components/scanstations/ScanStationDetail.svelte"; + import ScanStationsOverview from "./components/scanstations/ScanStationsOverview.svelte"; + import ScanStations from "./components/scanstations/ScanStations.svelte"; + import ScanStationDetail from "./components/scanstations/ScanStationDetail.svelte"; + import Scans from "./components/scans/Scans.svelte"; store.init(); registerSW(); @@ -183,6 +184,14 @@ import ScanStationDetail from "./components/scanstations/ScanStationDetail.svelt + + + + + + -- 2.47.2 From e6df76456204282c7724f62ada6a902c771ec451 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 13:32:35 +0100 Subject: [PATCH 03/29] =?UTF-8?q?Fixed=20typo=E2=9C=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #92 --- src/components/scans/Scans.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/scans/Scans.svelte b/src/components/scans/Scans.svelte index d8e7d983..8084ae82 100644 --- a/src/components/scans/Scans.svelte +++ b/src/components/scans/Scans.svelte @@ -17,7 +17,7 @@ }} type="button" class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm"> - Add scans + Add scan {/if} -- 2.47.2 From e9d5527482b2dd2c61b83642051c4f808906139b Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 13:35:17 +0100 Subject: [PATCH 04/29] =?UTF-8?q?Fixed=20emptystate=20=F0=9F=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #92 --- src/components/scans/ScansEmptyState.svelte | 4 +- src/components/scans/ScansOverview.svelte | 202 ++++++++++++++++++++ 2 files changed, 204 insertions(+), 2 deletions(-) create mode 100644 src/components/scans/ScansOverview.svelte diff --git a/src/components/scans/ScansEmptyState.svelte b/src/components/scans/ScansEmptyState.svelte index 6afaa185..7caf7d76 100644 --- a/src/components/scans/ScansEmptyState.svelte +++ b/src/components/scans/ScansEmptyState.svelte @@ -1,11 +1,11 @@

- + There are no scans yet
Add your fist scan

diff --git a/src/components/scans/ScansOverview.svelte b/src/components/scans/ScansOverview.svelte new file mode 100644 index 00000000..49a1fca3 --- /dev/null +++ b/src/components/scans/ScansOverview.svelte @@ -0,0 +1,202 @@ + + +{#if store.state.jwtinfo.userdetails.permissions.includes('DONATION:GET')} + {#await donations_promise} + + {:then} + {#if current_donations.length === 0} + + {:else} + +
+ + + + + + + + + + + + {#each current_donations as donation} + {#if donation.donor.firstname + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || donation.donor.middlename + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || donation.donor.lastname + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || donation.runner?.firstname + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || donation.runner?.middlename + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || donation.runner?.lastname + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || should_display_based_on_id(donation.id)} + + + + + + {#if active_deletes[donation.id] === true} + + {:else} + + {/if} + + {/if} + {/each} + +
+ {$_('donor')} + + {$_('runner')} + + {$_('amount-per-kilometer')} + + {$_('donation-amount')} + + {$_('action')} +
+ + + {#if donation.runner} + + {:else} +
+ {$_('fixed-donation')} +
+ {/if} +
+ {#if donation.amountPerDistance} +
+ {(donation.amountPerDistance / 100) + .toFixed(2) + .toLocaleString('de-DE', { valute: 'EUR' })}€ +
+ {:else} +
+ {$_('fixed-donation')} +
+ {/if} +
+
+ {(donation.amount / 100) + .toFixed(2) + .toLocaleString('de-DE', { valute: 'EUR' })}€ +
+
+ + + + {$_('details')} + {#if store.state.jwtinfo.userdetails.permissions.includes('DONATION:DELETE')} + + {/if} +
+
+ {/if} + {:catch error} +
+ + {$_('general_promise_error')} + {error} + +
+ {/await} +{/if} -- 2.47.2 From eb0910be575f4d83ab4f81a75a76cdfac46db19b Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 13:49:51 +0100 Subject: [PATCH 05/29] Added basic scan overview ref #92 --- src/components/scans/Scans.svelte | 8 +- src/components/scans/ScansOverview.svelte | 154 ++++++++++++---------- 2 files changed, 90 insertions(+), 72 deletions(-) diff --git a/src/components/scans/Scans.svelte b/src/components/scans/Scans.svelte index 8084ae82..27263eaf 100644 --- a/src/components/scans/Scans.svelte +++ b/src/components/scans/Scans.svelte @@ -2,8 +2,8 @@ import { _ } from "svelte-i18n"; import store from "../../store"; // import AddDonationModal from "./AddDonationModal.svelte"; - // import DonationsOverview from "./DonationsOverview.svelte"; - $: current_donations = []; + import ScansOverview from "./ScansOverview.svelte"; + $: current_scans = []; export let modal_open = false; @@ -21,9 +21,9 @@ {/if} - + {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:CREATE')} - + {/if} diff --git a/src/components/scans/ScansOverview.svelte b/src/components/scans/ScansOverview.svelte index 49a1fca3..9c218aca 100644 --- a/src/components/scans/ScansOverview.svelte +++ b/src/components/scans/ScansOverview.svelte @@ -1,15 +1,15 @@ -{#if store.state.jwtinfo.userdetails.permissions.includes('DONATION:GET')} - {#await donations_promise} +{#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:GET')} + {#await scans_promise} {:then} - {#if current_donations.length === 0} + {#if current_scans.length === 0} {:else} - - {$_('donor')} - @@ -56,12 +51,22 @@ - {$_('amount-per-kilometer')} + Distance - {$_('donation-amount')} + Status + + + Track + + + Station {$_('action')} @@ -69,95 +74,108 @@ - {#each current_donations as donation} - {#if donation.donor.firstname + {#each current_scans as scan} + + {#if scan.donor.firstname .toLowerCase() .includes( searchvalue.toLowerCase() - ) || donation.donor.middlename + ) || scan.donor.middlename .toLowerCase() .includes( searchvalue.toLowerCase() - ) || donation.donor.lastname + ) || scan.donor.lastname .toLowerCase() .includes( searchvalue.toLowerCase() - ) || donation.runner?.firstname + ) || scan.runner?.firstname .toLowerCase() .includes( searchvalue.toLowerCase() - ) || donation.runner?.middlename + ) || scan.runner?.middlename .toLowerCase() .includes( searchvalue.toLowerCase() - ) || donation.runner?.lastname + ) || scan.runner?.lastname .toLowerCase() .includes( searchvalue.toLowerCase() - ) || should_display_based_on_id(donation.id)} - + ) || should_display_based_on_id(scan.id)} +
{donation.donor.firstname} - {donation.donor.middlename || ''} - {donation.donor.lastname} + href="../runners/{scan.runner.id}" + class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{scan.runner.firstname} + {scan.runner.middlename || ''} + {scan.runner.lastname}
- - {#if donation.runner} - - {:else} -
- {$_('fixed-donation')} -
- {/if} - - - {#if donation.amountPerDistance} -
- {(donation.amountPerDistance / 100) - .toFixed(2) - .toLocaleString('de-DE', { valute: 'EUR' })}€ -
- {:else} -
- {$_('fixed-donation')} -
- {/if} -
- {(donation.amount / 100) - .toFixed(2) - .toLocaleString('de-DE', { valute: 'EUR' })}€ + {#if scan.distance < 1000} + {scan.distance}m + {:else} + {(scan.distance / 1000)}km + {/if}
- {#if active_deletes[donation.id] === true} + +
+ {#if scan.valid} + Valid + {:else} + Invalid + {/if} +
+ + + {#if scan.track} + + {:else} +
+ Scan with fixed distance +
+ {/if} + + + {#if scan.station} +
+ {:else} +
+ Scan with fixed distance +
+ {/if} + + + {#if active_deletes[scan.id] === true}
-- 2.47.2 From 1ada5d9c2c4d78868ca87b5cb05c0b6d770c7e9c Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 13:58:31 +0100 Subject: [PATCH 06/29] Implemented basic scan creation ref #92 --- src/components/scans/AddScanModal.svelte | 199 +++++++++++++++++++++++ src/components/scans/Scans.svelte | 4 +- 2 files changed, 201 insertions(+), 2 deletions(-) create mode 100644 src/components/scans/AddScanModal.svelte diff --git a/src/components/scans/AddScanModal.svelte b/src/components/scans/AddScanModal.svelte new file mode 100644 index 00000000..8f9c7cc2 --- /dev/null +++ b/src/components/scans/AddScanModal.svelte @@ -0,0 +1,199 @@ + + +{#if modal_open} +
{ + modal_open = false; + }}> +
+ +
+
+{/if} diff --git a/src/components/scans/Scans.svelte b/src/components/scans/Scans.svelte index 27263eaf..b817ab57 100644 --- a/src/components/scans/Scans.svelte +++ b/src/components/scans/Scans.svelte @@ -1,7 +1,7 @@ {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:GET')} @@ -54,23 +59,18 @@ - Distance + Distance (+Track) + + + Laptime Status - - Track - - - Station - {$_('action')} @@ -110,8 +110,25 @@ {#if scan.distance < 1000} {scan.distance}m {:else}{scan.distance / 1000}km{/if} + {#if scan.track} + {scan.track.name} + + {/if}
+ + {#if scan.laptime} +
+ {format_laptime(scan.laptime)} +
+ {:else} +
+ Scan with fixed distance +
+ {/if} +
{#if scan.valid} @@ -123,34 +140,6 @@ {/if}
- - {#if scan.track} - - {:else} -
- Scan with fixed distance -
- {/if} - - - {#if scan.station} - - {:else} -
- Scan with fixed distance -
- {/if} - {#if active_deletes[scan.id] === true} Date: Wed, 17 Mar 2021 17:53:36 +0100 Subject: [PATCH 11/29] Now routing scan detail ref #92 --- src/App.svelte | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/App.svelte b/src/App.svelte index 87dbb58d..335b2a7f 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -73,6 +73,7 @@ import ScanStations from "./components/scanstations/ScanStations.svelte"; import ScanStationDetail from "./components/scanstations/ScanStationDetail.svelte"; import Scans from "./components/scans/Scans.svelte"; +import ScanDetail from "./components/scans/ScanDetail.svelte"; store.init(); registerSW(); @@ -188,9 +189,9 @@ - + + +
-- 2.47.2 From 107360cd93f00beb73bf0e3a50ca45fbfed63dfc Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 17:53:59 +0100 Subject: [PATCH 12/29] Basic scan detail ref #92 --- src/components/scans/ScanDetail.svelte | 222 +++++++++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 src/components/scans/ScanDetail.svelte diff --git a/src/components/scans/ScanDetail.svelte b/src/components/scans/ScanDetail.svelte new file mode 100644 index 00000000..4a7edca6 --- /dev/null +++ b/src/components/scans/ScanDetail.svelte @@ -0,0 +1,222 @@ + + +{#await donor_promise && runner_promise && promise} + Loading scan details +{:then} +
+
+
+ +
+
+
+ {original_data.runner.firstname} + {original_data.runner.middlename || ''} + {original_data.runner.lastname} + #{original_data.id} + + {#if store.state.jwtinfo.userdetails.permissions.includes('DONATION:DELETE')} + {#if delete_triggered} + + + {/if} + {#if !delete_triggered} + + {/if} + {/if} + {#if !delete_triggered} + + {/if} + +
+ +
+ + { + editable.valid = !editable.valid; + }} + name="valid" + type="checkbox" + checked={editable.valid} + class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" /> + {#if editable.valid} + Invalid + {:else} + Invalid + {/if} +
+
+ + { @@ -190,15 +193,33 @@ name="valid" type="checkbox" checked={editable.valid} - class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" /> - {#if editable.valid} - Invalid - {:else} - Invalid - {/if} + class="focus:ring-indigo-500 align-bottom h-7 w-5font-medium text-indigo-600 border-gray-300 rounded" /> +   +

+ {#if editable.valid}Valid{:else}Invalid{/if} +

+ {#if editable.responseType === "TRACKSCAN"} + + {/if}
+
+ +
+ + m +
+ {#if !is_distance_valid} + + The scan's distance must be greater than 0m + + {/if} +
{:catch error} -- 2.47.2 From ff1bc8a44a0d020d57aaba5a3eb255a22d65bb3d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 17 Mar 2021 20:02:04 +0100 Subject: [PATCH 14/29] =?UTF-8?q?Fixed=20bugs=20with=20stuff=20not=20being?= =?UTF-8?q?=20displayed=F0=9F=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #92 --- src/components/scans/ScanDetail.svelte | 12 ------------ src/components/scans/ScansOverview.svelte | 7 ++++--- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/components/scans/ScanDetail.svelte b/src/components/scans/ScanDetail.svelte index 9b2de6c4..df4a0b15 100644 --- a/src/components/scans/ScanDetail.svelte +++ b/src/components/scans/ScanDetail.svelte @@ -206,18 +206,6 @@ href="../tracks" class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{editable.track.name} - | - - #{editable.station.id} - - | - - #{editable.card.id} - {/if}
diff --git a/src/components/scans/ScansOverview.svelte b/src/components/scans/ScansOverview.svelte index c8f7b334..e01c3f42 100644 --- a/src/components/scans/ScansOverview.svelte +++ b/src/components/scans/ScansOverview.svelte @@ -22,7 +22,8 @@ return id.toString() === searchvalue; } function format_laptime(laptime){ - if(laptime < 60){return laptime.toString} + if(laptime == 0 || laptime == null){return "First scan of the day."} + if(laptime < 60){return `${laptime}s`} if(laptime < 3600){return `${Math.floor(laptime / 60)}min ${laptime - (Math.floor(laptime / 60)*60)}s`} return `${Math.floor(laptime / 3600)}h ${laptime - (Math.floor(laptime / 3600)*3600)}min ${laptime - (Math.floor(laptime / 3600)*3600) - (Math.floor(laptime / 60)*60)}` } @@ -119,9 +120,9 @@
- {#if scan.laptime} + {#if scan.responseType === "TRACKSCAN"}
- {format_laptime(scan.laptime)} + {format_laptime(scan.lapTime)}
{:else}
-- 2.47.2 From a45c5da0a7b9ef8f3a60b2b50cb8d1bd68d6ede8 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 18 Mar 2021 13:50:37 +0100 Subject: [PATCH 15/29] Fixed broken change detection ref #92 --- src/components/scans/ScanDetail.svelte | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/components/scans/ScanDetail.svelte b/src/components/scans/ScanDetail.svelte index df4a0b15..e3c8631a 100644 --- a/src/components/scans/ScanDetail.svelte +++ b/src/components/scans/ScanDetail.svelte @@ -18,8 +18,8 @@ $: current_runners = []; $: is_distance_valid = editable.distance > 0; $: is_everything_set = - editable.donor != null && - ((original_data.responseType == "TRACKSCAN" && editable?.runner != null) || + editable.runner != null && + ((original_data.responseType === "TRACKSCAN" && editable.track != null) || original_data.responseType !== "TRACKSCAN"); $: changes_performed = !( JSON.stringify(original_data) === JSON.stringify(editable) @@ -199,14 +199,15 @@ {#if editable.valid}Valid{:else}Invalid{/if}

- {#if editable.responseType === "TRACKSCAN"} - + {#if editable.responseType === 'TRACKSCAN'} +
+ + {editable.track.name} + +
{/if}
- The scan's distance must be greater than 0m + {$_('the-scans-distance-must-be-greater-than-0m')} {/if}
diff --git a/src/components/scans/Scans.svelte b/src/components/scans/Scans.svelte index b817ab57..984190a2 100644 --- a/src/components/scans/Scans.svelte +++ b/src/components/scans/Scans.svelte @@ -9,7 +9,7 @@
- Scans + {$_('scans')} {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:CREATE')} {/if} diff --git a/src/components/scans/ScansEmptyState.svelte b/src/components/scans/ScansEmptyState.svelte index 7caf7d76..f1964072 100644 --- a/src/components/scans/ScansEmptyState.svelte +++ b/src/components/scans/ScansEmptyState.svelte @@ -6,7 +6,7 @@

- There are no scans yet
- Add your fist scan + {$_('there-are-no-scans-yet')}
+ {$_('add-your-fist-scan')}

diff --git a/src/components/scans/ScansOverview.svelte b/src/components/scans/ScansOverview.svelte index 7bd23189..81ccec1e 100644 --- a/src/components/scans/ScansOverview.svelte +++ b/src/components/scans/ScansOverview.svelte @@ -1,8 +1,6 @@ {#await promise} @@ -210,6 +216,10 @@ class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{editable.track.name}
+
+ +
{/if}
{#if editable.responseType === 'TRACKSCAN'}
-
-
{/if} diff --git a/src/locales/en.json b/src/locales/en.json index 7fff762d..a4a874a8 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -338,5 +338,6 @@ "scans-are-being-loaded": "Scans are being loaded", "distance-track": "Distance (+Track)", "laptime": "Laptime", - "scan-with-fixed-distance": "Scan with fixed distance" + "scan-with-fixed-distance": "Scan with fixed distance", + "track": "Track" } -- 2.47.2 From 16d0dbab5bb587cb859c30e04321fb5758455f80 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 18 Mar 2021 17:28:59 +0100 Subject: [PATCH 27/29] =?UTF-8?q?Sorted=20translations=20=F0=9F=8C=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #92 --- src/locales/en.json | 684 ++++++++++++++++++++++---------------------- 1 file changed, 342 insertions(+), 342 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index a4a874a8..f63bdc3a 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,343 +1,343 @@ { - "404message": "Sorry, the page you are looking for could not be found.", - "404title": "Error 404", - "about": "About", - "action": "Action", - "active": "Active", - "add-donation": "Add donation", - "add-donor": "add donor", - "add-user-group": "Add User Group", - "add-your-first-contact": "Add your first contact", - "add-your-first-donor": "add your first donor", - "add-your-first-group": "Add your first group", - "add-your-first-organization": "Add your first organization", - "add-your-first-runner": "Add your first runner", - "add-your-first-team": "Add your first team", - "add-your-first-track": "Add your first track.", - "add-your-first-user": "Add your first user", - "address": "Address", - "address-is-required": "Address is required", - "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!", - "amount-per-kilometer": "Amount per kilometer", - "apartment-suite-etc": "Apartment, suite, etc.", - "application_name": "Lauf fΓΌr Kaya! - Admin", - "applying-changes": "Applying Changes", - "attention": "Attention!", - "author": "Author", - "bitte-bestaetige-diese-laeufer-fuer-den-import": "Please confirm these runners for import.", - "by": "by", - "cancel": "Cancel", - "cancel-delete": "Cancel Delete", - "cancel-keep-donor": "Cancel, keep donor", - "cancel-keep-organization": "Cancel, keep organization", - "cancel-keep-team": "Cancel, keep team", - "cannot-reset-your-password-directly": "Bummer. We unfortunately cannot reset your password directly. Please send us a mail and confirm your identity", - "city": "City", - "close": "Close", - "configure-the-tracks-and-minimum-lap-times": "configure the tracks & minimum lap times", - "confirm": "Confirm", - "confirm-delete": "Confirm Delete", - "confirm-delete-donor-with-all-donations": "Confirm, delete donor with all donations", - "confirm-delete-organization-and-associated-teams-runners": "Confirm, delete organization and associated teams+runners.", - "confirm-delete-team-and-associated-runners": "Confirm, delete team and associated runners.", - "confirm-deletion": "Confirm Deletion", - "contact": "Contact", - "contact-deleted": "Contact deleted", - "contact-information": "Contact Information", - "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", - "contacts-are-being-loaded": "contacts are being loaded...", - "count_organizations": "# Organizations", - "count_teams": "# Teams", - "create": "Create", - "create-a-new": "Create a new", - "create-a-new-contact": "Create a new contact", - "create-a-new-distance-donation": "Create a new distance donation", - "create-a-new-donor": "Create a new donor", - "create-a-new-fixed-donation": "Create a new fixed donation", - "create-a-new-organization": "Create a new Organization", - "create-a-new-runner": "Create a new Runner", - "create-a-new-team": "Create a new team", - "create-a-new-track": "Create a new Track", - "create-a-new-user": "Create a new User", - "create-a-new-user-group": "Create a new user group", - "create-organization": "Create Organization", - "create-team": "Create Team", - "create-track": "Create Track", - "create-user": "Create User", - "credits": "Credits", - "csv_import__class": "Class", - "csv_import__firstname": "Firstname", - "csv_import__lastname": "Lastname", - "csv_import__middlename": "Middlename", - "csv_import__team": "Team", - "dashboard-greeting": "hello there", - "dashboard-title": "Dashboard", - "datatable": { - "search": "πŸ” Search...", - "sort_column_ascending": "Sort column ascending", - "sort_column_descending": "Sort column descending", - "previous": "Previous", - "next": "Next", - "page": "Page", - "showing": "Showing", - "records": "Records", - "of": "of", - "to": "to", - "loading": "Loading...", - "no_matching_records_found": "No matching records found", - "an_error_happened_while_fetching_the_data": "An error happened while fetching the data" - }, - "delete": "Delete", - "delete-contact": "Delete Contact", - "delete-donation": "Delete Donation", - "delete-donor": "Delete donor", - "delete-group": "Delete Group", - "delete-organization": "Delete Organization", - "delete-runner": "Delete Runner", - "delete-team": "Delete Team", - "delete-user": "Delete User", - "dependency_name": "Name", - "description": "description", - "description-optional": "Description (optional)", - "deselect-all": "deselect all", - "details": "Details", - "distance": "Distance", - "distance-donation": "distance donation", - "distance-in-km": "Distance in km", - "do-you-want-to-delete-the-organization-delete_org-name": "Do you want to delete the organization {orgname}?", - "do-you-want-to-delete-the-team-delete_team-name": "Do you want to delete the team {teamname}?", - "do-you-want-to-delete-this-donor-with-all-related-donations": "Do you want to delete this donor with all related donations", - "donation-amount": "Donation amount", - "donation-amount-must-be-greater-that-0-00eur": "Donation amount must be greater that 0.00€", - "donations": "Donations", - "donor": "Donor", - "donor-added": "Donor added", - "donor-deleted": "donor deleted", - "donor-has-no-associated-donations": "Donor has no associated donations.", - "donor-is-being-added": "Donor is being added...", - "donor-is-being-updated": "Donor is being updated", - "donors": "Donors", - "donors-are-being-loaded": "donors are being loaded", - "dont-have-your-email-connected": "Don't have your email connected?", - "dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌", - "e-mail-adress": "E-Mail Adress", - "edit": "Edit", - "edit-permissions": "edit permissions", - "email_address_or_username": "Email / username", - "english": "English", - "error_on_login": "Error on login", - "erteilte": "Directly granted", - "everything-is-more-fun-together": "everything is more fun together πŸƒβ€β™‚οΈπŸƒβ€β™€οΈπŸƒβ€β™‚οΈ", - "faq": "FAQ", - "filter-by-organization-team": "Filter by Organization/ Team", - "first-name": "First name", - "first-name-is-required": "First Name is required", - "fixed-donation": "fixed donation", - "forgot_password": "Forgot your password?", - "geerbte": "inherited", - "general-stats": "General Stats", - "general_promise_error": "😒 Error", - "generate-sponsoring-contract": "generate sponsoring contract", - "generate-sponsoring-contracts": "generate sponsoring contracts", - "generating-pdf": "generating PDF...", - "generating-pdfs": "generating PDFs...", - "generic-ui-logic-error": "Something went wrong in the UI logic", - "german": "German", - "go-to-login": "Go To Login", - "goback": "Go Home", - "granted": "granted", - "group": "Group", - "group-added": "Group added", - "group-is-being-added": "Group is being added...", - "group-name-is-required": "Group name is required", - "group-updated": "group updated", - "groups": "Groups", - "home": "Home", - "icon-image-credits": "We also want to thank these projects for illustrations and icons:", - "import-finished": "Import finished", - "import-runners": "Import runners", - "import__target-organization": "Target Organization", - "imprint": "Imprint", - "imprint-loading": "Imprint loading...", - "inactive": "Inactive", - "installed-version": "Installed version", - "internal-error": "Internal Error", - "invalid-mail-reset": "the provided email is invalid", - "laeufer-hinzufuegen": "Add runner", - "laeufer-importieren": "LΓ€ufer importieren", - "last-name": "Last name", - "last-name-is-required": "Last Name is required", - "lfk-is-os": "The \"Lauf fΓΌr Kaya!\" Frontend is (like all other projects for the \"LfK!\" Also) an open source project.", - "license": "License", - "licenses-are-being-loaded": "Licenses are being loaded...", - "loading-contact-details": "Loading contact details...", - "loading-donation-details": "Loading donation details", - "loading-donor-details": "Loading donor details", - "loading-runners": "loading runners...", - "log_in": "Log in", - "log_in_to_your_account": "Log in to your account", - "login_is_checked": "Login is being checked...", - "logout": "Logout", - "mail-validation-in-progress": "mail validation in progress...", - "manage-admin-users": "manage admin users", - "middle-name": "Middle name", - "minimum-lap-time-in-s": "minimum lap time in s", - "minimum-lap-time-must-be-a-positive-number-or-0": "minimum lap time must be a positive number or 0", - "name": "Name", - "name-is-required": "Name is required", - "new-password": "New password", - "no-contact-found": "No contacts found", - "no-contact-selected": "No contact selected", - "no-contact-specified": "no contact specified", - "no-donors-found": "No donors found", - "no-license-text-could-be-found": "No license text could be found 😒", - "no-organization-or-team-found": "No organization or team found", - "no-organization-specified": "no organization specified", - "no-organizations-found": "No organizations found", - "no-runners-found": "No runners found", - "no-tracks-added-yet": "there are no tracks added yet.", - "organization": "Organization", - "organization-added": "Organization added", - "organization-deleted": "Organization deleted", - "organization-detail-is-being-loaded": "organization detail is being loaded...", - "organization-is-being-added": "Organization is being added...", - "organization-name-is-required": "Organization name is required", - "organizations": "Organizations", - "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!", - "password": "Password", - "password-is-required": "Password is required", - "password-reset-failed": "Password reset failed!", - "password-reset-in-progress": "Password Reset in Progress...", - "password-reset-mail-sent": "Password reset mail was sent to \"{usersEmail}\".", - "password-reset-successful": "Password Reset successful!", - "pdf-generation-failed": "PDF generation failed!", - "pdf-successfully-generated": "PDF successfully generated!", - "pdfs-successfully-generated": "PDFs successfully generated!", - "per-kilometer": "per Kilometer", - "permissions": "Permissions", - "permissions-updated": "Permissions updated!", - "phone": "Phone", - "please-provide-a-password": "Please provide a password...", - "please-provide-the-nessecary-information-to-add-a-new-donor": "Please provide the nessecary information to add a new donor", - "please-provide-the-nessecary-information-to-create-a-new-donation": "Please provide the nessecary information to create a new donation", - "please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file", - "please-provide-the-required-information-for-creating-a-new-user-group": "Please provide the required information for creating a new user group.", - "please-provide-the-required-information-to-add-a-new-contact": "Please provide the required information to add a new contact.", - "please-provide-the-required-information-to-add-a-new-organization": "Please provide the required information to add a new organization.", - "please-provide-the-required-information-to-add-a-new-runner": "Please provide the required information to add a new runner.", - "please-provide-the-required-information-to-add-a-new-team": "Please provide the required information to add a new team.", - "please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.", - "please-provide-the-required-information-to-add-a-new-user": "Please provide the required information to add a new user.", - "please-request-a-new-reset-mail": "Please request a new reset mail...", - "privacy": "Privacy", - "privacy-loading": "Privacy loading...", - "profile-picture": "Profile Picture", - "read-license": "Read License", - "receipt-needed": "Receipt needed", - "repo_link": "Link", - "request-a-new-reset-mail": "Request a new reset mail", - "reset-my-password": "Reset my password", - "reset-password": "Reset your password", - "runner": "Runner", - "runner-added": "Runner added", - "runner-import": "Runner Import", - "runner-is-being-added": "Runner is being added...", - "runner-updated": "Runner updated!", - "runnerimport_verify_runners_org": "Please confirm these runners for import into the organization \"{org_name}\"", - "runners": "Runners", - "runners-are-being-imported": "Runners are being imported...", - "runners-are-being-loaded": "runners are being loaded...", - "save": "Save", - "save-changes": "Save Changes", - "search-for-an-organization-by-name-or-id": "Search for an organization (by name or id)", - "search-for-an-organization-or-team-by-name-or-id": "Search for an organization or team (by name or id)", - "search-for-donor-name-or-id": "Search for donor (by name or id)", - "search-for-permission": "Search for permission", - "search-for-runner-by-name-or-id": "Search for runner (by name or id)", - "select-all": "select all", - "select-language": "Select language", - "send-a-mail-to-lfk-odit-services": "send a mail to lfk@odit.services", - "set-the-user-active-inactive": "set the user active/ inactive", - "settings": "Settings", - "something-about-the-group": "Something about the group...", - "stats-are-being-loaded": "stats are being loaded...", - "status": "Status", - "successful-password-reset": "Successful password reset!", - "team": "Team", - "team-detail-is-being-loaded": "team detail is being loaded...", - "team-name": "Team name", - "team-name-is-required": "team name is required", - "teams": "Teams", - "teams-are-being-loaded": "teams are being loaded...", - "the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "the provided phone number is invalid.
please enter a valid international number...", - "there-are-no-contacts-added-yet": "There are no contacts added yet.", - "there-are-no-donors-yet": "There are no donors yet", - "there-are-no-groups-yet": "There are no groups yet", - "there-are-no-organizations-added-yet": "There are no organizations added yet.", - "there-are-no-runners-added-yet": "There are no runners added yet.", - "there-are-no-teams-added-yet": "There are no teams added yet.", - "there-are-no-users-added-yet": "There are no users added yet.", - "this-might-take-a-moment": "This might take a moment πŸ‘€", - "total-distance": "total distance", - "total-donation-amount": "total donation amount", - "total-donations": "total donations", - "total-scans": "total scans", - "track-added": "Track added", - "track-data-is-being-loaded": "Track data is being loaded", - "track-is-being-added": "Track is being added...", - "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", - "tracks": "Tracks", - "updated-contact": "Updated contact!", - "updated-donor": "updated donor", - "updated-organization": "updated organization", - "updateing-group": "updateing group...", - "updating-organization": "updating organization", - "updating-permissions": "updating permissions...", - "updating-runner": "Updating runner...", - "updating-user": "updating user...", - "user-added": "User added", - "user-groups": "User Groups", - "user-is-being-added": "User is being added...", - "user-updated": "User updated", - "username": "Username", - "users": "Users", - "valid-city-is-required": "Valid city is required", - "valid-email-is-required": "valid email is required", - "valid-international-phone-number-is-required": "valid international phone number is required...", - "valid-zipcode-postal-code-is-required": "Valid zipcode/ postal code is required", - "verfuegbare": "availdable", - "welcome_wavinghand": "Welcome πŸ‘‹", - "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-have-to-provide-an-organization": "You have to provide an organization", - "zip-postal-code": "ZIP/ postal code", - "adding-scan": "Adding Scan", - "scan-added": "Scan added", - "create-a-new-scan-fixed-only": "Create a new scan (fixed only)", - "please-provide-the-nessecary-information-to-create-a-new-scan": "Please provide the nessecary information to create a new scan.", - "the-scans-distance-must-be-greater-than-0m": "The scan's distance must be greater than 0m", - "scan-is-being-updated": "Scan is being updated", - "updated-scan": "updated scan", - "deleted-scan": "Deleted scan", - "delete-scan": "Delete scan", - "valid": "Valid", - "invalid": "Invalid", - "add-scan": "Add scan", - "scans": "Scans", - "there-are-no-scans-yet": "There are no scans yet", - "add-your-fist-scan": "Add your fist scan", - "first-scan-of-the-day": "First scan of the day.", - "scans-are-being-loaded": "Scans are being loaded", - "distance-track": "Distance (+Track)", - "laptime": "Laptime", - "scan-with-fixed-distance": "Scan with fixed distance", - "track": "Track" -} + "404message": "Sorry, the page you are looking for could not be found.", + "404title": "Error 404", + "about": "About", + "action": "Action", + "active": "Active", + "add-donation": "Add donation", + "add-donor": "add donor", + "add-scan": "Add scan", + "add-user-group": "Add User Group", + "add-your-first-contact": "Add your first contact", + "add-your-first-donor": "add your first donor", + "add-your-first-group": "Add your first group", + "add-your-first-organization": "Add your first organization", + "add-your-first-runner": "Add your first runner", + "add-your-first-team": "Add your first team", + "add-your-first-track": "Add your first track.", + "add-your-first-user": "Add your first user", + "add-your-fist-scan": "Add your fist scan", + "adding-scan": "Adding Scan", + "address": "Address", + "address-is-required": "Address is required", + "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!", + "amount-per-kilometer": "Amount per kilometer", + "apartment-suite-etc": "Apartment, suite, etc.", + "application_name": "Lauf fΓΌr Kaya! - Admin", + "applying-changes": "Applying Changes", + "attention": "Attention!", + "author": "Author", + "bitte-bestaetige-diese-laeufer-fuer-den-import": "Please confirm these runners for import.", + "by": "by", + "cancel": "Cancel", + "cancel-delete": "Cancel Delete", + "cancel-keep-donor": "Cancel, keep donor", + "cancel-keep-organization": "Cancel, keep organization", + "cancel-keep-team": "Cancel, keep team", + "cannot-reset-your-password-directly": "Bummer. We unfortunately cannot reset your password directly. Please send us a mail and confirm your identity", + "city": "City", + "close": "Close", + "configure-the-tracks-and-minimum-lap-times": "configure the tracks & minimum lap times", + "confirm": "Confirm", + "confirm-delete": "Confirm Delete", + "confirm-delete-donor-with-all-donations": "Confirm, delete donor with all donations", + "confirm-delete-organization-and-associated-teams-runners": "Confirm, delete organization and associated teams+runners.", + "confirm-delete-team-and-associated-runners": "Confirm, delete team and associated runners.", + "confirm-deletion": "Confirm Deletion", + "contact": "Contact", + "contact-deleted": "Contact deleted", + "contact-information": "Contact Information", + "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", + "contacts-are-being-loaded": "contacts are being loaded...", + "count_organizations": "# Organizations", + "count_teams": "# Teams", + "create": "Create", + "create-a-new": "Create a new", + "create-a-new-contact": "Create a new contact", + "create-a-new-distance-donation": "Create a new distance donation", + "create-a-new-donor": "Create a new donor", + "create-a-new-fixed-donation": "Create a new fixed donation", + "create-a-new-organization": "Create a new Organization", + "create-a-new-runner": "Create a new Runner", + "create-a-new-scan-fixed-only": "Create a new scan (fixed only)", + "create-a-new-team": "Create a new team", + "create-a-new-track": "Create a new Track", + "create-a-new-user": "Create a new User", + "create-a-new-user-group": "Create a new user group", + "create-organization": "Create Organization", + "create-team": "Create Team", + "create-track": "Create Track", + "create-user": "Create User", + "credits": "Credits", + "csv_import__class": "Class", + "csv_import__firstname": "Firstname", + "csv_import__lastname": "Lastname", + "csv_import__middlename": "Middlename", + "csv_import__team": "Team", + "dashboard-greeting": "hello there", + "dashboard-title": "Dashboard", + "datatable": { + "search": "πŸ” Search...", + "sort_column_ascending": "Sort column ascending", + "sort_column_descending": "Sort column descending", + "previous": "Previous", + "next": "Next", + "page": "Page", + "showing": "Showing", + "records": "Records", + "of": "of", + "to": "to", + "loading": "Loading...", + "no_matching_records_found": "No matching records found", + "an_error_happened_while_fetching_the_data": "An error happened while fetching the data" + }, + "delete": "Delete", + "delete-contact": "Delete Contact", + "delete-donation": "Delete Donation", + "delete-donor": "Delete donor", + "delete-group": "Delete Group", + "delete-organization": "Delete Organization", + "delete-runner": "Delete Runner", + "delete-scan": "Delete scan", + "delete-team": "Delete Team", + "delete-user": "Delete User", + "deleted-scan": "Deleted scan", + "dependency_name": "Name", + "description": "description", + "description-optional": "Description (optional)", + "deselect-all": "deselect all", + "details": "Details", + "distance": "Distance", + "distance-donation": "distance donation", + "distance-in-km": "Distance in km", + "distance-track": "Distance (+Track)", + "do-you-want-to-delete-the-organization-delete_org-name": "Do you want to delete the organization {orgname}?", + "do-you-want-to-delete-the-team-delete_team-name": "Do you want to delete the team {teamname}?", + "do-you-want-to-delete-this-donor-with-all-related-donations": "Do you want to delete this donor with all related donations", + "donation-amount": "Donation amount", + "donation-amount-must-be-greater-that-0-00eur": "Donation amount must be greater that 0.00€", + "donations": "Donations", + "donor": "Donor", + "donor-added": "Donor added", + "donor-deleted": "donor deleted", + "donor-has-no-associated-donations": "Donor has no associated donations.", + "donor-is-being-added": "Donor is being added...", + "donor-is-being-updated": "Donor is being updated", + "donors": "Donors", + "donors-are-being-loaded": "donors are being loaded", + "dont-have-your-email-connected": "Don't have your email connected?", + "dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌", + "e-mail-adress": "E-Mail Adress", + "edit": "Edit", + "edit-permissions": "edit permissions", + "email_address_or_username": "Email / username", + "english": "English", + "error_on_login": "Error on login", + "erteilte": "Directly granted", + "everything-is-more-fun-together": "everything is more fun together πŸƒβ€β™‚οΈπŸƒβ€β™€οΈπŸƒβ€β™‚οΈ", + "faq": "FAQ", + "filter-by-organization-team": "Filter by Organization/ Team", + "first-name": "First name", + "first-name-is-required": "First Name is required", + "first-scan-of-the-day": "First scan of the day.", + "fixed-donation": "fixed donation", + "forgot_password": "Forgot your password?", + "geerbte": "inherited", + "general-stats": "General Stats", + "general_promise_error": "😒 Error", + "generate-sponsoring-contract": "generate sponsoring contract", + "generate-sponsoring-contracts": "generate sponsoring contracts", + "generating-pdf": "generating PDF...", + "generating-pdfs": "generating PDFs...", + "generic-ui-logic-error": "Something went wrong in the UI logic", + "german": "German", + "go-to-login": "Go To Login", + "goback": "Go Home", + "granted": "granted", + "group": "Group", + "group-added": "Group added", + "group-is-being-added": "Group is being added...", + "group-name-is-required": "Group name is required", + "group-updated": "group updated", + "groups": "Groups", + "home": "Home", + "icon-image-credits": "We also want to thank these projects for illustrations and icons:", + "import-finished": "Import finished", + "import-runners": "Import runners", + "import__target-organization": "Target Organization", + "imprint": "Imprint", + "imprint-loading": "Imprint loading...", + "inactive": "Inactive", + "installed-version": "Installed version", + "internal-error": "Internal Error", + "invalid": "Invalid", + "invalid-mail-reset": "the provided email is invalid", + "laeufer-hinzufuegen": "Add runner", + "laeufer-importieren": "LΓ€ufer importieren", + "laptime": "Laptime", + "last-name": "Last name", + "last-name-is-required": "Last Name is required", + "lfk-is-os": "The \"Lauf fΓΌr Kaya!\" Frontend is (like all other projects for the \"LfK!\" Also) an open source project.", + "license": "License", + "licenses-are-being-loaded": "Licenses are being loaded...", + "loading-contact-details": "Loading contact details...", + "loading-donation-details": "Loading donation details", + "loading-donor-details": "Loading donor details", + "loading-runners": "loading runners...", + "log_in": "Log in", + "log_in_to_your_account": "Log in to your account", + "login_is_checked": "Login is being checked...", + "logout": "Logout", + "mail-validation-in-progress": "mail validation in progress...", + "manage-admin-users": "manage admin users", + "middle-name": "Middle name", + "minimum-lap-time-in-s": "minimum lap time in s", + "minimum-lap-time-must-be-a-positive-number-or-0": "minimum lap time must be a positive number or 0", + "name": "Name", + "name-is-required": "Name is required", + "new-password": "New password", + "no-contact-found": "No contacts found", + "no-contact-selected": "No contact selected", + "no-contact-specified": "no contact specified", + "no-donors-found": "No donors found", + "no-license-text-could-be-found": "No license text could be found 😒", + "no-organization-or-team-found": "No organization or team found", + "no-organization-specified": "no organization specified", + "no-organizations-found": "No organizations found", + "no-runners-found": "No runners found", + "no-tracks-added-yet": "there are no tracks added yet.", + "organization": "Organization", + "organization-added": "Organization added", + "organization-deleted": "Organization deleted", + "organization-detail-is-being-loaded": "organization detail is being loaded...", + "organization-is-being-added": "Organization is being added...", + "organization-name-is-required": "Organization name is required", + "organizations": "Organizations", + "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!", + "password": "Password", + "password-is-required": "Password is required", + "password-reset-failed": "Password reset failed!", + "password-reset-in-progress": "Password Reset in Progress...", + "password-reset-mail-sent": "Password reset mail was sent to \"{usersEmail}\".", + "password-reset-successful": "Password Reset successful!", + "pdf-generation-failed": "PDF generation failed!", + "pdf-successfully-generated": "PDF successfully generated!", + "pdfs-successfully-generated": "PDFs successfully generated!", + "per-kilometer": "per Kilometer", + "permissions": "Permissions", + "permissions-updated": "Permissions updated!", + "phone": "Phone", + "please-provide-a-password": "Please provide a password...", + "please-provide-the-nessecary-information-to-add-a-new-donor": "Please provide the nessecary information to add a new donor", + "please-provide-the-nessecary-information-to-create-a-new-donation": "Please provide the nessecary information to create a new donation", + "please-provide-the-nessecary-information-to-create-a-new-scan": "Please provide the nessecary information to create a new scan.", + "please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file", + "please-provide-the-required-information-for-creating-a-new-user-group": "Please provide the required information for creating a new user group.", + "please-provide-the-required-information-to-add-a-new-contact": "Please provide the required information to add a new contact.", + "please-provide-the-required-information-to-add-a-new-organization": "Please provide the required information to add a new organization.", + "please-provide-the-required-information-to-add-a-new-runner": "Please provide the required information to add a new runner.", + "please-provide-the-required-information-to-add-a-new-team": "Please provide the required information to add a new team.", + "please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.", + "please-provide-the-required-information-to-add-a-new-user": "Please provide the required information to add a new user.", + "please-request-a-new-reset-mail": "Please request a new reset mail...", + "privacy": "Privacy", + "privacy-loading": "Privacy loading...", + "profile-picture": "Profile Picture", + "read-license": "Read License", + "receipt-needed": "Receipt needed", + "repo_link": "Link", + "request-a-new-reset-mail": "Request a new reset mail", + "reset-my-password": "Reset my password", + "reset-password": "Reset your password", + "runner": "Runner", + "runner-added": "Runner added", + "runner-import": "Runner Import", + "runner-is-being-added": "Runner is being added...", + "runner-updated": "Runner updated!", + "runnerimport_verify_runners_org": "Please confirm these runners for import into the organization \"{org_name}\"", + "runners": "Runners", + "runners-are-being-imported": "Runners are being imported...", + "runners-are-being-loaded": "runners are being loaded...", + "save": "Save", + "save-changes": "Save Changes", + "scan-added": "Scan added", + "scan-is-being-updated": "Scan is being updated", + "scan-with-fixed-distance": "Scan with fixed distance", + "scans": "Scans", + "scans-are-being-loaded": "Scans are being loaded", + "search-for-an-organization-by-name-or-id": "Search for an organization (by name or id)", + "search-for-an-organization-or-team-by-name-or-id": "Search for an organization or team (by name or id)", + "search-for-donor-name-or-id": "Search for donor (by name or id)", + "search-for-permission": "Search for permission", + "search-for-runner-by-name-or-id": "Search for runner (by name or id)", + "select-all": "select all", + "select-language": "Select language", + "send-a-mail-to-lfk-odit-services": "send a mail to lfk@odit.services", + "set-the-user-active-inactive": "set the user active/ inactive", + "settings": "Settings", + "something-about-the-group": "Something about the group...", + "stats-are-being-loaded": "stats are being loaded...", + "status": "Status", + "successful-password-reset": "Successful password reset!", + "team": "Team", + "team-detail-is-being-loaded": "team detail is being loaded...", + "team-name": "Team name", + "team-name-is-required": "team name is required", + "teams": "Teams", + "teams-are-being-loaded": "teams are being loaded...", + "the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "the provided phone number is invalid.
please enter a valid international number...", + "the-scans-distance-must-be-greater-than-0m": "The scan's distance must be greater than 0m", + "there-are-no-contacts-added-yet": "There are no contacts added yet.", + "there-are-no-donors-yet": "There are no donors yet", + "there-are-no-groups-yet": "There are no groups yet", + "there-are-no-organizations-added-yet": "There are no organizations added yet.", + "there-are-no-runners-added-yet": "There are no runners added yet.", + "there-are-no-scans-yet": "There are no scans yet", + "there-are-no-teams-added-yet": "There are no teams added yet.", + "there-are-no-users-added-yet": "There are no users added yet.", + "this-might-take-a-moment": "This might take a moment πŸ‘€", + "total-distance": "total distance", + "total-donation-amount": "total donation amount", + "total-donations": "total donations", + "total-scans": "total scans", + "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-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", + "tracks": "Tracks", + "updated-contact": "Updated contact!", + "updated-donor": "updated donor", + "updated-organization": "updated organization", + "updated-scan": "updated scan", + "updateing-group": "updateing group...", + "updating-organization": "updating organization", + "updating-permissions": "updating permissions...", + "updating-runner": "Updating runner...", + "updating-user": "updating user...", + "user-added": "User added", + "user-groups": "User Groups", + "user-is-being-added": "User is being added...", + "user-updated": "User updated", + "username": "Username", + "users": "Users", + "valid": "Valid", + "valid-city-is-required": "Valid city is required", + "valid-email-is-required": "valid email is required", + "valid-international-phone-number-is-required": "valid international phone number is required...", + "valid-zipcode-postal-code-is-required": "Valid zipcode/ postal code is required", + "verfuegbare": "availdable", + "welcome_wavinghand": "Welcome πŸ‘‹", + "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-have-to-provide-an-organization": "You have to provide an organization", + "zip-postal-code": "ZIP/ postal code" +} \ No newline at end of file -- 2.47.2 From 94d52df322fca1790776300b2d4be6a3996cd57f Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 18 Mar 2021 18:32:08 +0100 Subject: [PATCH 28/29] Fix for bug discovered by @philipp ref #92 --- src/components/scans/ScanDetail.svelte | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/scans/ScanDetail.svelte b/src/components/scans/ScanDetail.svelte index d6553d58..33e7a759 100644 --- a/src/components/scans/ScanDetail.svelte +++ b/src/components/scans/ScanDetail.svelte @@ -29,13 +29,14 @@ (data) => { data_loaded = true; original_data = Object.assign(original_data, data); + original_data.runner = original_data.runner.id; editable = Object.assign(editable, original_data); RunnerService.runnerControllerGetAll().then( (val) => { current_runners = val.map((r) => { return { label: getRunnerLabel(r), value: r }; }); - runner = current_runners.find(r => r.value.id == editable.runner.id); + runner = current_runners.find(r => r.value.id == editable.runner); } ); } @@ -55,7 +56,6 @@ let postdata = {}; if (original_data.responseType === "TRACKSCAN") { postdata = Object.assign(postdata, editable); - postdata.runner = postdata.runner.id; postdata.track = postdata.track.id; ScanService.scanControllerPutTrackScan(original_data.id, postdata) .then((resp) => { @@ -153,9 +153,9 @@
- {original_data.runner.firstname} - {original_data.runner.middlename || ''} - {original_data.runner.lastname} + {runner.value?.firstname} + {runner.value?.middlename || ''} + {runner.value?.lastname} #{original_data.id} {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:DELETE')} @@ -235,7 +235,7 @@ noOptionsMessage={$_('no-runners-found')} bind:selectedValue={runner} on:select={(selectedValue) => { - editable.runner = selectedValue.detail.value; + editable.runner = selectedValue.detail.value.id; }} on:clear={() => (editable.runner = null)} />
-- 2.47.2 From d28a0e1dbb877b3e369b106a103a3bfc52dd1e6a Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Thu, 18 Mar 2021 18:32:08 +0100 Subject: [PATCH 29/29] Fix for bug discovered by @philipp ref #92 --- src/components/scans/ScanDetail.svelte | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/components/scans/ScanDetail.svelte b/src/components/scans/ScanDetail.svelte index d6553d58..f054dad5 100644 --- a/src/components/scans/ScanDetail.svelte +++ b/src/components/scans/ScanDetail.svelte @@ -29,13 +29,14 @@ (data) => { data_loaded = true; original_data = Object.assign(original_data, data); + original_data.runner = original_data.runner.id; editable = Object.assign(editable, original_data); RunnerService.runnerControllerGetAll().then( (val) => { current_runners = val.map((r) => { return { label: getRunnerLabel(r), value: r }; }); - runner = current_runners.find(r => r.value.id == editable.runner.id); + runner = current_runners.find(r => r.value.id == editable.runner); } ); } @@ -55,7 +56,6 @@ let postdata = {}; if (original_data.responseType === "TRACKSCAN") { postdata = Object.assign(postdata, editable); - postdata.runner = postdata.runner.id; postdata.track = postdata.track.id; ScanService.scanControllerPutTrackScan(original_data.id, postdata) .then((resp) => { @@ -70,7 +70,6 @@ .catch((err) => {}); } else { postdata = Object.assign(postdata, editable); - postdata.runner = postdata.runner.id; ScanService.scanControllerPut(original_data.id, postdata) .then((resp) => { Object.assign(original_data, editable); @@ -153,9 +152,9 @@
- {original_data.runner.firstname} - {original_data.runner.middlename || ''} - {original_data.runner.lastname} + {runner.value?.firstname} + {runner.value?.middlename || ''} + {runner.value?.lastname} #{original_data.id} {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:DELETE')} @@ -235,7 +234,7 @@ noOptionsMessage={$_('no-runners-found')} bind:selectedValue={runner} on:select={(selectedValue) => { - editable.runner = selectedValue.detail.value; + editable.runner = selectedValue.detail.value.id; }} on:clear={() => (editable.runner = null)} />
-- 2.47.2