From 35c35480b35867976f5a8ce3c69197a2b81595cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Thu, 10 Nov 2011 18:03:50 +0100 Subject: [PATCH] [Bug #1248] Added extra validators when saving order Check that it's not empty and only raise exception if it's not the name of the same project being saved FEA: ItEr75S04BugFixing --- .../web/orders/OrderCRUDController.java | 65 ++++++++++++------- .../src/main/webapp/orders/_edition.zul | 6 +- 2 files changed, 45 insertions(+), 26 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java index cf1331fda..3b961c4e2 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java @@ -1481,30 +1481,51 @@ public class OrderCRUDController extends GenericForwardComposer { } } - public void chekValidProjectName(Textbox textbox) { - try { - Order found = orderDAO.findByNameAnotherTransaction(textbox - .getValue()); - if ((found != null) && (!found.getId().equals(getOrder().getId()))) { - throw new WrongValueException(textbox, - _("project name already being used")); + public Constraint chekValidProjectName() { + return new Constraint() { + @Override + public void validate(Component comp, Object value) + throws WrongValueException { + + if (StringUtils.isBlank((String) value)) { + throw new WrongValueException(comp, + _("cannot be null or empty")); + } + try { + Order found = orderDAO + .findByNameAnotherTransaction((String) value); + if (!found.getId().equals(getOrder().getId())) { + throw new WrongValueException(comp, + _("project name already being used")); + } + } catch (InstanceNotFoundException e) { + return; + } } - } catch (InstanceNotFoundException e) { - return; - } + }; } - public void chekValidProjectCode(Textbox textbox) { - try { - Order found = orderDAO.findByCodeAnotherTransaction(textbox - .getValue()); - if ((found != null) && (!found.getId().equals(getOrder().getId()))) { - throw new WrongValueException(textbox, - _("code already being used")); - } - } catch (InstanceNotFoundException e) { - return; - } - } + public Constraint chekValidProjectCode() { + return new Constraint() { + @Override + public void validate(Component comp, Object value) + throws WrongValueException { + if (StringUtils.isBlank((String) value)) { + throw new WrongValueException(comp, + _("cannot be null or empty")); + } + try { + Order found = orderDAO + .findByCodeAnotherTransaction((String) value); + if (!found.getId().equals(getOrder().getId())) { + throw new WrongValueException(comp, + _("project code already being used")); + } + } catch (InstanceNotFoundException e) { + return; + } + } + }; + } } diff --git a/libreplan-webapp/src/main/webapp/orders/_edition.zul b/libreplan-webapp/src/main/webapp/orders/_edition.zul index c8c2dabc3..520e6d671 100644 --- a/libreplan-webapp/src/main/webapp/orders/_edition.zul +++ b/libreplan-webapp/src/main/webapp/orders/_edition.zul @@ -71,16 +71,14 @@