From 07af86a955b6dbf4c55744298c342bc4933faf2a Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Mon, 31 May 2021 20:50:42 +0200 Subject: [PATCH] UI for editing Persons and ContactableEntities --- .../AbstractContactableEntityEditStep.java | 3 +- .../ContactableEntityEditStepModel.java | 23 ++ .../assets/edit-contactable.xhtml | 268 +++++++++++++++++- .../assets/person/edit-person.xhtml | 16 +- .../ui/MvcAssetStepsBundle.properties | 55 ++++ .../ui/MvcAssetStepsBundle_de.properties | 55 ++++ 6 files changed, 411 insertions(+), 9 deletions(-) diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AbstractContactableEntityEditStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AbstractContactableEntityEditStep.java index 74b8f5e8a..e5d743114 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AbstractContactableEntityEditStep.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AbstractContactableEntityEditStep.java @@ -196,12 +196,13 @@ public abstract class AbstractContactableEntityEditStep return buildRedirectPathForStep(); } - + @POST @Path("/postaladdress") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) public String setPostalAddress( + @FormParam("postalAddressIdentifier") final String postalAddressIdentifier ) { final Identifier identifier = identifierParser diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ContactableEntityEditStepModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ContactableEntityEditStepModel.java index 07e84b0f8..35e66d93f 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ContactableEntityEditStepModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ContactableEntityEditStepModel.java @@ -18,15 +18,19 @@ */ package org.librecms.ui.contentsections.assets; +import org.libreccm.l10n.GlobalizationHelper; import org.librecms.assets.PostalAddress; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; +import java.util.Optional; import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; import javax.inject.Named; /** @@ -37,6 +41,9 @@ import javax.inject.Named; @Named("CmsContactableEditStepModel") public class ContactableEntityEditStepModel { + @Inject + private GlobalizationHelper globalizationHelper; + private Map availableContactEntryKeys; private List contactEntries; @@ -68,9 +75,25 @@ public class ContactableEntityEditStepModel { public PostalAddress getPostalAddress() { return postalAddress; } + + public String getPostalAddressType() { + return PostalAddress.class.getName(); + } protected void setPostalAddress(final PostalAddress postalAddress) { this.postalAddress = postalAddress; } + public String getPostalAddressCountry() { + return Optional + .ofNullable(postalAddress) + .map(PostalAddress::getIsoCountryCode) + .map(code -> new Locale("", code)) + .map( + locale -> locale.getDisplayCountry( + globalizationHelper.getNegotiatedLocale() + ) + ).orElse(""); + } + } diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/edit-contactable.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/edit-contactable.xhtml index f223f5d7f..3b208205c 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/edit-contactable.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/edit-contactable.xhtml @@ -3,11 +3,73 @@ xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm" + xmlns:librecms="http://xmlns.jcp.org/jsf/composite/components/librecms" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - +

#{CmsAssetsStepsDefaultMessagesBundle['contactable.contactentries.title']}

- + +
+ +
+ @@ -19,25 +81,223 @@ - +
#{entry.entryKeyLabel} #{entry.value} + +
- + +

#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.title']}

+ + + + +
+ +
+

#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.none']}

+
+ +
+ + +
+ +
+
+
#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.address']}
+
+
#{CmsContactableEditStepModel.postalAddress.address}
+
+
+
+
#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.postalcode']}
+
#{CmsContactableEditStepModel.postalAddress.postalCode}
+
+
+
#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.city']}
+
#{CmsContactableEditStepModel.postalAddress.city}
+
+
+
#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.state']}
+
#{CmsContactableEditStepModel.postalAddress.state}
+
+
+
#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.country']}
+
#{CmsContactableEditStepModel.postalAddressCountry}) (#{CmsContactableEditStepModel.postalAddress.isoCountryCode})
+
+ +
+
+
+
diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/person/edit-person.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/person/edit-person.xhtml index 1c807ddc9..90e8577eb 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/person/edit-person.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/person/edit-person.xhtml @@ -30,14 +30,15 @@ aria-labelledby="add-personname-dialog-title" class="modal fade" id="add-personname-dialog" - tab accesskey="-1" + tabindex="-1" >