From c42ee84034c703b3319e258a9e5df8d5f512b596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Fra=C3=9F?= Date: Tue, 30 Apr 2024 15:32:42 +0200 Subject: [PATCH] [mod] page:view:loc --- source/data/localization/deu.loc.json | 21 +++- source/data/localization/eng.loc.json | 23 +++- source/pages/members/logic.ts | 174 -------------------------- source/pages/members/structure.html | 8 -- source/pages/members/style.css | 8 -- source/pages/view/logic.ts | 35 +++--- source/pages/view/structure.html | 2 +- source/pages/view/style.css | 2 + tools/makefile | 2 - 9 files changed, 60 insertions(+), 215 deletions(-) delete mode 100644 source/pages/members/logic.ts delete mode 100644 source/pages/members/structure.html delete mode 100644 source/pages/members/style.css diff --git a/source/data/localization/deu.loc.json b/source/data/localization/deu.loc.json index 11cb6e1..c5cb678 100644 --- a/source/data/localization/deu.loc.json +++ b/source/data/localization/deu.loc.json @@ -3,6 +3,23 @@ "identifier": "deu" }, "tree": { + "common.not_used": "nicht verwendet", + "page.view.title": "Mitglied", + "page.view.form.field.membership_number.label": "Mitgliedsnummer", + "page.view.form.field.name_real_value.label": "Echter Name", + "page.view.form.field.name_real_index.label": "Namens-Index", + "page.view.form.field.registered.label": "registriert", + "page.view.form.field.enabled.label": "aktiviert", + "page.view.form.field.email_address_private.label": "private E-Mail-Adresse", + "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.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.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!", @@ -12,11 +29,11 @@ "page.register.form.field.email_redirect.label": "eingehende E-Mails an private Adresse leiten", "page.register.form.field.email_redirect.help": "", "page.register.form.field.password_value.label": "Passwort für Netz-Dienste", - "page.register.form.field.password_value.help": "Das Passwort für die Anmeldung bei den Netz-Diensten.\n\nDu solltest dir merken oder geeignet abspeichern, was du hier einträgst.\n\nSolltest du dieses Passwort mal vergessen oder verlieren, hast du die Möglichkeit ein neues zu setzen.", + "page.register.form.field.password_value.help": "das Passwort für die Anmeldung bei den Netz-Diensten.\n\nDu solltest dir merken oder geeignet abspeichern, was du hier einträgst.\n\nSolltest du dieses Passwort mal vergessen oder verlieren, hast du die Möglichkeit ein neues zu setzen.", "page.register.form.field.password_confirmation.label": "Passwort wiederholen", "page.register.form.field.password_confirmation.help": "", "page.register.form.submit": "Abschicken", - "page.register.flaw.password_mismatch": "Die Passwörter stimmen nicht überein", + "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", "page.register.flaw.password_lacks_letter": "das Passwort muss einen Buchstaben beinhalten", diff --git a/source/data/localization/eng.loc.json b/source/data/localization/eng.loc.json index 8e16f85..f58b6a4 100644 --- a/source/data/localization/eng.loc.json +++ b/source/data/localization/eng.loc.json @@ -3,6 +3,23 @@ "identifier": "eng" }, "tree": { + "common.not_used": "not used", + "page.view.title": "Member", + "page.view.form.field.membership_number.label": "membership number", + "page.view.form.field.name_real_value.label": "real name", + "page.view.form.field.name_real_index.label": "name index", + "page.view.form.field.registered.label": "registered", + "page.view.form.field.enabled.label": "enabled", + "page.view.form.field.email_address_private.label": "private e-mail address", + "page.view.form.field.email_address_veiled.label": "veiled e-mail address", + "page.view.form.field.email_address_nominal.label": "nominal e-mail address", + "page.view.form.field.email_redirect_to_private_address.label": "redirect incoming e-mails to private address", + "page.view.form.field.email_allow_sending.label": "allow sending e-mails", + "page.view.form.field.name_login.label": "login name", + "page.view.form.field.password_set.label": "password set", + "page.view.form.action.save": "save changes", + "page.view.form.action.summon": "urge for registration", + "page.view.misc.summoned": "notification sent", "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!", @@ -10,11 +27,11 @@ "page.register.form.field.email_address.option.only_veiled": "only veiled", "page.register.form.field.email_address.option.both": "both, veiled and namely", "page.register.form.field.email_redirect.label": "redirect incoming e-mails to private address", - + "page.register.form.field.email_redirect.help": "", "page.register.form.field.password_value.label": "password for online services", - + "page.register.form.field.password_value.help": "the password for logging in to the online services\n\nYou should remember, denote or save properly, what you enter here.\n\nIn case you forget or lose the password some day, you can reset it.", "page.register.form.field.password_confirmation.label": "confirm password", - + "page.register.form.field.password_confirmation.help": "", "page.register.form.submit": "submit", "page.register.flaw.password_mismatch": "passwords do not match", "page.register.flaw.password_too_short": "the password must have at least {{minimum_length}} characters", diff --git a/source/pages/members/logic.ts b/source/pages/members/logic.ts deleted file mode 100644 index 07e0df7..0000000 --- a/source/pages/members/logic.ts +++ /dev/null @@ -1,174 +0,0 @@ -lib_plankton.zoo_page.register( - "members", - (parameters, target_element) => { - const state : (null | any) = ( - ("state" in parameters) - ? lib_plankton.json.decode(lib_plankton.base64.decode(parameters["state"])) - : null - ); - - const set_state = function (state) { - target_element.querySelector(".members").setAttribute("rel", state); - }; - - let _id : (null | int) = null; - - const editor : lib_plankton.zoo_editor.type_editor = lib_plankton.zoo_editor.make( - { - "setup": (parameters) => Promise.resolve(undefined), - "search": async (term) => lib_plankton.call.convey( - await _espe.backend.member_list(), - [ - // (raw as Array<{id : int; preview : any;}>) - x => x.filter( - ( - (term === null) - || - (term === "") - ) - ? (entry => true) - : ( - (term.length < 2) - ? (entry => false) - : ( - entry => ( - entry.preview["membership_number"].includes(term) - || - entry.preview["name_real_value"].toLowerCase().includes(term) - ) - ) - ) - ), - x => x.map( - entry => ({ - "key": entry.id, - "preview": entry.preview, - }) - ), - ] - ), - "read": (key) => _espe.backend.member_get(key), - "create": (value) => /*_espe.backend.member_add(value)*/Promise.reject(new Error("missing")), - "update": (key, value) => _espe.backend.member_modify(key, value), - "delete": (key) => /*_espe.backend.member_remove(key)*/Promise.reject(new Error("missing")), - }, - lib_plankton.zoo_form.make( - "GET", - [ - { - "name": "membership_number", - "type": "text", - "label": "Mitgliedsnummer", - }, - { - "name": "enabled", - "type": "checkbox", - "label": "Für Online-Dienste freischalten", - }, - { - "name": "name_real_value", - "type": "text", - "label": "Echter Name", - }, - { - "name": "name_real_extension", - "type": "text", - "label": "Zusatz für echten Name (für mögliche Dopplung)", - }, - { - "name": "name_display", - "type": "text", - "label": "Anzeigename", - }, - { - "name": "name_login", - "type": "text", - "label": "Anmeldename", - }, - { - "name": "email_address_private_value", - "type": "text", - "label": "Private E-Mail-Adresse", - }, - { - "name": "email_address_numberbased_use", - "type": "checkbox", - "label": "Nummernbasierte E-Mail-Adresse verwenden", - }, - { - "name": "email_address_namebased_use", - "type": "checkbox", - "label": "Namensbasierte E-Mail-Adresse verwenden", - }, - { - "name": "email_redirect_to_private", - "type": "checkbox", - "label": "E-Mails an private Adresse umleiten", - }, - { - "name": "salutation", - "type": "text", - "label": "Anrede/Pronomen", - }, - ], - value => ({ - "enabled": (value.enabled ? "on" : ""), - "membership_number": value.membership_number, - "name_real_value": value.name_real_value, - "name_real_extension": value.name_real_extension, - "name_display": value.name_display, - "name_login": value.name_login, - "email_address_private_value": value.email_address_private_value, - "email_address_numberbased_use": (value.email_address_numberbased_use ? "on" : ""), - "email_address_namebased_use": (value.email_address_namebased_use ? "on" : ""), - "email_redirect_to_private": (value.email_redirect_to_private ? "on" : ""), - "salutation": value.salutation, - }), - raw => ({ - "enabled": (raw["enabled"] === "on"), - "membership_number": raw["membership_number"], - "name_real_value": raw["name_real_value"], - "name_real_extension": raw["name_real_extension"], - "name_display": raw["name_display"], - "name_login": raw["name_login"], - "email_address_private_value": raw["email_address_private_value"], - "email_address_numberbased_use": (raw["email_address_numberbased_use"] === "on"), - "email_address_namebased_use": (raw["email_address_namebased_use"] === "on"), - "email_redirect_to_private": (raw["email_redirect_to_private"] === "on"), - "salutation": raw["salutation"], - }), - { - } - ), - { - "encode_hit": hit => lib_plankton.string.coin( - "{{number}} | {{name}}", - { - "number": hit.preview["membership_number"], - "name": hit.preview["name_real_value"], - } - ), - "hook_switch": (state) => { - _id = state.key; - set_state((_id === null) ? "poor" : "rich"); - const state_encoded : string = lib_plankton.base64.encode(lib_plankton.json.encode(state)); - lib_plankton.zoo_page.set({"name": "members", "parameters": {"state": state_encoded}}); - }, - } - ); - - target_element.appendChild(template_request("members")); - - lib_plankton.zoo_editor.render( - editor, - target_element.querySelector(".members-editor"), - ( - Object.assign( - { - }, - ((state !== null) ? {"state": state} : {}) - ) - ) - ); - } -); diff --git a/source/pages/members/structure.html b/source/pages/members/structure.html deleted file mode 100644 index 99ef674..0000000 --- a/source/pages/members/structure.html +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/source/pages/members/style.css b/source/pages/members/style.css deleted file mode 100644 index 930a4b4..0000000 --- a/source/pages/members/style.css +++ /dev/null @@ -1,8 +0,0 @@ -.members-result:not([href]) -{ - display: none; -} - -.members:not([rel]) .members-extras {display: none;} -.members[rel="poor"] .members-extras {display: none;} -.members[rel="rich"] .members-extras {} diff --git a/source/pages/view/logic.ts b/source/pages/view/logic.ts index def5e53..63f298b 100644 --- a/source/pages/view/logic.ts +++ b/source/pages/view/logic.ts @@ -40,68 +40,68 @@ lib_plankton.zoo_page.register( { "name": "membership_number", "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), - "label": "Mitgliedsnummer", + "label": lib_plankton.translate.get("page.view.form.field.membership_number.label"), }, { "name": "name_real_value", "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), - "label": "Echter Name", + "label": lib_plankton.translate.get("page.view.form.field.name_real_value.label"), }, { "name": "name_real_index", "input": new lib_plankton.zoo_input.class_input_number({"read_only": true}), - "label": "Namens-Index", + "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": "registriert", + "label": lib_plankton.translate.get("page.view.form.field.registered.label"), }, { "name": "enabled", "input": new lib_plankton.zoo_input.class_input_checkbox(), - "label": "für Netz-Dienste freigeschalten", + "label": lib_plankton.translate.get("page.view.form.field.enabled.label"), }, { "name": "email_address_private", "input": new lib_plankton.zoo_input.class_input_text(), - "label": "Private E-Mail-Adresse", + "label": lib_plankton.translate.get("page.view.form.field.email_address_private.label"), }, { "name": "email_address_veiled", "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), - "label": "Pseudonymisierte E-Mail-Adresse", + "label": lib_plankton.translate.get("page.view.form.field.email_address_veiled.label"), }, { "name": "email_address_nominal", "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), - "label": "Namentliche E-Mail-Adresse", + "label": lib_plankton.translate.get("page.view.form.field.email_address_nominal.label"), }, { "name": "email_redirect_to_private_address", "input": new lib_plankton.zoo_input.class_input_checkbox({"read_only": true}), - "label": "eingehende E-Mails zu privater Adresse umleiten", + "label": lib_plankton.translate.get("page.view.form.field.email_redirect_to_private_address.label"), }, { "name": "email_allow_sending", "input": new lib_plankton.zoo_input.class_input_checkbox(), - "label": "Versenden von E-Mails erlaubt", + "label": lib_plankton.translate.get("page.view.form.field.email_allow_sending.label"), }, { "name": "name_login", "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), - "label": "Anmeldename", + "label": lib_plankton.translate.get("page.view.form.field.name_login.label"), }, { "name": "password_set", "input": new lib_plankton.zoo_input.class_input_checkbox({"read_only": true}), - "label": "Passwort gesetzt", + "label": lib_plankton.translate.get("page.view.form.field.password_set.label"), }, ] ), [ { - "label": "Änderungen speichern", + "label": lib_plankton.translate.get("page.view.form.action.save"), "procedure": async (get_value, get_representation) => { const value = await get_value(); await _espe.backend.member_modify( @@ -115,7 +115,7 @@ lib_plankton.zoo_page.register( }, }, { - "label": "Zur Registrierung auffordern", + "label": lib_plankton.translate.get("page.view.form.action.summon"), "procedure": async (get_value, get_representation) => { const url : string = ( window.location.href.split("#")[0] @@ -141,13 +141,14 @@ lib_plankton.zoo_page.register( } ); */ - alert("Benachrichtigung verschickt"); + 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( [ @@ -168,12 +169,12 @@ lib_plankton.zoo_page.register( "email_address_veiled": ( member_data.email_use_veiled_address ? member_data.email_address_veiled - : "(nicht verwendet)" + : ("(" + lib_plankton.translate.get("common.not_used") + ")") ), "email_address_nominal": ( member_data.email_use_nominal_address ? member_data.email_address_nominal - : "(nicht verwendet)" + : ("(" + lib_plankton.translate.get("common.not_used") + ")") ), "email_redirect_to_private_address": member_data.email_redirect_to_private_address, "email_allow_sending": member_data.email_allow_sending, diff --git a/source/pages/view/structure.html b/source/pages/view/structure.html index 0d34d96..38509c1 100644 --- a/source/pages/view/structure.html +++ b/source/pages/view/structure.html @@ -1,6 +1,6 @@