Author: vbriand Date: 2011-04-14 15:11:27 +0200 (Thu, 14 Apr 2011) New Revision: 84 Url: http://chorem.org/repositories/revision/chorem/84 Log: Added a page to display company's details (very simple for now) Added: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-addCompany-validation.xml trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp Removed: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-validation.xml Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.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/projectOrderDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectsByYear.jsp Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java 2011-04-14 12:32:04 UTC (rev 83) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java 2011-04-14 13:11:27 UTC (rev 84) @@ -1,10 +1,13 @@ package org.chorem.bonzoms.action; +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.entities.Company; import org.chorem.entities.CompanyImpl; import org.chorem.entities.ContactDetailsImpl; import com.opensymphony.xwork2.ActionContext; @@ -46,6 +49,40 @@ return result; } + /** + * Retrieves the information of the company referenced by the + * companyId + * + * @return SUCCESS if the information have been retrieved, + * ERROR either if the UUID is invalid or the companyId doesn't exist + */ + public String companyDetails() { + String result = SUCCESS; + ChoremProxy proxy = getChoremProxy(); + + try { + if (companyId == null) { + result = ERROR; + } else { + //If companyId isn't a valid UUID, an exception is thrown + UUID.fromString(companyId); + + Company company = proxy.restore(Company.class, companyId); + + if (company != null) { //If the companyId exists + setName(company.getName()); + setType(company.getType()); + } else { + result = ERROR; + } + } + } catch (IllegalArgumentException e) { + //companyId is invalid + result = ERROR; + } + return result; + } + protected String name; protected String type; protected String addressLine1; @@ -55,6 +92,7 @@ protected String country; protected String phoneNb; protected String website; + protected String companyId; /** * Stores the new company through the proxy @@ -238,4 +276,18 @@ public void setWebsite(String website) { this.website = website; } + + /** + * @return the companyId + */ + public String getCompanyId() { + return companyId; + } + + /** + * @param companyId the companyId to set + */ + public void setCompanyId(String companyId) { + this.companyId = companyId; + } } 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-04-14 12:32:04 UTC (rev 83) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-04-14 13:11:27 UTC (rev 84) @@ -232,15 +232,15 @@ * @param projectId the project's id * @return the customers */ - public List<String> getCustomers(String projectId) { + public List<Company> getCustomers(String projectId) { ChoremProxy proxy = getChoremProxy(); List<ProjectOrder> projectOrders = getProjectOrders(projectId); - List<String> customers = new ArrayList<String>(); + List<Company> customers = new ArrayList<Company>(); Company company; for (ProjectOrder projectOrder : projectOrders) { company = proxy.restore(Company.class, projectOrder.getCompany()); - customers.add(company.getName()); + customers.add(company); } return customers; } 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-14 12:32:04 UTC (rev 83) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-14 13:11:27 UTC (rev 84) @@ -36,6 +36,8 @@ chorem.bonzoms.company.type=Company''s type chorem.bonzoms.company.type.required=You must enter the company''s type chorem.bonzoms.company.website=Website (opt.) +chorem.bonzoms.companyDetails.name= +chorem.bonzoms.companyDetails.title= chorem.bonzoms.contactDetails=Contact details chorem.bonzoms.contactDetails.add=Add a new contact details chorem.bonzoms.contactDetails.create.error=An error occurred while creating your new contact details, please try again. If the problem persists, please contact an administrator 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-14 12:32:04 UTC (rev 83) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-14 13:11:27 UTC (rev 84) @@ -35,6 +35,8 @@ 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.company.website=Site internet (opt.) +chorem.bonzoms.companyDetails.name=Entreprise "{0}" +chorem.bonzoms.companyDetails.title=D\u00E9tails de l''entreprise "{0}" chorem.bonzoms.contactDetails=M\u00E9thode de contact chorem.bonzoms.contactDetails.add=Ajouter une nouvelle m\u00E9thode de contact chorem.bonzoms.contactDetails.create.error=Une erreur s''est produite lors de la cr\u00E9ation de votre nouvelle m\u00E9thode de contact, merci d''essayer \u00E0 nouveau. Si le probl\u00E8me se reproduit, merci de contacter un administrateur Copied: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-addCompany-validation.xml (from rev 80, trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-validation.xml) =================================================================== --- trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-addCompany-validation.xml (rev 0) +++ trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-addCompany-validation.xml 2011-04-14 13:11:27 UTC (rev 84) @@ -0,0 +1,36 @@ +<!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> + <field name="addressLine1"> + <field-validator type="requiredstring"> + <message key="chorem.bonzoms.company.addressLine1.required" /> + </field-validator> + </field> + <field name="postcode"> + <field-validator type="requiredstring"> + <message key="chorem.bonzoms.company.postcode.required" /> + </field-validator> + </field> + <field name="city"> + <field-validator type="requiredstring"> + <message key="chorem.bonzoms.company.city.required" /> + </field-validator> + </field> + <field name="country"> + <field-validator type="requiredstring"> + <message key="chorem.bonzoms.company.country.required" /> + </field-validator> + </field> +</validators> Property changes on: trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-addCompany-validation.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Deleted: 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 2011-04-14 12:32:04 UTC (rev 83) +++ trunk/chorem-web/src/main/resources/org/chorem/bonzoms/action/CompanyAction-validation.xml 2011-04-14 13:11:27 UTC (rev 84) @@ -1,36 +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="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> - <field name="addressLine1"> - <field-validator type="requiredstring"> - <message key="chorem.bonzoms.company.addressLine1.required" /> - </field-validator> - </field> - <field name="postcode"> - <field-validator type="requiredstring"> - <message key="chorem.bonzoms.company.postcode.required" /> - </field-validator> - </field> - <field name="city"> - <field-validator type="requiredstring"> - <message key="chorem.bonzoms.company.city.required" /> - </field-validator> - </field> - <field name="country"> - <field-validator type="requiredstring"> - <message key="chorem.bonzoms.company.country.required" /> - </field-validator> - </field> -</validators> Modified: trunk/chorem-web/src/main/resources/struts.xml =================================================================== --- trunk/chorem-web/src/main/resources/struts.xml 2011-04-14 12:32:04 UTC (rev 83) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-14 13:11:27 UTC (rev 84) @@ -26,6 +26,10 @@ <result name="error">/WEB-INF/jsp/bonzoms/addCompany.jsp</result> <result type="redirectAction">home</result> </action> + <action name="companyDetails" class="org.chorem.bonzoms.action.CompanyAction" method="companyDetails"> + <result name="error" type="redirectAction">home</result> + <result>/WEB-INF/jsp/bonzoms/companyDetails.jsp</result> + </action> <action name="addPersonInput"> <result>/WEB-INF/jsp/bonzoms/addPerson.jsp</result> </action> Added: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp (rev 0) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp 2011-04-14 13:11:27 UTC (rev 84) @@ -0,0 +1,24 @@ +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bonzoms.action.CompanyAction" %> +<%@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.companyDetails.title"> + <s:param><%= CompanyAction.getAction().getName() %></s:param> + </s:text> + </title> + <s:head /> + </head> + <body> + <h2> + <s:text name="chorem.bonzoms.companyDetails.name"> + <s:param><%= CompanyAction.getAction().getName() %></s:param> + </s:text> + </h2> + <s:actionerror /> + <s:textfield key="chorem.bonzoms.company.type" name="type" labelSeparator=": " readonly="true" /><br /> + </body> +</html> Property changes on: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-14 12:32:04 UTC (rev 83) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-14 13:11:27 UTC (rev 84) @@ -26,8 +26,11 @@ <s:param><%= ProjectOrderAction.getAction().getType() %></s:param> </s:text> <br /> + <s:url namespace="/bonzoms" action="companyDetails" var="companyDetails"> + <s:param name="companyId"><%= ProjectOrderAction.getAction().getCompany().getWikittyId() %></s:param> + </s:url> <s:text name="chorem.gepeto.projectOrderDetails.companyName"> - <s:param><%= ProjectOrderAction.getAction().getCompany().getName() %></s:param> + <s:param><a href="${companyDetails}"><%= ProjectOrderAction.getAction().getCompany().getName() %></a></s:param> </s:text> <br /> <s:text name="chorem.gepeto.projectOrderDetails.quotation"> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectsByYear.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectsByYear.jsp 2011-04-14 12:32:04 UTC (rev 83) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectsByYear.jsp 2011-04-14 13:11:27 UTC (rev 84) @@ -1,5 +1,6 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.util.List" %> +<%@page import="org.chorem.entities.Company" %> <%@page import="org.chorem.entities.Project" %> <%@page import="org.chorem.gepeto.action.ProjectAction" %> <%@taglib prefix="s" uri="/struts-tags" %> @@ -42,11 +43,14 @@ <td><a href="${projectDetails}"><%= project.getName() %></a></td> <td> <% - List<String> customers = ProjectAction.getAction().getCustomers(project.getWikittyId()); + List<Company> customers = ProjectAction.getAction().getCustomers(project.getWikittyId()); - for (String customer : customers) { + for (Company customer : customers) { %> - <%= customer %> + <s:url namespace="/bonzoms" action="companyDetails" var="companyDetails"> + <s:param name="companyId"><%= customer.getWikittyId() %></s:param> + </s:url> + <a href="${companyDetails}"><%= customer.getName() %></a> <% } %>