invite -> invitation

This commit is contained in:
roydfalk 2025-08-22 17:07:39 +02:00
parent 9d1a0c856c
commit d5ff6ac576
18 changed files with 157 additions and 145 deletions

View file

@ -28,9 +28,9 @@
"domain.member.email_allow_sending.label": "Versenden von E-Mails erlauben", "domain.member.email_allow_sending.label": "Versenden von E-Mails erlauben",
"domain.member.name_login.label": "Anmeldename", "domain.member.name_login.label": "Anmeldename",
"domain.member.password_set.label": "Passwort gesetzt", "domain.member.password_set.label": "Passwort gesetzt",
"domain.invite.key.label": "Schlüssel", "domain.invitation.key.label": "Schlüssel",
"domain.invite.expiry.label": "Ablaufzeitpunkt", "domain.invitation.expiry.label": "Ablaufzeitpunkt",
"domain.invite.url.label": "URL", "domain.invitation.url.label": "URL",
"page.login.title": "Anmelden", "page.login.title": "Anmelden",
"page.login.name": "Name", "page.login.name": "Name",
"page.login.password": "Passwort", "page.login.password": "Passwort",
@ -88,14 +88,14 @@
"page.password_change_exec.flaw.password_lacks_special_character": "das Passwort muss ein Sonderzeichen beinhalten", "page.password_change_exec.flaw.password_lacks_special_character": "das Passwort muss ein Sonderzeichen beinhalten",
"page.password_change_exec.flaw.unhandled_error": "da ist etwas schief gelaufen :/", "page.password_change_exec.flaw.unhandled_error": "da ist etwas schief gelaufen :/",
"page.password_change_exec.status.success": "erledigt", "page.password_change_exec.status.success": "erledigt",
"page.invite_list.title": "Einladungen", "page.invitation_list.title": "Einladungen",
"page.invite_create.title": "Einladung anlegen", "page.invitation_create.title": "Einladung anlegen",
"page.invite_create.form.field.send_immediatly.label": "Link sofort versenden", "page.invitation_create.form.field.send_immediatly.label": "Link sofort versenden",
"page.invite_create.form.action.submit": "anlegen", "page.invitation_create.form.action.submit": "anlegen",
"page.invite_view.title": "Einladung", "page.invitation_view.title": "Einladung",
"page.invite_handle.title": "Einladung", "page.invitation_handle.title": "Einladung",
"page.invite_handle.message.invalid": "ungültig", "page.invitation_handle.message.invalid": "ungültig",
"page.invite_handle.message.successful": "erfolgreich", "page.invitation_handle.message.successful": "erfolgreich",
"page.invite_handle.form.action.submit": "annehmen" "page.invitation_handle.form.action.submit": "annehmen"
} }
} }

View file

@ -28,9 +28,9 @@
"domain.member.email_allow_sending.label": "allow sending e-mails", "domain.member.email_allow_sending.label": "allow sending e-mails",
"domain.member.name_login.label": "login name", "domain.member.name_login.label": "login name",
"domain.member.password_set.label": "password set", "domain.member.password_set.label": "password set",
"domain.invite.key.label": "key", "domain.invitation.key.label": "key",
"domain.invite.expiry.label": "expiration", "domain.invitation.expiry.label": "expiration",
"domain.invite.url.url": "URL", "domain.invitation.url.url": "URL",
"page.login.title": "login", "page.login.title": "login",
"page.login.name": "name", "page.login.name": "name",
"page.login.password": "password", "page.login.password": "password",
@ -88,14 +88,14 @@
"page.password_change_exec.flaw.password_lacks_special_character": "das Passwort muss ein Sonderzeichen beinhalten", "page.password_change_exec.flaw.password_lacks_special_character": "das Passwort muss ein Sonderzeichen beinhalten",
"page.password_change_exec.flaw.unhandled_error": "da ist etwas schief gelaufen :/", "page.password_change_exec.flaw.unhandled_error": "da ist etwas schief gelaufen :/",
"page.password_change_exec.status.success": "done", "page.password_change_exec.status.success": "done",
"page.invite_list.title": "invites", "page.invitation_list.title": "invitations",
"page.invite_create.title": "create invite", "page.invitation_create.title": "create invitation",
"page.invite_create.form.field.send_immediatly.label": "send link immediatly", "page.invitation_create.form.field.send_immediatly.label": "send link immediatly",
"page.invite_create.form.action.submit": "create", "page.invitation_create.form.action.submit": "create",
"page.invite_view.title": "invitation", "page.invitation_view.title": "invitation",
"page.invite_handle.title": "invitation", "page.invitation_handle.title": "invitation",
"page.invite_handle.message.invalid": "invalid", "page.invitation_handle.message.invalid": "invalid",
"page.invite_handle.message.successful": "successful", "page.invitation_handle.message.successful": "successful",
"page.invite_handle.form.action.submit": "accept" "page.invitation_handle.form.action.submit": "accept"
} }
} }

View file

@ -70,8 +70,8 @@ function setup_nav(
"classes": ["logged_in"], "classes": ["logged_in"],
}, },
{ {
"location": {"name": "invite_list", "parameters": {}}, "location": {"name": "invitation_list", "parameters": {}},
"label": lib_plankton.translate.get("page.invite_list.title"), "label": lib_plankton.translate.get("page.invitation_list.title"),
"classes": ["logged_in"], "classes": ["logged_in"],
}, },
{ {

View file

@ -14,11 +14,11 @@ You should have received a copy of the GNU General Public License along with thi
*/ */
lib_plankton.zoo_page.register( lib_plankton.zoo_page.register(
"invite_create", "invitation_create",
async (parameters, target_element) => { async (parameters, target_element) => {
target_element.appendChild(_espe.helpers.template_request("invite_create")); target_element.appendChild(_espe.helpers.template_request("invitation_create"));
target_element.querySelector(".invite_create-title").textContent = lib_plankton.translate.get("page.invite_create.title"); target_element.querySelector(".invitation_create-title").textContent = lib_plankton.translate.get("page.invitation_create.title");
const indent = str => (/*"... " + */str); const indent = str => (/*"... " + */str);
@ -59,7 +59,7 @@ lib_plankton.zoo_page.register(
} }
/** /**
* @todo unify with form of "invite_view" * @todo unify with form of "invitation_view"
*/ */
const form = new lib_plankton.zoo_form.class_form< const form = new lib_plankton.zoo_form.class_form<
{ {
@ -249,26 +249,26 @@ lib_plankton.zoo_page.register(
} }
) )
), ),
"label": lib_plankton.translate.get("domain.invite.expiry.label"), "label": lib_plankton.translate.get("domain.invitation.expiry.label"),
}, },
{ {
"name": "send_immediatly", "name": "send_immediatly",
"input": new lib_plankton.zoo_input.class_input_checkbox(), "input": new lib_plankton.zoo_input.class_input_checkbox(),
"label": indent(lib_plankton.translate.get("page.invite_create.form.field.send_immediatly.label")), "label": indent(lib_plankton.translate.get("page.invitation_create.form.field.send_immediatly.label")),
}, },
] ]
), ),
[ [
{ {
"label": lib_plankton.translate.get("page.invite_create.form.action.submit"), "label": lib_plankton.translate.get("page.invitation_create.form.action.submit"),
"procedure": async (get_value, get_representation) => { "procedure": async (get_value, get_representation) => {
const value = await get_value(); const value = await get_value();
const result : {id : int; key : string;} = await _espe.backend.invite_create( const result : {id : int; key : string;} = await _espe.backend.invitation_create(
value.data, value.data,
value.send_immediatly, value.send_immediatly,
lib_plankton.zoo_page.encode( lib_plankton.zoo_page.encode(
{ {
"name": "invite_handle", "name": "invitation_handle",
"parameters": { "parameters": {
"key": "{{key}}", "key": "{{key}}",
} }
@ -279,12 +279,12 @@ lib_plankton.zoo_page.register(
false false
? ?
{ {
"name": "invite_view", "name": "invitation_view",
"parameters": {"id": result.id.toFixed(0)} "parameters": {"id": result.id.toFixed(0)}
} }
: :
{ {
"name": "invite_list", "name": "invitation_list",
"parameters": {} "parameters": {}
} }
); );
@ -292,7 +292,7 @@ lib_plankton.zoo_page.register(
} }
] ]
); );
await form.setup(target_element.querySelector(".invite_create-form") as HTMLElement); await form.setup(target_element.querySelector(".invitation_create-form") as HTMLElement);
form.input_write( form.input_write(
{ {
"data": { "data": {

View file

@ -13,7 +13,7 @@ You should have received a copy of the GNU General Public License along with thi
<https://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
--> -->
<template id="invite_create"> <template id="invitation_create">
<h2 class="invite_create-title"></h2> <h2 class="invitation_create-title"></h2>
<div class="invite_create-form"></div> <div class="invitation_create-form"></div>
</template> </template>

View file

@ -13,17 +13,17 @@ You should have received a copy of the GNU General Public License along with thi
<https://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
*/ */
.invite_create-title .invitation_create-title
{ {
text-transform: capitalize; text-transform: capitalize;
} }
.plankton_input_group_field .plankton_input_group .invitation_create-form .plankton_input_group_field .plankton_input_group
{ {
padding-left: 32px; padding-left: 32px;
} }
.plankton_input_group_field .plankton_input_group > * .invitation_create-form .plankton_input_group_field .plankton_input_group > *
{ {
display: inline-block; display: inline-block;
margin-right: 16px; margin-right: 16px;

View file

@ -14,15 +14,15 @@ You should have received a copy of the GNU General Public License along with thi
*/ */
lib_plankton.zoo_page.register( lib_plankton.zoo_page.register(
"invite_handle", "invitation_handle",
async (parameters, target_element) => { async (parameters, target_element) => {
function set_state( function set_state(
state : ("load" | "fill" | "wait" | "done"), state : ("load" | "fill" | "wait" | "done"),
messages : Array<string> = [] messages : Array<string> = []
) : void ) : void
{ {
target_element.querySelector(".invite_handle").setAttribute("rel", state); target_element.querySelector(".invitation_handle").setAttribute("rel", state);
target_element.querySelector(".invite_handle-message").textContent = ""; target_element.querySelector(".invitation_handle-message").textContent = "";
let dom_list = document.createElement("ul"); let dom_list = document.createElement("ul");
messages.forEach( messages.forEach(
message => { message => {
@ -31,21 +31,21 @@ lib_plankton.zoo_page.register(
dom_list.appendChild(dom_message); dom_list.appendChild(dom_message);
} }
); );
target_element.querySelector(".invite_handle-message").appendChild(dom_list); target_element.querySelector(".invitation_handle-message").appendChild(dom_list);
} }
// parameters // parameters
const key : string = parameters["key"]; const key : string = parameters["key"];
update_nav({"mode": null}); update_nav({"mode": null});
target_element.appendChild(_espe.helpers.template_request("invite_handle")); target_element.appendChild(_espe.helpers.template_request("invitation_handle"));
set_state( set_state(
"load", "load",
[ [
] ]
); );
target_element.querySelector(".invite_handle-title").textContent = lib_plankton.translate.get("page.invite_handle.title"); target_element.querySelector(".invitation_handle-title").textContent = lib_plankton.translate.get("page.invitation_handle.title");
let data : ( let data : (
null null
@ -63,7 +63,7 @@ lib_plankton.zoo_page.register(
); );
try try
{ {
data = await _espe.backend.invite_examine(key); data = await _espe.backend.invitation_examine(key);
} }
catch (error) catch (error)
{ {
@ -75,7 +75,7 @@ lib_plankton.zoo_page.register(
set_state( set_state(
"done", "done",
[ [
lib_plankton.translate.get("page.invite_handle.message.invalid"), lib_plankton.translate.get("page.invitation_handle.message.invalid"),
] ]
); );
} }
@ -233,7 +233,7 @@ lib_plankton.zoo_page.register(
), ),
[ [
{ {
"label": lib_plankton.translate.get("page.invite_handle.form.action.submit"), "label": lib_plankton.translate.get("page.invitation_handle.form.action.submit"),
"procedure": async (get_value, get_representation) => { "procedure": async (get_value, get_representation) => {
const value = await get_value(); const value = await get_value();
let flaws : Array<{incident : string; details : Record<string, any>;}>; let flaws : Array<{incident : string; details : Record<string, any>;}>;
@ -252,7 +252,7 @@ lib_plankton.zoo_page.register(
{ {
try try
{ {
flaws = await _espe.backend.invite_accept( flaws = await _espe.backend.invitation_accept(
key, key,
{ {
"label": value.label, "label": value.label,
@ -288,7 +288,7 @@ lib_plankton.zoo_page.register(
"done", "done",
[ [
// lib_plankton.translate.get("page.member_register.success") // lib_plankton.translate.get("page.member_register.success")
lib_plankton.translate.get("page.invite_handle.message.successful"), lib_plankton.translate.get("page.invitation_handle.message.successful"),
] ]
); );
} }
@ -296,7 +296,7 @@ lib_plankton.zoo_page.register(
} }
] ]
); );
await form.setup(target_element.querySelector(".invite_handle-form") as HTMLElement); await form.setup(target_element.querySelector(".invitation_handle-form") as HTMLElement);
form.input_write( form.input_write(
{ {
"name": data.name_value, "name": data.name_value,

View file

@ -13,13 +13,13 @@ You should have received a copy of the GNU General Public License along with thi
<https://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
--> -->
<template id="invite_handle"> <template id="invitation_handle">
<section class="invite_handle"> <section class="invitation_handle">
<h2 class="invite_handle-title"></h2> <h2 class="invitation_handle-title"></h2>
<div class="invite_handle-info"> <div class="invitation_handle-info">
</div> </div>
<div class="invite_handle-message"> <div class="invitation_handle-message">
</div> </div>
<div class="invite_handle-form"></div> <div class="invitation_handle-form"></div>
</section> </section>
</template> </template>

View file

@ -14,14 +14,14 @@ You should have received a copy of the GNU General Public License along with thi
*/ */
.invite_view:not([rel]) .invite_view-message {display: none;} .invitation_handle:not([rel]) .invitation_handle-message {display: none;}
.invite_view:not([rel]) .invite_view-form {display: none;} .invitation_handle:not([rel]) .invitation_handle-form {display: none;}
.invite_view[rel="fill"] .invite_view-message {} .invitation_handle[rel="fill"] .invitation_handle-message {}
.invite_view[rel="fill"] .invite_view-form {} .invitation_handle[rel="fill"] .invitation_handle-form {}
.invite_view[rel="wait"] .invite_view-message {} .invitation_handle[rel="wait"] .invitation_handle-message {}
.invite_view[rel="wait"] .invite_view-form {display: none;} .invitation_handle[rel="wait"] .invitation_handle-form {display: none;}
.invite_view[rel="done"] .invite_view-message {} .invitation_handle[rel="done"] .invitation_handle-message {}
.invite_view[rel="done"] .invite_view-form {display: none;} .invitation_handle[rel="done"] .invitation_handle-form {display: none;}

View file

@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with thi
*/ */
lib_plankton.zoo_page.register( lib_plankton.zoo_page.register(
"invite_list", "invitation_list",
async (parameters, target_element) => { async (parameters, target_element) => {
// types // types
type type_item = { type type_item = {
@ -31,28 +31,28 @@ lib_plankton.zoo_page.register(
const term : (null | string) = (parameters["term"] ?? ""); const term : (null | string) = (parameters["term"] ?? "");
// exec // exec
target_element.appendChild(_espe.helpers.template_request("invite_list")); target_element.appendChild(_espe.helpers.template_request("invitation_list"));
target_element.querySelector(".invite_list-title").textContent = lib_plankton.translate.get("page.invite_list.title"); target_element.querySelector(".invitation_list-title").textContent = lib_plankton.translate.get("page.invitation_list.title");
// exec : create link // exec : create link
{ {
const element : HTMLElement = target_element.querySelector(".invite_list-create"); const element : HTMLElement = target_element.querySelector(".invitation_list-create");
element.setAttribute( element.setAttribute(
"href", "href",
lib_plankton.zoo_page.encode( lib_plankton.zoo_page.encode(
{ {
"name": "invite_create", "name": "invitation_create",
"parameters": { "parameters": {
} }
} }
) )
); );
element.textContent = lib_plankton.translate.get("page.invite_create.title"); element.textContent = lib_plankton.translate.get("page.invitation_create.title");
} }
const search : lib_plankton.zoo_search.type_search<type_item> = lib_plankton.zoo_search.make<type_item>( const search : lib_plankton.zoo_search.type_search<type_item> = lib_plankton.zoo_search.make<type_item>(
(term) => _espe.backend.invite_list(), (term) => _espe.backend.invitation_list(),
{ {
"encode_item": (item) => lib_plankton.string.coin( "encode_item": (item) => lib_plankton.string.coin(
"{{label}}", "{{label}}",
@ -64,7 +64,7 @@ lib_plankton.zoo_page.register(
(term) => { (term) => {
lib_plankton.zoo_page.set( lib_plankton.zoo_page.set(
{ {
"name": "invite_list", "name": "invitation_list",
"parameters": { "parameters": {
"term": term, "term": term,
} }
@ -76,7 +76,7 @@ lib_plankton.zoo_page.register(
(item) => { (item) => {
lib_plankton.zoo_page.set( lib_plankton.zoo_page.set(
{ {
"name": "invite_view", "name": "invitation_view",
"parameters": { "parameters": {
"id": item.id.toFixed(0), "id": item.id.toFixed(0),
} }
@ -88,7 +88,7 @@ lib_plankton.zoo_page.register(
); );
lib_plankton.zoo_search.render( lib_plankton.zoo_search.render(
search, search,
target_element.querySelector(".invite_list-search"), target_element.querySelector(".invitation_list-search"),
{ {
"state": { "state": {
"term": "", "term": "",
@ -97,8 +97,8 @@ lib_plankton.zoo_page.register(
); );
/* /*
const data = await _espe.backend.invite_list(); const data = await _espe.backend.invitation_list();
(target_element.querySelector(".invite_list-data") as HTMLElement).textContent = JSON.stringify( (target_element.querySelector(".invitation_list-data") as HTMLElement).textContent = JSON.stringify(
data, data,
undefined, undefined,
" " " "

View file

@ -13,10 +13,10 @@ You should have received a copy of the GNU General Public License along with thi
<https://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
--> -->
<template id="invite_list"> <template id="invitation_list">
<h2 class="invite_list-title"></h2> <h2 class="invitation_list-title"></h2>
<div class="invite_list-links"> <div class="invitation_list-links">
<a class="invite_list-create"></a> <a class="invitation_list-create"></a>
</div> </div>
<div class="invite_list-search"></div> <div class="invitation_list-search"></div>
</template> </template>

View file

@ -13,7 +13,7 @@ You should have received a copy of the GNU General Public License along with thi
<https://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
*/ */
.invite_list-links .invitation_list-links
{ {
margin-bottom: 16px; margin-bottom: 16px;
} }

View file

@ -14,13 +14,13 @@ You should have received a copy of the GNU General Public License along with thi
*/ */
lib_plankton.zoo_page.register( lib_plankton.zoo_page.register(
"invite_view", "invitation_view",
async (parameters, target_element) => { async (parameters, target_element) => {
// functions // functions
const get_url = (item) => { const get_url = (item) => {
const url : URL = new URL(window.location.toString()); const url : URL = new URL(window.location.toString());
url.hash = lib_plankton.string.coin( url.hash = lib_plankton.string.coin(
"#invite_handle,key={{key}}", "#invitation_handle,key={{key}}",
{ {
"key": item.key, "key": item.key,
} }
@ -31,9 +31,9 @@ lib_plankton.zoo_page.register(
// parameters // parameters
const id : int = parseInt(parameters["id"]); const id : int = parseInt(parameters["id"]);
target_element.appendChild(_espe.helpers.template_request("invite_view")); target_element.appendChild(_espe.helpers.template_request("invitation_view"));
target_element.querySelector(".invite_view-title").textContent = lib_plankton.translate.get("page.invite_view.title"); target_element.querySelector(".invitation_view-title").textContent = lib_plankton.translate.get("page.invitation_view.title");
const indent = str => (/*"... " + */str); const indent = str => (/*"... " + */str);
@ -74,7 +74,7 @@ lib_plankton.zoo_page.register(
} }
/** /**
* @todo unify with form of "invite_create" * @todo unify with form of "invitation_create"
*/ */
const form = new lib_plankton.zoo_form.class_form< const form = new lib_plankton.zoo_form.class_form<
{ {
@ -162,12 +162,12 @@ lib_plankton.zoo_page.register(
{ {
"name": "url", "name": "url",
"input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}),
"label": lib_plankton.translate.get("domain.invite.url.label"), "label": lib_plankton.translate.get("domain.invitation.url.label"),
}, },
{ {
"name": "key", "name": "key",
"input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}),
"label": lib_plankton.translate.get("domain.invite.key.label"), "label": lib_plankton.translate.get("domain.invitation.key.label"),
}, },
{ {
"name": "name", "name": "name",
@ -275,14 +275,14 @@ lib_plankton.zoo_page.register(
} }
) )
), ),
"label": lib_plankton.translate.get("domain.invite.expiry.label"), "label": lib_plankton.translate.get("domain.invitation.expiry.label"),
}, },
] ]
), ),
[ [
] ]
); );
await form.setup(target_element.querySelector(".invite_view-form") as HTMLElement); await form.setup(target_element.querySelector(".invitation_view-form") as HTMLElement);
const data : { const data : {
key: string; key: string;
@ -295,7 +295,7 @@ lib_plankton.zoo_page.register(
email_address_value : (null | string); email_address_value : (null | string);
groups_changeable : boolean; groups_changeable : boolean;
groups_value : Array<int>; groups_value : Array<int>;
} = await _espe.backend.invite_read(id); } = await _espe.backend.invitation_read(id);
form.input_write(data); form.input_write(data);
} }

View file

@ -13,7 +13,7 @@ You should have received a copy of the GNU General Public License along with thi
<https://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
--> -->
<template id="invite_view"> <template id="invitation_view">
<h2 class="invite_view-title"></h2> <h2 class="invitation_view-title"></h2>
<div class="invite_view-form"></div> <div class="invitation_view-form"></div>
</template> </template>

View file

@ -0,0 +1,39 @@
/*
Espe | Ein schlichtes Werkzeug zur Mitglieder-Verwaltung | Frontend
Copyright (C) 2024 Christian Fraß
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see
<https://www.gnu.org/licenses/>.
*/
.invitation_view-form .plankton_input_group_field .plankton_input_group
{
padding-left: 32px;
}
.invitation_view-form .plankton_input_group_field .plankton_input_group > *
{
display: inline-block;
margin-right: 16px;
vertical-align: top;
}
.invitation_view:not([rel]) .invitation_view-message {display: none;}
.invitation_view:not([rel]) .invitation_view-form {display: none;}
.invitation_view[rel="fill"] .invitation_view-message {}
.invitation_view[rel="fill"] .invitation_view-form {}
.invitation_view[rel="wait"] .invitation_view-message {}
.invitation_view[rel="wait"] .invitation_view-form {display: none;}
.invitation_view[rel="done"] .invitation_view-message {}
.invitation_view[rel="done"] .invitation_view-form {display: none;}

View file

@ -1,27 +0,0 @@
/*
Espe | Ein schlichtes Werkzeug zur Mitglieder-Verwaltung | Frontend
Copyright (C) 2024 Christian Fraß
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see
<https://www.gnu.org/licenses/>.
*/
.invite_handle:not([rel]) .invite_handle-message {display: none;}
.invite_handle:not([rel]) .invite_handle-form {display: none;}
.invite_handle[rel="fill"] .invite_handle-message {}
.invite_handle[rel="fill"] .invite_handle-form {}
.invite_handle[rel="wait"] .invite_handle-message {}
.invite_handle[rel="wait"] .invite_handle-form {display: none;}
.invite_handle[rel="done"] .invite_handle-message {}
.invite_handle[rel="done"] .invite_handle-form {display: none;}

View file

@ -446,7 +446,7 @@ namespace _espe.backend
/** /**
*/ */
export async function invite_list( export async function invitation_list(
) : Promise< ) : Promise<
Array< Array<
{ {
@ -474,7 +474,7 @@ namespace _espe.backend
/** /**
*/ */
export async function invite_read( export async function invitation_read(
id : int id : int
) : Promise< ) : Promise<
{ {
@ -505,7 +505,7 @@ namespace _espe.backend
/** /**
*/ */
export async function invite_create( export async function invitation_create(
data : { data : {
name_changeable : boolean; name_changeable : boolean;
name_value : string; name_value : string;
@ -542,7 +542,7 @@ namespace _espe.backend
/** /**
*/ */
export async function invite_examine( export async function invitation_examine(
key : string key : string
) : Promise< ) : Promise<
{ {
@ -571,7 +571,7 @@ namespace _espe.backend
/** /**
*/ */
export async function invite_accept( export async function invitation_accept(
key : string, key : string,
data : { data : {
name : string; name : string;

View file

@ -49,10 +49,10 @@ ${dir_temp}/logic-unlinked.js: \
${dir_source}/pages/member_view/logic.ts \ ${dir_source}/pages/member_view/logic.ts \
${dir_source}/pages/password_change_init/logic.ts \ ${dir_source}/pages/password_change_init/logic.ts \
${dir_source}/pages/password_change_exec/logic.ts \ ${dir_source}/pages/password_change_exec/logic.ts \
${dir_source}/pages/invite_list/logic.ts \ ${dir_source}/pages/invitation_list/logic.ts \
${dir_source}/pages/invite_view/logic.ts \ ${dir_source}/pages/invitation_view/logic.ts \
${dir_source}/pages/invite_create/logic.ts \ ${dir_source}/pages/invitation_create/logic.ts \
${dir_source}/pages/invite_handle/logic.ts \ ${dir_source}/pages/invitation_handle/logic.ts \
${dir_source}/logic/main.ts ${dir_source}/logic/main.ts
@ ${cmd_log} "logic | compile …" @ ${cmd_log} "logic | compile …"
@ ${cmd_mkdir} $(dir $@) @ ${cmd_mkdir} $(dir $@)
@ -75,10 +75,10 @@ ${dir_build}/style.css: \
${dir_source}/pages/member_view/style.css \ ${dir_source}/pages/member_view/style.css \
${dir_source}/pages/password_change_init/style.css \ ${dir_source}/pages/password_change_init/style.css \
${dir_source}/pages/password_change_exec/style.css \ ${dir_source}/pages/password_change_exec/style.css \
${dir_source}/pages/invite_list/style.css \ ${dir_source}/pages/invitation_list/style.css \
${dir_source}/pages/invite_view/style.css \ ${dir_source}/pages/invitation_view/style.css \
${dir_source}/pages/invite_create/style.css \ ${dir_source}/pages/invitation_create/style.css \
${dir_source}/pages/invite_handle/style.css ${dir_source}/pages/invitation_handle/style.css
@ ${cmd_log} "style …" @ ${cmd_log} "style …"
@ ${cmd_mkdir} $(dir $@) @ ${cmd_mkdir} $(dir $@)
@ ${cmd_cat} $^ > $@ @ ${cmd_cat} $^ > $@
@ -95,10 +95,10 @@ ${dir_build}/index.html: \
${dir_source}/pages/member_view/structure.html \ ${dir_source}/pages/member_view/structure.html \
${dir_source}/pages/password_change_init/structure.html \ ${dir_source}/pages/password_change_init/structure.html \
${dir_source}/pages/password_change_exec/structure.html \ ${dir_source}/pages/password_change_exec/structure.html \
${dir_source}/pages/invite_list/structure.html \ ${dir_source}/pages/invitation_list/structure.html \
${dir_source}/pages/invite_view/structure.html \ ${dir_source}/pages/invitation_view/structure.html \
${dir_source}/pages/invite_create/structure.html \ ${dir_source}/pages/invitation_create/structure.html \
${dir_source}/pages/invite_handle/structure.html ${dir_source}/pages/invitation_handle/structure.html
@ ${cmd_log} "structure …" @ ${cmd_log} "structure …"
@ ${cmd_mkdir} $(dir $@) @ ${cmd_mkdir} $(dir $@)
@ tools/make-index $^ > $@ @ tools/make-index $^ > $@