ccm-docs
Jens Pelzetter 2020-10-03 19:00:23 +02:00
parent 208c4f85b7
commit 19d4882a6c
5 changed files with 68 additions and 34 deletions

View File

@ -74,17 +74,17 @@ public class EmailFormController {
@Inject
private UserRepository userRepository;
@MvcBinding
@FormParam("address")
@NotBlank
@Email
private String address;
@FormParam("bouncing")
private boolean bouncing;
@FormParam("verified")
private boolean verified;
// @MvcBinding
// @FormParam("address")
// @NotBlank
// @Email
// private String address;
//
// @FormParam("bouncing")
// private boolean bouncing;
//
// @FormParam("verified")
// private boolean verified;
@GET
@Path("/new")
@ -94,6 +94,10 @@ public class EmailFormController {
public String getNewEmailAddressForm(
@PathParam("userIdentifier") final String userIdentifierParam
) {
emailFormModel.setUserIdentifier(userIdentifierParam);
emailFormModel.setAddress("example@example.org");
emailFormModel.setBouncing(false);
emailFormModel.setVerified(false);
return "org/libreccm/ui/admin/users-groups-roles/email-form.xhtml";
}
@ -129,9 +133,9 @@ public class EmailFormController {
final User user = result.get();
final EmailAddress emailAddress = new EmailAddress();
emailAddress.setAddress(address);
emailAddress.setBouncing(bouncing);
emailAddress.setVerified(verified);
emailAddress.setAddress(emailFormModel.getAddress());
emailAddress.setBouncing(emailAddress.isBouncing());
emailAddress.setVerified(emailFormModel.isVerified());
user.addEmailAddress(emailAddress);
userRepository.save(user);
@ -194,6 +198,7 @@ public class EmailFormController {
final EmailAddress emailAddress = user
.getEmailAddresses()
.get(emailId);
emailFormModel.setEmailId(emailId);
emailFormModel.setAddress(emailAddress.getAddress());
emailFormModel.setBouncing(emailAddress.isBouncing());
emailFormModel.setVerified(emailAddress.isVerified());
@ -255,9 +260,9 @@ public class EmailFormController {
.getEmailAddresses()
.get(emailId);
emailAddress.setAddress(address);
emailAddress.setBouncing(bouncing);
emailAddress.setVerified(verified);
emailAddress.setAddress(emailFormModel.getAddress());
emailAddress.setBouncing(emailFormModel.isBouncing());
emailAddress.setVerified(emailFormModel.isVerified());
userRepository.save(user);

View File

@ -27,25 +27,50 @@ import javax.inject.Named;
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@RequestScoped
@Named("EmailFormModel")
public class EmailFormModel {
private String userIdentifier;
private int emailId;
private String address;
private boolean bouncing;
private boolean verified;
public void setEmailAddress(final EmailAddress emailAddress) {
public void setEmailAddress(
final String userIdentifier,
final int emailId,
final EmailAddress emailAddress
) {
this.userIdentifier = userIdentifier;
this.emailId = emailId;
address = emailAddress.getAddress();
bouncing = emailAddress.isBouncing();
verified = emailAddress.isVerified();
}
public boolean isNew() {
return address == null;
return emailId == 0;
}
public String getUserIdentifier() {
return userIdentifier;
}
public void setUserIdentifier(final String userIdentifier) {
this.userIdentifier = userIdentifier;
}
public int getEmailId() {
return emailId;
}
public void setEmailId(final int emailId) {
this.emailId = emailId;
}
public String getAddress() {
@ -73,4 +98,5 @@ public class EmailFormModel {
}
}

View File

@ -41,6 +41,7 @@ public class UsersGroupsRolesPage implements AdminPage {
classes.add(RolesController.class);
classes.add(UsersController.class);
classes.add(UserFormController.class);
classes.add(EmailFormController.class);
return classes;
}

View File

@ -25,7 +25,7 @@
#{UserDetailsModel.name}
</a>
</li>
<li class=breadcrumb-item active">
<li class="breadcrumb-item active">
#{EmailFormModel.new ? AdminMessages['usersgroupsroles.users.breadcrumbs.email.add'] : AdminMessages['usersgroupsroles.users.breadcrumbs.email.edit']}
</li>
</ui:define>
@ -36,7 +36,7 @@
#{error}
</div>
</c:forEach>
<form action="#{EmailFormModel.new ? mvc.uri('EmailFormController#addNewEmailAddress') : mvc.uri('EmailFormController#updateEmailAddress')}"
<form action="#{EmailFormModel.new ? mvc.uri('EmailFormController#addNewEmailAddress', {'userIdentifier': EmailFormModel.userIdentifier }) : mvc.uri('EmailFormController#updateEmailAddress', { 'userIdentifier': EmailFormController.userIdentifier, 'emailId': EmailFormModel.emailId })}"
method="post">
<div class="form-group">
<label for="address">

View File

@ -136,7 +136,8 @@
#{AdminMessages['usergroupsroles.users.user_details.additional_email_addresses.heading']}
</h2>
<div>
<a class="btn btn-primary" href="#">
<a class="btn btn-primary"
href="#{mvc.uri('EmailFormController#getNewEmailAddressForm', {'userIdentifier': UserDetailsModel.name })}">
<svg class="bi"
width="1em"
height="1em"
@ -193,7 +194,8 @@
</c:choose>
</td>
<td>
<a class="btn btn-info" href="#">
<a class="btn btn-info"
href="#{mvc.uri('UsersController#removeEmailAddress', { 'userIdentifier': UserDetailsModel.name, 'emailId': status.index })}">
<svg class="bi"
width="1em"
height="1em"
@ -223,7 +225,7 @@
id="confirm-remove-#{status.index}"
tabindex="-1">
<div class="modal-dialog">
<form action="#{mvc.uri('UsersController#removeEmailAddress', { 'userIdentifier': UserDetailsModel.name, 'emailId': status.index })}"
<form action="#"
class="modal-content"
method="post">
<div class="modal-header">