Category System Edit form

Former-commit-id: 851f905302
pull/7/head
Jens Pelzetter 2020-11-13 10:17:07 +01:00
parent b435e8f06b
commit c2ef4f67a0
5 changed files with 36 additions and 11 deletions

View File

@ -47,5 +47,9 @@ public class Message {
public MessageType getMessageType() {
return messageType;
}
public String getMessageTypeClass() {
return messageType.toString().toLowerCase();
}
}

View File

@ -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<CategorySystemOwnerRow> owners;
private final List<Message> messages;
private Set<String> 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<String> getInvalidFields() {
return Collections.unmodifiableSet(invalidFields);
}
protected void addInvalidField(final String invalidField) {
invalidFields.add(invalidField);
}
protected void setInvalidFields(final Set<String> invalidFields) {
this.invalidFields = new HashSet<>(invalidFields);
}
@Transactional(Transactional.TxType.REQUIRED)
protected void setCategorySystem(final Domain domain) {

View File

@ -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());

View File

@ -36,6 +36,12 @@
<div class="container">
<h1>#{CategorySystemDetailsModel.new ? AdminMessages['categorysystems.new.label'] : AdminMessages.getMessage('categorysystems.edit.label', [CategorySystemDetailsModel.domainKey])}</h1>
<c:forEach items="#{CategorySystemDetailsModel.messages}" var="message">
<div class="alert alert-#{message.messageTypeClass}" role="alert">
#{message.message}
</div>
</c:forEach>
<form action="#{CategorySystemDetailsModel.new ? mvc.uri('CategorySystemFormController#createCategorySystem') : mvc.uri('CategorySystemFormController#updateCategorySystem', {'categorySystemIdentifier': CategorySystemDetailsModel.domainKey })}"
method="post">
<div class="form-group">

View File

@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"