This commit is contained in:
roydfalk 2024-04-23 23:01:49 +02:00
parent bba17fbc97
commit 172f3f2c1f
5 changed files with 117 additions and 42 deletions

View file

@ -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);
}
);

View file

@ -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": {},
}
);
}
);
}
);

112
source/logic/pages/view.ts Normal file
View file

@ -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<any, any>(
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);
},
);

View file

@ -16,13 +16,8 @@
<template id="view">
<section class="view">
<h2>Mitglied</h2>
<pre class="view-data">
</pre>
<hr/>
<div>
<button class="view-urge_for_registration">Zur Registrierung auffordern</button>
<div class="view-form">
</div>
<a class="view-result">Registrierung</a>
</section>
</template>
<template id="members">
@ -31,10 +26,6 @@
<div class="members-editor">
</div>
<hr/>
<div class="members-extras">
<button class="members-urge_for_registration">Zur Registrierung auffordern</button>
<a class="members-result">Registrierung</a>
</div>
</section>
</template>
<template id="register">

View file

@ -31,6 +31,7 @@ ${dir_temp}/logic-unlinked.js: \
${dir_source}/logic/pages/logout.ts \
${dir_source}/logic/pages/members.ts \
${dir_source}/logic/pages/create.ts \
${dir_source}/logic/pages/view.ts \
${dir_source}/logic/pages/register.ts \
${dir_source}/logic/main.ts
@ ${cmd_log} "logic | compile …"