Author: bpoussin Date: 2011-11-22 18:55:19 +0100 (Tue, 22 Nov 2011) New Revision: 132 Url: http://chorem.org/repositories/revision/chorem/132 Log: work in progress bonzoms a priori fonctionnel (gros menage, suppression des anciens fichiers Added: trunk/chorem-web/src/main/java/org/chorem/ChoremUtil.java trunk/chorem-web/src/main/java/org/chorem/action/SelectWikittyComponentAction.java trunk/chorem-web/src/main/webapp/WEB-INF/jsp/common/selectWikittyComponent.jsp trunk/chorem-web/src/main/webapp/js/ trunk/chorem-web/src/main/webapp/js/chorem.js Removed: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addCompany.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addContactDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addPerson.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmployee.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp Modified: trunk/chorem-entities/src/main/xmi/chorem.properties trunk/chorem-entities/src/main/xmi/chorem.zargo trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java trunk/chorem-web/src/main/java/org/chorem/action/EntitySearchJsonAction.java trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 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/decorators.xml trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companies.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/menu.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/persons.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/common/inc/footer.jsp Modified: trunk/chorem-entities/src/main/xmi/chorem.properties =================================================================== --- trunk/chorem-entities/src/main/xmi/chorem.properties 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-entities/src/main/xmi/chorem.properties 2011-11-22 17:55:19 UTC (rev 132) @@ -1,10 +1,15 @@ org.chorem.entities.Project.class.tagvalue.version=1.0 +org.chorem.entities.Project.class.tagvalue.toString=%Project.name|noname$s org.chorem.entities.ProjectOrder.class.tagvalue.version=1.0 +org.chorem.entities.ProjectOrder.class.tagvalue.toString=%ProjectOrder.description|noname$s org.chorem.entities.Task.class.tagvalue.version=1.0 +org.chorem.entities.Task.class.tagvalue.toString=%Task.name|noname$s org.chorem.entities.Worker.class.tagvalue.version=1.0 -org.chorem.entities.Person.class.tagvalue.version=2.0 +org.chorem.entities.Person.class.tagvalue.version=3.0 +org.chorem.entities.Person.class.tagvalue.toString=%Person.lastName$s %Person.firstName|noname$s org.chorem.entities.Interval.class.tagvalue.version=1.0 -org.chorem.entities.Company.class.tagvalue.version=1.0 +org.chorem.entities.Company.class.tagvalue.version=2.0 +org.chorem.entities.Company.class.tagvalue.toString=%Company.name|noname$s org.chorem.entities.ContactDetails.class.tagvalue.version=1.0 org.chorem.entities.Time.class.tagvalue.version=1.0 org.chorem.entities.Employee.class.tagvalue.version=2.0 Modified: trunk/chorem-entities/src/main/xmi/chorem.zargo =================================================================== (Binary files differ) Modified: trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java 2011-11-22 17:55:19 UTC (rev 132) @@ -1,5 +1,6 @@ package org.chorem; +import java.util.ArrayList; import java.util.List; import org.chorem.entities.Attachment; @@ -9,6 +10,7 @@ import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyServiceFactory; +import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.PagedResult; import org.nuiton.wikitty.search.Search; @@ -51,6 +53,34 @@ synchronized(ChoremProxy.class) { if (ws == null) { ws = WikittyServiceFactory.buildWikittyService(config); + + // register last entity versions in database + List<WikittyExtension> exts = new ArrayList<WikittyExtension>(); + + exts.addAll(org.chorem.entities.AttachmentAbstract.extensions); + exts.addAll(org.chorem.entities.CompanyAbstract.extensions); + exts.addAll(org.chorem.entities.ContactDetailsAbstract.extensions); + exts.addAll(org.chorem.entities.EmployeeAbstract.extensions); + exts.addAll(org.chorem.entities.EvaluationAbstract.extensions); + exts.addAll(org.chorem.entities.GoalAbstract.extensions); + exts.addAll(org.chorem.entities.IntervalAbstract.extensions); + exts.addAll(org.chorem.entities.InterviewAbstract.extensions); + exts.addAll(org.chorem.entities.InvoiceableAbstract.extensions); + exts.addAll(org.chorem.entities.InvoiceAbstract.extensions); + exts.addAll(org.chorem.entities.MissionAbstract.extensions); + exts.addAll(org.chorem.entities.PersonAbstract.extensions); + exts.addAll(org.chorem.entities.PersonSkillAbstract.extensions); + exts.addAll(org.chorem.entities.ProjectOrderAbstract.extensions); + exts.addAll(org.chorem.entities.ProjectAbstract.extensions); + exts.addAll(org.chorem.entities.QuotationAbstract.extensions); + exts.addAll(org.chorem.entities.SkillAbstract.extensions); + exts.addAll(org.chorem.entities.TaskAbstract.extensions); + exts.addAll(org.chorem.entities.TimeAbstract.extensions); + exts.addAll(org.chorem.entities.TouchAbstract.extensions); + exts.addAll(org.chorem.entities.VacationAbstract.extensions); + exts.addAll(org.chorem.entities.WorkerAbstract.extensions); + + ws.storeExtension(null, exts); } } } Added: trunk/chorem-web/src/main/java/org/chorem/ChoremUtil.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/ChoremUtil.java (rev 0) +++ trunk/chorem-web/src/main/java/org/chorem/ChoremUtil.java 2011-11-22 17:55:19 UTC (rev 132) @@ -0,0 +1,33 @@ +package org.chorem; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class ChoremUtil { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(ChoremUtil.class); + + static public Collection<String> toCollection(String s) { + Collection<String> result; + if (s == null) { + result = Collections.EMPTY_LIST; + } else { + result = Arrays.asList(StringUtils.split(s, " :,;|")); + } + return result; + } + +} Modified: trunk/chorem-web/src/main/java/org/chorem/action/EntitySearchJsonAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/action/EntitySearchJsonAction.java 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/java/org/chorem/action/EntitySearchJsonAction.java 2011-11-22 17:55:19 UTC (rev 132) @@ -1,5 +1,6 @@ package org.chorem.action; +import com.opensymphony.xwork2.ActionContext; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -17,6 +18,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ParameterAware; +import org.chorem.ChoremUtil; import org.nuiton.wikitty.entities.FieldType; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.entities.WikittyExtension; @@ -74,6 +76,10 @@ static private Log log = LogFactory.getLog(EntitySearchJsonAction.class); private static final long serialVersionUID = 1L; + static public EntitySearchJsonAction getAction() { + return (EntitySearchJsonAction)ActionContext.getContext().get(CONTEXT_ACTION_KEY); + } + //get how many rows we want to have into the grid - rowNum attribute in the grid protected int rows = 0; @@ -131,6 +137,7 @@ protected Map<String, String[]> parameters; + @Override public String execute() { try { if (log.isDebugEnabled()) { @@ -156,7 +163,7 @@ } protected void doDelete() { - Collection<String> ids = toCollection(id); + Collection<String> ids = ChoremUtil.toCollection(id); // si l'utilisateur demande de supprimer aussi tous les objets qui ont // ces ids comme reference, on les recherche @@ -174,7 +181,7 @@ protected void doAdd() { Wikitty w = new WikittyImpl(); - Collection<String> extNames = toCollection(wikittyExtension); + Collection<String> extNames = ChoremUtil.toCollection(wikittyExtension); List<WikittyExtension> exts = getChoremProxy().restoreExtensionAndDependenciesLastVesion(extNames); w.addExtension(exts); if (StringUtils.isNotBlank(wikittyLinkFieldForRowId) @@ -219,7 +226,7 @@ Search search = Search.query(); if (StringUtils.isNotBlank(wikittyExtension)) { - Collection<String> col = toCollection(wikittyExtension); + Collection<String> col = ChoremUtil.toCollection(wikittyExtension); search.exteq(col); } @@ -328,7 +335,7 @@ // TODO poussin 20111107 pas tres optimal de faire une requete a chaque besoin // il faudrait collecter les ids, pour faire une seule demande pour tous // mais tant que pour le deploiement, tout est sur le meme serveur - // si un peu moins genant + // c'est un peu moins genant Wikitty wlink = getChoremProxy().restore(linkId); Map<String, Object> map = wikittyToMap(wlink); map.remove("id"); @@ -351,7 +358,7 @@ public Set<String> getWikittyLinkToLoadCache() { if (wikittyLinkToLoadCache == null) { wikittyLinkToLoadCache = - new HashSet<String>(toCollection(wikittyLinkToLoad)); + new HashSet<String>(ChoremUtil.toCollection(wikittyLinkToLoad)); } return wikittyLinkToLoadCache; } @@ -513,7 +520,7 @@ } else if ("nn".equalsIgnoreCase(op)) { search.isNotNull(field); } else { - Collection<String> col = toCollection(data); + Collection<String> col = ChoremUtil.toCollection(data); if ("in".equalsIgnoreCase(op)) { search.in(field, col); } else if ("ni".equalsIgnoreCase(op)) { @@ -524,14 +531,4 @@ } } - - protected Collection<String> toCollection(String s) { - Collection<String> result; - if (s == null) { - result = Collections.EMPTY_LIST; - } else { - result = Arrays.asList(StringUtils.split(s, " :,;|")); - } - return result; - } } Added: trunk/chorem-web/src/main/java/org/chorem/action/SelectWikittyComponentAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/action/SelectWikittyComponentAction.java (rev 0) +++ trunk/chorem-web/src/main/java/org/chorem/action/SelectWikittyComponentAction.java 2011-11-22 17:55:19 UTC (rev 132) @@ -0,0 +1,131 @@ +package org.chorem.action; + +import java.util.Collection; +import java.util.List; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.UnhandledException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.ChoremUtil; +import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.search.Criteria; +import org.nuiton.wikitty.search.PagedResult; +import org.nuiton.wikitty.search.Search; + +/** + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class SelectWikittyComponentAction extends ChoremBaseAction { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(SelectWikittyComponentAction.class); + private static final long serialVersionUID = 1L; + + protected String wikittyExtension; + protected String fulltextSearch; + protected String sortField; + protected boolean asc = true; + protected String format; + protected List<Wikitty> wikitties; + + @Override + public String execute() { + try { + Search search = Search.query(); + + if (StringUtils.isNotBlank(wikittyExtension)) { + Collection<String> col = ChoremUtil.toCollection(wikittyExtension); + search.exteq(col); + } + + if (StringUtils.isNotBlank(fulltextSearch)) { + // TODO poussin 20111106: ca ne serait pas au like d'ajouter les * ? + String s = "*" + fulltextSearch + "*"; + // TODO poussin 20111106: voir pourquoi like fontion comme on souhaite et pas Keyword :( + // keyword ne fonctionne pas avec les * + search.like("#fulltext", s); + } else { + // si pas de filtre on recherche tout + search.rTrue(); + } + + Criteria criteria = search.criteria(); + + if (StringUtils.isNotBlank(sortField)) { + if (asc) { + criteria.setSortAscending(sortField); + } else { + criteria.setSortDescending(sortField); + } + } + + PagedResult<Wikitty> result = getChoremProxy().findAllByCriteria(criteria); + + setWikitties(result.getAll()); + + if (log.isTraceEnabled()) { + log.trace("result: " + getWikitties()); + } + + return SUCCESS; + } catch (Exception eee) { + log.error(String.format("Can't find wikitty '%s'", wikittyExtension), eee); + throw new UnhandledException(eee); + } + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getFulltextSearch() { + return fulltextSearch; + } + + public void setFulltextSearch(String fulltextSearch) { + this.fulltextSearch = fulltextSearch; + } + + public String getWikittyExtension() { + return wikittyExtension; + } + + public void setWikittyExtension(String wikittyExtension) { + this.wikittyExtension = wikittyExtension; + } + + public String getSortField() { + return sortField; + } + + public void setSortField(String sortField) { + this.sortField = sortField; + } + + public boolean isAsc() { + return asc; + } + + public void setAsc(boolean asc) { + this.asc = asc; + } + + public List<Wikitty> getWikitties() { + return wikitties; + } + + public void setWikitties(List<Wikitty> wikitties) { + this.wikitties = wikitties; + } + + +} 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-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-11-22 17:55:19 UTC (rev 132) @@ -10,7 +10,7 @@ import org.apache.commons.logging.LogFactory; import org.chorem.ChoremProxy; import org.chorem.action.ChoremBaseAction; -import org.chorem.bonzoms.EmployeeFull; +//import org.chorem.bonzoms.EmployeeFull; import org.chorem.entities.Employee; import org.chorem.entities.Project; import org.chorem.entities.ProjectOrder; @@ -54,8 +54,8 @@ protected String quotationId; protected String supplierId; protected String customerId; - protected EmployeeFull customer; - protected EmployeeFull supplier; +// protected EmployeeFull customer; +// protected EmployeeFull supplier; /** * Adds a new quotation @@ -137,10 +137,10 @@ } setConversionHope(String.valueOf(quotation.getConversionHope())); setProjectId(quotation.getProject()); - setSupplier(EmployeeFull.initEmployee(quotation.getSupplier(), - proxy)); - setCustomer(EmployeeFull.initEmployee(quotation.getCustomer(), - proxy)); +// setSupplier(EmployeeFull.initEmployee(quotation.getSupplier(), +// proxy)); +// setCustomer(EmployeeFull.initEmployee(quotation.getCustomer(), +// proxy)); } else { result = ERROR; } @@ -194,17 +194,17 @@ return projectOrder; } - public List<EmployeeFull> getAllEmployees() { - ChoremProxy proxy = getChoremProxy(); - Search search = Search.query(); - Criteria criteria = search.exteq(Employee.EXT_EMPLOYEE).criteria(); - PagedResult<Employee> result = proxy.findAllByCriteria(Employee.class, - criteria); - List<Employee> employees = result.getAll(); - List<EmployeeFull> employeesFullList = EmployeeFull. - initEmployeeFullList(employees, proxy); - return employeesFullList; - } +// public List<EmployeeFull> getAllEmployees() { +// ChoremProxy proxy = getChoremProxy(); +// Search search = Search.query(); +// Criteria criteria = search.exteq(Employee.EXT_EMPLOYEE).criteria(); +// PagedResult<Employee> result = proxy.findAllByCriteria(Employee.class, +// criteria); +// List<Employee> employees = result.getAll(); +// List<EmployeeFull> employeesFullList = EmployeeFull. +// initEmployeeFullList(employees, proxy); +// return employeesFullList; +// } /** * Stores the new quotation through the proxy @@ -503,28 +503,28 @@ /** * @return the customer */ - public EmployeeFull getCustomer() { - return customer; - } - - /** - * @param customer the customer to set - */ - public void setCustomer(EmployeeFull customer) { - this.customer = customer; - } - - /** - * @return the supplier - */ - public EmployeeFull getSupplier() { - return supplier; - } - - /** - * @param supplier the supplier to set - */ - public void setSupplier(EmployeeFull supplier) { - this.supplier = supplier; - } +// public EmployeeFull getCustomer() { +// return customer; +// } +// +// /** +// * @param customer the customer to set +// */ +// public void setCustomer(EmployeeFull customer) { +// this.customer = customer; +// } +// +// /** +// * @return the supplier +// */ +// public EmployeeFull getSupplier() { +// return supplier; +// } +// +// /** +// * @param supplier the supplier to set +// */ +// public void setSupplier(EmployeeFull supplier) { +// this.supplier = supplier; +// } } 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-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-11-22 17:55:19 UTC (rev 132) @@ -29,7 +29,7 @@ chorem.bonzoms.company.city=Ville chorem.bonzoms.company.country=Pays chorem.bonzoms.company.employees=Liste des employ\u00E9s -chorem.bonzoms.company.list=Obtenir la liste des soci\u00E9t\u00E9s +chorem.bonzoms.company.list=Les soci\u00E9t\u00E9s chorem.bonzoms.company.name=Nom de la soci\u00E9t\u00E9 chorem.bonzoms.company.phoneNb=Num\u00E9ro de t\u00E9l\u00E9phone (opt.) chorem.bonzoms.company.postcode=Code postal @@ -50,6 +50,7 @@ chorem.bonzoms.employee.paidLeave.wrongFormat=Les cong\u00E9s pay\u00E9s doivent \u00EAtre \u00EAtre un entier positif ou un nombre \u00E0 virgule flottante positif chorem.bonzoms.employee.rtt=RTT chorem.bonzoms.employee.rtt.wrongFormat=Les RTT doivent \u00EAtre \u00EAtre un entier positif ou un nombre \u00E0 virgule flottante positif +chorem.bonzoms.employees=List des employ\u00E9s chorem.bonzoms.employmentContract=Contrat de travail chorem.bonzoms.employmentContract.add=Ajouter un nouveau contrat de travail chorem.bonzoms.employmentContract.allFieldsRequired= @@ -74,7 +75,7 @@ chorem.bonzoms.person.employmentContracts=Contrats de travail \: chorem.bonzoms.person.firstName=Pr\u00E9nom chorem.bonzoms.person.lastName=Nom -chorem.bonzoms.person.list=Obtenir la liste des personnes +chorem.bonzoms.person.list=Les personnes 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 "%s" Modified: trunk/chorem-web/src/main/resources/struts.xml =================================================================== --- trunk/chorem-web/src/main/resources/struts.xml 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-11-22 17:55:19 UTC (rev 132) @@ -54,104 +54,30 @@ <default-interceptor-ref name="publicAreaStack"/> </package> + <package name="ajax" namespace="/ajax" extends="publicArea"> + <action name="EntitySearchJson" class="org.chorem.action.EntitySearchJsonAction"> + <result type="wikitty-json"/> + </action> + <action name="selectWikittyComponent" class="org.chorem.action.SelectWikittyComponentAction"> + <result>/WEB-INF/jsp/common/selectWikittyComponent.jsp</result> + </action> + </package> + <package name="chorem" namespace="/" extends="publicArea"> <default-action-ref name="home" /> <action name="home" class="org.chorem.action.HomeAction"> <result>/WEB-INF/jsp/home.jsp</result> </action> - <action name="EntitySearchJson" class="org.chorem.action.EntitySearchJsonAction"> - <result type="wikitty-json"/> - </action> </package> <package name="bonzoms" namespace="/bonzoms" extends="publicArea"> <default-action-ref name="companies" /> - <action name="addCompanyInput"> - <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="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="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"> <result>/WEB-INF/jsp/bonzoms/companies.jsp</result> </action> - <action name="addPersonInput" class="org.chorem.bonzoms.action.PersonAction"> - <result>/WEB-INF/jsp/bonzoms/addPerson.jsp</result> - </action> - <action name="addPerson" class="org.chorem.bonzoms.action.PersonAction" method="add"> - <result name="input">/WEB-INF/jsp/bonzoms/addPerson.jsp</result> - <result name="error">/WEB-INF/jsp/bonzoms/addPerson.jsp</result> - <result type="redirectAction"> - <param name="actionName">personDetails</param> - <param name="namespace">/bonzoms</param> - <param name="personId">${personId}</param> - </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="persons" class="org.chorem.bonzoms.action.PersonAction"> <result>/WEB-INF/jsp/bonzoms/persons.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> - <action name="addContactDetails" class="org.chorem.bonzoms.action.ContactDetailsAction" method="add"> - <result name="input">/WEB-INF/jsp/bonzoms/addContactDetails.jsp</result> - <result name="error">/WEB-INF/jsp/bonzoms/addContactDetails.jsp</result> - <result type="redirectAction">home</result> - </action> - <action name="addEmploymentContractInput" class="org.chorem.bonzoms.action.EmploymentContractAction"> - <result>/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp</result> - </action> - <action name="addEmploymentContract" class="org.chorem.bonzoms.action.EmploymentContractAction" method="add"> - <result name="input">/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp</result> - <result name="error">/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp</result> - <result type="redirectAction"> - <param name="actionName">personDetails</param> - <param name="namespace">/bonzoms</param> - <param name="personId">${personId}</param> - </result> - </action> - <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">personDetails</param> - <param name="namespace">/bonzoms</param> - <param name="personId">${personId}</param> - </result> - </action> - <action name="modifyEmployee" class="org.chorem.bonzoms.action.EmployeeAction" method="modify"> - <result name="input">/WEB-INF/jsp/bonzoms/personDetailsEmployee.jsp</result> - <result type="redirectAction"> - <param name="actionName">personDetails</param> - <param name="namespace">/bonzoms</param> - <param name="personId">${personId}</param> - </result> - </action> </package> <package name="gepeto" namespace="/gepeto" extends="publicArea"> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/decorators.xml =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/decorators.xml 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/decorators.xml 2011-11-22 17:55:19 UTC (rev 132) @@ -2,6 +2,8 @@ <!-- Any urls that are excluded will never be decorated by Sitemesh --> <excludes> <pattern>/css/*</pattern> + <pattern>/js/*</pattern> + <pattern>/ajax/*</pattern> </excludes> <decorator name="billy" page="billy.jsp"> Deleted: 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-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addCompany.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,44 +0,0 @@ -<%@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.company.add" /></title> - <s:head /> - </head> - <body> - <h2><s:text name="chorem.bonzoms.company.add" /></h2> - <s:actionerror /> - <s:form action="addCompany" method="post"> - <fieldset> - <legend> - <s:text name="chorem.bonzoms.company"> - <s:param></s:param> - </s:text> - </legend> - <s:textfield key="chorem.bonzoms.company.name" name="name" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.company.type" name="type" labelSeparator=": " /> - <br /> - <br /> - <s:textfield key="chorem.bonzoms.company.addressLine1" name="addressLine1" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.company.addressLine2" name="addressLine2" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.company.postcode" name="postcode" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.company.city" name="city" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.company.country" name="country" labelSeparator=": " /> - <br /> - <br /> - <s:textfield key="chorem.bonzoms.company.phoneNb" name="phoneNb" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.company.website" name="website" labelSeparator=": " /> - <br /> - <s:submit key="chorem.bonzoms.company.add" name="submit" /> - </fieldset> - </s:form> - </body> -</html> Deleted: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addContactDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addContactDetails.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addContactDetails.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,25 +0,0 @@ -<%@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.contactDetails.add" /></title> - <s:head /> - </head> - <body> - <h2><s:text name="chorem.bonzoms.contactDetails.add" /></h2> - <s:form action="addContactDetails" method="post"> - <fieldset> - <legend><s:text name="chorem.bonzoms.contactDetails" /></legend> - <s:textfield key="chorem.bonzoms.contactDetails.name" name="name" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.contactDetails.type" name="type" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.contactDetails.value" name="value" labelSeparator=": " /> - <br /> - <s:submit key="chorem.bonzoms.contactDetails.add" name="submit" /> - </fieldset> - </s:form> - </body> -</html> Deleted: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,39 +0,0 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@page import="org.chorem.bonzoms.action.EmploymentContractAction" %> -<%@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.employmentContract.add" /></title> - <s:head /> - </head> - <body> - <h2><s:text name="chorem.bonzoms.employmentContract.add" /></h2> - <s:actionerror /> - <s:url action="addEmploymentContract" var="addEmploymentContract"> - <s:param name="personId"><%= EmploymentContractAction.getAction().getPersonId() %></s:param> - <s:param name="employeeId"><%= EmploymentContractAction.getAction().getEmployeeId() %></s:param> - </s:url> - <form action="${addEmploymentContract}" method="post"> - <fieldset> - <legend><s:text name="chorem.bonzoms.employmentContract" /></legend> - <s:textfield key="chorem.bonzoms.employmentContract.type" name="type" labelSeparator=": " /> - <br /> - <br /> - <s:textarea key="chorem.bonzoms.employmentContract.description" name="description" cols="50" rows="10" labelposition="top" labelSeparator=": " /> - <br /> - <br /> - <s:textfield key="chorem.bonzoms.employmentContract.salary" name="salary" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.employmentContract.workingTime" name="workingTime" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.employmentContract.beginDate" name="beginDate" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.employmentContract.endDate" name="endDate" labelSeparator=": " /> - <br /> - <s:submit key="chorem.bonzoms.person.add" name="submit" /> - </fieldset> - </form> - </body> -</html> Deleted: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addPerson.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addPerson.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addPerson.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,70 +0,0 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@page import="org.chorem.bonzoms.action.PersonAction" %> -<%@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.person.add" /></title> - <s:head /> - </head> - <body> - <h2><s:text name="chorem.bonzoms.person.add" /></h2> - <s:actionerror /> - <s:form action="addPerson" method="post"> - <fieldset> - <legend><s:text name="chorem.bonzoms.person" /></legend> - <s:textfield key="chorem.bonzoms.person.firstName" name="firstName" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.person.lastName" name="lastName" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.person.email" name="email" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.person.birthDate" name="birthDate" labelSeparator=": " size="7" /> - <br /> - <br /> - <s:textfield key="chorem.bonzoms.person.addressLine1" name="addressLine1" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.person.addressLine2" name="addressLine2" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.person.postcode" name="postcode" labelSeparator=": " size="5" /> - <br /> - <s:textfield key="chorem.bonzoms.person.city" name="city" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.person.country" name="country" labelSeparator=": " /> - <br /> - <br /> - <s:textfield key="chorem.bonzoms.person.phoneNb" name="phoneNb" labelSeparator=": " size="8" /> - </fieldset> - <br /> - <fieldset> - <legend><s:text name="chorem.bonzoms.employee" /></legend> - <s:textfield key="chorem.bonzoms.employee.diploma" name="employeeDiploma" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.employee.paidLeave" name="employeePaidLeave" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.employee.rtt" name="employeeRtt" labelSeparator=": " /> - <br /> - <s:select label="%{getText('chorem.gepeto.projectOrder.company')}" list="allCompanies" name="companyId" listKey="wikittyId" listValue="name" /> - <br /> - <fieldset> - <legend><s:text name="chorem.bonzoms.employmentContract" /></legend> - <s:textfield key="chorem.bonzoms.employmentContract.type" name="contractType" labelSeparator=": " /> - <br /> - <br /> - <s:textarea key="chorem.bonzoms.employmentContract.description" name="contractDescription" rows="10" cols="50" labelposition="top" /> - <br /> - <s:textfield key="chorem.bonzoms.employmentContract.salary" name="contractSalary" labelSeparator=": " size="4" /> - <br /> - <s:textfield key="chorem.bonzoms.employmentContract.workingTime" name="contractWorkingTime" labelSeparator=": " size="1" /> - <br /> - <s:textfield key="chorem.bonzoms.employmentContract.beginDate" name="contractBeginDate" labelSeparator=": " size="7" /> - <br /> - <s:textfield key="chorem.bonzoms.employmentContract.endDate" name="contractEndDate" labelSeparator=": " size="7" /> - </fieldset> - </fieldset> - <br /> - <s:submit key="chorem.bonzoms.person.add" name="submit" /> - </s:form> - </body> -</html> \ No newline at end of file Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companies.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companies.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companies.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,8 +1,6 @@ <%@page import="org.apache.commons.lang.StringUtils"%> <%@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.bonzoms.action.CompanyAction" %> <%@taglib prefix="s" uri="/struts-tags" %> <%@taglib prefix="sj" uri="/struts-jquery-tags"%> <%@taglib prefix="sjg" uri="/struts-jquery-grid-tags"%> @@ -13,7 +11,6 @@ <title><s:text name="chorem.bonzoms.companies" /></title> </head> <body> - <h2><s:text name="chorem.bonzoms.companies" /></h2> <s:url id="companyDetails" namespace="/bonzoms" action="companyDetails"/> <script type="text/javascript"> @@ -34,47 +31,45 @@ <%-- Partie generique (ou presque, ce ne sont que des variables qui change) --%> - <s:url id="listCompanyUrl" namespace="/" action="EntitySearchJson" escapeAmp="false"> + <s:url id="selectPersonUrl" namespace="/ajax" action="selectWikittyComponent" escapeAmp="false"> + <s:param name="wikittyExtension">Person</s:param> + <s:param name="sortField">Person.lastName</s:param> + </s:url> + + <s:url id="selectCompanyUrl" namespace="/ajax" action="selectWikittyComponent" escapeAmp="false"> <s:param name="wikittyExtension">Company</s:param> + <s:param name="sortField">Company.name</s:param> </s:url> - <s:url id="listContactDetailsUrl" namespace="/" action="EntitySearchJson" escapeAmp="false"> + <s:url id="listCompanyUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> + <s:param name="wikittyExtension">Company</s:param> + </s:url> + + <s:url id="listContactDetailsUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> <s:param name="wikittyExtension">ContactDetails</s:param> </s:url> - <s:url id="listEmployeeUrl" namespace="/" action="EntitySearchJson" escapeAmp="false"> + <s:url id="listEmployeeUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> <s:param name="wikittyExtension">Employee</s:param> <s:param name="wikittyLinkToLoad">Employee.person,Employee.company</s:param> </s:url> - <s:url id="editCompanyUrl" namespace="/" action="EntitySearchJson" escapeAmp="false"> + <s:url id="editCompanyUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> <s:param name="wikittyExtension">Company</s:param> </s:url> - <s:url id="editEmployeeUrl" namespace="/" action="EntitySearchJson" escapeAmp="false"> + <s:url id="editEmployeeUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> <s:param name="wikittyExtension">Employee</s:param> </s:url> - <s:url id="editContactDetailsUrl" namespace="/" action="EntitySearchJson" escapeAmp="false"> + <s:url id="editContactDetailsUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> <s:param name="wikittyExtension">ContactDetails</s:param> <s:param name="wikittyLinkFieldForRowId">ContactDetails.target</s:param> </s:url> <script type="text/javascript"> - var timeoutHnd; - function doSearchCompany() { - if(timeoutHnd) { - clearTimeout(timeoutHnd) - } - timeoutHnd = setTimeout(gridReloadCompany, 500) - } - - function gridReloadCompany() { - var filter = jQuery("#fulltextSearchCompany").val(); - var gridUrl = "<s:property value="listCompanyUrl" escapeHtml="false"/>&fulltextSearch="+filter; - jQuery("#gridCompany").jqGrid('setGridParam',{url:gridUrl,page:1}).trigger("reloadGrid"); - } - + // event de la grille des companies qui selection seulement les employers + // la companie selectionnee $.subscribe('rowselect', function(event, data) { // alert('Selected Row : ' + event.originalEvent.id + ' data: ' + event.originalEvent.status); var gridUrl = "<s:property value="listEmployeeUrl" escapeHtml="false"/>&fulltextSearch=" + event.originalEvent.id; @@ -83,8 +78,11 @@ }); </script> + <h2><s:text name="chorem.bonzoms.companies" /></h2> + <s:form> - <s:textfield id="fulltextSearchCompany" name="fulltextSearchCompany" onkeydown="doSearchCompany()"></s:textfield> + <s:textfield id="fulltextSearchCompany" name="fulltextSearchCompany" + onkeydown="doSearch('#gridCompany', '#fulltextSearchCompany', '%{listCompanyUrl}')"></s:textfield> </s:form> <sjg:grid @@ -156,13 +154,23 @@ > <sjg:gridColumn name="id" hidden="true" key="true" title="id"/> - <sjg:gridColumn name="ContactDetails.type" index="ContactDetails.type" title="Type" editable="true" sortable="true"/> + <sjg:gridColumn name="ContactDetails.type" index="ContactDetails.type" + edittype="select" + editoptions="{value:'Phone:Phone;Address:Address;Email:Email;Jabber:Jabber;Other:Other'}" + title="Type" editable="true" sortable="true"/> <sjg:gridColumn name="ContactDetails.name" index="ContactDetails.name" title="Name" editable="true" sortable="true"/> <sjg:gridColumn name="ContactDetails.value" index="ContactDetails.value" title="Value" editable="true" sortable="true"/> </sjg:grid> </sjg:grid> + <h2><s:text name="chorem.bonzoms.employees" /></h2> + + <s:form> + <s:textfield id="fulltextSearchEmployee" name="fulltextSearchEmployee" + onkeydown="doSearch('#gridEmployee', '#fulltextSearchEmployee', '%{listEmployeeUrl}')"></s:textfield> + </s:form> + <sjg:grid id="gridEmployee" dataType="json" @@ -195,18 +203,27 @@ > <sjg:gridColumn name="id" hidden="true" key="true" title="id"/> + + <sjg:gridColumn name="Employee.company" index="Employee.company" + title="Société" editable="true" edittype="select" + hidden="true" editrules="{edithidden:true}" + editoptions="{dataUrl:'%{selectCompanyUrl}'}"/> + <sjg:gridColumn name="Employee.person" index="Employee.person" + title="Personne" editable="true" edittype="select" + hidden="true" editrules="{edithidden:true}" + editoptions="{dataUrl:'%{selectPersonUrl}'}"/> + <sjg:gridColumn name="Company.name" index="Company.name" title="Société" sortable="false" formatter="formatCompanyLink" editable="false"/> <sjg:gridColumn name="Person.lastName" index="Person.lastName" title="Nom" sortable="false" formatter="formatPersonNameLink" editable="false"/> <sjg:gridColumn name="Person.firstName" index="Person.firstName" title="Prénom" sortable="false" editable="false"/> <sjg:gridColumn name="Person.diploma" index="Person.diploma" title="Diplôme" sortable="false" editable="false"/> + <sjg:gridColumn name="Employee.type" index="Employee.type" title="Type" edittype="select" editoptions="{value:'CDI:CDI;CDD:CDD;Stage:Stage;TNS:TNS'}" editable="true"/> <sjg:gridColumn name="Employee.paidLeave" index="Employee.paidLeave" title="Congé" editrules="{number:true}" editable="true"/> <sjg:gridColumn name="Employee.rtt" index="Employee.rtt" title="RTT" editrules="{number:true}" editable="true"/> <sjg:gridColumn name="Employee.salary" index="Employee.salary" title="Salaire" editrules="{number:true}" editable="true"/> <sjg:gridColumn name="Employee.workingTime" index="Employee.workingTime" title="Temps de travail" editrules="{number:true}" editable="true"/> <sjg:gridColumn name="Employee.description" index="Employee.description" title="Description" edittype="textarea" editable="true"/> - <sjg:gridColumn name="Employee.person" index="Employee.person" title="Personne" editable="true" edittype="select" editoptions="{value:'%{selectOption}'}" editrules="{edithidden:true}"/> - <sjg:gridColumn name="Employee.company" index="Employee.company" title="Société" hidden="true" editable="true" editrules="{edithidden:true}"/> <sjg:grid id="gridEmployeeContact" @@ -240,7 +257,10 @@ > <sjg:gridColumn name="id" hidden="true" key="true" title="id"/> - <sjg:gridColumn name="ContactDetails.type" index="ContactDetails.type" title="Type" editable="true" sortable="true"/> + <sjg:gridColumn name="ContactDetails.type" index="ContactDetails.type" + edittype="select" + editoptions="{value:'Phone:Phone;Address:Address;Email:Email;Jabber:Jabber;Other:Other'}" + title="Type" editable="true" sortable="true"/> <sjg:gridColumn name="ContactDetails.name" index="ContactDetails.name" title="Name" editable="true" sortable="true"/> <sjg:gridColumn name="ContactDetails.value" index="ContactDetails.value" title="Value" editable="true" sortable="true"/> </sjg:grid> Deleted: 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-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/companyDetails.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,62 +0,0 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@page import="java.util.List" %> -<%@page import="org.chorem.entities.Person" %> -<%@page import="org.chorem.bonzoms.action.CompanyAction" %> -<%@page import="org.chorem.JspUtils" %> -<%@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:url action="modifyCompany" var="modifyCompany"> - <s:param name="companyId"><%= CompanyAction.getAction().getCompanyId() %></s:param> - </s:url> - <form action="${modifyCompany}" method="post"> - <p> - <s:textfield key="chorem.bonzoms.company.type" name="type" labelSeparator=": " /> - <br /> - <br /> - <s:textarea key="chorem.bonzoms.company.address" name="address" cols="30" rows="3" labelposition="top" /> - <br /> - <s:textfield key="chorem.bonzoms.company.phoneNb" name="phoneNb" labelSeparator=": " /> - <br /> - <s:textfield key="chorem.bonzoms.company.website" name="website" labelSeparator=": " /> - <br /> - <br /> - <s:submit key="chorem.misc.modify" name="modify" /> - </p> - </form> - <br /> - <br /> - <s:text name="chorem.bonzoms.company.employees" /> - <br /> - <br /> - <% - List<Person> employees = CompanyAction.getAction().getEmployees(); - - for (Person employee : employees) { - %> - <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 /> - <% - } - %> - <br /> - </body> -</html> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/menu.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/menu.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/menu.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -4,7 +4,5 @@ <ul> <li><s:a action="companies"><s:text name="chorem.bonzoms.company.list" /></s:a></li> <li><s:a action="persons"><s:text name="chorem.bonzoms.person.list" /></s:a></li> - <li><s:a action="addCompanyInput"><s:text name="chorem.bonzoms.company.add" /></s:a></li> - <li><s:a action="addPersonInput"><s:text name="chorem.bonzoms.person.add" /></s:a></li> </ul> </div> Deleted: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,119 +0,0 @@ -<%@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="org.chorem.entities.Employee" %> -<%@page import="java.util.List" %>dip -<%@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"> - <% PersonAction person = PersonAction.getAction(); %> - <head> - <title> - <s:text name="chorem.bonzoms.personDetails.title"> - <s:param><%= person.getFirstName() %> <%= person.getLastName() %></s:param> - </s:text> - </title> - <s:head /> - </head> - <body> - <h2><%= person.getFirstName() %> <%= person.getLastName() %></h2> - <s:actionerror /> - <s:url action="modifyPerson" var="modifyPerson"> - <s:param name="personId"><%= person.getPersonId() %></s:param> - </s:url> - <form action="${modifyPerson}" method="post"> - <p> - <s:text name="chorem.bonzoms.person.birthDate" />: <%= person.getBirthDate() %> - <br /> - <label for="diploma"><s:text name="chorem.bonzoms.employee.diploma" /></label>: - <% if (person != null) { %> - <input type="text" name="diploma" id="diploma" value="<%= person.getDiploma() %>" /> - <% } else { %> - <input type="text" name="diploma" id="diploma" /> - <% } %> - <br /> - <s:submit key="chorem.misc.modify" name="submit" /> - </p> - </form> - <% Employee employee = person.getEmployee(); %> - <h3><s:text name="chorem.bonzoms.employee" /></h3> - <p> - <s:url action="modifyEmployee" var="modifyEmployee"> - <s:param name="personId"><%= person.getPersonId() %></s:param> - <% - if (employee != null) { - %> - <s:param name="employeeId"><%= employee.getWikittyId() %></s:param> - <% } %> - </s:url> - <form action="${modifyEmployee}" method="post"> - <label for="paidLeave"><s:text name="chorem.bonzoms.employee.paidLeave" /></label>: - <% if (employee != null) { %> - <input type="text" name="paidLeave" id="paidLeave" value="<%= employee.getPaidLeave() %>" /> - <% } else { %> - <input type="text" name="paidLeave" id="paidLeave" /> - <% } %> - <br /> - <label for="rtt"><s:text name="chorem.bonzoms.employee.rtt" /></label>: - <% if (employee != null) { %> - <input type="text" name="rtt" id="rtt" value="<%= employee.getRtt() %>" /> - <% } else { %> - <input type="text" name="rtt" id="rtt" /> - <% } %> - <br /> - <s:submit key="chorem.misc.modify" name="modify" /> - </form> - </p> - <h3><s:text name="chorem.bonzoms.person.employmentContracts" /></h3> - <% - List<EmploymentContractFull> employmentContractsFull = person.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> - <% if (employmentContractFull.getEmployee().getCompany() != null) { %> - <s:text name="chorem.bonzoms.employee.company" />: <%= employmentContractFull.getEmployee().getCompany().getName() %> - <br /> - <% } %> - <label for="type<%= employmentContract.getWikittyId() %>"><s:text name="chorem.bonzoms.employmentContract.type" /></label>: - <input type="text" name="type" id="type<%= employmentContract.getWikittyId() %>" value="<%= employmentContract.getType() %>" /> - <br /> - <br /> - <label for="description<%= employmentContract.getWikittyId() %>"><s:text name="chorem.bonzoms.employmentContract.description" /></label>: - <br /> - <textarea name="description" id="description<%= employmentContract.getWikittyId() %>"><%= employmentContract.getDescription() %></textarea> - <br /> - <label for="salary<%= employmentContract.getWikittyId() %>"><s:text name="chorem.bonzoms.employmentContract.salary" /></label>: - <input type="text" name="salary" id="salary<%= employmentContract.getWikittyId() %>" value="<%= employmentContract.getSalary() %>" size="6" /> - <br /> - <label for="workingTime<%= employmentContract.getWikittyId() %>"><s:text name="chorem.bonzoms.employmentContract.workingTime" /></label>: - <input type="text" name="workingTime" id="workingTime<%= employmentContract.getWikittyId() %>" value="<%= employmentContract.getWorkingTime() %>" size="2" /> - <br /> - <s:submit key="chorem.misc.modify" name="modify" /> - <br /> - <br /> - </p> - </form> - <% - } - if (employee != null) { - %> - <p> - <s:url action="addEmploymentContractInput" var="addEmploymentContract"> - <s:param name="personId"><%= person.getPersonId() %></s:param> - <s:param name="employeeId"><%= employee.getWikittyId() %></s:param> - </s:url> - <a href="${addEmploymentContract}"><s:text name="chorem.bonzoms.employmentContract.add" /></a> - </p> - <% } %> - </body> -</html> Deleted: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmployee.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmployee.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmployee.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,51 +0,0 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@page import="org.chorem.bonzoms.action.EmployeeAction" %> -<%@page import="org.chorem.entities.Employee" %> -<%@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> - <s:actionerror /> - <% Employee employee = EmployeeAction.getAction().getEmployee(); %> - <h3><s:text name="chorem.bonzoms.employee" /></h3> - <p> - <s:url action="modifyEmployee" var="modifyEmployee"> - <s:param name="personId"><%= employee.getPerson() %></s:param> - <% - if (employee != null) { - %> - <s:param name="employeeId"><%= employee.getWikittyId() %></s:param> - <% } %> - </s:url> - <form action="${modifyEmployee}" method="post"> - <label for="diploma"><s:text name="chorem.bonzoms.employee.diploma" /></label>: - <% if (employee != null) { %> - <input type="text" name="diploma" id="diploma" value="<%= employee.getDiploma() %>" /> - <% } else { %> - <input type="text" name="diploma" id="diploma" /> - <% } %> - <br /> - <label for="paidLeave"><s:text name="chorem.bonzoms.employee.paidLeave" /></label>: - <% if (employee != null) { %> - <input type="text" name="paidLeave" id="paidLeave" value="<%= employee.getPaidLeave() %>" /> - <% } else { %> - <input type="text" name="paidLeave" id="paidLeave" /> - <% } %> - <br /> - <label for="rtt"><s:text name="chorem.bonzoms.employee.rtt" /></label>: - <% if (employee != null) { %> - <input type="text" name="rtt" id="rtt" value="<%= employee.getRtt() %>" /> - <% } else { %> - <input type="text" name="rtt" id="rtt" /> - <% } %> - <br /> - <s:submit key="chorem.misc.modify" name="modify" /> - </form> - </p> - </body> -</html> Deleted: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,54 +0,0 @@ -<%@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 /> - <% - EmploymentContractFull employmentContractFull = EmploymentContractAction.getAction().getEmploymentContract(); - EmploymentContract employmentContract; - - 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> - <% if (employmentContractFull.getEmployee().getCompany() != null) { %> - <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 /> - <s:submit key="chorem.misc.modify" name="modify" /> - </p> - </form> - </p> - </body> -</html> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/persons.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/persons.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/persons.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -2,7 +2,6 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@page import="java.util.List" %> <%@page import="org.chorem.entities.Person" %> -<%@page import="org.chorem.bonzoms.action.PersonAction" %> <%@taglib prefix="s" uri="/struts-tags" %> <%@taglib prefix="sj" uri="/struts-jquery-tags"%> <%@taglib prefix="sjg" uri="/struts-jquery-grid-tags"%> @@ -15,53 +14,32 @@ <body> <h2><s:text name="chorem.bonzoms.persons" /></h2> - <s:url id="personDetails" namespace="/bonzoms" action="personDetails"/> - - <script type="text/javascript"> - function formatPersonNameLink(cellvalue, options, rowObject) { - return "<a href='<s:property value="personDetails"/>?personId="+rowObject.id+"'>" + cellvalue + "</a>"; - } - </script> - - - - <s:url id="remoteurlFulltextSearch" namespace="/" action="EntitySearchJson" escapeAmp="false"> + <s:url id="listPersonUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> <s:param name="wikittyExtension">Person</s:param> </s:url> - <s:url id="remoteurl" namespace="/" action="EntitySearchJson" escapeAmp="false"> - <s:param name="fulltextSearch"><%=StringUtils.defaultString(request.getParameter("fulltextSearch"))%></s:param> + <s:url id="editPersonUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> <s:param name="wikittyExtension">Person</s:param> </s:url> - <script type="text/javascript"> - var timeoutHnd; - function doSearch() { - if(timeoutHnd) { - clearTimeout(timeoutHnd) - } - timeoutHnd = setTimeout(gridReload, 500) - } + <s:url id="listContactDetailsUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> + <s:param name="wikittyExtension">ContactDetails</s:param> + </s:url> - function gridReload() { - var filter = jQuery("#fulltextSearch").val(); - var gridUrl = "<s:property value="remoteurlFulltextSearch" escapeHtml="false"/>&fulltextSearch="+filter; - jQuery("#gridtable").jqGrid('setGridParam',{url:gridUrl,page:1}).trigger("reloadGrid"); - } - </script> + <s:url id="editContactDetailsUrl" namespace="/ajax" action="EntitySearchJson" escapeAmp="false"> + <s:param name="wikittyExtension">ContactDetails</s:param> + <s:param name="wikittyLinkFieldForRowId">ContactDetails.target</s:param> + </s:url> <s:form> - <s:textfield id="fulltextSearch" name="fulltextSearch" onkeydown="doSearch()"></s:textfield> - <s:submit></s:submit> + <s:textfield id="fulltextSearch" name="fulltextSearch" + onkeydown="doSearch('#gridtable', '#fulltextSearch', '%{listPersonUrl}')"></s:textfield> </s:form> - <s:url id="editurl" namespace="/" action="EntitySearchJson" escapeAmp="false"> - </s:url> - <sjg:grid id="gridtable" dataType="json" - href="%{remoteurl}" + href="%{listPersonUrl}" gridModel="gridModel" rowList="10,20,50,100" rowNum="20" @@ -72,9 +50,9 @@ pager="true" viewrecords="true" - multiselect="true" + multiselect="false" - editurl="%{editurl}" + editurl="%{editPersonUrl}" editinline="false" navigator="true" @@ -90,8 +68,52 @@ > <sjg:gridColumn name="id" hidden="true" key="true" title="id"/> - <sjg:gridColumn name="Person.lastName" index="Person.lastName" title="Nom" editable="true" formatter="formatPersonNameLink"/> + <sjg:gridColumn name="Person.lastName" index="Person.lastName" title="Nom" editable="true"/> <sjg:gridColumn name="Person.firstName" index="Person.firstName" title="Prénom" editable="true"/> + <sjg:gridColumn name="Person.diploma" index="Person.diploma" title="Diplôme" editable="true"/> + + <sjg:grid + id="gridCompanyContact" + dataType="json" + href="%{listContactDetailsUrl}" + gridModel="gridModel" + rowList="10,20,50,100" + rowNum="20" + rownumbers="true" + autowidth="true" + sortname="ContactDetails.type" + sortorder="asc" + pager="true" + viewrecords="true" + + multiselect="false" + + editurl="%{editContactDetailsUrl}" + editinline="false" + + navigator="true" + navigatorAdd="true" + navigatorEdit="true" + navigatorDelete="true" + navigatorView="true" + navigatorSearch="true" + navigatorAddOptions="{height:280,reloadAfterSubmit:true}" + navigatorEditOptions="{height:280,reloadAfterSubmit:true}" + navigatorDeleteOptions="{height:280,reloadAfterSubmit:true}" + navigatorSearchOptions="{multipleGroup:true,showQuery:true,multipleSearch:true,sopt:['eq','ne','cn','nc','bw','bn','ew','en','lt','le','gt','ge','nu','nn','in','ni']}" + > + + <sjg:gridColumn name="id" hidden="true" key="true" title="id"/> + <sjg:gridColumn name="ContactDetails.type" index="ContactDetails.type" + edittype="select" + editoptions="{value:'Phone:Phone;Address:Address;Email:Email;Jabber:Jabber;Other:Other'}" + title="Type" editable="true" sortable="true"/> + <sjg:gridColumn name="ContactDetails.name" index="ContactDetails.name" title="Name" editable="true" sortable="true"/> + <sjg:gridColumn name="ContactDetails.value" index="ContactDetails.value" + edittype="textarea" + title="Value" editable="true" sortable="true"/> + </sjg:grid> + </sjg:grid> </body> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/common/inc/footer.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/common/inc/footer.jsp 2011-11-22 17:55:13 UTC (rev 131) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/common/inc/footer.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -1,7 +1,14 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@taglib prefix="s" uri="/struts-tags" %> -<div id="footer" - xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" - xmlns:jsp="http://java.sun.com/JSP/Page"> - <a href="http://www.codelutin.com">Code Lutin</a> +<div id="footer"> + <a shape="rect" href="http://www.chorem.org/projects/show/chorem">Chorem</a> + <a shape="rect" href="http://www.gnu.org/licenses/agpl.html">Licence AGPL</a> - + <span title="Copyright">©2009-2011</span> + <a shape="rect" href="http://www.codelutin.com">Code Lutin</a> - + <a shape="rect" href="http://www.chorem.org/projects/chorem/issues">Rapport de bug</a> - + <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/chorem-users">Support utilisateur</a> </div> + +<s:url var="choremjs" value="/js/chorem.js" /> +<script type="text/javascript" src="${choremjs}"></script> Added: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/common/selectWikittyComponent.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/common/selectWikittyComponent.jsp (rev 0) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/common/selectWikittyComponent.jsp 2011-11-22 17:55:19 UTC (rev 132) @@ -0,0 +1,7 @@ +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@taglib prefix="s" uri="/struts-tags" %> +<select> + <s:iterator value="wikitties" var="w"> + <option value='<s:property value="id"/>'><s:property value="toString(wikittyExtension)"/></option> + </s:iterator> +</select> \ No newline at end of file Added: trunk/chorem-web/src/main/webapp/js/chorem.js =================================================================== --- trunk/chorem-web/src/main/webapp/js/chorem.js (rev 0) +++ trunk/chorem-web/src/main/webapp/js/chorem.js 2011-11-22 17:55:19 UTC (rev 132) @@ -0,0 +1,18 @@ +/** + * Permet de faire des recherches fulltext qui s'applique sur une grille + * @param gridId l'identifiant de la grille + * @param inputId l'identifiant du champs input + * @param url l'url initiale de la grille sur lequel on ajoute la contrainte de recherche + */ +var timeoutHnd; + +function doSearch(gridId, inputId, url) { + if(timeoutHnd) { + clearTimeout(timeoutHnd) + } + timeoutHnd = setTimeout(function() { + var filter = jQuery(inputId).val(); + var gridUrl = url + "&fulltextSearch=" + filter; + jQuery(gridId).jqGrid('setGridParam',{url:gridUrl,page:1}).trigger("reloadGrid"); + }, 500); +}