diff --git a/src/components/donations/AddDonationModal.svelte b/src/components/donations/AddDonationModal.svelte index ab9dd2a2..63e781e3 100644 --- a/src/components/donations/AddDonationModal.svelte +++ b/src/components/donations/AddDonationModal.svelte @@ -15,7 +15,7 @@ option.firstname + " " + (option.middlename || "") + " " + option.lastname; const filterDonors = (label, filterText, option) => label.toLowerCase().includes(filterText.toLowerCase()) || - option.id.toString().startsWith(filterText.toLowerCase()); + option.value.id.toString().startsWith(filterText.toLowerCase()); function focus(el) { el.focus(); } @@ -25,12 +25,14 @@ $: runners = []; $: is_fixed = false; DonorService.donorControllerGetAll().then((val) => { - donors = val; - donor = donors[0].id || 0; + donors = val.map((r) => { + return { label: getDonorLabel(r), value: r }; + }); }); RunnerService.runnerControllerGetAll().then((val) => { - runners = val; - runner = runners[0].id || 0; + runners = val.map((r) => { + return { label: getDonorLabel(r), value: r }; + }); }); $: amount_input = 0; $: processed_last_submit = true; @@ -184,7 +186,6 @@

- {#if is_fixed} {$_('create-a-new-fixed-donation')} {:else}{$_('create-a-new-distance-donation')}{/if} @@ -213,15 +214,13 @@ class="block text-sm font-medium text-gray-700">{$_('donor')} getDonorLabel(option)} - getOptionLabel={(option) => getDonorLabel(option)} itemFilter={(label, filterText, option) => filterDonors(label, filterText, option)} items={runners} showChevron={true} placeholder={$_('search-for-runner-by-name-or-id')} noOptionsMessage={$_('no-runners-found')} - on:select={(selectedValue) => (runner = selectedValue.detail.id)} - on:clear={()=>(runner = null)} /> + on:select={(selectedValue) => (runner = selectedValue.detail.value.id)} + on:clear={() => (runner = null)} />

{/if}
diff --git a/src/components/donations/DonationDetail.svelte b/src/components/donations/DonationDetail.svelte index c464ef7b..b481a6fa 100644 --- a/src/components/donations/DonationDetail.svelte +++ b/src/components/donations/DonationDetail.svelte @@ -14,6 +14,8 @@ $: delete_triggered = false; $: original_data = {}; $: editable = {}; + $: donor = {}; + $: runner = {}; $: current_donors = []; $: current_runners = []; $: amount_input = 0; @@ -30,12 +32,7 @@ (original_data.responseType !== "DISTANCEDONATION" && !(Math.floor(amount_input * 100) === original_data.amount)); $: save_enabled = changes_performed && is_amount_valid && is_everything_set; - const donor_promise = DonorService.donorControllerGetAll().then((val) => { - current_donors = val; - }); - const runner_promise = RunnerService.runnerControllerGetAll().then((val) => { - current_runners = val; - }); + const promise = DonationService.donationControllerGetOne( params.donationid ).then((data) => { @@ -44,15 +41,27 @@ editable = Object.assign(editable, original_data); if (data.responseType == "DISTANCEDONATION") { amount_input = data.amountPerDistance / 100; + RunnerService.runnerControllerGetAll().then((val) => { + current_runners = val.map((r) => { + return { label: getDonorLabel(r), value: r }; + }); + runner = current_runners.find((g) => g.value.id == editable.runner.id); + }); } else { amount_input = data.amount / 100; } + DonorService.donorControllerGetAll().then((val) => { + current_donors = val.map((r) => { + return { label: getDonorLabel(r), value: r }; + }); + donor = current_donors.find((g) => g.value.id == editable.donor.id); + }); }); const getDonorLabel = (option) => option.firstname + " " + (option.middlename || "") + " " + option.lastname; const filterDonors = (label, filterText, option) => label.toLowerCase().includes(filterText.toLowerCase()) || - option.id.toString().startsWith(filterText.toLowerCase()); + option.value.id.toString().startsWith(filterText.toLowerCase()); function submit() { if (data_loaded === true && save_enabled) { @@ -116,7 +125,7 @@ } -{#await donor_promise && runner_promise && promise} +{#await promise} {$_('loading-donation-details')} {:then}
@@ -217,14 +226,13 @@ class="block font-medium text-gray-700">{$_('donor')} getDonorLabel(option)} - getOptionLabel={(option) => getDonorLabel(option)} itemFilter={(label, filterText, option) => filterDonors(label, filterText, option)} items={current_runners} showChevron={true} placeholder={$_('search-for-runner-by-name-or-id')} noOptionsMessage={$_('no-runners-found')} - bind:selectedValue={editable.runner} + bind:selectedValue={runner} + on:select={(selectedValue) => (editable.runner = selectedValue.detail.value)} on:clear={() => (editable.runner = null)} />
{/if} diff --git a/src/components/orgs/OrgDetail.svelte b/src/components/orgs/OrgDetail.svelte index ca14e5f0..d0dc8bd4 100644 --- a/src/components/orgs/OrgDetail.svelte +++ b/src/components/orgs/OrgDetail.svelte @@ -20,6 +20,7 @@ let contacts = []; export let params; $: editable = {}; + $: contact = {}; $: data_loaded = false; $: data_changed = !(JSON.stringify(editable) === original); $: isAddress1Valid = editable.address?.address1?.trim().length !== 0; @@ -46,9 +47,16 @@ editable = editable; original_object = Object.assign(editable, value); original = JSON.stringify(value); - }); - GroupContactService.groupContactControllerGetAll().then((val) => { - contacts = val; + GroupContactService.groupContactControllerGetAll().then((val) => { + contacts = val.map((r) => { + return { label: getContactLabel(r), value: r }; + }); + if (editable.contact) { + contact = contacts.find((g) => g.value.id == editable.contact.id); + } else { + contact = null; + } + }); }); let modal_open = false; let delete_org = {}; @@ -359,18 +367,19 @@ class="font-medium text-gray-700">{$_('contact')} { - if (option.responseType == 'RUNNERORGANIZATION') { - return option.name; - } - return `${option.parentGroup.name} > ${option.name}`; - }} - getOptionLabel={(option) => { - if (option.responseType == 'RUNNERORGANIZATION') { - return option.name; - } - return `${option.parentGroup.name} > ${option.name}`; - }} itemFilter={(label, filterText, option) => label .toLowerCase() .includes( filterText.toLowerCase() - ) || option.id + ) || option.value.id .toString() .startsWith(filterText.toLowerCase())} items={orgs.concat(teams)} showChevron={true} placeholder={$_('search-for-an-organization-or-team-by-name-or-id')} noOptionsMessage={$_('no-organization-or-team-found')} - on:select={(selectedValue) => (selected_team = selectedValue.detail.id)} + on:select={(selectedValue) => (selected_team = selectedValue.detail.value.id)} on:clear={() => (selected_team = null)} />
diff --git a/src/components/runners/ImportRunnerModal.svelte b/src/components/runners/ImportRunnerModal.svelte index 1333134a..63088e64 100644 --- a/src/components/runners/ImportRunnerModal.svelte +++ b/src/components/runners/ImportRunnerModal.svelte @@ -11,6 +11,7 @@ RunnerOrganizationService, } from "@odit/lfk-client-js"; import { createEventDispatcher } from "svelte"; + import Select from "svelte-select"; export let opened_from; export let passed_org; export let passed_orgs; @@ -35,22 +36,18 @@ } }; })(); - let orgs = []; + let groups = []; RunnerOrganizationService.runnerOrganizationControllerGetAll().then((val) => { - orgs = val; - if(opened_from === 'OrgOverview'){ - selected_org = orgs[0].id - } - }); - let teams = []; - RunnerTeamService.runnerTeamControllerGetAll().then((val) => { - teams = val; - if (opened_from === "RunnerOverview" && teams.length>0) { - selected_org_or_team = "TEAM_" + teams[0].id; - } - if(teams.length==0 && orgs.length>0){ - selected_org_or_team = "ORG_" + orgs[0].id - } + const orgs = val.map((r) => { + return { label: r.name, value: `ORG_${r.id}` }; + }); + groups = groups.concat(orgs); + RunnerTeamService.runnerTeamControllerGetAll().then((val) => { + const teams = val.map((r) => { + return { label: `${r.parentGroup.name} > ${r.name}`, value: `TEAM_${r.id}` }; + }); + groups = groups.concat(teams); + }); }); let selected_org; $: selected_org_or_team = ""; @@ -264,21 +261,23 @@ {/if} {#if opened_from === 'RunnerOverview'}

{$_('group')}

- +