commit 50e541e523255c4ba31d6b7a02412dc92376f299
parent 83e164e2304b2149aa861067833dfef871068437
Author: Sebastian <sebasjm@gmail.com>
Date: Thu, 29 May 2025 12:29:55 -0300
fix #9875: adding forms
Diffstat:
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";