taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 50e541e523255c4ba31d6b7a02412dc92376f299
parent 83e164e2304b2149aa861067833dfef871068437
Author: Sebastian <sebasjm@gmail.com>
Date:   Thu, 29 May 2025 12:29:55 -0300

fix #9875: adding forms

Diffstat:
Apackages/web-util/src/forms/gana/challenger_email.ts | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apackages/web-util/src/forms/gana/challenger_postal.ts | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apackages/web-util/src/forms/gana/challenger_sms.ts | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpackages/web-util/src/forms/index.ts | 3+++
4 files changed, 199 insertions(+), 0 deletions(-)

diff --git a/packages/web-util/src/forms/gana/challenger_email.ts b/packages/web-util/src/forms/gana/challenger_email.ts @@ -0,0 +1,60 @@ +/* + This file is part of GNU Taler + (C) 2025 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero Public License for more details. + + You should have received a copy of the GNU Affero Public License along with + GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + */ + +import { TalerFormAttributes } from "@gnu-taler/taler-util"; +import { format } from "date-fns"; +import { + DoubleColumnFormDesign, + FormMetadata, + InternationalizationAPI, +} from "../../index.browser.js"; + +export const form_generic_email = ( + i18n: InternationalizationAPI, +): FormMetadata => ({ + label: i18n.str`Challenger EMAIL`, + description: i18n.str`Challenge email ownership.`, + id: "challenger_email", + version: 1, + config: design_challenger_email(i18n), +}); + +/** + * Design of the challenger email. + */ +export function design_challenger_email( + i18n: InternationalizationAPI, +): DoubleColumnFormDesign { + const today = format(new Date(), "yyyy-MM-dd"); + + return { + type: "double-column", + sections: [ + { + title: i18n.str`Challenge`, + fields: [ + { + id: TalerFormAttributes.CONTACT_EMAIL, + label: i18n.str`E-Mail`, + type: "text", + required: true, + disabled: true, + }, + ], + }, + ], + }; +} diff --git a/packages/web-util/src/forms/gana/challenger_postal.ts b/packages/web-util/src/forms/gana/challenger_postal.ts @@ -0,0 +1,76 @@ +/* + This file is part of GNU Taler + (C) 2025 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero Public License for more details. + + You should have received a copy of the GNU Affero Public License along with + GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + */ + +import { TalerFormAttributes } from "@gnu-taler/taler-util"; +import { format } from "date-fns"; +import { + countryNameList, + DoubleColumnFormDesign, + FormMetadata, + InternationalizationAPI, +} from "../../index.browser.js"; + +export const form_generic_postal = ( + i18n: InternationalizationAPI, +): FormMetadata => ({ + label: i18n.str`Challenger POSTAL`, + description: i18n.str`Challenge address ownership.`, + id: "challenger_postal", + version: 1, + config: design_challenger_postal(i18n), +}); + +/** + * Design of the challenger email. + */ +export function design_challenger_postal( + i18n: InternationalizationAPI, +): DoubleColumnFormDesign { + const today = format(new Date(), "yyyy-MM-dd"); + + return { + type: "double-column", + sections: [ + { + title: i18n.str`Challenge`, + fields: [ + { + id: TalerFormAttributes.CONTACT_NAME, + label: i18n.str`Phone`, + type: "text", + required: true, + disabled: true, + }, + { + id: TalerFormAttributes.ADDRESS_LINES, + label: i18n.str`Phone`, + type: "textArea", + required: true, + disabled: true, + }, + { + id: TalerFormAttributes.ADDRESS_COUNTRY, + label: i18n.str`Country`, + type: "selectOne", + choices: countryNameList(i18n), + required: true, + disabled: true, + }, + ], + }, + ], + }; +} diff --git a/packages/web-util/src/forms/gana/challenger_sms.ts b/packages/web-util/src/forms/gana/challenger_sms.ts @@ -0,0 +1,60 @@ +/* + This file is part of GNU Taler + (C) 2025 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero Public License for more details. + + You should have received a copy of the GNU Affero Public License along with + GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + */ + +import { TalerFormAttributes } from "@gnu-taler/taler-util"; +import { format } from "date-fns"; +import { + DoubleColumnFormDesign, + FormMetadata, + InternationalizationAPI, +} from "../../index.browser.js"; + +export const form_generic_sms = ( + i18n: InternationalizationAPI, +): FormMetadata => ({ + label: i18n.str`Challenger SMS`, + description: i18n.str`Challenge phone number ownership.`, + id: "challenger_phone", + version: 1, + config: design_challenger_phone(i18n), +}); + +/** + * Design of the challenger email. + */ +export function design_challenger_phone( + i18n: InternationalizationAPI, +): DoubleColumnFormDesign { + const today = format(new Date(), "yyyy-MM-dd"); + + return { + type: "double-column", + sections: [ + { + title: i18n.str`Challenge`, + fields: [ + { + id: TalerFormAttributes.CONTACT_EMAIL, + label: i18n.str`Phone`, + type: "text", + required: true, + disabled: true, + }, + ], + }, + ], + }; +} diff --git a/packages/web-util/src/forms/index.ts b/packages/web-util/src/forms/index.ts @@ -22,6 +22,9 @@ export * from "./forms-ui.js"; export * from "./gana/accept-tos.js"; export * from "./gana/generic_note.js"; +export * from "./gana/challenger_email.js"; +export * from "./gana/challenger_postal.js"; +export * from "./gana/challenger_sms.js"; export * from "./gana/gls_merchant_onboarding.js"; export * from "./gana/gls_wallet_confirmation.js";