From c2ef4f67a0ce68774799adbfabd6ec2948c265a6 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Fri, 13 Nov 2020 10:17:07 +0100 Subject: [PATCH] Category System Edit form Former-commit-id: 851f9053021f8a05b32af2106ae6ff52b34f9fa3 --- .../main/java/org/libreccm/ui/Message.java | 4 +++ .../CategorySystemDetailsModel.java | 25 ++++++++++++++----- .../CategorySystemFormController.java | 10 +++++--- .../categories/categorysystem-form.xhtml | 6 +++++ .../ui/admin/categories/categorysystems.xhtml | 2 +- 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/ui/Message.java b/ccm-core/src/main/java/org/libreccm/ui/Message.java index 06bab7d56..dee8912d5 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/Message.java +++ b/ccm-core/src/main/java/org/libreccm/ui/Message.java @@ -47,5 +47,9 @@ public class Message { public MessageType getMessageType() { return messageType; } + + public String getMessageTypeClass() { + return messageType.toString().toLowerCase(); + } } diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/categories/CategorySystemDetailsModel.java b/ccm-core/src/main/java/org/libreccm/ui/admin/categories/CategorySystemDetailsModel.java index ae02093de..60cea6cd9 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/categories/CategorySystemDetailsModel.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/categories/CategorySystemDetailsModel.java @@ -22,18 +22,16 @@ import org.libreccm.categorization.Domain; import org.libreccm.categorization.DomainOwnership; import org.libreccm.ui.Message; -import java.time.Instant; import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.ZoneId; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collections; -import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; import javax.enterprise.context.RequestScoped; @@ -67,9 +65,12 @@ public class CategorySystemDetailsModel { private List owners; private final List messages; + + private Set invalidFields; public CategorySystemDetailsModel() { messages = new ArrayList<>(); + invalidFields = new HashSet<>(); } public long getCategorySystemId() { @@ -96,8 +97,8 @@ public class CategorySystemDetailsModel { return domainKey; } - protected void setDomainKey(final String uuid) { - this.uuid = uuid; + protected void setDomainKey(final String domainKey) { + this.domainKey = domainKey; } public String getUri() { @@ -155,6 +156,18 @@ public class CategorySystemDetailsModel { public void addMessage(final Message message) { messages.add(message); } + + public Set getInvalidFields() { + return Collections.unmodifiableSet(invalidFields); + } + + protected void addInvalidField(final String invalidField) { + invalidFields.add(invalidField); + } + + protected void setInvalidFields(final Set invalidFields) { + this.invalidFields = new HashSet<>(invalidFields); + } @Transactional(Transactional.TxType.REQUIRED) protected void setCategorySystem(final Domain domain) { diff --git a/ccm-core/src/main/java/org/libreccm/ui/admin/categories/CategorySystemFormController.java b/ccm-core/src/main/java/org/libreccm/ui/admin/categories/CategorySystemFormController.java index c12933d00..fa1daccaf 100644 --- a/ccm-core/src/main/java/org/libreccm/ui/admin/categories/CategorySystemFormController.java +++ b/ccm-core/src/main/java/org/libreccm/ui/admin/categories/CategorySystemFormController.java @@ -89,8 +89,6 @@ public class CategorySystemFormController { @Transactional(Transactional.TxType.REQUIRED) public String createCategorySystem() { - final Domain domain = domainManager.createDomain(domainKey, domainKey); - if (!isValidUri()) { categorySystemDetailsModel.setDomainKey(domainKey); categorySystemDetailsModel.setUri(uri); @@ -102,11 +100,14 @@ public class CategorySystemFormController { adminMessages.get("categorysystems.form.errors.uri_invalid"), MessageType.PRIMARY) ); + categorySystemDetailsModel.addInvalidField("uri"); + return "org/libreccm/ui/admin/categories/categorysystem-form.xhtml"; } + final Domain domain = domainManager.createDomain(domainKey, domainKey); domain.setUri(uri); domain.setVersion(version); - if (released == null) { + if (released == null || released.isEmpty()) { domain.setReleased(null); } else { domain.setReleased(convertReleased()); @@ -158,13 +159,14 @@ public class CategorySystemFormController { "categorysystems.form.errors.uri_invalid"), MessageType.PRIMARY) ); + categorySystemDetailsModel.addInvalidField("uri"); return "org/libreccm/ui/admin/categories/categorysystem-form.xhtml"; } final Domain domain = result.get(); domain.setDomainKey(domainKey); domain.setUri(uri); domain.setVersion(version); - if (released == null) { + if (released == null || released.isEmpty()) { domain.setReleased(null); } else { domain.setReleased(convertReleased()); diff --git a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/categories/categorysystem-form.xhtml b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/categories/categorysystem-form.xhtml index 9702f29a2..781d5f8d9 100644 --- a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/categories/categorysystem-form.xhtml +++ b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/categories/categorysystem-form.xhtml @@ -36,6 +36,12 @@

#{CategorySystemDetailsModel.new ? AdminMessages['categorysystems.new.label'] : AdminMessages.getMessage('categorysystems.edit.label', [CategorySystemDetailsModel.domainKey])}

+ + + +
diff --git a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/categories/categorysystems.xhtml b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/categories/categorysystems.xhtml index a5856832f..f9dec4e84 100644 --- a/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/categories/categorysystems.xhtml +++ b/ccm-core/src/main/resources/WEB-INF/views/org/libreccm/ui/admin/categories/categorysystems.xhtml @@ -1,4 +1,4 @@ - +