Author: vbriand Date: 2011-04-28 17:48:42 +0200 (Thu, 28 Apr 2011) New Revision: 114 Url: http://chorem.org/repositories/revision/chorem/114 Log: Added a page to view a person's details and modify its information Added: trunk/chorem-web/src/main/java/org/chorem/gepeto/EmploymentContractFull.java trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-addEmploymentContract-validation.xml trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp Removed: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-validation.xml Modified: trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java trunk/chorem-web/src/main/java/org/chorem/bonzoms/EmployeeFull.java trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmploymentContractAction.java trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/PersonAction.java trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.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/companyDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addTask.jsp Modified: trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-28 15:48:42 UTC (rev 114) @@ -112,7 +112,6 @@ setProjectId(quotation.getProject()); setSupplier(EmployeeFull.initEmployee(quotation.getSupplier(), proxy)); - System.out.println("((("+quotation+")))"); setCustomer(EmployeeFull.initEmployee(quotation.getCustomer(), proxy)); } else { Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/EmployeeFull.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/EmployeeFull.java 2011-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/EmployeeFull.java 2011-04-28 15:48:42 UTC (rev 114) @@ -55,7 +55,6 @@ Company company; employeeFull.setEmployee(employee); - System.out.println(employeeId+":"+employee+":"+proxy); person = proxy.restore(Person.class, employee.getPerson()); employeeFull.setPerson(person); company = proxy.restore(Company.class, employee.getCompany()); Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmploymentContractAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmploymentContractAction.java 2011-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmploymentContractAction.java 2011-04-28 15:48:42 UTC (rev 114) @@ -2,14 +2,25 @@ import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; +import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.ChoremProxy; import org.chorem.action.BaseAction; +import org.chorem.bonzoms.EmployeeFull; +import org.chorem.entities.Employee; +import org.chorem.entities.EmploymentContract; import org.chorem.entities.EmploymentContractImpl; +import org.chorem.gepeto.EmploymentContractFull; +import org.nuiton.wikitty.search.Criteria; +import org.nuiton.wikitty.search.PagedResult; +import org.nuiton.wikitty.search.Search; +import com.opensymphony.xwork2.ActionContext; + import static org.nuiton.i18n.I18n.n_; /** @@ -23,6 +34,10 @@ private static final Log log = LogFactory.getLog(EmploymentContractAction.class); + static public EmploymentContractAction getAction() { + return (EmploymentContractAction)ActionContext.getContext().get(CONTEXT_ACTION_KEY); + } + /** * Adds a new employment contract * @@ -49,14 +64,86 @@ return result; } + /** + * Modifies the employment contract's information + * + * @return SUCCESS if the employment contract has been successfully modified, + * ERROR if the id is invalid + */ + public String modify() { + String result = SUCCESS; + EmploymentContract employmentContract; + ChoremProxy proxy = getChoremProxy(); + + employmentContract = proxy.restore(EmploymentContract.class, + employmentContractId); + if (employmentContract != null) { //If the id exists + employmentContract.setType(type); + employmentContract.setDescription(description); + try { + //Replaces the (possible) comma by a dot, so the string can be + //parsed successfully as a float + salary = salary.replace(',', '.'); + employmentContract.setSalary(Float.parseFloat(salary)); + } catch (NumberFormatException e) { + result = INPUT; + addActionError( + getText(n_("chorem.bonzoms.employmentContract.salary.wrongFormat"))); + } + try { + employmentContract.setWorkingTime(Integer.parseInt(workingTime)); + } catch (NumberFormatException e) { + result = INPUT; + addActionError( + getText(n_("chorem.bonzoms.employmentContract.workingTime.wrongFormat"))); + } + proxy.store(employmentContract); + } else { + result = ERROR; + } + return result; + } + protected String type; protected String description; protected String salary; protected String workingTime; protected String beginDate; protected String endDate; + protected String personId; + protected String employmentContractId; /** + * Gets the employments contracts of the employee + * + * @return a list containing all employment contracts + */ + public List<EmploymentContractFull> getEmploymentContracts() { + ChoremProxy proxy = getChoremProxy(); + Search search = Search.query(); + Criteria criteria = search.exteq(EmploymentContract.EXT_EMPLOYMENTCONTRACT). + associated(EmploymentContract.FQ_FIELD_EMPLOYMENTCONTRACT_EMPLOYEE). + eq(Employee.FQ_FIELD_EMPLOYEE_PERSON, personId).criteria(); + PagedResult<EmploymentContract> result = proxy.findAllByCriteria( + EmploymentContract.class, criteria); + List<EmploymentContract> employmentContracts = result.getAll(); + List<EmploymentContractFull> employmentContractsFull = new ArrayList<EmploymentContractFull>(); + EmploymentContractFull employeeTmp; + EmployeeFull employee; + + for (EmploymentContract employmentContract : employmentContracts) { + employeeTmp = new EmploymentContractFull(); + + employeeTmp.setEmploymentContract(employmentContract); + employee = EmployeeFull.initEmployee(employmentContract.getEmployee(), + proxy); + employeeTmp.setEmployee(employee); + employmentContractsFull.add(employeeTmp); + } + return employmentContractsFull; + } + + /** * Stores the new employment contract through the proxy * * @return true if the employment contract has been stored properly, @@ -200,4 +287,32 @@ public void setEndDate(String endDate) { this.endDate = endDate; } + + /** + * @return the personId + */ + public String getPersonId() { + return personId; + } + + /** + * @param personId the personId to set + */ + public void setPersonId(String personId) { + this.personId = personId; + } + + /** + * @return the employmentContractId + */ + public String getEmploymentContractId() { + return employmentContractId; + } + + /** + * @param employmentContractId the employmentContractId to set + */ + public void setEmploymentContractId(String employmentContractId) { + this.employmentContractId = employmentContractId; + } } Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/PersonAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/PersonAction.java 2011-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/PersonAction.java 2011-04-28 15:48:42 UTC (rev 114) @@ -2,22 +2,31 @@ import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.List; +import java.util.UUID; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.ChoremProxy; import org.chorem.ContactDetailsConstants; import org.chorem.action.BaseAction; +import org.chorem.bonzoms.EmployeeFull; import org.chorem.entities.Company; import org.chorem.entities.ContactDetailsImpl; +import org.chorem.entities.Employee; import org.chorem.entities.EmployeeImpl; +import org.chorem.entities.EmploymentContract; import org.chorem.entities.EmploymentContractImpl; +import org.chorem.entities.Person; import org.chorem.entities.PersonImpl; +import org.chorem.gepeto.EmploymentContractFull; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.PagedResult; import org.nuiton.wikitty.search.Search; +import com.opensymphony.xwork2.ActionContext; + import static org.nuiton.i18n.I18n.n_; /** @@ -31,6 +40,10 @@ private static final Log log = LogFactory.getLog(PersonAction.class); + static public PersonAction getAction() { + return (PersonAction)ActionContext.getContext().get(CONTEXT_ACTION_KEY); + } + /** * Adds a new person * @@ -53,6 +66,64 @@ return result; } + /** + * Retrieves the information of the person referenced by the personId + * + * @return SUCCESS if the information have been retrieved, + * ERROR either if the UUID is invalid or the personId doesn't exist + */ + public String personDetails() { + String result = SUCCESS; + ChoremProxy proxy = getChoremProxy(); + + try { + if (personId == null) { + result = ERROR; + } else { + //If personId isn't a valid UUID, an exception is thrown + UUID.fromString(personId); + + Person person = proxy.restore(Person.class, personId); + + if (person != null) { //If the personId exists + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + + setFirstName(person.getFirstName()); + setLastName(person.getLastName()); + setEmail(person.getEmail()); + setBirthDate(formatter.format(person.getBirthDate())); + } else { + result = ERROR; + } + } + } catch (IllegalArgumentException e) { + //personId is invalid + result = ERROR; + } + return result; + } + + /** + * Modifies the person's information + * + * @return SUCCESS if the person has been modified successfully, + * ERROR if the id is invalid + */ + public String modify() { + String result = SUCCESS; + Person person; + ChoremProxy proxy = getChoremProxy(); + + person = proxy.restore(Person.class, personId); + if (person != null) { + person.setEmail(email); + proxy.store(person); + } else { + result = ERROR; + } + return result; + } + protected String firstName; protected String lastName; protected String email; @@ -73,6 +144,7 @@ protected String contractBeginDate; protected String contractEndDate; protected String companyId; + protected String personId; /** * Stores the new person through the proxy @@ -287,6 +359,36 @@ } /** + * Gets the employments contracts of the employee + * + * @return a list containing all employment contracts + */ + public List<EmploymentContractFull> getEmploymentContracts() { + ChoremProxy proxy = getChoremProxy(); + Search search = Search.query(); + Criteria criteria = search.exteq(EmploymentContract.EXT_EMPLOYMENTCONTRACT). + associated(EmploymentContract.FQ_FIELD_EMPLOYMENTCONTRACT_EMPLOYEE). + eq(Employee.FQ_FIELD_EMPLOYEE_PERSON, personId).criteria(); + PagedResult<EmploymentContract> result = proxy.findAllByCriteria( + EmploymentContract.class, criteria); + List<EmploymentContract> employmentContracts = result.getAll(); + List<EmploymentContractFull> employmentContractsFull = new ArrayList<EmploymentContractFull>(); + EmploymentContractFull employeeTmp; + EmployeeFull employee; + + for (EmploymentContract employmentContract : employmentContracts) { + employeeTmp = new EmploymentContractFull(); + + employeeTmp.setEmploymentContract(employmentContract); + employee = EmployeeFull.initEmployee(employmentContract.getEmployee(), + proxy); + employeeTmp.setEmployee(employee); + employmentContractsFull.add(employeeTmp); + } + return employmentContractsFull; + } + + /** * @return the firstName */ public String getFirstName() { @@ -565,4 +667,18 @@ public void setCompanyId(String companyId) { this.companyId = companyId; } + + /** + * @return the personId + */ + public String getPersonId() { + return personId; + } + + /** + * @param personId the personId to set + */ + public void setPersonId(String personId) { + this.personId = personId; + } } Added: trunk/chorem-web/src/main/java/org/chorem/gepeto/EmploymentContractFull.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/gepeto/EmploymentContractFull.java (rev 0) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/EmploymentContractFull.java 2011-04-28 15:48:42 UTC (rev 114) @@ -0,0 +1,40 @@ +package org.chorem.gepeto; + +import org.chorem.bonzoms.EmployeeFull; +import org.chorem.entities.EmploymentContract; + +/** + * @author vbriand + */ +public class EmploymentContractFull { + protected EmployeeFull employee; + protected EmploymentContract employmentContract; + + /** + * @return the employmentContract + */ + public EmploymentContract getEmploymentContract() { + return employmentContract; + } + + /** + * @param employmentContract the employmentContract to set + */ + public void setEmploymentContract(EmploymentContract employmentContract) { + this.employmentContract = employmentContract; + } + + /** + * @return the employee + */ + public EmployeeFull getEmployee() { + return employee; + } + + /** + * @param employee the employee to set + */ + public void setEmployee(EmployeeFull employee) { + this.employee = employee; + } +} Property changes on: trunk/chorem-web/src/main/java/org/chorem/gepeto/EmploymentContractFull.java ___________________________________________________________________ Added: svn:mime-type + text/plain 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-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-28 15:48:42 UTC (rev 114) @@ -153,8 +153,7 @@ beginDate != null && estimatedEndDate != null) { SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); - Date begin = new Date(), - end = new Date(); + Date begin = null, end = null; //This is tested manually instead of using a validator because //otherwise the company is not set (the validator returns INPUT and @@ -191,7 +190,7 @@ } //If end and begin have been initialized - if (result != INPUT) { + if (!result.equals(INPUT)) { if (end.before(begin)) { result = INPUT; addFieldError("estimatedEndDate", 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-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-28 15:48:42 UTC (rev 114) @@ -43,6 +43,7 @@ chorem.bonzoms.contactDetails.type=Contact details'' type chorem.bonzoms.contactDetails.value=Contact details'' value chorem.bonzoms.employee= +chorem.bonzoms.employee.company= chorem.bonzoms.employee.diploma= chorem.bonzoms.employee.invalidCompany= chorem.bonzoms.employee.paidLeave= @@ -70,10 +71,13 @@ chorem.bonzoms.person.country=Country chorem.bonzoms.person.email=Email chorem.bonzoms.person.email.wrongFormat=The email format is invalid +chorem.bonzoms.person.employmentContracts= chorem.bonzoms.person.firstName=First name chorem.bonzoms.person.lastName=Last name chorem.bonzoms.person.phoneNb=Phone number (opt.) chorem.bonzoms.person.postcode=Postcode +chorem.bonzoms.personDetails.name= +chorem.bonzoms.personDetails.title= chorem.config.configFileName.description=chorem''s configuration filename chorem.create.error=An error occurred, please try again. If the problem persists, please contact an administrator chorem.date.wrongFormat=The date must be in the following format \: dd/mm/yyyy 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-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-28 15:48:42 UTC (rev 114) @@ -43,6 +43,7 @@ chorem.bonzoms.contactDetails.type=Type de la m\u00E9thode de contact chorem.bonzoms.contactDetails.value=Valeur de la m\u00E9thode de contact chorem.bonzoms.employee=Employ\u00E9 +chorem.bonzoms.employee.company=Entreprise chorem.bonzoms.employee.diploma=Dipl\u00F4me (opt.) chorem.bonzoms.employee.invalidCompany= chorem.bonzoms.employee.paidLeave=Cong\u00E9s pay\u00E9s @@ -70,10 +71,12 @@ chorem.bonzoms.person.country=Pays chorem.bonzoms.person.email=Email chorem.bonzoms.person.email.wrongFormat=L''adresse email que vous avez entr\u00E9e est incorrecte +chorem.bonzoms.person.employmentContracts=Contrats de travail \: chorem.bonzoms.person.firstName=Pr\u00E9nom chorem.bonzoms.person.lastName=Nom chorem.bonzoms.person.phoneNb=Num\u00E9ro de t\u00E9l\u00E9phone (opt.) chorem.bonzoms.person.postcode=Code postal +chorem.bonzoms.personDetails.title=Informations d\u00E9taill\u00E9es de "{0}" chorem.config.configFileName.description=Nom du fichier de configuration de chorem chorem.create.error=Une erreur s''est produite, merci d''essayer \u00E0 nouveau. Si le probl\u00E8me se reproduit, merci de contacter un administrateur chorem.date.wrongFormat=La date doit respecter le format suivant \: jj/mm/yyyy Copied: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-addEmploymentContract-validation.xml (from rev 110, trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-validation.xml) =================================================================== --- trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-addEmploymentContract-validation.xml (rev 0) +++ trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-addEmploymentContract-validation.xml 2011-04-28 15:48:42 UTC (rev 114) @@ -0,0 +1,49 @@ +<!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="type"> + <field-validator type="requiredstring"> + <message key="chorem.field.required" /> + </field-validator> + </field> + <field name="description"> + <field-validator type="requiredstring"> + <message key="chorem.field.required" /> + </field-validator> + </field> + <field name="salary"> + <field-validator type="requiredstring"> + <message key="chorem.field.required" /> + </field-validator> + <field-validator type="regex"> + <param name="expression"><![CDATA[([0-9]+)([\.,][0-9]+)?]]></param> + <message key="chorem.bonzoms.employmentContract.salary.wrongFormat" /> + </field-validator> + </field> + <field name="workingTime"> + <field-validator type="requiredstring"> + <message key="chorem.field.required" /> + </field-validator> + <field-validator type="regex"> + <param name="expression"><![CDATA[([0-9]+)]]></param> + <message key="chorem.bonzoms.employmentContract.workingTime.wrongFormat" /> + </field-validator> + </field> + <field name="beginDate"> + <field-validator type="requiredstring"> + <message key="chorem.field.required" /> + </field-validator> + <field-validator type="regex"> + <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param> + <message key="chorem.date.wrongFormat" /> + </field-validator> + </field> + <field name="endDate"> + <field-validator type="regex"> + <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param> + <message key="chorem.date.wrongFormat" /> + </field-validator> + </field> +</validators> Property changes on: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-addEmploymentContract-validation.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Deleted: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-validation.xml =================================================================== --- trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-validation.xml 2011-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/EmploymentContractAction-validation.xml 2011-04-28 15:48:42 UTC (rev 114) @@ -1,49 +0,0 @@ -<!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="type"> - <field-validator type="requiredstring"> - <message key="chorem.field.required" /> - </field-validator> - </field> - <field name="description"> - <field-validator type="requiredstring"> - <message key="chorem.field.required" /> - </field-validator> - </field> - <field name="salary"> - <field-validator type="requiredstring"> - <message key="chorem.field.required" /> - </field-validator> - <field-validator type="regex"> - <param name="expression"><![CDATA[([0-9]+)([\.,][0-9]+)?]]></param> - <message key="chorem.bonzoms.employmentContract.salary.wrongFormat" /> - </field-validator> - </field> - <field name="workingTime"> - <field-validator type="requiredstring"> - <message key="chorem.field.required" /> - </field-validator> - <field-validator type="regex"> - <param name="expression"><![CDATA[([0-9]+)]]></param> - <message key="chorem.bonzoms.employmentContract.workingTime.wrongFormat" /> - </field-validator> - </field> - <field name="beginDate"> - <field-validator type="requiredstring"> - <message key="chorem.field.required" /> - </field-validator> - <field-validator type="regex"> - <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param> - <message key="chorem.date.wrongFormat" /> - </field-validator> - </field> - <field name="endDate"> - <field-validator type="regex"> - <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param> - <message key="chorem.date.wrongFormat" /> - </field-validator> - </field> -</validators> Modified: trunk/chorem-web/src/main/resources/struts.xml =================================================================== --- trunk/chorem-web/src/main/resources/struts.xml 2011-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-28 15:48:42 UTC (rev 114) @@ -27,6 +27,14 @@ <result name="error" type="redirectAction">home</result> <result>/WEB-INF/jsp/bonzoms/companyDetails.jsp</result> </action> + <action name="modifyCompany" class="org.chorem.bonzoms.action.CompanyAction" method="modify"> + <result name="input">/WEB-INF/jsp/bonzoms/companyDetails.jsp</result> + <result type="redirectAction"> + <param name="actionName">companyDetails</param> + <param name="namespace">/bonzoms</param> + <param name="companyId">${companyId}</param> + </result> + </action> <action name="companies" class="org.chorem.bonzoms.action.CompanyAction"> <result>/WEB-INF/jsp/bonzoms/companies.jsp</result> </action> @@ -38,6 +46,18 @@ <result name="error">/WEB-INF/jsp/bonzoms/addPerson.jsp</result> <result type="redirectAction">home</result> </action> + <action name="personDetails" class="org.chorem.bonzoms.action.PersonAction" method="personDetails"> + <result name="error" type="redirectAction">home</result> + <result>/WEB-INF/jsp/bonzoms/personDetails.jsp</result> + </action> + <action name="modifyPerson" class="org.chorem.bonzoms.action.PersonAction" method="modify"> + <result name="input">/WEB-INF/jsp/bonzoms/personDetails.jsp</result> + <result type="redirectAction"> + <param name="actionName">personDetails</param> + <param name="namespace">/bonzoms</param> + <param name="personId">${personId}</param> + </result> + </action> <action name="addContactDetailsInput"> <result>/WEB-INF/jsp/bonzoms/addContactDetails.jsp</result> </action> @@ -54,12 +74,12 @@ <result name="error">/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp</result> <result type="redirectAction">home</result> </action> - <action name="modifyCompany" class="org.chorem.bonzoms.action.CompanyAction" method="modify"> - <result name="input">/WEB-INF/jsp/bonzoms/companyDetails.jsp</result> + <action name="modifyEmploymentContract" class="org.chorem.bonzoms.action.EmploymentContractAction" method="modify"> + <result name="input">/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp</result> <result type="redirectAction"> - <param name="actionName">companyDetails</param> + <param name="actionName">personDetails</param> <param name="namespace">/bonzoms</param> - <param name="companyId">${companyId}</param> + <param name="personId">${personId}</param> </result> </action> </package> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp 2011-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp 2011-04-28 15:48:42 UTC (rev 114) @@ -50,9 +50,10 @@ for (Person employee : employees) { %> - <%= employee.getFirstName() %> <%= employee.getLastName() %><br /> - <%= JspUtils.dateFormat(employee.getBirthDate()) %><br /> - <%= employee.getEmail() %><br /> + <s:url action="personDetails" var="personDetails"> + <s:param name="personId"><%= employee.getWikittyId() %></s:param> + </s:url> + <a href="${personDetails}"><%= employee.getFirstName() %> <%= employee.getLastName() %></a> (<%= JspUtils.dateFormat(employee.getBirthDate()) %>)<br /> <% } %> Added: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp (rev 0) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp 2011-04-28 15:48:42 UTC (rev 114) @@ -0,0 +1,69 @@ +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bonzoms.action.PersonAction" %> +<%@page import="org.chorem.gepeto.EmploymentContractFull" %> +<%@page import="org.chorem.entities.EmploymentContract" %> +<%@page import="java.util.List" %> +<%@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.personDetails.title"> + <s:param><%= PersonAction.getAction().getFirstName() %> <%= PersonAction.getAction().getLastName() %></s:param> + </s:text> + </title> + <s:head /> + </head> + <body> + <h2><%= PersonAction.getAction().getFirstName() %> <%= PersonAction.getAction().getLastName() %></h2> + <s:actionerror /> + <s:url action="modifyPerson" var="modifyPerson"> + <s:param name="personId"><%= PersonAction.getAction().getPersonId() %></s:param> + </s:url> + <form action="${modifyPerson}" method="post"> + <p> + <s:text name="chorem.bonzoms.person.birthDate" />: <%= PersonAction.getAction().getBirthDate() %> + <br /> + <s:textfield key="chorem.bonzoms.person.email" name="email" labelSeparator=": " /> + <br /> + <s:submit key="chorem.misc.modify" name="submit" /> + </p> + </form> + <s:text name="chorem.bonzoms.person.employmentContracts" /> + <br /> + <% + List<EmploymentContractFull> employmentContractsFull = PersonAction.getAction().getEmploymentContracts(); + EmploymentContract employmentContract; + + for (EmploymentContractFull employmentContractFull : employmentContractsFull) { + %> + <% employmentContract = employmentContractFull.getEmploymentContract(); %> + <s:url action="modifyEmploymentContract" var="modifyEmploymentContract"> + <s:param name="employmentContractId"><%= employmentContract.getWikittyId() %></s:param> + <s:param name="personId"><%= employmentContractFull.getEmployee().getPerson().getWikittyId() %></s:param> + </s:url> + <form action="${modifyEmploymentContract}" method="post"> + <p> + <s:text name="chorem.bonzoms.employee.company" />: <%= employmentContractFull.getEmployee().getCompany().getName() %> + <br /> + <label for="type"><s:text name="chorem.bonzoms.employmentContract.type" /></label>: + <input type="text" name="type" id="type" value="<%= employmentContract.getType() %>" /> + <br /> + <br /> + <label for="description"><s:text name="chorem.bonzoms.employmentContract.description" /></label>: + <br /> + <textarea name="description" id="description"><%= employmentContract.getDescription() %></textarea> + <br /> + <label for="salary"><s:text name="chorem.bonzoms.employmentContract.salary" /></label>: + <input type="text" name="salary" id="salary" value="<%= employmentContract.getSalary() %>" size="6" /> + <br /> + <label for="workingTime"><s:text name="chorem.bonzoms.employmentContract.workingTime" /></label>: + <input type="text" name="workingTime" id="workingTime" value="<%= employmentContract.getWorkingTime() %>" size="2" /> + <br /> + <input type="submit" name="modify" /> + </p> + </form> + <% } %> + </body> +</html> Property changes on: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp (rev 0) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp 2011-04-28 15:48:42 UTC (rev 114) @@ -0,0 +1,55 @@ +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bonzoms.action.PersonAction" %> +<%@page import="org.chorem.gepeto.EmploymentContractFull" %> +<%@page import="org.chorem.bonzoms.action.EmploymentContractAction" %> +<%@page import="org.chorem.entities.EmploymentContract" %> +<%@page import="java.util.List" %> +<%@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></title> + <s:head /> + </head> + <body> + <p> + <s:text name="chorem.bonzoms.person.employmentContracts" /> + <br /> + <% + List<EmploymentContractFull> employmentContractsFull = EmploymentContractAction.getAction().getEmploymentContracts(); + EmploymentContract employmentContract; + + for (EmploymentContractFull employmentContractFull : employmentContractsFull) { + %> + <% employmentContract = employmentContractFull.getEmploymentContract(); %> + <s:url action="modifyEmploymentContract" var="modifyEmploymentContract"> + <s:param name="employmentContractId"><%= employmentContract.getWikittyId() %></s:param> + <s:param name="personId"><%= employmentContractFull.getEmployee().getPerson().getWikittyId() %></s:param> + </s:url> + <s:actionerror /> + <form action="${modifyEmploymentContract}" method="post"> + <p> + <s:text name="chorem.bonzoms.employee.company" />: <%= employmentContractFull.getEmployee().getCompany().getName() %> + <br /> + <label for="type"><s:text name="chorem.bonzoms.employmentContract.type" /></label>: + <input type="text" name="type" id="type" value="<%= employmentContract.getType() %>" /> + <br /> + <br /> + <label for="description"><s:text name="chorem.bonzoms.employmentContract.description" /></label>: + <br /> + <textarea name="description" id="description"><%= employmentContract.getDescription() %></textarea> + <br /> + <label for="salary"><s:text name="chorem.bonzoms.employmentContract.salary" /></label>: + <input type="text" name="salary" id="salary" value="<%= employmentContract.getSalary() %>" size="6" /> + <br /> + <label for="workingTime"><s:text name="chorem.bonzoms.employmentContract.workingTime" /></label>: + <input type="text" name="workingTime" id="workingTime" value="<%= employmentContract.getWorkingTime() %>" size="2" /> + <br /> + <input type="submit" name="modify" /> + </p> + </form> + <% } %> + </p> + </body> +</html> Property changes on: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addTask.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addTask.jsp 2011-04-28 09:46:31 UTC (rev 113) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addTask.jsp 2011-04-28 15:48:42 UTC (rev 114) @@ -28,13 +28,13 @@ <s:textarea key="chorem.gepeto.task.description" name="description" cols="50" rows="10" labelposition="top" /> <br /> <br /> - <s:textfield key="chorem.gepeto.task.price" name="price" labelSeparator=": " /> + <s:textfield key="chorem.gepeto.task.price" name="price" labelSeparator=": " size="4" /> <br /> - <s:textfield key="chorem.gepeto.task.estimatedDays" name="estimatedDays" labelSeparator=": " /> + <s:textfield key="chorem.gepeto.task.estimatedDays" name="estimatedDays" labelSeparator=": " size="3" /> <br /> - <s:textfield key="chorem.gepeto.task.beginDate" name="beginDate" labelSeparator=": " /> + <s:textfield key="chorem.gepeto.task.beginDate" name="beginDate" labelSeparator=": " size="7" /> <br /> - <s:textfield key="chorem.gepeto.task.estimatedEndDate" name="estimatedEndDate" labelSeparator=": " /> + <s:textfield key="chorem.gepeto.task.estimatedEndDate" name="estimatedEndDate" labelSeparator=": " size="7" /> <br /> <br /> <s:submit key="chorem.gepeto.task.add" name="submit" />