[mod] Kosmetik
This commit is contained in:
parent
c42ee84034
commit
bcd3e08192
11 changed files with 284 additions and 234 deletions
|
@ -14,12 +14,13 @@
|
|||
"page.view.form.field.email_address_veiled.label": "pseudonymisierte E-Mail-Adresse",
|
||||
"page.view.form.field.email_address_nominal.label": "namentliche E-Mail-Adresse",
|
||||
"page.view.form.field.email_redirect_to_private_address.label": "eingehende E-Mails zu privater Adresse umleiten",
|
||||
"page.view.form.field.email_allow_sending.label": "Versenden von E-Mails erlaubt",
|
||||
"page.view.form.field.email_allow_sending.label": "Versenden von E-Mails erlauben",
|
||||
"page.view.form.field.name_login.label": "Anmeldename",
|
||||
"page.view.form.field.password_set.label": "Passwort gesetzt",
|
||||
"page.view.form.action.save": "Änderungen speichern",
|
||||
"page.view.form.action.summon": "Zur Registrierung auffordern",
|
||||
"page.view.misc.summoned": "Benachrichtigung verschickt",
|
||||
"page.view.misc.test_info": "Im Produktiv-Szenario würde an dieser Stelle eine E-Mail an die hinterlegte private E-Mail-Adresse des Mitglieds versendet werden mit einem Willkommens-Gruß und dem Aufruf folgenden Link zu öffnen:\n\n{{url}}",
|
||||
"page.register.title": "Registrieren",
|
||||
"page.register.form.field.email_address.label": "Partei-E-Mail-Adresse einrichten",
|
||||
"page.register.form.field.email_address.help": "Für Partei-Angelegenheiten möchten wir dir anbieten gesonderte E-Mail-Adressen zu verwenden.\n\nDeine namentliche E-Mail-Adresse würde lauten »{{email_address_nominal}}« und die pseudonymisierte »{{email_address_veiled}}«\n\nDie Partei-E-Mail-Adressen können zum Empfangen von E-Mails verwendet werden. Falls es nötig werden sollte, dass du auch E-Mails mit über die Partei-Adresse verschicken kannst, wende dich bitte an den/die Mitgliederbeauftragte:n!",
|
||||
|
@ -33,6 +34,7 @@
|
|||
"page.register.form.field.password_confirmation.label": "Passwort wiederholen",
|
||||
"page.register.form.field.password_confirmation.help": "",
|
||||
"page.register.form.submit": "Abschicken",
|
||||
"page.register.flaw.already_registered": "bereits registriert",
|
||||
"page.register.flaw.password_mismatch": "die Passwörter stimmen nicht überein",
|
||||
"page.register.flaw.password_too_short": "das Passwort muss mindestens {{minimum_length}} Zeichen haben",
|
||||
"page.register.flaw.password_too_long": "das Passwort darf höchstens {{maximum_length}} Zeichen haben",
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
"page.view.form.action.save": "save changes",
|
||||
"page.view.form.action.summon": "urge for registration",
|
||||
"page.view.misc.summoned": "notification sent",
|
||||
"page.view.misc.test_info": "in a productive environment the system would now send an e-mail to the member's private address with a welcome note and a call to open the following link:\n\n{{url}}",
|
||||
"page.register.title": "Register",
|
||||
"page.register.form.field.email_address.label": "Set up party e-mail address",
|
||||
"page.register.form.field.email_address.help": "We offer you to use a special e-mail address for any party concerns.\n\nYour namely e-mail address would be »{{email_address_nominal}}« and the veiled one »{{email_address_veiled}}«\n\nThe party e-mail address may be used for the reception of e-mails. In case it becomes necessary for you to submit e-mails via a party address, please get in contact with your membership authority!",
|
||||
|
@ -33,6 +34,7 @@
|
|||
"page.register.form.field.password_confirmation.label": "confirm password",
|
||||
"page.register.form.field.password_confirmation.help": "",
|
||||
"page.register.form.submit": "submit",
|
||||
"page.register.flaw.already_registered": "already registered",
|
||||
"page.register.flaw.password_mismatch": "passwords do not match",
|
||||
"page.register.flaw.password_too_short": "the password must have at least {{minimum_length}} characters",
|
||||
"page.register.flaw.password_too_long": "the password must not have more than {{maximum_length}} characters",
|
||||
|
|
|
@ -389,8 +389,8 @@ namespace _espe.backend
|
|||
*/
|
||||
export async function member_summon(
|
||||
id : int,
|
||||
url : string
|
||||
) : Promise<null>
|
||||
url_template : string
|
||||
) : Promise<string>
|
||||
{
|
||||
return (
|
||||
abstract_call(
|
||||
|
@ -398,7 +398,7 @@ namespace _espe.backend
|
|||
("/member/summon/" + id.toFixed(0)),
|
||||
{
|
||||
"data": {
|
||||
"url_template": url,
|
||||
"url_template": url_template,
|
||||
},
|
||||
}
|
||||
)
|
||||
|
|
|
@ -12,6 +12,7 @@ namespace _espe.conf
|
|||
};
|
||||
settings : {
|
||||
title : string;
|
||||
test_mode : boolean;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -46,6 +47,7 @@ namespace _espe.conf
|
|||
"settings": (
|
||||
(node_settings => ({
|
||||
"title": (node_settings["title"] ?? "Espe"),
|
||||
"test_mode": (node_settings["test_mode"] ?? false),
|
||||
})) (data_raw["settings"] ?? {})
|
||||
),
|
||||
};
|
||||
|
|
|
@ -109,6 +109,7 @@ async function main(
|
|||
|
||||
// set title
|
||||
document.querySelector("header > h1").textContent = _espe.conf.get().settings.title;
|
||||
document.querySelector("title").textContent = _espe.conf.get().settings.title;
|
||||
|
||||
setup_nav();
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ lib_plankton.zoo_page.register(
|
|||
name_real_index : int;
|
||||
};
|
||||
};
|
||||
const term : (null | string) = (parameters["term"] ?? null);
|
||||
const term : (null | string) = (parameters["term"] ?? "");
|
||||
const search : lib_plankton.zoo_search.type_search<type_item> = lib_plankton.zoo_search.make<type_item>(
|
||||
(term) => _espe.backend.member_list(term),
|
||||
{
|
||||
|
|
|
@ -24,23 +24,41 @@ lib_plankton.zoo_page.register(
|
|||
// const verification : string = (new URLSearchParams(location.search)).get("verification");
|
||||
|
||||
update_nav({"mode": null});
|
||||
|
||||
const member_data : {
|
||||
name_real_value : string;
|
||||
name_real_index : int;
|
||||
name_login : string;
|
||||
email_address_veiled : string;
|
||||
email_address_nominal : string;
|
||||
} = await _espe.backend.member_info(id, verification);
|
||||
|
||||
target_element.appendChild(template_request("register"));
|
||||
|
||||
set_state(
|
||||
"load",
|
||||
[
|
||||
]
|
||||
);
|
||||
|
||||
let member_data : (
|
||||
null
|
||||
|
|
||||
{
|
||||
name_real_value : string;
|
||||
name_real_index : int;
|
||||
name_login : string;
|
||||
email_address_veiled : string;
|
||||
email_address_nominal : string;
|
||||
}
|
||||
);
|
||||
try {
|
||||
member_data = await _espe.backend.member_info(id, verification);
|
||||
}
|
||||
catch (error) {
|
||||
member_data = null;
|
||||
}
|
||||
|
||||
if (member_data === null) {
|
||||
set_state(
|
||||
"fill",
|
||||
[
|
||||
lib_plankton.translate.get("page.register.flaw.already_registered"),
|
||||
]
|
||||
);
|
||||
}
|
||||
else {
|
||||
|
||||
// title
|
||||
{
|
||||
target_element.querySelector(".register-title").textContent = lib_plankton.translate.get("page.register.title");
|
||||
|
@ -185,5 +203,6 @@ lib_plankton.zoo_page.register(
|
|||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
);
|
||||
|
|
|
@ -3,6 +3,12 @@ lib_plankton.zoo_page.register(
|
|||
async (parameters, target_element) => {
|
||||
const id : int = parseInt(parameters["id"]);
|
||||
|
||||
let dom_fragment : DocumentFragment = template_request("view");
|
||||
|
||||
dom_fragment.querySelector(".view-title").textContent = lib_plankton.translate.get("page.view.title");
|
||||
|
||||
const member_data = await _espe.backend.member_get(id);
|
||||
|
||||
const form = new lib_plankton.zoo_form.class_form<
|
||||
{
|
||||
membership_number : string;
|
||||
|
@ -52,16 +58,16 @@ lib_plankton.zoo_page.register(
|
|||
"input": new lib_plankton.zoo_input.class_input_number({"read_only": true}),
|
||||
"label": lib_plankton.translate.get("page.view.form.field.name_real_index.label"),
|
||||
},
|
||||
{
|
||||
"name": "registered",
|
||||
"input": new lib_plankton.zoo_input.class_input_checkbox({"read_only": true}),
|
||||
"label": lib_plankton.translate.get("page.view.form.field.registered.label"),
|
||||
},
|
||||
{
|
||||
"name": "enabled",
|
||||
"input": new lib_plankton.zoo_input.class_input_checkbox(),
|
||||
"label": lib_plankton.translate.get("page.view.form.field.enabled.label"),
|
||||
},
|
||||
{
|
||||
"name": "registered",
|
||||
"input": new lib_plankton.zoo_input.class_input_checkbox({"read_only": true}),
|
||||
"label": lib_plankton.translate.get("page.view.form.field.registered.label"),
|
||||
},
|
||||
{
|
||||
"name": "email_address_private",
|
||||
"input": new lib_plankton.zoo_input.class_input_text(),
|
||||
|
@ -99,6 +105,7 @@ lib_plankton.zoo_page.register(
|
|||
},
|
||||
]
|
||||
),
|
||||
(
|
||||
[
|
||||
{
|
||||
"label": lib_plankton.translate.get("page.view.form.action.save"),
|
||||
|
@ -114,10 +121,15 @@ lib_plankton.zoo_page.register(
|
|||
);
|
||||
},
|
||||
},
|
||||
]
|
||||
.concat(
|
||||
member_data.registered
|
||||
? []
|
||||
: [
|
||||
{
|
||||
"label": lib_plankton.translate.get("page.view.form.action.summon"),
|
||||
"procedure": async (get_value, get_representation) => {
|
||||
const url : string = (
|
||||
const url_template : string = (
|
||||
window.location.href.split("#")[0]
|
||||
+
|
||||
lib_plankton.zoo_page.encode(
|
||||
|
@ -131,34 +143,22 @@ lib_plankton.zoo_page.register(
|
|||
)
|
||||
);
|
||||
|
||||
await _espe.backend.member_summon(id, url);
|
||||
const url : string = await _espe.backend.member_summon(id, url_template);
|
||||
|
||||
/*
|
||||
lib_plankton.zoo_page.set(
|
||||
{
|
||||
"name": "index",
|
||||
"parameters": {},
|
||||
if (_espe.conf.get().settings.test_mode) {
|
||||
alert(lib_plankton.translate.get("page.view.misc.test_info", {"url": url}));
|
||||
}
|
||||
);
|
||||
*/
|
||||
else {
|
||||
alert(lib_plankton.translate.get("page.view.misc.summoned"));
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
let dom_fragment : DocumentFragment = template_request("view");
|
||||
dom_fragment.querySelector(".view-title").textContent = lib_plankton.translate.get("page.view.title");
|
||||
(
|
||||
Promise.all(
|
||||
[
|
||||
form.setup(dom_fragment.querySelector(".view-form") as HTMLElement),
|
||||
_espe.backend.member_get(id),
|
||||
]
|
||||
)
|
||||
.then(
|
||||
([_, member_data]) => {
|
||||
form.input_write(
|
||||
)
|
||||
);
|
||||
await form.setup(dom_fragment.querySelector(".view-form") as HTMLElement);
|
||||
await form.input_write(
|
||||
{
|
||||
"membership_number": member_data.membership_number,
|
||||
"name_real_value": member_data.name_real_value,
|
||||
|
@ -182,9 +182,6 @@ lib_plankton.zoo_page.register(
|
|||
"password_set": member_data.password_set,
|
||||
}
|
||||
);
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
target_element.appendChild(dom_fragment);
|
||||
},
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
.view-title
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*
|
||||
.view-form > .plankton_form
|
||||
{
|
||||
|
|
|
@ -6,11 +6,12 @@
|
|||
<link rel="stylesheet" type="text/css" href="style.css"/>
|
||||
<script type="text/javascript" src="logic.js"></script>
|
||||
<script type="text/javascript">document.addEventListener("DOMContentLoaded", () => {main();});</script>
|
||||
<title></title>
|
||||
{{templates}}
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>Espe</h1>
|
||||
<h1></h1>
|
||||
</header>
|
||||
<hr/>
|
||||
<nav>
|
||||
|
|
|
@ -55,17 +55,23 @@ input[type="text"]
|
|||
,
|
||||
input[type="number"]
|
||||
,
|
||||
input[type="search"]
|
||||
,
|
||||
input[type="password"]
|
||||
{
|
||||
padding: 8px;
|
||||
|
||||
border: 1px solid hsl(var(--hue), 0%, 50%);
|
||||
|
||||
min-width: 320px;
|
||||
}
|
||||
|
||||
input[type="text"]:not([disabled="disabled"])
|
||||
,
|
||||
input[type="number"]:not([disabled="disabled"])
|
||||
,
|
||||
input[type="search"]:not([disabled="disabled"])
|
||||
,
|
||||
input[type="password"]:not([disabled="disabled"])
|
||||
{
|
||||
/*
|
||||
|
@ -80,6 +86,8 @@ input[type="text"][disabled="disabled"]
|
|||
,
|
||||
input[type="number"][disabled="disabled"]
|
||||
,
|
||||
input[type="search"][disabled="disabled"]
|
||||
,
|
||||
input[type="password"][disabled="disabled"]
|
||||
{
|
||||
background-color: hsl(var(--hue), 0%, 12.5%);
|
||||
|
@ -110,6 +118,14 @@ nav > ul > li
|
|||
*/
|
||||
}
|
||||
|
||||
input[type="submit"]
|
||||
,
|
||||
button
|
||||
{
|
||||
font-size: 1.25em;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*
|
||||
nav > ul > li:hover::before
|
||||
{
|
||||
|
@ -190,3 +206,8 @@ nav > ul > li:hover::after
|
|||
text-transform: uppercase;
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
.plankton_search_submit
|
||||
{
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue