Author: vbriand Date: 2011-03-18 15:45:06 +0100 (Fri, 18 Mar 2011) New Revision: 33 Url: http://chorem.org/repositories/revision/chorem/33 Log: Added validation and very basic action class for project Added: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/admin/ProjectAction.java trunk/chorem-web/src/main/resources/org/ trunk/chorem-web/src/main/resources/org/chorem/ trunk/chorem-web/src/main/resources/org/chorem/gepeto/ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/admin/ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/admin/ProjectAction-validation.xml Modified: trunk/chorem-web/src/main/java/org/chorem/action/BaseAction.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/gepeto/admin/addProject.jsp Modified: trunk/chorem-web/src/main/java/org/chorem/action/BaseAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/action/BaseAction.java 2011-03-18 13:46:51 UTC (rev 32) +++ trunk/chorem-web/src/main/java/org/chorem/action/BaseAction.java 2011-03-18 14:45:06 UTC (rev 33) @@ -18,13 +18,14 @@ * Overrides the Struts2 methods to render text in order to explicitly show * the missing i18n translations */ -public class BaseAction extends ActionSupport implements SessionAware { +public class BaseAction extends ActionSupport implements SessionAware { private static final long serialVersionUID = 6360393466153765988L; private static final Log log = LogFactory.getLog(BaseAction.class); final static protected String CONTEXT_ACTION_KEY = "action"; + public static final String UNTRANSLATED_MARKER = "???"; protected Map<String, Object> session; Added: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/admin/ProjectAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/admin/ProjectAction.java (rev 0) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/admin/ProjectAction.java 2011-03-18 14:45:06 UTC (rev 33) @@ -0,0 +1,73 @@ +package org.chorem.gepeto.action.admin; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.action.BaseAction; + +/** + * Project management class + * + */ +public class ProjectAction extends BaseAction { + + private static final long serialVersionUID = 498267854350348906L; + + private static final Log log = LogFactory.getLog(ProjectAction.class); + + protected String name; + protected String description; + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name: the project name + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the project description + */ + public String getDescription() { + return description; + } + + /** + * @param description: the project description + */ + public void setDescription(String description) { + this.description = description; + } + + /** + * Adds a new project + * + * @return INPUT if the mandatory fields haven't all been filled in + * @return SUCCESS if the project has been added + */ + public String add() { + String result = INPUT; + + if (name != null && description != null) { + if (!name.isEmpty() && !description.isEmpty()) { + result = SUCCESS; + } + } + return result; + } + + /** + * Removes a project + * + * @return + */ + public String remove() { + return SUCCESS; + } +} Property changes on: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/admin/ProjectAction.java ___________________________________________________________________ Added: svn:mime-type + text/plain 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-18 13:46:51 UTC (rev 32) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-03-18 14:45:06 UTC (rev 33) @@ -1,12 +1,12 @@ chorem.bonzoms.company=Company {0} chorem.bonzoms.company.add=Add a new company -chorem.bonzoms.company.name=Company''s name -chorem.bonzoms.company.type=Company''s type +chorem.bonzoms.company.name=Company name +chorem.bonzoms.company.type=Company type chorem.bonzoms.contactDetails=Contact details chorem.bonzoms.contactDetails.add=Add a new contact details -chorem.bonzoms.contactDetails.name=Contact details'' name -chorem.bonzoms.contactDetails.type=Contact details'' type -chorem.bonzoms.contactDetails.value=Contact details'' value +chorem.bonzoms.contactDetails.name=Contact details name +chorem.bonzoms.contactDetails.type=Contact details type +chorem.bonzoms.contactDetails.value=Contact details value chorem.bonzoms.person=Person chorem.bonzoms.person.add=Add a new person chorem.bonzoms.person.birthDate=Birth date @@ -19,7 +19,9 @@ chorem.gepeto.project=Project {0} chorem.gepeto.project.add=Add a new project chorem.gepeto.project.description=Description -chorem.gepeto.project.name=Project''s name +chorem.gepeto.project.description.required=You must describe the project +chorem.gepeto.project.name=Project name +chorem.gepeto.project.name.required=You must enter the project name chorem.gepeto.projectDetails.title=Details of project {0} chorem.gepeto.projectOrder=Project order chorem.gepeto.projectOrder.add=Add a new project order @@ -35,6 +37,6 @@ chorem.gepeto.task.description=Description chorem.gepeto.task.estimatedDays=Estimated days chorem.gepeto.task.estimatedEndDate=Estimated end date -chorem.gepeto.task.name=Task''s name +chorem.gepeto.task.name=Task name chorem.gepeto.task.price=Price chorem.home=Home 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-18 13:46:51 UTC (rev 32) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-03-18 14:45:06 UTC (rev 33) @@ -19,7 +19,9 @@ chorem.gepeto.project=Projet {0} chorem.gepeto.project.add=Ajouter un nouveau projet chorem.gepeto.project.description=Description +chorem.gepeto.project.description.required=Vous devez d\u00E9crire le projet chorem.gepeto.project.name=Nom du projet +chorem.gepeto.project.name.required=Vous devez renseigner un nom pour le projet chorem.gepeto.projectDetails.title=D\u00E9tails du projet {0} chorem.gepeto.projectOrder=Contrat de commande d''un projet chorem.gepeto.projectOrder.add=Ajouter le contrat d''un projet Added: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/admin/ProjectAction-validation.xml =================================================================== --- trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/admin/ProjectAction-validation.xml (rev 0) +++ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/admin/ProjectAction-validation.xml 2011-03-18 14:45:06 UTC (rev 33) @@ -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.gepeto.project.name.required" /> + </field-validator> + </field> + <field name="description"> + <field-validator type="requiredstring"> + <message key="chorem.gepeto.project.description.required" /> + </field-validator> + </field> +</validators> Property changes on: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/admin/ProjectAction-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-18 13:46:51 UTC (rev 32) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-03-18 14:45:06 UTC (rev 33) @@ -33,9 +33,16 @@ <action name="home"> <result>/WEB-INF/jsp/gepeto/home.jsp</result> </action> - <action name="addProjectPage"> + <action name="addProject_input"> <result>/WEB-INF/jsp/gepeto/admin/addProject.jsp</result> </action> + <action name="addProject" class="org.chorem.gepeto.action.admin.ProjectAction" method="add"> + <result name="input">/WEB-INF/jsp/gepeto/admin/addProject.jsp</result> + <result type="redirectAction">home</result> + </action> + <action name="removeProject" class="org.chorem.gepeto.action.admin.ProjectAction" method="delete"> + <result type="redirectAction">home</result> + </action> <action name="addTaskPage"> <result>/WEB-INF/jsp/gepeto/admin/addTask.jsp</result> </action> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/admin/addProject.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/admin/addProject.jsp 2011-03-18 13:46:51 UTC (rev 32) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/admin/addProject.jsp 2011-03-18 14:45:06 UTC (rev 33) @@ -16,7 +16,7 @@ <s:param></s:param> </s:text> </legend> - <s:textfield key="chorem.gepeto.project.name" name="name" labelSeparator=": " /> + <s:textfield key="chorem.gepeto.project.name" name="name" labelSeparator=": " labelposition="top" /> <br /> <br /> <s:textarea key="chorem.gepeto.project.description" name="description" cols="50" rows="10" labelposition="top" />