diff --git a/source/data/localization/deu.loc.json b/source/data/localization/deu.loc.json index 07fdc87..13253d4 100644 --- a/source/data/localization/deu.loc.json +++ b/source/data/localization/deu.loc.json @@ -14,6 +14,7 @@ "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.groups.label": "Gruppen", "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", diff --git a/source/data/localization/eng.loc.json b/source/data/localization/eng.loc.json index 8ab9e8e..b0f3b47 100644 --- a/source/data/localization/eng.loc.json +++ b/source/data/localization/eng.loc.json @@ -14,6 +14,7 @@ "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.groups.label": "groups", "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", diff --git a/source/logic/backend.ts b/source/logic/backend.ts index db8a399..ec1eb96 100644 --- a/source/logic/backend.ts +++ b/source/logic/backend.ts @@ -266,6 +266,7 @@ namespace _espe.backend name_real_value : string; name_real_index : int; email_address_private : (null | string); + groups : Array; registered : boolean; enabled : boolean; email_use_veiled_address : boolean; @@ -293,6 +294,7 @@ namespace _espe.backend membership_number : string; name_real_value : string; email_address_private : (null | string); + groups : Array; }, notification_target_url_template : string ) : Promise @@ -305,6 +307,7 @@ namespace _espe.backend "membership_number": data.membership_number, "name_real_value": data.name_real_value, "email_address_private": data.email_address_private, + "groups": data.groups, "notification_target_url_template": notification_target_url_template, } } @@ -391,6 +394,7 @@ namespace _espe.backend id : int, data : { email_address_private : (null | string); + groups : Array; registered : boolean; enabled : boolean; } diff --git a/source/pages/create/logic.ts b/source/pages/create/logic.ts index a94ca69..b9e4869 100644 --- a/source/pages/create/logic.ts +++ b/source/pages/create/logic.ts @@ -25,40 +25,60 @@ lib_plankton.zoo_page.register( membership_number : string; name_real_value : string; email_address_private : (null | string); + groups : Array; }, { membership_number : string; name_real_value : string; email_address_private : string; + groups : Array; } >( value => ({ "membership_number": value.membership_number, "name_real_value": value.name_real_value, "email_address_private": (value.email_address_private ?? ""), + "groups": value.groups, }), representation => ({ "membership_number": representation.membership_number, "name_real_value": representation.name_real_value, "email_address_private": representation.email_address_private, + "groups": representation.groups, }), new lib_plankton.zoo_input.class_input_group( [ { "name": "name_real_value", "input": new lib_plankton.zoo_input.class_input_text(), + /** + * @todo translate + */ "label": "Echter Name", }, { "name": "membership_number", "input": new lib_plankton.zoo_input.class_input_text(), + /** + * @todo translate + */ "label": "Mitgliedsnummer", }, { "name": "email_address_private", "input": new lib_plankton.zoo_input.class_input_text(), + /** + * @todo translate + */ "label": "Private E-Mail-Adresse", }, + { + "name": "groups", + "input": new lib_plankton.zoo_input.class_input_list( + () => new lib_plankton.zoo_input.class_input_text() + ), + "label": lib_plankton.translate.get("page.view.form.field.groups.label"), + }, ] ), [ diff --git a/source/pages/view/logic.ts b/source/pages/view/logic.ts index a008680..ece3d4f 100644 --- a/source/pages/view/logic.ts +++ b/source/pages/view/logic.ts @@ -29,6 +29,7 @@ lib_plankton.zoo_page.register( membership_number : string; name_real_value : string; name_real_index : int; + groups : Array; registered : boolean; enabled : boolean; email_address_private : (null | string); @@ -43,6 +44,7 @@ lib_plankton.zoo_page.register( membership_number : string; name_real_value : string; name_real_index : int; + groups : Array; registered : boolean; enabled : boolean; email_address_private : (null | string); @@ -73,6 +75,13 @@ lib_plankton.zoo_page.register( "input": new lib_plankton.zoo_input.class_input_text({"read_only": true}), "label": lib_plankton.translate.get("page.view.form.field.membership_number.label"), }, + { + "name": "groups", + "input": new lib_plankton.zoo_input.class_input_list( + () => new lib_plankton.zoo_input.class_input_text() + ), + "label": lib_plankton.translate.get("page.view.form.field.groups.label"), + }, { "name": "enabled", "input": new lib_plankton.zoo_input.class_input_checkbox(), @@ -130,6 +139,7 @@ lib_plankton.zoo_page.register( id, { "email_address_private": value.email_address_private, + "groups": value.groups, "enabled": value.enabled, "registered": value.registered, } @@ -174,6 +184,7 @@ lib_plankton.zoo_page.register( "membership_number": member_data.membership_number, "name_real_value": member_data.name_real_value, "name_real_index": member_data.name_real_index, + "groups": member_data.groups, "registered": member_data.registered, "enabled": member_data.enabled, "email_address_private": member_data.email_address_private, diff --git a/source/pages/view/style.css b/source/pages/view/style.css index a8ff467..87593c5 100644 --- a/source/pages/view/style.css +++ b/source/pages/view/style.css @@ -44,3 +44,13 @@ You should have received a copy of the GNU General Public License along with thi display: block; margin: 8px; } + +section.view .plankton_input_list_element > * +{ + display: inline-block; +} + +section.view .plankton_input_list_element_input +{ + +}