Author: vbriand Date: 2011-03-24 17:17:08 +0100 (Thu, 24 Mar 2011) New Revision: 40 Url: http://chorem.org/repositories/revision/chorem/40 Log: New class with validation for adding a company Added: trunk/chorem-web/src/main/java/org/chorem/bonzoms/ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java trunk/chorem-web/src/main/resources/org/chorem/bonzoms/ trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/ trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-validation.xml trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties trunk/chorem-web/src/main/resources/struts.xml trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addCompany.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp Added: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java (rev 0) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java 2011-03-24 16:17:08 UTC (rev 40) @@ -0,0 +1,89 @@ +package org.chorem.bonzoms.action; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.ChoremProxy; +import org.chorem.action.BaseAction; +import org.chorem.entities.CompanyImpl; + +import static org.nuiton.i18n.I18n.n_; + +/** + * Company management class + * + * @author vbriand + */ +public class CompanyAction extends BaseAction { + + private static final long serialVersionUID = 2266576941588474102L; + + private static final Log log = LogFactory.getLog(CompanyAction.class); + + public String add() { + String result = INPUT; + + if (name != null && type != null) { + if (!name.isEmpty() && !type.isEmpty()) { + //If the company has been added successfully + if (addCompany()) { + result = SUCCESS; + } else { + result = ERROR; + } + } + } + return result; + } + + protected String name; + protected String type; + + /** + * Stores the new company through the proxy + * + * @return true if the company has been stored properly + * @return false if a problem occurred + */ + protected boolean addCompany() { + boolean result = true; + + try { + ChoremProxy proxy = getChoremProxy(); + CompanyImpl newCompany = new CompanyImpl(); + + newCompany.setName(name); + newCompany.setType(type); + proxy.store(newCompany); + } catch (Exception e) { + result = false; + addActionError(getText(n_("chorem.gepeto.company.create.error"))); + log.error("An error occured while creating a new company", e); + } + return result; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + /** + * @return the type + */ + public String getType() { + return type; + } + /** + * @param type the type to set + */ + public void setType(String type) { + this.type = type; + } +} Property changes on: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-03-24 15:19:11 UTC (rev 39) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-03-24 16:17:08 UTC (rev 40) @@ -57,6 +57,30 @@ protected String description; /** + * Stores the new project through the proxy + * + * @return true if the project has been stored properly + * @return false if a problem occurred + */ + protected boolean addProject() { + boolean result = true; + + try { + ChoremProxy proxy = getChoremProxy(); + ProjectImpl newProject = new ProjectImpl(); + + newProject.setDescription(description); + newProject.setName(name); + proxy.store(newProject); + } catch (Exception e) { + result = false; + addActionError(getText(n_("chorem.gepeto.project.create.error"))); + log.error("An error occured while creating a new project", e); + } + return result; + } + + /** * @return the name */ public String getName() { @@ -83,28 +107,4 @@ public void setDescription(String description) { this.description = description; } - - /** - * Stores the new project through the proxy - * - * @return true if the project has been stored properly - * @return false if a problem occurred - */ - protected boolean addProject() { - boolean result = true; - - try { - ChoremProxy proxy = getChoremProxy(); - ProjectImpl newProject = new ProjectImpl(); - - newProject.setDescription(description); - newProject.setName(name); - proxy.store(newProject); - } catch (Exception e) { - result = false; - addActionError(getText(n_("chorem.gepeto.project.create.error"))); - log.error("An error occured while creating a new project", e); - } - return result; - } } Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-03-24 15:19:11 UTC (rev 39) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-03-24 16:17:08 UTC (rev 40) @@ -33,7 +33,7 @@ public String add() { String result = INPUT; - if (type!= null && description != null && + if (type != null && description != null && beginDate != null && estimatedEndDate != null) { if (!type.isEmpty() && !description.isEmpty()) { //If the project order has been added successfully @@ -87,7 +87,7 @@ addFieldError("beginDate", getText(n_("chorem.beginDate.beforeToday"))); } - //If the estimated end date is before the begin date (...) + //If the estimated end date is anterior to the begin date (...) if (newProjectOrder.getEndDate().before(newProjectOrder.getBeginDate())) { result = false; addActionError(getText(n_("chorem.endDate.afterBegin"))); Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java 2011-03-24 15:19:11 UTC (rev 39) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java 2011-03-24 16:17:08 UTC (rev 40) @@ -94,7 +94,7 @@ addFieldError("beginDate", getText(n_("chorem.beginDate.beforeToday"))); } - //If the estimated end date is before the begin date (...) + //If the estimated end date is anterior to the begin date (...) if (newTask.getEndDate().before(newTask.getBeginDate())) { result = false; addActionError(getText(n_("chorem.endDate.afterBegin"))); Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties =================================================================== --- trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-03-24 15:19:11 UTC (rev 39) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-03-24 16:17:08 UTC (rev 40) @@ -8,6 +8,7 @@ chorem.bonzoms.contactDetails.name=Contact details name chorem.bonzoms.contactDetails.type=Contact details type chorem.bonzoms.contactDetails.value=Contact details value +chorem.bonzoms.home=Home chorem.bonzoms.person=Person chorem.bonzoms.person.add=Add a new person chorem.bonzoms.person.birthDate=Birth date @@ -16,8 +17,9 @@ chorem.bonzoms.person.lastName=Last name chorem.config.configFileName.description=chorem''s configuration filename chorem.date.wrongFormat=The date must be in the following format \: dd/mm/yyyy -chorem.endDate.afterBegin=The end date cannot be before the begin date +chorem.endDate.afterBegin=The end date cannot be posterior to the begin date chorem.error.internal=An internal error occurred +chorem.gepeto.company.create.error=An error occurred while creating your new company, please try again. If the problem persists, please contact an administrator chorem.gepeto.home=Home chorem.gepeto.project=Project {0} chorem.gepeto.project.add=Add a new project Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties =================================================================== --- trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-03-24 15:19:11 UTC (rev 39) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-03-24 16:17:08 UTC (rev 40) @@ -1,13 +1,16 @@ -chorem.beginDate.beforeToday=La date entr\u00E9e ne peut \u00EAtre inf\u00E9rieure \u00E0 la date du jour +chorem.beginDate.beforeToday=La date entr\u00E9e ne peut \u00EAtre ant\u00E9rieure \u00E0 la date du jour chorem.bonzoms.company=Soci\u00E9t\u00E9 chorem.bonzoms.company.add=Ajouter une nouvelle soci\u00E9t\u00E9 chorem.bonzoms.company.name=Nom de la soci\u00E9t\u00E9 +chorem.bonzoms.company.name.required=Vous devez entrer le nom de la soci\u00E9t\u00E9 chorem.bonzoms.company.type=Type de la soci\u00E9t\u00E9 +chorem.bonzoms.company.type.required=Vous devez entrer le type de la soci\u00E9t\u00E9 chorem.bonzoms.contactDetails=M\u00E9thode de contact chorem.bonzoms.contactDetails.add=Ajouter une nouvelle m\u00E9thode de contact chorem.bonzoms.contactDetails.name=Nom de la m\u00E9thode de contact chorem.bonzoms.contactDetails.type=Type de la m\u00E9thode de contact chorem.bonzoms.contactDetails.value=Valeur de la m\u00E9thode de contact +chorem.bonzoms.home=Accueil chorem.bonzoms.person=Personne chorem.bonzoms.person.add=Ajouter une nouvelle personne chorem.bonzoms.person.birthDate=Date de naissance @@ -16,8 +19,9 @@ chorem.bonzoms.person.lastName=Nom chorem.config.configFileName.description=Nom du fichier de configuration de chorem chorem.date.wrongFormat=La date doit respecter le format suivant \: jj/mm/yyyy -chorem.endDate.afterBegin=La date de fin ne doit pas pas \u00EAtre inf\u00E9rieure \u00E0 la date de d\u00E9but +chorem.endDate.afterBegin=La date de fin ne doit pas pas \u00EAtre ant\u00E9rieure \u00E0 la date de d\u00E9but chorem.error.internal=Une erreur interne s''est produite +chorem.gepeto.company.create.error=Une erreur s''est produite lors de la cr\u00E9ation de votre nouvelle soci\u00E9t\u00E9, merci d''essayer \u00E0 nouveau. Si le probl\u00E8me se reproduit, merci de contacter un administrateur chorem.gepeto.home=Accueil chorem.gepeto.project=Projet {0} chorem.gepeto.project.add=Ajouter un nouveau projet Added: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-validation.xml =================================================================== --- trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-validation.xml (rev 0) +++ trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-validation.xml 2011-03-24 16:17:08 UTC (rev 40) @@ -0,0 +1,16 @@ +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> + +<validators> + <field name="name"> + <field-validator type="requiredstring"> + <message key="chorem.bonzoms.company.name.required" /> + </field-validator> + </field> + <field name="type"> + <field-validator type="requiredstring"> + <message key="chorem.bonzoms.company.type.required" /> + </field-validator> + </field> +</validators> Property changes on: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-validation.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/chorem-web/src/main/resources/struts.xml =================================================================== --- trunk/chorem-web/src/main/resources/struts.xml 2011-03-24 15:19:11 UTC (rev 39) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-03-24 16:17:08 UTC (rev 40) @@ -17,9 +17,14 @@ <action name="home"> <result>/WEB-INF/jsp/bonzoms/home.jsp</result> </action> - <action name="addCompanyPage"> + <action name="addCompany_input"> <result>/WEB-INF/jsp/bonzoms/addCompany.jsp</result> </action> + <action name="addCompany" class="org.chorem.bonzoms.action.CompanyAction" method="add"> + <result name="input">/WEB-INF/jsp/bonzoms/addCompany.jsp</result> + <result name="error">/WEB-INF/jsp/bonzoms/addCompany.jsp</result> + <result type="redirectAction">home</result> + </action> <action name="addPersonPage"> <result>/WEB-INF/jsp/bonzoms/addPerson.jsp</result> </action> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addCompany.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addCompany.jsp 2011-03-24 15:19:11 UTC (rev 39) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addCompany.jsp 2011-03-24 16:17:08 UTC (rev 40) @@ -9,6 +9,7 @@ </head> <body> <h2><s:text name="chorem.bonzoms.company.add" /></h2> + <s:actionerror /> <s:form action="addCompany" method="post"> <fieldset> <legend> Added: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp (rev 0) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp 2011-03-24 16:17:08 UTC (rev 40) @@ -0,0 +1,12 @@ +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@taglib prefix="s" uri="/struts-tags" %> + +<html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" + xmlns:jsp="http://java.sun.com/JSP/Page"> + <head> + <title><s:text name="chorem.bonzoms.home" /></title> + <s:head /> + </head> + <body> + </body> +</html> Property changes on: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-03-24 15:19:11 UTC (rev 39) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-03-24 16:17:08 UTC (rev 40) @@ -15,8 +15,10 @@ <legend><s:text name="chorem.gepeto.projectOrder" /></legend> <s:textfield key="chorem.gepeto.projectOrder.type" name="type" labelSeparator=": " /> <br /> - <s:textfield key="chorem.gepeto.projectOrder.description" name="description" labelSeparator=": " /> <br /> + <s:textarea key="chorem.gepeto.projectOrder.description" name="description" cols="50" rows="10" labelposition="top" /> + <br /> + <br /> <s:textfield key="chorem.gepeto.projectOrder.beginDate" name="beginDate" labelSeparator=": " /> <br /> <s:textfield key="chorem.gepeto.projectOrder.estimatedEndDate" name="estimatedEndDate" labelSeparator=": " />