From e0356fa360b74f91b38dc09351930c8c0778f845 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Tue, 19 Jan 2021 18:18:51 +0100 Subject: [PATCH 01/31] fixed runner permissions ref #13 --- src/components/Runners.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Runners.svelte b/src/components/Runners.svelte index 35910eed..151d194b 100644 --- a/src/components/Runners.svelte +++ b/src/components/Runners.svelte @@ -10,7 +10,7 @@
{$_('runners')} - {#if store.state.jwtinfo.userdetails.permissions.includes('USER:CREATE')} + {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:CREATE')}
-{#if store.state.jwtinfo.userdetails.permissions.includes('USER:CREATE')} +{#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:CREATE')} {/if} From b1e9f955b054cd17cb83f8364b6bc2b22159142f Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Tue, 19 Jan 2021 18:19:21 +0100 Subject: [PATCH 02/31] =?UTF-8?q?=E2=9C=A8=20basic=20ImportRunnerModal=20w?= =?UTF-8?q?ith=20CSV=20input?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 119 ++++++++++++++++++++++++ src/components/RunnerFileUpload.svelte | 75 +++++++++++++++ src/components/Runners.svelte | 11 +++ 3 files changed, 205 insertions(+) create mode 100644 src/components/ImportRunnerModal.svelte create mode 100644 src/components/RunnerFileUpload.svelte diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte new file mode 100644 index 00000000..a905dcbb --- /dev/null +++ b/src/components/ImportRunnerModal.svelte @@ -0,0 +1,119 @@ + + +{#if import_modal_open} +
{ + import_modal_open = false; + }}> +
+ +
+{/if} diff --git a/src/components/RunnerFileUpload.svelte b/src/components/RunnerFileUpload.svelte new file mode 100644 index 00000000..5dfc723d --- /dev/null +++ b/src/components/RunnerFileUpload.svelte @@ -0,0 +1,75 @@ + + +
+ +
diff --git a/src/components/Runners.svelte b/src/components/Runners.svelte index 151d194b..5fd33eac 100644 --- a/src/components/Runners.svelte +++ b/src/components/Runners.svelte @@ -2,8 +2,10 @@ import { _ } from "svelte-i18n"; import store from "../store"; import AddRunnerModal from "./AddRunnerModal.svelte"; + import ImportRunnerModal from "./ImportRunnerModal.svelte"; import RunnersOverview from "./RunnersOverview.svelte"; export let modal_open = false; + export let import_modal_open = false; let current_runners = []; @@ -19,6 +21,14 @@ 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"> Läufer hinzufügen + {/if}

läuft bei ihnen

@@ -27,4 +37,5 @@ {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:CREATE')} + {/if} From 74d9b94119b49a77ff3e787a84f76c1e2e13d9e4 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Tue, 19 Jan 2021 21:44:13 +0100 Subject: [PATCH 03/31] =?UTF-8?q?=E2=9C=A8=20basic=20xlsx=20+=20csv=20pars?= =?UTF-8?q?ing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 161 +++++++++++++++++------- src/components/Orgs.svelte | 14 ++- src/components/Runners.svelte | 10 +- 3 files changed, 133 insertions(+), 52 deletions(-) diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index a905dcbb..579e42c4 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -1,32 +1,13 @@ {#if import_modal_open} @@ -96,20 +97,88 @@

Runner Import

-
-

- Please provide the required csv/ xlsx file -

-
-
-

{parsedtext}

-
- -
- - - -
+ {#if json_output.length === 0} +
+

+ Please provide the required csv/ xlsx file +

+
+
+ +
+ {/if} + {#if json_output.length > 0} +

Bitte bestätige diese Läufer für den Import

+ +
+ + + + + + + + + + + {#each json_output as runner} + {#if Object.values(runner) + .toString() + .toLowerCase() + .includes(searchvalue)} + + + + + + + {/if} + {/each} + +
+ Vorname + + Middlename + + Lastname + + Team +
+ {runner['Vorname']} + + {runner['Zweitname'] || ''} + + {runner['Nachname']} + + {runner['Team'] || '---'} +
+ +
+ {/if}
diff --git a/src/components/Orgs.svelte b/src/components/Orgs.svelte index 4571e8f4..c08f1466 100644 --- a/src/components/Orgs.svelte +++ b/src/components/Orgs.svelte @@ -4,8 +4,9 @@ import AddOrgModal from "./AddOrgModal.svelte"; export let modal_open = false; import OrgOverview from "./OrgOverview.svelte"; - console.log(store.state.jwtinfo.userdetails.permissions); + import ImportRunnerModal from "./ImportRunnerModal.svelte"; let current_organizations = []; + export let import_modal_open = false;
@@ -21,6 +22,16 @@ {$_('create-organization')} {/if} + {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')} + + {/if}

manage runner organizations

@@ -28,4 +39,5 @@ {#if store.state.jwtinfo.userdetails.permissions.includes('ORGANISATION:CREATE')} + {/if} diff --git a/src/components/Runners.svelte b/src/components/Runners.svelte index 5fd33eac..e3297f97 100644 --- a/src/components/Runners.svelte +++ b/src/components/Runners.svelte @@ -2,10 +2,10 @@ import { _ } from "svelte-i18n"; import store from "../store"; import AddRunnerModal from "./AddRunnerModal.svelte"; - import ImportRunnerModal from "./ImportRunnerModal.svelte"; + // import ImportRunnerModal from "./ImportRunnerModal.svelte"; import RunnersOverview from "./RunnersOverview.svelte"; export let modal_open = false; - export let import_modal_open = false; + // export let import_modal_open = false; let current_runners = []; @@ -21,14 +21,14 @@ 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"> Läufer hinzufügen - + --> {/if}

läuft bei ihnen

@@ -37,5 +37,5 @@ {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:CREATE')} - + {/if} From b606037890856c1115315bb61d8469ff66dc4289 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Tue, 19 Jan 2021 21:44:41 +0100 Subject: [PATCH 04/31] =?UTF-8?q?=F0=9F=8C=8E=20added=20locale=20based=20c?= =?UTF-8?q?sv/xlsx=20header=20parsing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 27 ++++++++++++++++++++++++- src/locales/de.json | 2 ++ src/locales/en.json | 4 ++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index 579e42c4..f8af53e3 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -50,8 +50,27 @@ } } } + function importAction() { + if (recent_processed === true) { + const toast = Toastify({ + text: "Runners are being imported...", + duration: -1, + }).showToast(); + recent_processed = false; + const mapped = json_output.map(function (runner) { + return { + firstname: runner[`${$_("csv_import__firstname")}`], + middlename: runner[`${$_("csv_import__middlename")}`], + lastname: runner[`${$_("csv_import__lastname")}`], + team: runner[`${$_("csv_import__team")}`], + }; }); - reader.readAsText(files[0]); + console.log(mapped); + // ImportService.importControllerPostOrgsJson(1, mapped); + setTimeout(() => { + toast.hideToast(); + recent_processed = true; + }, 500); } } @@ -169,6 +188,12 @@ {/each} + {/if} diff --git a/src/locales/de.json b/src/locales/de.json index ca85ee25..25aaf5f6 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -4,6 +4,7 @@ "about": "Über", "application_name": "Lauf für Kaya! \n- Admin", "by": "von", + "cancel": "Abbrechen", "cannot-reset-your-password-directly": "Schade. \nWir können das Passwort leider nicht direkt zurücksetzen.\nBitte sende uns eine Mail in der du deine Identität bestätigst.", "credits": "", "csv_import__firstname": "Vorname", @@ -29,6 +30,7 @@ "goback": "Zur Startseite", "hallo": "hallo", "icon-image-credits": "Wir möchten uns außerdem für die verwendeten Icons und Bilder bedanken bei:", + "import-runners": "Läufer importieren", "invalid-mail-reset": "Das ist keine gültige E-Mail", "lfk-is-os": "Das \"Lauf für Kaya!\" Frontend ist (wie alle anderen Projekte für den \"LfK!\" auch) ein OpenSource Projekt.", "log_in": "Anmelden", diff --git a/src/locales/en.json b/src/locales/en.json index 0db6d269..f19eb613 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -22,6 +22,7 @@ "create-organization": "Create Organization", "create-user": "Create User", "credits": "Credits", + "csv_import__class": "Klasse", "csv_import__firstname": "First Name", "csv_import__lastname": "Nachname", "csv_import__middlename": "Middlename", @@ -83,6 +84,7 @@ "groups": "Groups", "hallo": "hello", "icon-image-credits": "We also want to thank these projects for illustrations and icons:", + "import-runners": "Import runners", "installed-version": "Installed version", "invalid-mail-reset": "the provided email is invalid", "last-name": "Last name", From cde4ec13efef8423464ebe90a4f0212a3be6cf77 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 20 Jan 2021 18:15:47 +0100 Subject: [PATCH 09/31] =?UTF-8?q?=E2=9C=A8=20basic=20cancel=20event=20disp?= =?UTF-8?q?atch=20from=20ImportRunnerModal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 7 +++++++ src/components/Orgs.svelte | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index f77a1a83..d2675139 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -6,8 +6,14 @@ import { focusTrap } from "svelte-focus-trap"; import Toastify from "toastify-js"; import { ImportService } from "@odit/lfk-client-js"; + import { createEventDispatcher } from "svelte"; export let import_modal_open; $: searchvalue = ""; + const dispatch = createEventDispatcher(); + function cancelModal() { + import_modal_open = false; + dispatch("cancel"); + } (() => { document.onkeydown = (e) => { e = e || window.event; @@ -206,6 +212,7 @@ {/if} @@ -43,5 +43,7 @@ on:cancelDelete={(event) => { import_modal_open = false; }} + passed_orgs={current_organizations} + opened_from="OrgOverview" bind:import_modal_open /> {/if} diff --git a/src/locales/en.json b/src/locales/en.json index f19eb613..7898db96 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -85,6 +85,7 @@ "hallo": "hello", "icon-image-credits": "We also want to thank these projects for illustrations and icons:", "import-runners": "Import runners", + "import__target-organization": "Target Organization", "installed-version": "Installed version", "invalid-mail-reset": "the provided email is invalid", "last-name": "Last name", From f8a59133a2534efdc9e13104eb64157a9724e746 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 20 Jan 2021 19:59:31 +0100 Subject: [PATCH 11/31] =?UTF-8?q?=E2=9C=A8=20ImportRunnerModal=20-=20compa?= =?UTF-8?q?tibility=20for=20multi-component=20access?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index f2ddd6e7..06e7a7de 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -9,6 +9,7 @@ import { createEventDispatcher } from "svelte"; export let opened_from; export let passed_orgs; + export let passed_org; export let import_modal_open; $: searchvalue = ""; const dispatch = createEventDispatcher(); @@ -33,7 +34,6 @@ $: json_output = []; $: { if (files) { - console.log(files[0].type); if ( files[0].type === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" @@ -76,11 +76,15 @@ runner[`${$_("csv_import__class")}`], }; }); - console.log(mapped); - ImportService.importControllerPostOrgsJson(parseInt(selected_org), mapped) + let org = 0; + if (opened_from === "OrgDetail") { + org = passed_org.id; + } + if (opened_from === "OrgOverview") { + org = parseInt(selected_org); + } + ImportService.importControllerPostOrgsJson(org, mapped) .then((resp) => { - // console.log("demo passed"); - // console.log(resp); setTimeout(() => { toast.hideToast(); recent_processed = true; @@ -93,7 +97,6 @@ cancelModal(); }) .catch((err) => { - console.log(err); setTimeout(() => { toast.hideToast(); recent_processed = true; @@ -168,8 +171,14 @@ {/each} +

Bitte bestätige diese Läufer für den Import

+ {/if} + {#if opened_from === 'OrgDetail'} +

+ Bitte bestätige diese Läufer für den Import in die + Organisation "{passed_org.name}" +

{/if} -

Bitte bestätige diese Läufer für den Import

Date: Wed, 20 Jan 2021 19:59:53 +0100 Subject: [PATCH 12/31] =?UTF-8?q?=E2=9C=A8=20use=20ImportRunnerModal=20in?= =?UTF-8?q?=20OrgDetail=20+=20Orgs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/OrgDetail.svelte | 20 ++++++++++++++++++++ src/components/Orgs.svelte | 1 + 2 files changed, 21 insertions(+) diff --git a/src/components/OrgDetail.svelte b/src/components/OrgDetail.svelte index bd5e0847..4115953b 100644 --- a/src/components/OrgDetail.svelte +++ b/src/components/OrgDetail.svelte @@ -4,6 +4,7 @@ import Toastify from "toastify-js"; import store from "../store"; import ConfirmOrgDeletion from "./ConfirmOrgDeletion.svelte"; + import ImportRunnerModal from "./ImportRunnerModal.svelte"; import PromiseError from "./PromiseError.svelte"; $: delete_triggered = false; $: save_enabled = !data_changed; @@ -64,14 +65,33 @@ } else { } } + export let import_modal_open = false; + { + import_modal_open = false; + }} + passed_orgs={[]} + passed_org={orgdata} + opened_from="OrgDetail" + bind:import_modal_open /> {#if data_loaded}
{original.name} + {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:IMPORT')} + + {/if} {#if store.state.jwtinfo.userdetails.permissions.includes('USER:DELETE')} {#if delete_triggered} + {/if} {#if store.state.jwtinfo.userdetails.permissions.includes('TEAM:DELETE')} {#if delete_triggered} + + {/if} + {#if !delete_triggered} + + {/if} + {/if} + {#if !delete_triggered} + + {/if} + +
+ +
+ + + {#if !isFirstnameValid} + + {$_('first-name-is-required')} + + {/if} +
+
+ + +
+
+ + + {#if !isLastnameValid} + + {$_('last-name-is-required')} + + {/if} +
+
+ + + {#if !isEmailValid} + + {$_('valid-email-is-required')} + + {/if} +
+
+ + +
+
+ Distance +
+ {original_data.distance} km +
+
+{:catch error} + +{/await} diff --git a/src/locales/en.json b/src/locales/en.json index 7898db96..15a862ef 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -109,6 +109,7 @@ "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", + "phone": "Phone", "please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.", "profile-picture": "Profile Picture", "read-license": "Read License", From 5552055b989313e8999e424b6ad26c4398e8c6fa Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Thu, 21 Jan 2021 20:50:14 +0100 Subject: [PATCH 16/31] RunnerDetail - button text fixes ref #13 --- src/components/RunnerDetail.svelte | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/components/RunnerDetail.svelte b/src/components/RunnerDetail.svelte index c4a56861..e5fdef7e 100644 --- a/src/components/RunnerDetail.svelte +++ b/src/components/RunnerDetail.svelte @@ -2,11 +2,7 @@ import { _ } from "svelte-i18n"; import lodashIsEqual from "lodash.isequal"; import store from "../store"; - import { - UserService, - UserGroupService, - RunnerService, - } from "@odit/lfk-client-js"; + import { RunnerService } from "@odit/lfk-client-js"; import Toastify from "toastify-js"; import PromiseError from "./PromiseError.svelte"; export let params; @@ -34,17 +30,17 @@ function submit() { if (data_loaded === true && save_enabled) { Toastify({ - text: $_("updating-user"), + text: "Updating runner...", duration: 2500, }).showToast(); - UserService.userControllerPut(original_data.id, editable_userdata) + RunnerService.runnerControllerPut(original_data.id, editable_userdata) .then((resp) => { Object.assign(original_data, editable_userdata); original_data = editable_userdata; Object.assign(original_data, editable_userdata); // Toastify({ - text: $_("user-updated"), + text: "Runner updated!", duration: 2500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); @@ -72,17 +68,17 @@
  1. + height="24"> +
  2. - {$_('users')}{$_('runners')}Confirm Deletion + class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">Confirm + Deletion + class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">Delete + Runner {/if} {/if} {#if !delete_triggered} From ec4bcd093b6c94f2e3597de6de98db5ca47c5876 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Sun, 24 Jan 2021 17:16:49 +0100 Subject: [PATCH 17/31] =?UTF-8?q?=F0=9F=90=9E=20[bugfix]=20RunnerDetail=20?= =?UTF-8?q?update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/RunnerDetail.svelte | 38 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/components/RunnerDetail.svelte b/src/components/RunnerDetail.svelte index e5fdef7e..39e0a5f5 100644 --- a/src/components/RunnerDetail.svelte +++ b/src/components/RunnerDetail.svelte @@ -5,26 +5,25 @@ import { RunnerService } from "@odit/lfk-client-js"; import Toastify from "toastify-js"; import PromiseError from "./PromiseError.svelte"; + import isEmail from "validator/es/lib/isEmail"; export let params; const runner_promise = RunnerService.runnerControllerGetOne(params.runnerid); let data_loaded = false; $: delete_triggered = false; $: original_data = {}; - $: editable_userdata = {}; + $: editable = {}; runner_promise.then((data) => { - console.log(data); data_loaded = true; original_data = Object.assign(original_data, data); - editable_userdata = data; + editable = data; }); - $: changes_performed = !lodashIsEqual(original_data, editable_userdata); + $: changes_performed = !lodashIsEqual(original_data, editable); - import isEmail from "validator/es/lib/isEmail"; $: isEmailValid = - (editable_userdata.email || "") === "" || - (editable_userdata.email && isEmail(editable_userdata.email || "")); - $: isFirstnameValid = editable_userdata.firstname !== ""; - $: isLastnameValid = editable_userdata.lastname !== ""; + (editable.email || "") === "" || + (editable.email && isEmail(editable.email || "")); + $: isFirstnameValid = editable.firstname !== ""; + $: isLastnameValid = editable.lastname !== ""; $: save_enabled = changes_performed && isFirstnameValid && isLastnameValid && isEmailValid; function submit() { @@ -33,11 +32,12 @@ text: "Updating runner...", duration: 2500, }).showToast(); - RunnerService.runnerControllerPut(original_data.id, editable_userdata) + editable.group = editable.group.id; + RunnerService.runnerControllerPut(original_data.id, editable) .then((resp) => { - Object.assign(original_data, editable_userdata); - original_data = editable_userdata; - Object.assign(original_data, editable_userdata); + Object.assign(original_data, editable); + original_data = editable; + Object.assign(original_data, editable); // Toastify({ text: "Runner updated!", @@ -108,7 +108,7 @@ {original_data.firstname} {original_data.middlename || ''} {original_data.lastname} - + {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:DELETE')} {#if delete_triggered} + class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">{$_('confirm-deletion')} + class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">{$_('delete-runner')} {/if} {/if} {#if !delete_triggered} @@ -228,7 +225,7 @@ class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" />
    - Distance + {$_('distance')}
    {original_data.distance} km
    diff --git a/src/locales/en.json b/src/locales/en.json index 15a862ef..d86f9a13 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -14,6 +14,7 @@ "changelog": "Changelog", "close": "Close", "confirm-delete": "Confirm Delete", + "confirm-deletion": "Confirm Deletion", "contact": "Contact", "count_organizations": "# Organizations", "count_teams": "# Teams", @@ -45,9 +46,11 @@ "an_error_happened_while_fetching_the_data": "An error happened while fetching the data" }, "delete-organization": "Delete Organization", + "delete-runner": "Delete Runner", "delete-team": "Delete Team", "delete-user": "Delete User", "dependency_name": "Name", + "distance": "Distance", "dont-have-your-email-connected": "Don't have your email connected?", "dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌", "drag-and-drop-your-files-or": "Drag & Drop your files or", From 6704c07db0a00b17327a4b693b3f74ed41a1a41d Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sun, 24 Jan 2021 17:21:39 +0100 Subject: [PATCH 19/31] Deleted files to ignore --- public/index.html | 1 - svelte.config.js | 1 - 2 files changed, 2 deletions(-) delete mode 100644 public/index.html delete mode 100644 svelte.config.js diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 1b0be8ea..00000000 --- a/public/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/svelte.config.js b/svelte.config.js deleted file mode 100644 index 37be7df6..00000000 --- a/svelte.config.js +++ /dev/null @@ -1 +0,0 @@ -// this is configured with dev scripts From 9fbc1ba0315fc0a2b7f3d95339cb17fc74e57903 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sun, 24 Jan 2021 17:21:48 +0100 Subject: [PATCH 20/31] Added friles to ignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ac929a5d..b2496c6e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ public/env.js public/sw.js public/index.html public/workbox-*.js -svelte.config.js \ No newline at end of file +svelte.config.js +public/index.html From 9240e0c90380fc6b44a3dde480bd2d29476b2a0f Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Sun, 24 Jan 2021 17:30:31 +0100 Subject: [PATCH 21/31] =?UTF-8?q?=F0=9F=A7=B9=20general=20runner=20cleanup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/RunnerDetail.svelte | 2 +- src/components/RunnerFileUpload.svelte | 75 -------------------------- src/components/Runners.svelte | 20 ++++--- 3 files changed, 15 insertions(+), 82 deletions(-) delete mode 100644 src/components/RunnerFileUpload.svelte diff --git a/src/components/RunnerDetail.svelte b/src/components/RunnerDetail.svelte index 036792a8..7b558f46 100644 --- a/src/components/RunnerDetail.svelte +++ b/src/components/RunnerDetail.svelte @@ -6,9 +6,9 @@ import Toastify from "toastify-js"; import PromiseError from "./PromiseError.svelte"; import isEmail from "validator/es/lib/isEmail"; - const runner_promise = RunnerService.runnerControllerGetOne(params.runnerid); let data_loaded = false; export let params; + const runner_promise = RunnerService.runnerControllerGetOne(params.runnerid); $: delete_triggered = false; $: original_data = {}; $: editable = {}; diff --git a/src/components/RunnerFileUpload.svelte b/src/components/RunnerFileUpload.svelte deleted file mode 100644 index 5dfc723d..00000000 --- a/src/components/RunnerFileUpload.svelte +++ /dev/null @@ -1,75 +0,0 @@ - - -
    - -
    diff --git a/src/components/Runners.svelte b/src/components/Runners.svelte index e3297f97..8b33c482 100644 --- a/src/components/Runners.svelte +++ b/src/components/Runners.svelte @@ -2,11 +2,11 @@ import { _ } from "svelte-i18n"; import store from "../store"; import AddRunnerModal from "./AddRunnerModal.svelte"; - // import ImportRunnerModal from "./ImportRunnerModal.svelte"; + import ImportRunnerModal from "./ImportRunnerModal.svelte"; import RunnersOverview from "./RunnersOverview.svelte"; - export let modal_open = false; - // export let import_modal_open = false; let current_runners = []; + export let modal_open = false; + export let import_modal_open = false;
    @@ -21,14 +21,14 @@ 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"> Läufer hinzufügen - + {/if}

    läuft bei ihnen

    @@ -37,5 +37,13 @@ {#if store.state.jwtinfo.userdetails.permissions.includes('RUNNER:CREATE')} - + { + import_modal_open = false; + }} + passed_team={{}} + passed_orgs={[]} + passed_org={{}} + opened_from="RunnerOverview" + bind:import_modal_open /> {/if} From 366804aa29eb0231e40017d1e5c3419486070174 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Sun, 24 Jan 2021 17:31:10 +0100 Subject: [PATCH 22/31] =?UTF-8?q?=F0=9F=8C=8E=20i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/RunnersOverview.svelte | 18 ++++++++---------- src/locales/en.json | 5 +++++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/components/RunnersOverview.svelte b/src/components/RunnersOverview.svelte index 2175cf6e..bf84213d 100644 --- a/src/components/RunnersOverview.svelte +++ b/src/components/RunnersOverview.svelte @@ -37,25 +37,25 @@ - Name + {$_('name')} - Contact Information + {$_('contact-information')} - Group + {$_('group')} - Distance in km + {$_('distance-in-km')} - Action + {$_('action')} @@ -69,8 +69,7 @@
    -
    +
    {runner.firstname} {runner.middlename || ''} {runner.lastname} @@ -111,8 +110,7 @@ }); }} tabindex="0" - class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">Confirm - Delete + class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('confirm-delete')} {:else} Delete + class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('delete')} {/if} {/if} diff --git a/src/locales/en.json b/src/locales/en.json index d86f9a13..ef362324 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -16,6 +16,7 @@ "confirm-delete": "Confirm Delete", "confirm-deletion": "Confirm Deletion", "contact": "Contact", + "contact-information": "Contact Information", "count_organizations": "# Organizations", "count_teams": "# Teams", "create": "Create", @@ -45,12 +46,14 @@ "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-organization": "Delete Organization", "delete-runner": "Delete Runner", "delete-team": "Delete Team", "delete-user": "Delete User", "dependency_name": "Name", "distance": "Distance", + "distance-in-km": "Distance in km", "dont-have-your-email-connected": "Don't have your email connected?", "dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌", "drag-and-drop-your-files-or": "Drag & Drop your files or", @@ -84,6 +87,7 @@ "general-stats": "General Stats", "general_promise_error": "😢 Error", "goback": "Go Home", + "group": "Group", "groups": "Groups", "hallo": "hello", "icon-image-credits": "We also want to thank these projects for illustrations and icons:", @@ -104,6 +108,7 @@ "manage-admin-users": "manage admin users", "middle-name": "Middle name", "minimum-lap-time-in-s": "minimum lap time in s", + "name": "Name", "no-license-text-could-be-found": "No license text could be found 😢", "no-tracks-added-yet": "there are no tracks added yet.", "organization": "Organization", From ae8bc01d9bab994aad6407102f3a6ef0167d008b Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Sun, 24 Jan 2021 17:47:29 +0100 Subject: [PATCH 23/31] =?UTF-8?q?=F0=9F=8C=8E=20i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 7 ++++--- src/components/Runners.svelte | 1 - src/locales/de.json | 3 ++- src/locales/en.json | 5 ++++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index 56426bff..c5866729 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -8,6 +8,7 @@ import { ImportService } from "@odit/lfk-client-js"; import { createEventDispatcher } from "svelte"; export let opened_from; + export let passed_org; export let passed_orgs; export let passed_team; export let import_modal_open; @@ -160,12 +161,12 @@

    - Runner Import + {$_('runner-import')}

    {#if json_output.length === 0}

    - Please provide the required csv/ xlsx file + {$_('please-provide-the-required-csv-xlsx-file')}

    @@ -186,7 +187,7 @@ {/each} -

    Bitte bestätige diese Läufer für den Import

    +

    {$_('bitte-bestaetige-diese-laeufer-fuer-den-import')}

    {/if} {#if opened_from === 'OrgDetail'}

    diff --git a/src/components/Runners.svelte b/src/components/Runners.svelte index 8b33c482..4e4f3eee 100644 --- a/src/components/Runners.svelte +++ b/src/components/Runners.svelte @@ -31,7 +31,6 @@ {/if} -

    läuft bei ihnen

    diff --git a/src/locales/de.json b/src/locales/de.json index 25aaf5f6..d309dac5 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -2,12 +2,13 @@ "404message": "Die gesuchte Seite wurde leider nicht gefunden.", "404title": "Fehler 404", "about": "Über", - "application_name": "Lauf für Kaya! \n- Admin", + "application_name": "Lauf für Kaya! - Admin", "by": "von", "cancel": "Abbrechen", "cannot-reset-your-password-directly": "Schade. \nWir können das Passwort leider nicht direkt zurücksetzen.\nBitte sende uns eine Mail in der du deine Identität bestätigst.", "credits": "", "csv_import__firstname": "Vorname", + "csv_import__lastname": "Nachname", "csv_import__middlename": "Mittelname", "dashboard-greeting": "Moin", "datatable": { diff --git a/src/locales/en.json b/src/locales/en.json index ef362324..8ba0f135 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -7,6 +7,7 @@ "address": "Address", "application_name": "Lauf für Kaya! - Admin", "author": "Author", + "bitte-bestaetige-diese-laeufer-fuer-den-import": "Bitte bestätige diese Läufer für den Import", "browse": "Browse", "by": "by", "cancel": "Cancel", @@ -26,7 +27,7 @@ "credits": "Credits", "csv_import__class": "Klasse", "csv_import__firstname": "First Name", - "csv_import__lastname": "Nachname", + "csv_import__lastname": "Lastname", "csv_import__middlename": "Middlename", "csv_import__team": "Team", "dashboard-greeting": "hello there", @@ -118,12 +119,14 @@ "password": "Password", "password-is-required": "Password is required", "phone": "Phone", + "please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file", "please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.", "profile-picture": "Profile Picture", "read-license": "Read License", "register": "Register", "repo_link": "Link", "reset-my-password": "Reset my password", + "runner-import": "Runner Import", "runners": "Runners", "save-changes": "Save Changes", "send-a-mail-to-lfk-odit-services": "send a mail to lfk@odit.services", From 2d4869128d2af5e7fa5e4bcf1d6b687fca6761e9 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Sun, 24 Jan 2021 17:54:45 +0100 Subject: [PATCH 24/31] =?UTF-8?q?=F0=9F=8C=8E=20i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 5 +++-- src/locales/en.json | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index c5866729..3576c453 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -191,8 +191,9 @@ {/if} {#if opened_from === 'OrgDetail'}

    - Bitte bestätige diese Läufer für den Import in die - Organisation "{passed_org.name}" + {$_('runnerimport_verify_runners_org', { + values: { org_name: passed_org.name }, + })}

    {/if} Date: Sun, 24 Jan 2021 18:20:48 +0100 Subject: [PATCH 25/31] =?UTF-8?q?i18n=20=F0=9F=8C=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/locales/de.json | 7 +++++++ src/locales/en.json | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/locales/de.json b/src/locales/de.json index d309dac5..3f12e8ba 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -3,13 +3,16 @@ "404title": "Fehler 404", "about": "Über", "application_name": "Lauf für Kaya! - Admin", + "bitte-bestaetige-diese-laeufer-fuer-den-import": "Bitte die Läufer für den import bestätigen.", "by": "von", "cancel": "Abbrechen", "cannot-reset-your-password-directly": "Schade. \nWir können das Passwort leider nicht direkt zurücksetzen.\nBitte sende uns eine Mail in der du deine Identität bestätigst.", "credits": "", + "csv_import__class": "Klasse", "csv_import__firstname": "Vorname", "csv_import__lastname": "Nachname", "csv_import__middlename": "Mittelname", + "csv_import__team": "Team", "dashboard-greeting": "Moin", "datatable": { "search": "🔍 Suche ...", @@ -32,6 +35,7 @@ "hallo": "hallo", "icon-image-credits": "Wir möchten uns außerdem für die verwendeten Icons und Bilder bedanken bei:", "import-runners": "Läufer importieren", + "import__target-organization": "Ziel Organisation", "invalid-mail-reset": "Das ist keine gültige E-Mail", "lfk-is-os": "Das \"Lauf für Kaya!\" Frontend ist (wie alle anderen Projekte für den \"LfK!\" auch) ein OpenSource Projekt.", "log_in": "Anmelden", @@ -39,8 +43,11 @@ "login_is_checked": "Login wird überprüft", "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!", "password": "Passwort", + "please-provide-the-required-csv-xlsx-file": "Bitte eine CSV oder XLSX Datei hochladen.", "register": "Registrieren", "reset-my-password": "Passwort zurücksetzen", + "runner-import": "Läufer Import", + "runnerimport_verify_runners_org": "Bitte die Läufer für den Import in die Organisation \"{org_name}\" bestätigen", "runners": "Läufer", "send-a-mail-to-lfk-odit-services": "Sende eine Mail an lfk@odit.services", "settings": "Einstellungen", diff --git a/src/locales/en.json b/src/locales/en.json index 676cde10..514cd778 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -25,8 +25,8 @@ "create-organization": "Create Organization", "create-user": "Create User", "credits": "Credits", - "csv_import__class": "Klasse", - "csv_import__firstname": "First Name", + "csv_import__class": "Class", + "csv_import__firstname": "Firstname", "csv_import__lastname": "Lastname", "csv_import__middlename": "Middlename", "csv_import__team": "Team", From 2cc9b3e1ede47bb1a4b598afc260d0bc06ed0902 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Sun, 24 Jan 2021 18:38:16 +0100 Subject: [PATCH 26/31] =?UTF-8?q?=F0=9F=91=80=20ImportRunnerModal=20-=20la?= =?UTF-8?q?yout=20cleanup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 228 ++++++++++++------------ 1 file changed, 115 insertions(+), 113 deletions(-) diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index 3576c453..7d46bafe 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -159,123 +159,125 @@ -
    -

    +
    +

    {$_('runner-import')}

    - {#if json_output.length === 0} -
    -

    - {$_('please-provide-the-required-csv-xlsx-file')} -

    -
    -
    - -
    - {/if} - {#if json_output.length > 0} - {#if opened_from === 'OrgOverview'} -

    {$_('import__target-organization')}

    - -

    {$_('bitte-bestaetige-diese-laeufer-fuer-den-import')}

    - {/if} - {#if opened_from === 'OrgDetail'} -

    - {$_('runnerimport_verify_runners_org', { - values: { org_name: passed_org.name }, - })} -

    - {/if} - -
    - - - - - - - {#if opened_from !== 'TeamDetail'} - - {/if} - - - - {#each json_output as runner} - {#if Object.values(runner) - .toString() - .toLowerCase() - .includes(searchvalue)} - - - - - {#if opened_from !== 'TeamDetail'} - - {/if} - - {/if} - {/each} - -
    - {$_('csv_import__firstname')} - - {$_('csv_import__middlename')} - - {$_('csv_import__lastname')} - - {$_('csv_import__team')} -
    - {runner[`${$_('csv_import__firstname')}`]} - - {runner[`${$_('csv_import__middlename')}`] || ''} - - {runner[`${$_('csv_import__lastname')}`]} - - {runner[`${$_('csv_import__team')}`] || runner[`${$_('csv_import__class')}`] || '---'} -
    - - -
    - {/if}

    +
    + {#if json_output.length === 0} +
    +

    + {$_('please-provide-the-required-csv-xlsx-file')} +

    +
    +
    + +
    + {/if} + {#if json_output.length > 0} + {#if opened_from === 'OrgOverview'} +

    {$_('import__target-organization')}

    + +

    {$_('bitte-bestaetige-diese-laeufer-fuer-den-import')}

    + {/if} + {#if opened_from === 'OrgDetail'} +

    + {$_('runnerimport_verify_runners_org', { + values: { org_name: passed_org.name }, + })} +

    + {/if} + +
    + + + + + + + {#if opened_from !== 'TeamDetail'} + + {/if} + + + + {#each json_output as runner} + {#if Object.values(runner) + .toString() + .toLowerCase() + .includes(searchvalue)} + + + + + {#if opened_from !== 'TeamDetail'} + + {/if} + + {/if} + {/each} + +
    + {$_('csv_import__firstname')} + + {$_('csv_import__middlename')} + + {$_('csv_import__lastname')} + + {$_('csv_import__team')} +
    + {runner[`${$_('csv_import__firstname')}`]} + + {runner[`${$_('csv_import__middlename')}`] || ''} + + {runner[`${$_('csv_import__lastname')}`]} + + {runner[`${$_('csv_import__team')}`] || runner[`${$_('csv_import__class')}`] || '---'} +
    + + +
    + {/if} +
    From dc1644ed25b82afe6a51fbe0e1de69ddf54ef81d Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Sun, 24 Jan 2021 18:40:54 +0100 Subject: [PATCH 27/31] =?UTF-8?q?=F0=9F=90=9E=20ImportRunnerModal=20-=20ta?= =?UTF-8?q?ble=20overflow=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #13 --- src/components/ImportRunnerModal.svelte | 97 +++++++++++++------------ 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index 7d46bafe..6fa5f316 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -206,60 +206,61 @@ aria-label={$_('datatable.search')} class="p-2 w-full" />
    - - - - - - - {#if opened_from !== 'TeamDetail'} +
    +
    - {$_('csv_import__firstname')} - - {$_('csv_import__middlename')} - - {$_('csv_import__lastname')} -
    + + - {/if} - - - - {#each json_output as runner} - {#if Object.values(runner) - .toString() - .toLowerCase() - .includes(searchvalue)} - - - - - {#if opened_from !== 'TeamDetail'} + + + {#if opened_from !== 'TeamDetail'} + + {/if} + + + + {#each json_output as runner} + {#if Object.values(runner) + .toString() + .toLowerCase() + .includes(searchvalue)} + - {/if} - - {/if} - {/each} - -
    - {$_('csv_import__team')} + {$_('csv_import__firstname')}
    - {runner[`${$_('csv_import__firstname')}`]} - - {runner[`${$_('csv_import__middlename')}`] || ''} - - {runner[`${$_('csv_import__lastname')}`]} - + {$_('csv_import__middlename')} + + {$_('csv_import__lastname')} + + {$_('csv_import__team')} +
    - {runner[`${$_('csv_import__team')}`] || runner[`${$_('csv_import__class')}`] || '---'} + {runner[`${$_('csv_import__firstname')}`]}
    + + {runner[`${$_('csv_import__middlename')}`] || ''} + + + {runner[`${$_('csv_import__lastname')}`]} + + {#if opened_from !== 'TeamDetail'} + + {runner[`${$_('csv_import__team')}`] || runner[`${$_('csv_import__class')}`] || '---'} + + {/if} + + {/if} + {/each} + + +