feat(donoroverview): Added datatable formatters
This commit is contained in:
parent
5014bf5bc5
commit
d98fb0d5b2
14
src/components/donors/DonorAddress.svelte
Normal file
14
src/components/donors/DonorAddress.svelte
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<script>
|
||||||
|
import { _ } from "svelte-i18n";
|
||||||
|
export let address;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if !address || !address.address1}
|
||||||
|
{$_("no-address")}
|
||||||
|
{:else}
|
||||||
|
{address.address1}<br />
|
||||||
|
<!-- {address.address2 || ''}<br /> -->
|
||||||
|
{address.postalcode}
|
||||||
|
{address.city}
|
||||||
|
{address.country}
|
||||||
|
{/if}
|
29
src/components/donors/DonorDonations.svelte
Normal file
29
src/components/donors/DonorDonations.svelte
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<script>
|
||||||
|
import { _ } from "svelte-i18n";
|
||||||
|
export let donations;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if !donations || donations.length == 0}
|
||||||
|
{$_('donor-has-no-associated-donations')}
|
||||||
|
{:else}
|
||||||
|
{#each donations as donation}
|
||||||
|
{#if donation.responseType === "DISTANCEDONATION"}
|
||||||
|
<a
|
||||||
|
href="../donations/{donation.id}"
|
||||||
|
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-blue-600 text-white mr-1"
|
||||||
|
>{donation.runner.firstname}
|
||||||
|
{donation.runner.middlename || ""}
|
||||||
|
{donation.runner.lastname}</a
|
||||||
|
>
|
||||||
|
{:else}
|
||||||
|
<a
|
||||||
|
href="../donations/{d.id}"
|
||||||
|
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-700 text-white mr-1"
|
||||||
|
>{$_("fixed-donation")}:
|
||||||
|
{(d.amount / 100)
|
||||||
|
.toFixed(2)
|
||||||
|
.toLocaleString("de-DE", { valute: "EUR" })}€</a
|
||||||
|
>
|
||||||
|
{/if}
|
||||||
|
{/each}
|
||||||
|
{/if}
|
@ -20,6 +20,8 @@
|
|||||||
import InputElement from "../shared/InputElement.svelte";
|
import InputElement from "../shared/InputElement.svelte";
|
||||||
import TableHeader from "../shared/TableHeader.svelte";
|
import TableHeader from "../shared/TableHeader.svelte";
|
||||||
import TableActions from "../shared/TableActions.svelte";
|
import TableActions from "../shared/TableActions.svelte";
|
||||||
|
import DonorAddress from "./DonorAddress.svelte";
|
||||||
|
import DonorDonations from "./DonorDonations.svelte";
|
||||||
$: searchvalue = "";
|
$: searchvalue = "";
|
||||||
$: active_deletes = [];
|
$: active_deletes = [];
|
||||||
$: current_donations = [];
|
$: current_donations = [];
|
||||||
@ -39,16 +41,18 @@
|
|||||||
{
|
{
|
||||||
accessorKey: "id",
|
accessorKey: "id",
|
||||||
header: () => "id",
|
header: () => "id",
|
||||||
cell: (info) => {
|
|
||||||
return "TODO:";
|
|
||||||
},
|
|
||||||
filterFn: `equalsString`,
|
filterFn: `equalsString`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorKey: "name",
|
accessorKey: "name",
|
||||||
header: () => $_("name"),
|
header: () => $_("name"),
|
||||||
cell: (info) => {
|
cell: (info) => {
|
||||||
return "TODO:";
|
const d = info.row.original;
|
||||||
|
if (d.middlename) {
|
||||||
|
return `${d.firstname} ${d.middlename} ${d.lastname}`;
|
||||||
|
} else {
|
||||||
|
return `${d.firstname} ${d.lastname}`;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
filterFn: `includesString`,
|
filterFn: `includesString`,
|
||||||
},
|
},
|
||||||
@ -56,7 +60,7 @@
|
|||||||
accessorKey: "address",
|
accessorKey: "address",
|
||||||
header: () => $_("contact-information"),
|
header: () => $_("contact-information"),
|
||||||
cell: (info) => {
|
cell: (info) => {
|
||||||
return "TODO:";
|
return renderComponent(DonorAddress, { address: info.getValue() });
|
||||||
},
|
},
|
||||||
filterFn: `includesString`,
|
filterFn: `includesString`,
|
||||||
},
|
},
|
||||||
@ -64,23 +68,30 @@
|
|||||||
accessorKey: "sponsorings",
|
accessorKey: "sponsorings",
|
||||||
header: () => $_("sponsorings"),
|
header: () => $_("sponsorings"),
|
||||||
cell: (info) => {
|
cell: (info) => {
|
||||||
return "TODO:";
|
const donations = current_donations.filter(
|
||||||
|
(d) => d?.donor?.id == info.row.original.id
|
||||||
|
);
|
||||||
|
return renderComponent(DonorDonations, { donations });
|
||||||
},
|
},
|
||||||
filterFn: `includesString`,
|
filterFn: `includesString`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorKey: "sponsorings",
|
accessorKey: "donationAmount",
|
||||||
header: () => $_("total-donation-amount"),
|
header: () => $_("total-donation-amount"),
|
||||||
cell: (info) => {
|
cell: (info) => {
|
||||||
return "TODO:";
|
return `${(info.getValue() / 100)
|
||||||
|
.toFixed(2)
|
||||||
|
.toLocaleString("de-DE", { valute: "EUR" })}€`;
|
||||||
},
|
},
|
||||||
filterFn: `group`,
|
filterFn: `group`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorKey: "sponsorings",
|
accessorKey: "paidDonationAmount",
|
||||||
header: () => $_("total-paid-amount"),
|
header: () => $_("total-paid-amount"),
|
||||||
cell: (info) => {
|
cell: (info) => {
|
||||||
return "TODO:";
|
return `${(info.getValue() / 100)
|
||||||
|
.toFixed(2)
|
||||||
|
.toLocaleString("de-DE", { valute: "EUR" })}€`;
|
||||||
},
|
},
|
||||||
enableColumnFilter: false,
|
enableColumnFilter: false,
|
||||||
},
|
},
|
||||||
|
@ -493,5 +493,6 @@
|
|||||||
"you-have-to-provide-an-organization": "Du musst eine Organisation angeben",
|
"you-have-to-provide-an-organization": "Du musst eine Organisation angeben",
|
||||||
"you-have-to-save-your-changes-to-generate-a-link": "Du musst deine Änderungen speichern, um einen Link zu generieren.",
|
"you-have-to-save-your-changes-to-generate-a-link": "Du musst deine Änderungen speichern, um einen Link zu generieren.",
|
||||||
"you-must-create-at-least-one-card-or-cancel": "Du musst mindestens eine Blankokarte erstellen (oder abbrechen).",
|
"you-must-create-at-least-one-card-or-cancel": "Du musst mindestens eine Blankokarte erstellen (oder abbrechen).",
|
||||||
"zip-postal-code": "Postleitzahl"
|
"zip-postal-code": "Postleitzahl",
|
||||||
|
"no-address": "Keine Adresse hinterlegt"
|
||||||
}
|
}
|
@ -493,5 +493,6 @@
|
|||||||
"you-have-to-provide-an-organization": "You have to provide an organization",
|
"you-have-to-provide-an-organization": "You have to provide an organization",
|
||||||
"you-have-to-save-your-changes-to-generate-a-link": "You have to save your changes to generate a link.",
|
"you-have-to-save-your-changes-to-generate-a-link": "You have to save your changes to generate a link.",
|
||||||
"you-must-create-at-least-one-card-or-cancel": "You must create at least one card (or cancel).",
|
"you-must-create-at-least-one-card-or-cancel": "You must create at least one card (or cancel).",
|
||||||
"zip-postal-code": "ZIP/ postal code"
|
"zip-postal-code": "ZIP/ postal code",
|
||||||
|
"no-address": "no address"
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user