Bugfixes for create and edit steps of person asset.

pull/10/head
Jens Pelzetter 2021-06-01 21:14:40 +02:00
parent 07af86a955
commit b46634f5ec
9 changed files with 230 additions and 194 deletions

View File

@ -18,6 +18,7 @@
*/
package org.librecms.ui.contentsections.assets;
import java.util.HashSet;
import java.util.Set;
@ -34,6 +35,7 @@ public class CmsAssetEditSteps implements MvcAssetEditSteps {
classes.add(BookmarkEditStep.class);
classes.add(FileAssetEditStep.class);
classes.add(LegalMetadataEditStep.class);
classes.add(PersonEditStep.class);
classes.add(PostalAddressEditStep.class);
classes.add(SideNoteEditStep.class);

View File

@ -27,8 +27,10 @@ import org.librecms.contentsection.AssetRepository;
import org.librecms.ui.contentsections.AssetPermissionsChecker;
import org.librecms.ui.contentsections.ContentSectionNotFoundException;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Optional;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
@ -92,10 +94,17 @@ public class PersonEditStep extends AbstractContactableEntityEditStep {
if (getAsset() instanceof Person) {
editStepModel.setBirthdate(
Optional
.ofNullable(getPerson().getBirthdate())
.map(
birthdate -> birthdate.format(
DateTimeFormatter
.ofLocalizedDate(FormatStyle.SHORT)
.withLocale(globalizationHelper.getNegotiatedLocale())
.format(getPerson().getBirthdate())
.withLocale(
globalizationHelper.getNegotiatedLocale()
)
.withZone(ZoneId.systemDefault())))
.orElse("")
);
editStepModel.setPersonNames(getPerson().getPersonNames());
} else {

View File

@ -40,10 +40,10 @@
</cc:interface>
<cc:implementation>
<div class="ccm-cms-asset-picker"
<!-- <div class="ccm-cms-asset-picker"
data-assettype="#{cc.attrs.assetType}"
data-contentsection="#{cc.attrs.contentSection}">
<div aria-hidden="true"
data-contentsection="#{cc.attrs.contentSection}">-->
<!-- <div aria-hidden="true"
aria-labelledby="#{cc.attrs.assetPickerId}-dialog-title"
class="modal fade"
id="#{cc.attrs.assetPickerId}-dialog"
@ -136,8 +136,8 @@
</div>
</div>
</div>
</div>
</div>
</div>-->
<!--</div>-->
</cc:implementation>

View File

@ -70,6 +70,7 @@
</form>
</div>
</div>
<table>
<thead>
<tr>
@ -210,15 +211,15 @@
/>
<c:choose>
<c:when test="#{CmsContactableEditStepModel.postalAddress == null}">
<div class="text-right">
<!-- <div class="text-right">
<librecms:assetPickerButton
assetPickerId="postaladdress-picker"
/>
</div>
<p>#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.none']}</p>
<p>#{CmsAssetsStepsDefaultMessagesBundle['contactable.postaladdress.none']}</p>-->
</c:when>
<c:otherwise>
<div class="text-right">
<!-- <div class="text-right">
<librecms:assetPickerButton
assetPickerId="postaladdress-picker"
/>
@ -295,7 +296,7 @@
<dd>#{CmsContactableEditStepModel.postalAddressCountry}) (#{CmsContactableEditStepModel.postalAddress.isoCountryCode})</dd>
</div>
</dl>
</dl>-->
</c:otherwise>
</c:choose>

View File

@ -10,14 +10,14 @@
<div class="container">
<h1>#{CmsAssetsStepsDefaultMessagesBundle["person.createform.title"]}</h1>
<c:forEach items="#{CmsBookmarkCreateStep.messages.entrySet()}"
<c:forEach items="#{CmsPersonCreateStep.messages.entrySet()}"
var="message">
<div class="alert alert-#{message.key}" role="alert">
#{message.value}
</div>
</c:forEach>
<form action="#{mvc.basePath}/#{CmsPersonCreateStep.contentSectionLabel}/assets/#{CmsPersonCreateStep.folderPath}@create/#{CmsPersonCreateStep.assetType}"
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsPersonCreateStep.folderPath}@create/#{CmsPersonCreateStep.assetType}"
method="post">
<bootstrap:formGroupText
help="#{CmsAssetsStepsDefaultMessagesBundle['createform.name.help']}"
@ -26,7 +26,7 @@
name="name"
pattern="^([a-zA-Z0-9_-]*)$"
required="true"
value="#{CmsBookmarkCreateStep.name}"
value="#{CmsPersonCreateStep.name}"
/>
<bootstrap:formGroupSelect
@ -34,9 +34,9 @@
inputId="locale"
label="#{CmsAssetsStepsDefaultMessagesBundle['createform.initial_locale.label']}"
name="locale"
options="#{CmsBookmarkCreateStep.availableLocales}"
options="#{CmsPersonCreateStep.availableLocales}"
required="true"
selectedOptions="#{[CmsBookmarkCreateStep.initialLocale]}"
selectedOptions="#{[CmsPersonCreateStep.initialLocale]}"
/>
<bootstrap:formGroupText
@ -48,7 +48,7 @@
/>
<a class="btn btn-warning"
href="#{mvc.basePath}/#{CmsBookmarkCreateStep.contentSectionLabel}/assetfolders/#{CmsBookmarkCreateStep.folderPath}">
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assetfolders/#{CmPersonCreateStep.folderPath}">
#{CmsAssetsStepsDefaultMessagesBundle['createform.cancel']}
</a>
<button class="btn btn-success"

View File

@ -85,13 +85,20 @@
</form>
</div>
</div>
<c:choose>
<c:when test="#{CmsPersonEditStepModel.personNames.isEmpty()}">
<p>
#{CmsAssetStepsDefaultStepsMessageBundle['person.personnames.none']}
</p>
</c:when>
<c:otherwise>
<table>
<thead>
<tr>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personnames.col.prefix']}</th>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personnames.col.surname']}</th>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personnames.col.givenname']}</th>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personnames.col.suffix']}</th>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personname.prefix.label']}</th>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personname.surname.label']}</th>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personname.givenname.label']}</th>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personname.suffix.label']}</th>
<th>#{CmsAssetsStepsDefaultMessagesBundle['person.personnames.col.actions']}</th>
</tr>
</thead>
@ -210,19 +217,19 @@
</p>
<dl>
<div>
<dt>person.personname.prefix.label</dt>
<dt>#{CmsAssetsStepsDefaultMessagesBundle['person.personname.prefix.label']}</dt>
<dd>#{personName.prefix}</dd>
</div>
<div>
<dt>person.personname.surname.label</dt>
<dt>#{CmsAssetsStepsDefaultMessagesBundle['person.personname.surname.label']}</dt>
<dd>#{personName.surname}</dd>
</div>
<div>
<dt>person.personname.givename.label</dt>
<dt>#{CmsAssetsStepsDefaultMessagesBundle['person.personname.givename.label']}</dt>
<dd>#{personName.givenName}</dd>
</div>
<div>
<dt>person.personname.suffix.label</dt>
<dt>#{CmsAssetsStepsDefaultMessagesBundle['person.personname.suffix.label']}</dt>
<dd>#{personName.suffix}</dd>
</div>
</dl>
@ -246,6 +253,8 @@
</c:forEach>
</tbody>
</table>
</c:otherwise>
</c:choose>
<ui:include src="../edit-contactable.xhtml">
<ui:param name="actionBaseUrl"

View File

@ -263,3 +263,8 @@ person.personname.remove.dialog.title=Remove Person Name
person.personname.remove.dialog.close=Cancel
person.personname.remove.dialog.message=Are you sure to remove the following person name: {0} {1} {2} {3}?
person.personname.remove.dialog.submit=Remove name
person.label=Person
person.description=Contact information of a person
person.createform.title=Create new Person
person.personnames.col.actions=Actions
person.personnames.none=No person names yet.

View File

@ -263,3 +263,8 @@ person.personname.remove.dialog.title=Namen entfernen
person.personname.remove.dialog.close=Abbrechen
person.personname.remove.dialog.message=Sind Sie sicher, dass Sie den folgenden Namen entfernen wollen: {0} {1} {2} {3}?
person.personname.remove.dialog.submit=Namen entfernen
person.label=Person
person.description=Kontaktinformationen einer Person
person.createform.title=Neue Person anlegen
person.personnames.col.actions=Aktionen
person.personnames.none=Noch keine Personennamen vorhanden.

View File

@ -64,7 +64,6 @@ import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;
/**
* Tests for the {@link AssetRepository}.
*
@ -277,19 +276,25 @@ public class AssetRepositoryIT {
"datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml")
public void findAssetByUuidAndType() {
final Optional<Asset> asset = shiro
final Optional<? extends Asset> asset = shiro
.getSystemUser()
.execute(() -> {
.execute(
() -> {
return assetRepo
.findByUuidAndType("4635589f-b87a-46d9-979e-6af14af063e5",
Image.class);
.findByUuidAndType(
"4635589f-b87a-46d9-979e-6af14af063e5",
Image.class
);
});
final Optional<Asset> none = shiro
final Optional<? extends Asset> none = shiro
.getSystemUser()
.execute(() -> {
.execute(
() -> {
return assetRepo
.findByUuidAndType("4635589f-b87a-46d9-979e-6af14af063e5",
FileAsset.class);
.findByUuidAndType(
"4635589f-b87a-46d9-979e-6af14af063e5",
FileAsset.class
);
});
assertThat(asset.isPresent(), is(true));