Skip to content

Commit

Permalink
update layout + messages + validation (#807)
Browse files Browse the repository at this point in the history
* #731 - tickets must be assigned by default

* update text

* #786 - basic email validation

* update frontend version
  • Loading branch information
cbellone authored and syjer committed Oct 20, 2019
1 parent 4a65874 commit 64e5083
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 16 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ junitVersion=5.1.0
systemProp.jdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2"

# https://jitpack.io/#alfio-event/alf.io-public-frontend -> go to commit tab, set the version
alfioPublicFrontendVersion=9a14850e6f
alfioPublicFrontendVersion=e41f6ff93f
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ public ResponseEntity<EventWithAdditionalInfo> getEvent(@PathVariable("eventName
//

//
boolean forceAssignment = configurationsValues.get(FORCE_TICKET_OWNER_ASSIGNMENT_AT_RESERVATION).getValueAsBooleanOrDefault(false);
boolean forceAssignment = configurationsValues.get(FORCE_TICKET_OWNER_ASSIGNMENT_AT_RESERVATION).getValueAsBooleanOrDefault(true);
boolean enableAttendeeAutocomplete = configurationsValues.get(ENABLE_ATTENDEE_AUTOCOMPLETE).getValueAsBooleanOrDefault(true);
boolean enableTicketTransfer = configurationsValues.get(ENABLE_TICKET_TRANSFER).getValueAsBooleanOrDefault(true);
var assignmentConf = new EventWithAdditionalInfo.AssignmentConfiguration(forceAssignment, enableAttendeeAutocomplete, enableTicketTransfer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ public ResponseEntity<ValidatedResponse<Boolean>> validateToOverview(@PathVariab
var reservation = er.getRight();
var locale = LocaleUtil.forLanguageTag(lang, event);
final TotalPrice reservationCost = ticketReservationManager.totalReservationCostWithVAT(reservation.withVatStatus(event.getVatStatus()));
boolean forceAssignment = configurationManager.getFor(FORCE_TICKET_OWNER_ASSIGNMENT_AT_RESERVATION, ConfigurationLevel.event(event)).getValueAsBooleanOrDefault(false);
boolean forceAssignment = configurationManager.getFor(FORCE_TICKET_OWNER_ASSIGNMENT_AT_RESERVATION, ConfigurationLevel.event(event)).getValueAsBooleanOrDefault(true);

if(forceAssignment || ticketReservationManager.containsCategoriesLinkedToGroups(reservationId, event.getId())) {
contactAndTicketsForm.setPostponeAssignment(false);
Expand Down
11 changes: 7 additions & 4 deletions src/main/java/alfio/controller/form/ContactAndTicketsForm.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package alfio.controller.form;

import alfio.manager.SameCountryValidator;
import alfio.model.*;
import alfio.model.Event;
import alfio.model.TicketReservationInvoicingAdditionalInfo.ItalianEInvoicing;
import alfio.model.result.ValidationResult;
import alfio.model.system.ConfigurationKeys;
Expand All @@ -29,7 +29,10 @@
import org.springframework.validation.ValidationUtils;

import java.io.Serializable;
import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;

import static alfio.util.ErrorsCode.STEP_2_INVALID_VAT;
Expand Down Expand Up @@ -166,8 +169,8 @@ public void validate(BindingResult bindingResult, Event event,

}

if (email != null && !email.contains("@") && !bindingResult.hasFieldErrors("email")) {
bindingResult.rejectValue("email", ErrorsCode.STEP_2_INVALID_EMAIL);
if (email != null && !bindingResult.hasFieldErrors("email") && !Validator.isEmailValid(email)) {
bindingResult.rejectValue("email", ErrorsCode.STEP_2_INVALID_EMAIL, new Object[] {}, null);
}

if(!postponeAssignment) {
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/alfio/util/Validator.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@

public final class Validator {

private static final Pattern SIMPLE_E_MAIL_PATTERN = Pattern.compile("^[a-zA-Z0-9]+.*?@.+?\\..+$");
// source: https://commons.apache.org/proper/commons-validator/apidocs/src-html/org/apache/commons/validator/routines/EmailValidator.html
private static final Pattern SIMPLE_E_MAIL_PATTERN = Pattern.compile("^\\s*?(.+)@(.+?)\\s*$");

private Validator() {
}
Expand Down Expand Up @@ -320,8 +321,8 @@ private static void validateRestrictedValue(String value, String fieldName, Stri
}
}

private static boolean isEmailValid(String email) {
return StringUtils.isNotEmpty(email) && SIMPLE_E_MAIL_PATTERN.matcher(email).matches();
public static boolean isEmailValid(String email) {
return StringUtils.isNotEmpty(email) && !email.strip().endsWith(".") && SIMPLE_E_MAIL_PATTERN.matcher(email).matches();
}

private static void validateMaxLength(String value, String fieldName, String errorCode, int maxLength, Errors errors) {
Expand Down
6 changes: 3 additions & 3 deletions src/main/resources/alfio/i18n/public.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ event.get-your-ticket-for=Get your tickets for {0}

event-days.same-day={0} from {1} to {2}
event-days.not-same-day={0} at {1}
event-days.from=from {0}
event-days.to=to {0}
event-days.from=from
event-days.to=to

#event-list.ms
event-list.header.title=Choose your Event
Expand Down Expand Up @@ -54,7 +54,7 @@ show-event.promo-code.apply=Apply Code
show-event.promo-code-applied=Applied {0} code:
show-event.promo-code-percentage-discount={0} discount on the total price
show-event.promo-code-fixed-amount-discount={0} discount for each ticket
show-event.add-to-calendar=Add to my calendar:
show-event.add-to-calendar=Add to calendar:
show-event.expired-categories=Expired categories:
show-event.mandatoryOneForTicket=Surcharge, 1 per ticket

Expand Down
6 changes: 3 additions & 3 deletions src/main/resources/alfio/i18n/public_it.properties
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ reservation.reminder.mail=La tua prenotazione per l''evento {0} (ID {1}) scadrà
reservation.reminder.mail.subject=La tua prenotazione {0} sta per scadere
server-error=Si è verificato un errore inatteso. Per favore segnala quanto accaduto agli organizzatori.
session-expired.header.title=Sessione scaduta
show-event.add-to-calendar=Aggiungi al mio calendario:
show-event.add-to-calendar=Aggiungi al calendario:
show-event.additional-services=Opzioni aggiuntive
show-event.by=Organizzato da
show-event.continue=Avanti
Expand Down Expand Up @@ -349,7 +349,7 @@ show-event.tickets.left={0} rimanenti
show-event.category.quantity=Quantità
reservation-page.no-invoice-requested=Fattura non richiesta
reservation-page.request-invoice=Richiedi
event-days.from=Da {0}
event-days.to=a {0}
event-days.from=Da
event-days.to=a
event-list.no-events=Non ci sono eventi pubblici
reservation-page.cancel-reservation.confirmation.text=Confermi di voler annullare questa prenotazione?

0 comments on commit 64e5083

Please sign in to comment.