From 172f3f2c1f43ba61e65fcca63e087f01abebceb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Fra=C3=9F?= Date: Tue, 23 Apr 2024 23:01:49 +0200 Subject: [PATCH] [int] --- source/logic/pages/create.ts | 6 +- source/logic/pages/members.ts | 29 --------- source/logic/pages/view.ts | 112 ++++++++++++++++++++++++++++++++ source/structure/index.html.tpl | 11 +--- tools/makefile | 1 + 5 files changed, 117 insertions(+), 42 deletions(-) create mode 100644 source/logic/pages/view.ts diff --git a/source/logic/pages/create.ts b/source/logic/pages/create.ts index 75131e4..38f1b81 100644 --- a/source/logic/pages/create.ts +++ b/source/logic/pages/create.ts @@ -47,7 +47,7 @@ lib_plankton.zoo_page.register( "label": "Senden", "procedure": async (get_value, get_representation) => { const value = await get_value(); - const id = await _espe.backend.member_add( + const id : int = await _espe.backend.member_add( { "membership_number": value.membership_number, "name_real_value": value.name_real_value, @@ -62,11 +62,11 @@ lib_plankton.zoo_page.register( "email_redirect_to_private": false, } ); - lib_plankton.zoo_page.set({"name": "members", "parameters": {}}); + lib_plankton.zoo_page.set({"name": "view", "parameters": {"id": id}}); }, } ] ); - form.setup(target_element as HTMLElement); + form.setup(target_element as HTMLElement); } ); diff --git a/source/logic/pages/members.ts b/source/logic/pages/members.ts index c956d5b..07e0df7 100644 --- a/source/logic/pages/members.ts +++ b/source/logic/pages/members.ts @@ -170,34 +170,5 @@ lib_plankton.zoo_page.register( ) ) ); - - target_element.querySelector(".members-urge_for_registration").addEventListener( - "click", - async () => { - // const verification : string = await _espe.backend.verification_get(_id); - const url : string = ( - window.location.href.split("#")[0] - + - lib_plankton.zoo_page.encode( - { - "name": "register", - "parameters": { - "id": _id, - "verification": "{{verification}}", - } - } - ) - ); - - await _espe.backend.member_urge_for_registration(_id, url); - - lib_plankton.zoo_page.set( - { - "name": "index", - "parameters": {}, - } - ); - } - ); } ); diff --git a/source/logic/pages/view.ts b/source/logic/pages/view.ts new file mode 100644 index 0000000..fd58803 --- /dev/null +++ b/source/logic/pages/view.ts @@ -0,0 +1,112 @@ +lib_plankton.zoo_page.register( + "view", + async (parameters, target_element) => { + const id : int = parseInt(parameters["id"]); + + const form = new lib_plankton.zoo_form.class_form( + value => value, + representation => representation, + new lib_plankton.zoo_input.class_input_group( + [ + { + "name": "membership_number", + "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), + "label": "Mitgliedsnummer", + }, + { + "name": "name_real_value", + "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), + "label": "Echter Name", + }, + { + "name": "email_address_private_value", + "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), + "label": "Private E-Mail-Adresse", + }, + { + "name": "email_address_numberbased_use", + "input": new lib_plankton.zoo_input.class_input_checkbox(/*{"read_only": true}*/), + "label": "Nummernbasierte E-Mail-Adresse verwenden", + }, + { + "name": "email_address_namebased_use", + "input": new lib_plankton.zoo_input.class_input_checkbox(/*{"read_only": true}*/), + "label": "Namensbasierte E-Mail-Adresse verwenden", + }, + { + "name": "email_redirect", + "input": new lib_plankton.zoo_input.class_input_checkbox(/*{"read_only": true}*/), + "label": "eingehende E-Mails zu privater Adresse umleiten", + }, + { + "name": "name_display", + "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), + "label": "Anzeigename", + }, + { + "name": "salutation", + "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), + "label": "Anrede/Pronomen", + }, + { + "name": "name_login", + "input": new lib_plankton.zoo_input.class_input_text( + { + "pattern": "^[0-9a-zA-Z_]+$", + "read_only": true, + } + ), + "label": "Anmeldename", + }, + ] + ), + [ + { + "label": "Zur Registrierung auffordern", + "procedure": async (get_value, get_representation) => { + const url : string = ( + window.location.href.split("#")[0] + + + lib_plankton.zoo_page.encode( + { + "name": "register", + "parameters": { + "id": id, + "verification": "{{verification}}", + } + } + ) + ); + + await _espe.backend.member_urge_for_registration(id, url); + + /* + lib_plankton.zoo_page.set( + { + "name": "index", + "parameters": {}, + } + ); + */ + alert("Benachrichtigung verschickt"); + }, + }, + ] + ); + + let dom_fragment : DocumentFragment = template_request("view"); + Promise.all( + [ + form.setup(dom_fragment.querySelector(".view-form") as HTMLElement), + _espe.backend.member_get(id), + ] + ) + .then( + ([_, member]) => { + form.input_write(member); + } + ) + + target_element.appendChild(dom_fragment); + }, +); diff --git a/source/structure/index.html.tpl b/source/structure/index.html.tpl index 03dab22..1bb8629 100644 --- a/source/structure/index.html.tpl +++ b/source/structure/index.html.tpl @@ -16,13 +16,8 @@