From a86c15a2e80659556feccccee622376416ae2615 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Thu, 11 Dec 2025 11:51:22 +0100 Subject: [PATCH 01/21] fix: some missing or wrong classes --- src/components/library/Tag.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/library/Tag.svelte b/src/components/library/Tag.svelte index b36c9e3f..9504210e 100644 --- a/src/components/library/Tag.svelte +++ b/src/components/library/Tag.svelte @@ -14,13 +14,13 @@ success: "bg-variant2", warning: "bg-variant4", error: "bg-tertiary", - bold: "bg-grey border-grey text-secondary font-bold", + bold: "bg-grey border-grey text-secondary font-bold border-soft-purple", };
Date: Thu, 11 Dec 2025 13:34:34 +0100 Subject: [PATCH 02/21] fix: modifiy styles --- src/components/library/Tag.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/library/Tag.svelte b/src/components/library/Tag.svelte index 9504210e..44107474 100644 --- a/src/components/library/Tag.svelte +++ b/src/components/library/Tag.svelte @@ -20,7 +20,7 @@
Date: Thu, 11 Dec 2025 13:37:47 +0100 Subject: [PATCH 03/21] refactor: restructure all main component structure to match Figma design (pending styling) --- src/components/Admin/Categories.svelte | 0 src/components/Admin/Contributions.svelte | 18 +++++++++++++++--- src/components/Admin/ExportCsv.svelte | 0 src/components/Admin/FiltersTags.svelte | 23 +++++++++++++++++++++++ 4 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 src/components/Admin/Categories.svelte create mode 100644 src/components/Admin/ExportCsv.svelte create mode 100644 src/components/Admin/FiltersTags.svelte diff --git a/src/components/Admin/Categories.svelte b/src/components/Admin/Categories.svelte new file mode 100644 index 00000000..e69de29b diff --git a/src/components/Admin/Contributions.svelte b/src/components/Admin/Contributions.svelte index db2f4e53..0131ba3f 100644 --- a/src/components/Admin/Contributions.svelte +++ b/src/components/Admin/Contributions.svelte @@ -2,6 +2,10 @@ import Slider from "./Slider.svelte"; import Filters from "./Filters.svelte"; import Table from "./Table.svelte"; + import Categories from "./Categories.svelte"; + import FiltersTags from "./FiltersTags.svelte"; + import { t } from "../../i18n/store"; + import ExportCsv from "./ExportCsv.svelte"; /* TODO: Add data to slider and set locales */ const slides = [ @@ -25,7 +29,15 @@ filters = { ...filters, ...newFilters }; } - - - +
+ +
+
+ + +
+ + +
+
diff --git a/src/components/Admin/ExportCsv.svelte b/src/components/Admin/ExportCsv.svelte new file mode 100644 index 00000000..e69de29b diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte new file mode 100644 index 00000000..91946555 --- /dev/null +++ b/src/components/Admin/FiltersTags.svelte @@ -0,0 +1,23 @@ + + +
+

+ {title} +

+
+ {#each tags as tag} + + {tag} + + + {/each} +
+
\ No newline at end of file From 26daec52ec6fb74b7d85c558418c049ed40a89eb Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Thu, 11 Dec 2025 14:48:24 +0100 Subject: [PATCH 04/21] feat: give svg classes prop for override --- src/svgs/CloseIcon.svelte | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/svgs/CloseIcon.svelte b/src/svgs/CloseIcon.svelte index 3b65d452..5f762a50 100644 --- a/src/svgs/CloseIcon.svelte +++ b/src/svgs/CloseIcon.svelte @@ -1,4 +1,14 @@ - + import type { ClassNameValue } from "tailwind-merge"; + + interface Props { + class?: ClassNameValue; + } + + let { class: classes }: Props = $props(); + + + From d378bd48be4927c921dae7f267062d9c310bd871 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Thu, 11 Dec 2025 14:49:02 +0100 Subject: [PATCH 05/21] feat: add new i18n key for lastContributions --- src/i18n/locales/es.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index e85d0fd6..f953196f 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -882,6 +882,9 @@ "totalPaid": "Total pagado:", "totalUnpaid": "Falta por pagar:" } + }, + "charges": { + "lastContributions": "Últimos aportes:" } }, "footer": { From fe4cee9f26caa459d5f6202d1afcaa509ce582ac Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Thu, 11 Dec 2025 14:50:47 +0100 Subject: [PATCH 06/21] feat: start implementing a way to print all tags and their values --- src/components/Admin/Contributions.svelte | 2 +- src/components/Admin/FiltersTags.svelte | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/components/Admin/Contributions.svelte b/src/components/Admin/Contributions.svelte index 0131ba3f..2fd06124 100644 --- a/src/components/Admin/Contributions.svelte +++ b/src/components/Admin/Contributions.svelte @@ -33,7 +33,7 @@
- +
diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index 91946555..46543856 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -2,22 +2,30 @@ import CloseIcon from "../../svgs/CloseIcon.svelte"; import Tag from "../library/Tag.svelte"; - let { title, tags } = $props<{ + let { title, filters } = $props<{ title: string; - tags?: any; + filters?: any; }>(); + + let tags: { title: string; value: string }[] | undefined = $state(undefined); + + $effect(() => { + tags = Object.keys(filters).map((filter: string) => { + return { title: filter, value: filters[filter] }; + }); + });
-

+

{title}

-
+ {#if tags} {#each tags as tag} {tag} {/each} -
-
\ No newline at end of file + {/if} +
From d641d6c8796921a7901b02e060f97eec4c43d1e6 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Thu, 11 Dec 2025 19:42:04 +0100 Subject: [PATCH 07/21] refactor: transform objects "from" and "to" into one unified object named "date" --- src/components/Admin/Contributions.svelte | 10 ++++++---- src/components/Admin/Filters.svelte | 14 ++++++++------ src/components/Admin/Table.svelte | 11 +++++------ 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/components/Admin/Contributions.svelte b/src/components/Admin/Contributions.svelte index 2fd06124..ffa39be5 100644 --- a/src/components/Admin/Contributions.svelte +++ b/src/components/Admin/Contributions.svelte @@ -20,8 +20,7 @@ paymentMethod: "", chargeStatus: "", rangeAmount: "", - from: undefined, - to: undefined, + date: { from: undefined, to: undefined }, target: undefined, }); @@ -29,14 +28,17 @@ filters = { ...filters, ...newFilters }; } +
- + +
- + +
diff --git a/src/components/Admin/Filters.svelte b/src/components/Admin/Filters.svelte index 85a8ad43..d90fb278 100644 --- a/src/components/Admin/Filters.svelte +++ b/src/components/Admin/Filters.svelte @@ -58,12 +58,14 @@ paymentMethod: selectedPaymentMethod, chargeStatus: selectedChargeStatus, rangeAmount: selectedRangeAmount, - from: dateFrom - ? new Date(new Date(dateFrom).getTime() - 24 * 60 * 60 * 1000).toISOString() - : undefined, - to: dateTo - ? new Date(new Date(dateTo).getTime() + 24 * 60 * 60 * 1000).toISOString() - : undefined, + date: { + from: dateFrom + ? new Date(new Date(dateFrom).getTime() - 24 * 60 * 60 * 1000).toISOString() + : undefined, + to: dateTo + ? new Date(new Date(dateTo).getTime() + 24 * 60 * 60 * 1000).toISOString() + : undefined, + }, }); } diff --git a/src/components/Admin/Table.svelte b/src/components/Admin/Table.svelte index 1e547b68..5d21efac 100644 --- a/src/components/Admin/Table.svelte +++ b/src/components/Admin/Table.svelte @@ -209,8 +209,7 @@ async function loadCharges(filters: { chargeStatus: string; rangeAmount: string; - from?: string; - to?: string; + date?: { from?: string, to?: string }; paymentMethod: string; target?: string; }) { @@ -272,8 +271,8 @@ (filters.rangeAmount.includes("..") ? { "money.amount[between]": filters.rangeAmount } : { "money.amount[gte]": filters.rangeAmount })), - ...(filters.from && { "dateCreated[strictly_after]": filters.from }), - ...(filters.to && { "dateCreated[strictly_before]": filters.to }), + ...(filters.date?.from && { "dateCreated[strictly_after]": filters.date?.from }), + ...(filters.date?.to && { "dateCreated[strictly_before]": filters.date?.to }), ...(filters.paymentMethod && filters.paymentMethod !== "all" && { "checkout.gateway": `/v4/gateways/${filters.paymentMethod}`, @@ -499,9 +498,9 @@ }>(); $effect(() => { - const { chargeStatus, rangeAmount, from, to, paymentMethod, target } = filters; + const { chargeStatus, rangeAmount, date, paymentMethod, target } = filters; charges = []; - loadCharges({ chargeStatus, rangeAmount, from, to, paymentMethod, target }); + loadCharges({ chargeStatus, rangeAmount, date, paymentMethod, target }); }); From 6a22fe7e9f31229db6a5aa13a6034bb206a17533 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Thu, 11 Dec 2025 20:02:26 +0100 Subject: [PATCH 08/21] feat: implement tags filter to get only the filters that had been used --- src/components/Admin/FiltersTags.svelte | 42 ++++++++++++++++++------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index 46543856..5eac586e 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -1,18 +1,33 @@ @@ -20,12 +35,17 @@

{title}

- {#if tags} - {#each tags as tag} - - {tag} + + {#each tags as tag} + + {#if tag.title === "date"} + {`${tag.values?.from} - ${tag.values?.to}`} + {:else} + {tag.value} + {/if} + + + {/each} From 66dea5fae786bd36c6bee9f72d2fbc4eca1edcc5 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Fri, 12 Dec 2025 16:53:26 +0100 Subject: [PATCH 09/21] feat: use toLocaleDateString to transform date value into the correct one and start using CollectionData.query --- src/components/Admin/FiltersTags.svelte | 69 ++++++++++++++++++------- 1 file changed, 50 insertions(+), 19 deletions(-) diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index 5eac586e..0f4b586b 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -1,33 +1,64 @@ @@ -38,8 +69,8 @@ {#each tags as tag} - {#if tag.title === "date"} - {`${tag.values?.from} - ${tag.values?.to}`} + {#if tag.values} + {`${tag.values.from} - ${tag.values.to}`} {:else} {tag.value} {/if} From 6c127356144dc41982ff8b3d002802d7902deca8 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Mon, 15 Dec 2025 10:51:16 +0100 Subject: [PATCH 10/21] feat: start implementing close button functionality to delete the close filter for the results table --- src/components/Admin/Contributions.svelte | 2 +- src/components/Admin/FiltersTags.svelte | 25 ++++++++++++----------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/components/Admin/Contributions.svelte b/src/components/Admin/Contributions.svelte index ffa39be5..3a9e3a82 100644 --- a/src/components/Admin/Contributions.svelte +++ b/src/components/Admin/Contributions.svelte @@ -33,7 +33,7 @@
- +
diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index 0f4b586b..5aa99547 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -5,18 +5,21 @@ import type { Locale } from "../../i18n/locales"; import { t } from "../../i18n/store"; import { apiGatewayChargesGetCollection } from "../../openapi/client"; - import type { GatewayCharge } from "../../openapi/client"; - let { title, filters } = $props<{ + let { title, filters, onCloseFilter } = $props<{ title: string; filters?: any; + onCloseFilter: (filters: any) => void; }>(); type FilterTags = { title: string; value?: string; values?: { from: string; to: string } }[]; let tags: FilterTags | undefined = $state(undefined); - function closeTag() {} + function closeTag(filter: any, index: number) { + filter.value = ""; + onCloseFilter(filter); + } function formatTags(tags: FilterTags, locale?: Locale) { if (tags === undefined) return; @@ -37,24 +40,22 @@ return tags; } - $effect(async (): Promise => { - const { data: charges, error: chargesError } = await apiGatewayChargesGetCollection({ + $effect(() => { + const { data: charges, error: chargesError } = apiGatewayChargesGetCollection({ query: { - + ...filters, }, }); tags = formatTags( Object.keys(filters) .map((filter: string) => { - if (filter === "date") return { title: filter, values: { ...filters[filter] } }; else return { title: filter, value: filters[filter] }; }) .filter((filter) => { - if (filter.values) - return filter.values.from !== undefined || filter.values.to !== undefined; - else if (filter.title === "target") return filter.value !== undefined; + if (filter.value === undefined || filter.values) + return filter.value !== undefined; else return filter.value !== ""; }), $locale, @@ -67,14 +68,14 @@ {title} - {#each tags as tag} + {#each tags as tag, i} {#if tag.values} {`${tag.values.from} - ${tag.values.to}`} {:else} {tag.value} {/if} - From ef695777a2192d4831e9cc08acdd2700fb04dfac Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Mon, 15 Dec 2025 13:20:39 +0100 Subject: [PATCH 11/21] refactor: use ApiGatewayChargesGetCollectionData type to enhance filters naming and types --- src/components/Admin/Contributions.svelte | 13 ++---- src/components/Admin/Filters.svelte | 57 +++++++++++++++-------- src/components/Admin/Table.svelte | 27 ++++------- 3 files changed, 52 insertions(+), 45 deletions(-) diff --git a/src/components/Admin/Contributions.svelte b/src/components/Admin/Contributions.svelte index 3a9e3a82..c4e2d5b5 100644 --- a/src/components/Admin/Contributions.svelte +++ b/src/components/Admin/Contributions.svelte @@ -1,4 +1,4 @@ - diff --git a/src/components/Admin/Filters.svelte b/src/components/Admin/Filters.svelte index d90fb278..88ec60f1 100644 --- a/src/components/Admin/Filters.svelte +++ b/src/components/Admin/Filters.svelte @@ -54,18 +54,41 @@ alert($t("contributions.filters.dateRange.errors.invalidRange")); return; } + + const queryParams: Record = {}; + + if (selectedChargeStatus && selectedChargeStatus !== "all") { + queryParams.status = selectedChargeStatus; + } + + if (selectedRangeAmount && selectedRangeAmount !== "all") { + if (selectedRangeAmount.includes("..")) { + queryParams["money.amount[between]"] = selectedRangeAmount; + } else { + queryParams["money.amount[gte]"] = selectedRangeAmount; + } + } + + if (dateFrom) { + const fromDate = new Date(new Date(dateFrom).getTime()).toISOString(); + queryParams["dateCreated[strictly_after]"] = fromDate; + } + + if (dateTo) { + const toDate = new Date(new Date(dateTo).getTime()).toISOString(); + queryParams["dateCreated[strictly_before]"] = toDate; + } + + if (selectedPaymentMethod && selectedPaymentMethod !== "all") { + queryParams["checkout.gateway"] = `/v4/gateways/${selectedPaymentMethod}`; + } + + if (currentTarget) { + queryParams.target = currentTarget; + } + onApplyFilters({ - paymentMethod: selectedPaymentMethod, - chargeStatus: selectedChargeStatus, - rangeAmount: selectedRangeAmount, - date: { - from: dateFrom - ? new Date(new Date(dateFrom).getTime() - 24 * 60 * 60 * 1000).toISOString() - : undefined, - to: dateTo - ? new Date(new Date(dateTo).getTime() + 24 * 60 * 60 * 1000).toISOString() - : undefined, - }, + ...queryParams }); } @@ -96,17 +119,13 @@ } if (dateFrom) { - const fromDate = new Date( - new Date(dateFrom).getTime() - 24 * 60 * 60 * 1000, - ).toISOString(); + const fromDate = new Date(new Date(dateFrom).getTime()).toISOString(); queryParams["dateCreated[strictly_after]"] = fromDate; filenameParams.from = dateFrom; } if (dateTo) { - const toDate = new Date( - new Date(dateTo).getTime() + 24 * 60 * 60 * 1000, - ).toISOString(); + const toDate = new Date(new Date(dateTo).getTime()).toISOString(); queryParams["dateCreated[strictly_before]"] = toDate; filenameParams.to = dateTo; } @@ -129,8 +148,8 @@ while (hasMoreData) { const pageQueryParams = { ...queryParams, - itemsPerPage: "50", - page: currentPage.toString(), + itemsPerPage: 50, + page: currentPage, }; const pageResponse = await apiGatewayChargesGetCollection({ diff --git a/src/components/Admin/Table.svelte b/src/components/Admin/Table.svelte index 5d21efac..0cf9b7f7 100644 --- a/src/components/Admin/Table.svelte +++ b/src/components/Admin/Table.svelte @@ -29,6 +29,7 @@ Accounting, ApiProjectsIdOrSlugGetData, ApiUsersIdGetData, + ApiGatewayChargesGetCollectionData, } from "../../../src/openapi/client/index.ts"; import DetailsRow from "./DetailsRow.svelte"; import { client } from "../../openapi/client/client.gen.ts"; @@ -207,10 +208,11 @@ } async function loadCharges(filters: { - chargeStatus: string; - rangeAmount: string; - date?: { from?: string, to?: string }; paymentMethod: string; + chargeStatus: string; + rangeAmount?: string; + dateFrom?: string; + dateTo?: string; target?: string; }) { const current = Number(itemsPerPage); @@ -271,8 +273,8 @@ (filters.rangeAmount.includes("..") ? { "money.amount[between]": filters.rangeAmount } : { "money.amount[gte]": filters.rangeAmount })), - ...(filters.date?.from && { "dateCreated[strictly_after]": filters.date?.from }), - ...(filters.date?.to && { "dateCreated[strictly_before]": filters.date?.to }), + ...(filters.dateFrom && { "dateCreated[strictly_after]": filters.dateFrom }), + ...(filters.dateTo && { "dateCreated[strictly_before]": filters.dateTo }), ...(filters.paymentMethod && filters.paymentMethod !== "all" && { "checkout.gateway": `/v4/gateways/${filters.paymentMethod}`, @@ -486,21 +488,12 @@ }; } - let { filters } = $props<{ - filters: { - paymentMethod: string; - chargeStatus: string; - rangeAmount: string; - from?: string; - to?: string; - target?: string; - }; - }>(); + let { filters } = $props(); $effect(() => { - const { chargeStatus, rangeAmount, date, paymentMethod, target } = filters; + const { paymentMethod, chargeStatus, rangeAmount, dateFrom, dateTo, target } = filters; charges = []; - loadCharges({ chargeStatus, rangeAmount, date, paymentMethod, target }); + loadCharges({ paymentMethod, chargeStatus, rangeAmount, dateFrom, dateTo, target }); }); From f9d127f99eaae1243e71fe66375aa1d60d8ca508 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Mon, 15 Dec 2025 14:32:35 +0100 Subject: [PATCH 12/21] feat: update chargesStates filter states matching with new API modification --- src/i18n/locales/es.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index f953196f..0a81bc12 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -714,10 +714,12 @@ "title": "Estado de Aporte", "options": { "all": "Todos", - "in_pending": "Pendiente", - "charged": "Cobrado", + "to_charge": "Por cobrar", + "in_charge": "Cobrando", "to_refund": "Por reembolsar", - "refunded": "Reembolsado" + "refunded": "Reembolsado", + "to_wallet": "Por reembolsar a monedero", + "walleted": "Reembolsado a monedero" } }, "projectStatus": { From 709d6753ed847b4877a63b7b242446afd035240e Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Mon, 15 Dec 2025 14:35:16 +0100 Subject: [PATCH 13/21] fix: remove unused states having pending traductions for crowdin --- src/i18n/locales/ca.json | 2 -- src/i18n/locales/en.json | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 7f4419c4..fb66077b 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -718,8 +718,6 @@ "title": "Estat de l'aportació", "options": { "all": "Tots", - "in_pending": "Pendent", - "charged": "Cobrat", "to_refund": "Per reemborsar", "refunded": "Reemborsat" } diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 166f6e98..195dfabc 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -710,8 +710,6 @@ "title": "Charge status", "options": { "all": "All", - "in_pending": "Pending", - "charged": "Charged", "to_refund": "To be refunded", "refunded": "Refunded" } From 5f52be51ece92e59a8a919dbd4d680021f104a63 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Mon, 15 Dec 2025 14:52:37 +0100 Subject: [PATCH 14/21] fix: refactor the way that object date is created due to the new typing/naming of filters object --- src/components/Admin/Contributions.svelte | 2 +- src/components/Admin/FiltersTags.svelte | 34 ++++++++++++++--------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/components/Admin/Contributions.svelte b/src/components/Admin/Contributions.svelte index c4e2d5b5..d5540113 100644 --- a/src/components/Admin/Contributions.svelte +++ b/src/components/Admin/Contributions.svelte @@ -25,7 +25,7 @@
- +
diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index 5aa99547..03848728 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -4,28 +4,30 @@ import { locale } from "../../i18n/store"; import type { Locale } from "../../i18n/locales"; import { t } from "../../i18n/store"; - import { apiGatewayChargesGetCollection } from "../../openapi/client"; + import type { ApiGatewayChargesGetCollectionData } from "../../openapi/client"; let { title, filters, onCloseFilter } = $props<{ title: string; - filters?: any; - onCloseFilter: (filters: any) => void; + filters: ApiGatewayChargesGetCollectionData["query"]; + onCloseFilter: (filters: ApiGatewayChargesGetCollectionData["query"]) => void; }>(); - type FilterTags = { title: string; value?: string; values?: { from: string; to: string } }[]; + type FilterTags = { title: string; value?: string; values?: { from?: string; to?: string } }[]; let tags: FilterTags | undefined = $state(undefined); + let isVisible = $state(true); function closeTag(filter: any, index: number) { filter.value = ""; onCloseFilter(filter); + isVisible = false; } function formatTags(tags: FilterTags, locale?: Locale) { if (tags === undefined) return; tags.forEach((tag) => { if (tag.title === "rangeAmount") { - } else if (tag.values) { + } else if (tag.values?.from && tag.values?.to) { const options: Intl.DateTimeFormatOptions = { day: "2-digit", month: "short", @@ -41,17 +43,23 @@ } $effect(() => { - const { data: charges, error: chargesError } = apiGatewayChargesGetCollection({ - query: { - ...filters, - }, - }); + if (filters["dateCreated[after]"] || filters["dateCreated[before]"]) { + let date = { from: filters["dateCreated[after]"], to: filters["dateCreated[before]"] }; + let indexDateFrom = filters.indexOf("dateCreated[after]"); + let indexDateTo = filters.indexOf("dateCreated[before]"); + + filters.push(date); + filters.splice(indexDateFrom, 1); + filters.splice(indexDateTo, 1); + } tags = formatTags( Object.keys(filters) - .map((filter: string) => { - if (filter === "date") return { title: filter, values: { ...filters[filter] } }; - else return { title: filter, value: filters[filter] }; + .map((filter) => { + let filterType: keyof ApiGatewayChargesGetCollectionData[`query`]; + if (typeof filterType) { + return { title: filter, values: { ...filters[filter] } }; + } else return { title: filter, value: filters[filter] }; }) .filter((filter) => { if (filter.value === undefined || filter.values) From 0ab2ede7c138ed47b2ad62e802b5ffb1723fddb8 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Mon, 15 Dec 2025 19:17:17 +0100 Subject: [PATCH 15/21] fix: simplify handleSubmit function in Filters component and start implementing a way to save an object with both createDates --- src/components/Admin/Filters.svelte | 38 ++++--------------------- src/components/Admin/FiltersTags.svelte | 31 ++++++++++---------- 2 files changed, 20 insertions(+), 49 deletions(-) diff --git a/src/components/Admin/Filters.svelte b/src/components/Admin/Filters.svelte index 88ec60f1..c0066c97 100644 --- a/src/components/Admin/Filters.svelte +++ b/src/components/Admin/Filters.svelte @@ -55,40 +55,12 @@ return; } - const queryParams: Record = {}; - - if (selectedChargeStatus && selectedChargeStatus !== "all") { - queryParams.status = selectedChargeStatus; - } - - if (selectedRangeAmount && selectedRangeAmount !== "all") { - if (selectedRangeAmount.includes("..")) { - queryParams["money.amount[between]"] = selectedRangeAmount; - } else { - queryParams["money.amount[gte]"] = selectedRangeAmount; - } - } - - if (dateFrom) { - const fromDate = new Date(new Date(dateFrom).getTime()).toISOString(); - queryParams["dateCreated[strictly_after]"] = fromDate; - } - - if (dateTo) { - const toDate = new Date(new Date(dateTo).getTime()).toISOString(); - queryParams["dateCreated[strictly_before]"] = toDate; - } - - if (selectedPaymentMethod && selectedPaymentMethod !== "all") { - queryParams["checkout.gateway"] = `/v4/gateways/${selectedPaymentMethod}`; - } - - if (currentTarget) { - queryParams.target = currentTarget; - } - onApplyFilters({ - ...queryParams + "checkout.gateway": selectedPaymentMethod, + status: selectedChargeStatus, + 'money.amount[gte]': selectedRangeAmount, + 'dateCreated[after]': dateFrom ? new Date(new Date(dateFrom).getTime()).toISOString() : undefined, + 'dateCreated[before]': dateTo ? new Date(new Date(dateTo).getTime()).toISOString() : undefined, }); } diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index 03848728..3b87e2c4 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -26,8 +26,7 @@ function formatTags(tags: FilterTags, locale?: Locale) { if (tags === undefined) return; tags.forEach((tag) => { - if (tag.title === "rangeAmount") { - } else if (tag.values?.from && tag.values?.to) { + if (tag.values?.from && tag.values?.to) { const options: Intl.DateTimeFormatOptions = { day: "2-digit", month: "short", @@ -43,26 +42,26 @@ } $effect(() => { - if (filters["dateCreated[after]"] || filters["dateCreated[before]"]) { - let date = { from: filters["dateCreated[after]"], to: filters["dateCreated[before]"] }; - let indexDateFrom = filters.indexOf("dateCreated[after]"); - let indexDateTo = filters.indexOf("dateCreated[before]"); - - filters.push(date); - filters.splice(indexDateFrom, 1); - filters.splice(indexDateTo, 1); - } - tags = formatTags( Object.keys(filters) - .map((filter) => { - let filterType: keyof ApiGatewayChargesGetCollectionData[`query`]; - if (typeof filterType) { + .map((filter) => { + if (filters["dateCreated[after]"] && filters["dateCreated[before]"]) { + let filtersArr: (string | { from: string; to: string })[] = Object.keys(filters); + let date = { from: filters["dateCreated[after]"], to: filters["dateCreated[before]"] }; + + let indexDateFrom = filtersArr.indexOf("dateCreated[after]"); + let indexDateTo = filtersArr.indexOf("dateCreated[before]"); + + filtersArr.push(date); + filtersArr.splice(indexDateFrom, 1); + filtersArr.splice(indexDateTo, 1); + return { title: filter, values: { ...filters[filter] } }; } else return { title: filter, value: filters[filter] }; }) .filter((filter) => { - if (filter.value === undefined || filter.values) + if (filter.values.from && filter.values.to) return filter.values.from !== undefined || filter.values.to !== undefined; + if (filter.value === undefined) return filter.value !== undefined; else return filter.value !== ""; }), From 7f5b89a2d519a2afec5157f1a05653d3b412bfd8 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Wed, 17 Dec 2025 18:01:45 +0100 Subject: [PATCH 16/21] feat: link filters with $effect to update the state on close Tag --- src/components/Admin/Contributions.svelte | 4 +-- src/components/Admin/Filters.svelte | 32 +++++++++++++++++------ 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/components/Admin/Contributions.svelte b/src/components/Admin/Contributions.svelte index d5540113..ca117808 100644 --- a/src/components/Admin/Contributions.svelte +++ b/src/components/Admin/Contributions.svelte @@ -25,11 +25,11 @@
- +
- +
diff --git a/src/components/Admin/Filters.svelte b/src/components/Admin/Filters.svelte index c0066c97..1ab27d13 100644 --- a/src/components/Admin/Filters.svelte +++ b/src/components/Admin/Filters.svelte @@ -3,11 +3,12 @@ import ActiveFilterIcon from "../../svgs/ActiveFilterIcon.svelte"; import Search from "./Search.svelte"; import { apiGatewaysGetCollection } from "../../openapi/client/index"; - import { apiGatewayChargesGetCollection } from "../../openapi/client/index"; + import { apiGatewayChargesGetCollection, type ApiGatewayChargesGetCollectionData } from "../../openapi/client/index"; import { t } from "../../i18n/store"; import { onMount } from "svelte"; - let { onApplyFilters, currentTarget } = $props<{ + let { filters, onApplyFilters, currentTarget } = $props<{ + filters: ApiGatewayChargesGetCollectionData["query"]; onApplyFilters: (filters: any) => void; currentTarget?: string; }>(); @@ -56,11 +57,16 @@ } onApplyFilters({ - "checkout.gateway": selectedPaymentMethod, - status: selectedChargeStatus, - 'money.amount[gte]': selectedRangeAmount, - 'dateCreated[after]': dateFrom ? new Date(new Date(dateFrom).getTime()).toISOString() : undefined, - 'dateCreated[before]': dateTo ? new Date(new Date(dateTo).getTime()).toISOString() : undefined, + ...filters, + "checkout.gateway": selectedPaymentMethod || undefined, + status: selectedChargeStatus || undefined, + "money.amount[gte]": selectedRangeAmount || undefined, + "dateCreated[after]": dateFrom + ? new Date(new Date(dateFrom).getTime()).toISOString() + : undefined, + "dateCreated[before]": dateTo + ? new Date(new Date(dateTo).getTime()).toISOString() + : undefined, }); } @@ -201,6 +207,16 @@ isExporting = false; } } + + $effect(() => { + selectedPaymentMethod = filters["checkout.gateway"] ?? ""; + selectedChargeStatus = filters.status ?? ""; + selectedRangeAmount = filters["money.amount[gte]"] ?? ""; + + dateFrom = filters["dateCreated[after]"] ? filters["dateCreated[after]"] : ""; + + dateTo = filters["dateCreated[before]"] ? filters["dateCreated[before]"] : ""; + });
- {#if selectedPaymentMethod || selectedChargeStatus || selectedRangeAmount || dateFrom || dateTo} + {#if selectedPaymentMethod !== "" || selectedChargeStatus !== "" || selectedRangeAmount !== "" || dateFrom !== "" || dateTo !== ""} From 0fa3e965846bd8d32a203bada008ee282bbd4621 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Wed, 17 Dec 2025 18:04:15 +0100 Subject: [PATCH 17/21] feat: implement all correct functionality of FiltersTags (missing correct screen print for money.amount[between]) --- src/components/Admin/FiltersTags.svelte | 95 +++++++++++++++++-------- 1 file changed, 64 insertions(+), 31 deletions(-) diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index 3b87e2c4..c96c891e 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -12,20 +12,33 @@ onCloseFilter: (filters: ApiGatewayChargesGetCollectionData["query"]) => void; }>(); - type FilterTags = { title: string; value?: string; values?: { from?: string; to?: string } }[]; + type FilterTag = { title: string; value?: string; values?: { from?: string; to?: string } }; + type FilterTags = FilterTag[]; let tags: FilterTags | undefined = $state(undefined); - let isVisible = $state(true); + let dateTag: FilterTag | undefined = $state(undefined); - function closeTag(filter: any, index: number) { - filter.value = ""; - onCloseFilter(filter); - isVisible = false; + function closeTag(tag: FilterTag) { + if (tag.values?.from && tag.values?.to) { + onCloseFilter({ + ...filters, + ["dateCreated[after]"]: undefined, + ["dateCreated[before]"]: undefined, + }); + + dateTag = undefined; + } else { + onCloseFilter({ + ...filters, + [tag.title]: undefined, + }); + } } function formatTags(tags: FilterTags, locale?: Locale) { if (tags === undefined) return; - tags.forEach((tag) => { + + tags.map((tag) => { if (tag.values?.from && tag.values?.to) { const options: Intl.DateTimeFormatOptions = { day: "2-digit", @@ -35,38 +48,58 @@ tag.values.from = new Date(tag.values.from).toLocaleDateString(locale, options); tag.values.to = new Date(tag.values.to).toLocaleDateString(locale, options); - } else tag.value = $t(`contributions.filters.${tag.title}.options.${tag.value}`); + } + + if (tag.title === "checkout.gateway") { + tag.value = $t(`contributions.filters.paymentMethod.options.${tag.value}`); + } + + if (tag.title === "status") { + tag.value = $t(`contributions.filters.chargeStatus.options.${tag.value}`); + } + + if (tag.title === "money.amount[between]") { + } + + if (tag.title === "money.amount[gte]") + tag.value = $t(`contributions.filters.rangeAmount.options.${tag.value}`); }); return tags; } $effect(() => { - tags = formatTags( - Object.keys(filters) - .map((filter) => { - if (filters["dateCreated[after]"] && filters["dateCreated[before]"]) { - let filtersArr: (string | { from: string; to: string })[] = Object.keys(filters); - let date = { from: filters["dateCreated[after]"], to: filters["dateCreated[before]"] }; - - let indexDateFrom = filtersArr.indexOf("dateCreated[after]"); - let indexDateTo = filtersArr.indexOf("dateCreated[before]"); - - filtersArr.push(date); - filtersArr.splice(indexDateFrom, 1); - filtersArr.splice(indexDateTo, 1); + if (filters !== undefined) { + let dateFrom = "dateCreated[after]"; + let dateTo = "dateCreated[before]"; - return { title: filter, values: { ...filters[filter] } }; - } else return { title: filter, value: filters[filter] }; + let normalTags: FilterTags | undefined = Object.keys(filters) + .map((filter) => { + if (filter === dateFrom || filter === dateTo) return { title: filter }; + else return { title: filter, value: filters[filter] }; }) .filter((filter) => { - if (filter.values.from && filter.values.to) return filter.values.from !== undefined || filter.values.to !== undefined; - if (filter.value === undefined) - return filter.value !== undefined; + if (filter.title === dateFrom || filter.title === dateTo) return false; + if (filter.value === undefined) return filter.value !== undefined; + if (filter.value === "all") return false; else return filter.value !== ""; - }), - $locale, - ); + }); + + if (filters[dateFrom] !== "" && filters[dateTo] !== "" && typeof filters[dateFrom] !== "undefined" && typeof filters[dateTo] !== "undefined") { + dateTag = { + title: "date", + values: { + from: filters[dateFrom], + to: filters[dateTo], + }, + }; + + normalTags = [...normalTags, dateTag]; + } + + console.log(normalTags); + tags = formatTags([...normalTags], $locale); + } }); @@ -75,14 +108,14 @@ {title} - {#each tags as tag, i} + {#each tags as tag} {#if tag.values} {`${tag.values.from} - ${tag.values.to}`} {:else} {tag.value} {/if} - From be8bac0e16a4f3dc854a71441ee3a29d8c9b48a2 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Wed, 17 Dec 2025 18:33:25 +0100 Subject: [PATCH 18/21] fix: format by prettier --- src/components/Admin/Contributions.svelte | 6 +++++- src/components/Admin/Filters.svelte | 5 ++++- src/components/Admin/FiltersTags.svelte | 7 ++++++- src/components/library/Tag.svelte | 2 +- src/svgs/CloseIcon.svelte | 8 ++++++-- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/components/Admin/Contributions.svelte b/src/components/Admin/Contributions.svelte index ca117808..d8485f33 100644 --- a/src/components/Admin/Contributions.svelte +++ b/src/components/Admin/Contributions.svelte @@ -28,7 +28,11 @@
- +
diff --git a/src/components/Admin/Filters.svelte b/src/components/Admin/Filters.svelte index 0635eeac..181b143c 100644 --- a/src/components/Admin/Filters.svelte +++ b/src/components/Admin/Filters.svelte @@ -3,7 +3,10 @@ import ActiveFilterIcon from "../../svgs/ActiveFilterIcon.svelte"; import Search from "./Search.svelte"; import { apiGatewaysGetCollection } from "../../openapi/client/index"; - import { apiGatewayChargesGetCollection, type ApiGatewayChargesGetCollectionData } from "../../openapi/client/index"; + import { + apiGatewayChargesGetCollection, + type ApiGatewayChargesGetCollectionData, + } from "../../openapi/client/index"; import { t } from "../../i18n/store"; import { onMount } from "svelte"; diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index c96c891e..b327f60e 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -85,7 +85,12 @@ else return filter.value !== ""; }); - if (filters[dateFrom] !== "" && filters[dateTo] !== "" && typeof filters[dateFrom] !== "undefined" && typeof filters[dateTo] !== "undefined") { + if ( + filters[dateFrom] !== "" && + filters[dateTo] !== "" && + typeof filters[dateFrom] !== "undefined" && + typeof filters[dateTo] !== "undefined" + ) { dateTag = { title: "date", values: { diff --git a/src/components/library/Tag.svelte b/src/components/library/Tag.svelte index 44107474..3e45dab2 100644 --- a/src/components/library/Tag.svelte +++ b/src/components/library/Tag.svelte @@ -20,7 +20,7 @@
- From 030492eca53c18f46ebfe6c0b7f7b181da9ca138 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Thu, 18 Dec 2025 12:54:09 +0100 Subject: [PATCH 19/21] feat: add dates util to store the formatDate function that was declared in every component --- src/components/Admin/FiltersTags.svelte | 13 ++++------ .../project/ProjectUpdateCard.svelte | 24 ++++++++----------- src/utils/dates.ts | 11 +++++++++ 3 files changed, 25 insertions(+), 23 deletions(-) create mode 100644 src/utils/dates.ts diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index b327f60e..7bf73047 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -5,6 +5,7 @@ import type { Locale } from "../../i18n/locales"; import { t } from "../../i18n/store"; import type { ApiGatewayChargesGetCollectionData } from "../../openapi/client"; + import { formatDate } from "../../utils/dates"; let { title, filters, onCloseFilter } = $props<{ title: string; @@ -35,19 +36,13 @@ } } - function formatTags(tags: FilterTags, locale?: Locale) { + function formatTags(tags: FilterTags, locale: Locale) { if (tags === undefined) return; tags.map((tag) => { if (tag.values?.from && tag.values?.to) { - const options: Intl.DateTimeFormatOptions = { - day: "2-digit", - month: "short", - year: "numeric", - }; - - tag.values.from = new Date(tag.values.from).toLocaleDateString(locale, options); - tag.values.to = new Date(tag.values.to).toLocaleDateString(locale, options); + tag.values.from = formatDate(new Date(tag.values.from), locale); + tag.values.to = formatDate(new Date(tag.values.to), locale); } if (tag.title === "checkout.gateway") { diff --git a/src/components/project/ProjectUpdateCard.svelte b/src/components/project/ProjectUpdateCard.svelte index 66fb06ba..c4344b36 100644 --- a/src/components/project/ProjectUpdateCard.svelte +++ b/src/components/project/ProjectUpdateCard.svelte @@ -9,6 +9,8 @@ import { onMount } from "svelte"; import type { User } from "../../openapi/client/types.gen.ts"; import { extractId } from "../../utils/extractId.ts"; + import { locale } from "../../i18n/store"; + import { formatDate } from "../../utils/dates.ts"; interface Props { update: ProjectUpdate; @@ -22,16 +24,6 @@ let cardClasses = $state(""); let author: User | undefined = $state(undefined); - function formatDate(date: string, locale?: string): string { - const options: Intl.DateTimeFormatOptions = { - day: "2-digit", - month: "short", - year: "numeric", - }; - - return new Date(date).toLocaleDateString(locale, options); - } - async function getAuthor(update: ProjectUpdate): Promise { const authorId: string | null = extractId(update.author); if (!authorId) return undefined; @@ -61,13 +53,15 @@ {#if type === "small"}
- {formatDate(update.date ?? "")} + {#if update.date} + {formatDate(new Date(update.date), $locale)} + {/if}
@@ -80,7 +74,7 @@ {update.title}
- {formatDate(update.date ?? "")} + {#if update.date} + {formatDate(new Date(update.date), $locale)} + {/if}
diff --git a/src/utils/dates.ts b/src/utils/dates.ts new file mode 100644 index 00000000..cb5daf06 --- /dev/null +++ b/src/utils/dates.ts @@ -0,0 +1,11 @@ +import type { Locale } from "../i18n/locales"; + +export function formatDate(date: Date, locale: Locale) { + const options: Intl.DateTimeFormatOptions = { + day: "2-digit", + month: "short", + year: "numeric", + }; + + return date.toLocaleDateString(locale, options); +} From 655c0989b71f65ecb5916bc058dd13dbe04988a3 Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Thu, 18 Dec 2025 13:22:06 +0100 Subject: [PATCH 20/21] fix: wrong effects functionalities with selected filters + remove date useless state --- src/components/Admin/Filters.svelte | 12 ++++++------ src/components/Admin/FiltersTags.svelte | 23 ++++++++++------------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/components/Admin/Filters.svelte b/src/components/Admin/Filters.svelte index 181b143c..01844db8 100644 --- a/src/components/Admin/Filters.svelte +++ b/src/components/Admin/Filters.svelte @@ -212,13 +212,13 @@ } $effect(() => { - selectedPaymentMethod = filters["checkout.gateway"] ?? ""; - selectedChargeStatus = filters.status ?? ""; - selectedRangeAmount = filters["money.amount[gte]"] ?? ""; + if (typeof filters["checkout.gateway"] === "undefined") selectedPaymentMethod = ""; + if (typeof filters.status === "undefined") selectedChargeStatus = ""; + if (typeof filters["money.amount[gte]"] === "undefined") selectedRangeAmount = ""; + if (typeof filters["money.amount[between]"] === "undefined") selectedRangeAmount = ""; - dateFrom = filters["dateCreated[after]"] ? filters["dateCreated[after]"] : ""; - - dateTo = filters["dateCreated[before]"] ? filters["dateCreated[before]"] : ""; + if (typeof filters["dateCreated[after]"] === "undefined") dateFrom = ""; + if (typeof filters["dateCreated[before]"] === "undefined") dateTo = ""; }); diff --git a/src/components/Admin/FiltersTags.svelte b/src/components/Admin/FiltersTags.svelte index 7bf73047..852a215f 100644 --- a/src/components/Admin/FiltersTags.svelte +++ b/src/components/Admin/FiltersTags.svelte @@ -17,7 +17,6 @@ type FilterTags = FilterTag[]; let tags: FilterTags | undefined = $state(undefined); - let dateTag: FilterTag | undefined = $state(undefined); function closeTag(tag: FilterTag) { if (tag.values?.from && tag.values?.to) { @@ -26,8 +25,6 @@ ["dateCreated[after]"]: undefined, ["dateCreated[before]"]: undefined, }); - - dateTag = undefined; } else { onCloseFilter({ ...filters, @@ -86,18 +83,18 @@ typeof filters[dateFrom] !== "undefined" && typeof filters[dateTo] !== "undefined" ) { - dateTag = { - title: "date", - values: { - from: filters[dateFrom], - to: filters[dateTo], + normalTags = [ + ...normalTags, + { + title: "date", + values: { + from: filters[dateFrom], + to: filters[dateTo], + }, }, - }; - - normalTags = [...normalTags, dateTag]; + ]; } - console.log(normalTags); tags = formatTags([...normalTags], $locale); } }); @@ -115,7 +112,7 @@ {:else} {tag.value} {/if} - From cf84bbfd9ab2f62b65b2f5dc7d249e49d825e9cf Mon Sep 17 00:00:00 2001 From: Dayv1dDev Date: Fri, 19 Dec 2025 14:08:32 +0100 Subject: [PATCH 21/21] fix: in_charge translation and update contributions table rows status i18n keys --- src/i18n/locales/ca.json | 4 ++-- src/i18n/locales/en.json | 3 +-- src/i18n/locales/es.json | 10 ++++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 9f3eb566..a199f8dc 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -605,8 +605,7 @@ "wallet": "Moneder" }, "status": { - "in_pending": "Pendent", - "charged": "Cobrat", + "in_charge": "Cobrat", "to_refund": "Per reemborsar", "refunded": "Reemborsat" }, @@ -717,6 +716,7 @@ "title": "Estat de l'aportació", "options": { "all": "Tots", + "in_charge": "Cobrat", "to_refund": "Per reemborsar", "refunded": "Reemborsat" } diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 5885587f..e91018c9 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -597,8 +597,7 @@ "wallet": "Wallet" }, "status": { - "in_pending": "Pending", - "charged": "Charged", + "in_charge": "Charged", "to_refund": "To refund", "refunded": "Refunded" }, diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 3d9099c2..68e1ff52 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -601,10 +601,12 @@ "wallet": "Monedero" }, "status": { - "in_pending": "Pendiente", - "charged": "Cobrado", + "to_charge": "Por cobrar", + "in_charge": "Cobrado", "to_refund": "Por reembolsar", - "refunded": "Reembolsado" + "refunded": "Reembolsado", + "to_wallet": "Por reembolsar a monedero", + "walleted": "Reembolsado a monedero" }, "refund": { "to_wallet": "Sí", @@ -714,7 +716,7 @@ "options": { "all": "Todos", "to_charge": "Por cobrar", - "in_charge": "Cobrando", + "in_charge": "Cobrado", "to_refund": "Por reembolsar", "refunded": "Reembolsado", "to_wallet": "Por reembolsar a monedero",