diff --git a/package.json b/package.json index d8874e53..ee217e40 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "licenses:export": "license-exporter --json -o public" }, "dependencies": { - "@odit/lfk-client-js": "0.3.0", + "@odit/lfk-client-js": "0.4.1", "csvtojson": "^2.0.10", "filepond": "4.25.1", "gridjs": "3.2.2", diff --git a/src/components/ImportRunnerModal.svelte b/src/components/ImportRunnerModal.svelte index 6fa5f316..f5df9e1e 100644 --- a/src/components/ImportRunnerModal.svelte +++ b/src/components/ImportRunnerModal.svelte @@ -5,12 +5,17 @@ import { clickOutside } from "./outsideclick"; import { focusTrap } from "svelte-focus-trap"; import Toastify from "toastify-js"; - import { ImportService } from "@odit/lfk-client-js"; + import { + ImportService, + RunnerTeamService, + RunnerOrganizationService, + } 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 current_runners; export let import_modal_open; $: searchvalue = ""; const dispatch = createEventDispatcher(); @@ -29,7 +34,16 @@ } }; })(); + let orgs = []; + RunnerOrganizationService.runnerOrganizationControllerGetAll().then((val) => { + orgs = val; + }); + let teams = []; + RunnerTeamService.runnerTeamControllerGetAll().then((val) => { + teams = val; + }); let selected_org; + $: selected_org_or_team = ""; let files; let recent_processed = true; $: json_output = []; @@ -118,6 +132,52 @@ recent_processed = true; }); } + if (opened_from === "RunnerOverview") { + if (selected_org_or_team.includes("ORG_")) { + selected_org_or_team = selected_org_or_team.split("_")[1]; + ImportService.importControllerPostOrgsJson( + selected_org_or_team, + mapped + ) + .then((resp) => { + current_runners = current_runners.concat(resp); + toast.hideToast(); + recent_processed = true; + Toastify({ + text: "Import finished", + duration: 500, + backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", + }).showToast(); + cancelModal(); + }) + .catch((err) => { + toast.hideToast(); + recent_processed = true; + }); + } + if (selected_org_or_team.includes("TEAM_")) { + selected_org_or_team = selected_org_or_team.split("_")[1]; + ImportService.importControllerPostTeamsJson( + selected_org_or_team, + mapped + ) + .then((resp) => { + current_runners = current_runners.concat(resp); + toast.hideToast(); + recent_processed = true; + Toastify({ + text: "Import finished", + duration: 500, + backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", + }).showToast(); + cancelModal(); + }) + .catch((err) => { + toast.hideToast(); + recent_processed = true; + }); + } + } } } @@ -192,6 +252,24 @@

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

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

Group

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

{$_('runnerimport_verify_runners_org', { @@ -225,7 +303,7 @@ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> {$_('csv_import__lastname')} - {#if opened_from !== 'TeamDetail'} + {#if (opened_from !== 'TeamDetail' && opened_from !== 'RunnerOverview') || (opened_from === 'RunnerOverview' && selected_org_or_team.includes('ORG_'))} @@ -250,7 +328,7 @@ {runner[`${$_('csv_import__lastname')}`]} - {#if opened_from !== 'TeamDetail'} + {#if (opened_from !== 'TeamDetail' && opened_from !== 'RunnerOverview') || (opened_from === 'RunnerOverview' && selected_org_or_team.includes('ORG_'))} {runner[`${$_('csv_import__team')}`] || runner[`${$_('csv_import__class')}`] || '---'} diff --git a/src/components/OrgDetail.svelte b/src/components/OrgDetail.svelte index d9b4812d..df23936c 100644 --- a/src/components/OrgDetail.svelte +++ b/src/components/OrgDetail.svelte @@ -72,6 +72,7 @@ on:cancelDelete={(event) => { import_modal_open = false; }} + current_runners={[]} passed_team={{}} passed_orgs={[]} passed_org={orgdata} diff --git a/src/components/Orgs.svelte b/src/components/Orgs.svelte index 09d8dfc4..abecc713 100644 --- a/src/components/Orgs.svelte +++ b/src/components/Orgs.svelte @@ -47,5 +47,6 @@ passed_org={{}} passed_orgs={current_organizations} opened_from="OrgOverview" + current_runners={[]} bind:import_modal_open /> {/if} diff --git a/src/components/Runners.svelte b/src/components/Runners.svelte index 4e4f3eee..f8c784f4 100644 --- a/src/components/Runners.svelte +++ b/src/components/Runners.svelte @@ -4,7 +4,7 @@ import AddRunnerModal from "./AddRunnerModal.svelte"; import ImportRunnerModal from "./ImportRunnerModal.svelte"; import RunnersOverview from "./RunnersOverview.svelte"; - let current_runners = []; + $: current_runners = []; export let modal_open = false; export let import_modal_open = false; @@ -43,6 +43,7 @@ passed_team={{}} passed_orgs={[]} passed_org={{}} + bind:current_runners opened_from="RunnerOverview" bind:import_modal_open /> {/if} diff --git a/src/components/TeamDetail.svelte b/src/components/TeamDetail.svelte index 243c69b8..fec053dd 100644 --- a/src/components/TeamDetail.svelte +++ b/src/components/TeamDetail.svelte @@ -74,6 +74,7 @@ { import_modal_open = false; }}