Author: bleny Date: 2014-03-03 18:16:55 +0100 (Mon, 03 Mar 2014) New Revision: 1709 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1709 Log: refs #4560 add CRUD operations for companies Added: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/CompaniesService.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/CompaniesAction.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/EditCompanyAction.java trunk/wao-web/src/main/webapp/WEB-INF/content/administration/companies.jsp trunk/wao-web/src/main/webapp/WEB-INF/content/administration/edit-company.jsp Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditNewsAction.java trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/news.jsp trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp Added: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/CompaniesService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/CompaniesService.java (rev 0) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/CompaniesService.java 2014-03-03 17:16:55 UTC (rev 1709) @@ -0,0 +1,55 @@ +package fr.ifremer.wao.services.service; + +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.CompanyImpl; +import fr.ifremer.wao.entity.CompanyTopiaDao; + +import java.util.List; + +public class CompaniesService extends WaoServiceSupport { + + public List<Company> getCompanies() { + + CompanyTopiaDao dao = getPersistenceContext().getCompanyDao(); + + List<Company> companies = dao.newQueryBuilder().setOrderByArguments(Company.PROPERTY_ACTIVE + " desc", Company.PROPERTY_NAME).findAll(); + + return companies; + + } + + public Company getCompany(String companyId) { + + CompanyTopiaDao dao = getPersistenceContext().getCompanyDao(); + + Company company = dao.findByTopiaId(companyId); + + return company; + + } + + public Company newCompany() { + + CompanyImpl newCompany = new CompanyImpl(); + + newCompany.setActive(true); + + return newCompany; + + } + + public void save(Company company) { + + CompanyTopiaDao dao = getPersistenceContext().getCompanyDao(); + + if (company.isPersisted()) { + dao.update(company); + } else { + dao.create(company); + } + + commit(); + + } + +} Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/CompaniesAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/CompaniesAction.java (rev 0) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/CompaniesAction.java 2014-03-03 17:16:55 UTC (rev 1709) @@ -0,0 +1,32 @@ +package fr.ifremer.wao.web.action.administration; + +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.services.service.CompaniesService; +import fr.ifremer.wao.web.WaoJspActionSupport; + +import java.util.List; + +public class CompaniesAction extends WaoJspActionSupport { + + protected CompaniesService service; + + protected List<Company> companies; + + public void setService(CompaniesService service) { + this.service = service; + } + + @Override + public String execute() { + + companies = service.getCompanies(); + + return SUCCESS; + + } + + public List<Company> getCompanies() { + return companies; + } + +} Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/EditCompanyAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/EditCompanyAction.java (rev 0) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/EditCompanyAction.java 2014-03-03 17:16:55 UTC (rev 1709) @@ -0,0 +1,61 @@ +package fr.ifremer.wao.web.action.administration; + +import com.opensymphony.xwork2.Preparable; +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.services.service.CompaniesService; +import fr.ifremer.wao.web.WaoJspActionSupport; +import org.apache.commons.lang3.StringUtils; +import org.apache.struts2.convention.annotation.Result; +import org.apache.struts2.convention.annotation.Results; + +@Results({ + @Result(name="success", type="redirectAction", params = { "actionName", "companies" }) +}) +public class EditCompanyAction extends WaoJspActionSupport implements Preparable { + + protected CompaniesService service; + + protected String companyId; + + protected Company company; + + public void setCompanyId(String companyId) { + this.companyId = companyId; + } + + public void setCompany(Company company) { + this.company = company; + } + + public void setService(CompaniesService service) { + this.service = service; + } + + @Override + public void prepare() { + if (StringUtils.isEmpty(companyId)) { + company = service.newCompany(); + } else { + company = service.getCompany(companyId); + } + } + + @Override + public String execute() { + + service.save(company); + + addActionMessage("Société enregistrée"); + + return SUCCESS; + + } + + public String getCompanyId() { + return companyId; + } + + public Company getCompany() { + return company; + } +} Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditNewsAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditNewsAction.java 2014-02-28 17:37:02 UTC (rev 1708) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditNewsAction.java 2014-03-03 17:16:55 UTC (rev 1709) @@ -45,6 +45,7 @@ service.save(news); + // TODO brendan 03/03/14 i18n addActionMessage("Actualité enregistrée"); return SUCCESS; Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties =================================================================== --- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-02-28 17:37:02 UTC (rev 1708) +++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-03-03 17:16:55 UTC (rev 1709) @@ -59,6 +59,7 @@ wao.ui.action.unvalidateContact=Unvalidate contact wao.ui.action.viewBoatsForRow=View the boats for this sample row wao.ui.action.viewIndicatorsHistory=View indicators historic +wao.ui.actions=Actions wao.ui.boatList=List of %s boats wao.ui.boatinfo.title=Infos about %s wao.ui.boats.associatedLine=Sample row(s) associated with this boat @@ -290,6 +291,7 @@ wao.ui.page.SamplingPlan.title=Sampling plan wao.ui.page.Synthesis.title=Synthesis wao.ui.page.UserProfileForm.title=Profile management +wao.ui.page.companies.title=Companies wao.ui.publishedByProgram=Pusblished by program wao.ui.publishedByYourCompany=Published by company wao.ui.sampleRow.creation=Creation of a sample row Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties =================================================================== --- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-02-28 17:37:02 UTC (rev 1708) +++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-03-03 17:16:55 UTC (rev 1709) @@ -59,6 +59,7 @@ wao.ui.action.unvalidateContact=Invalider le contact wao.ui.action.viewBoatsForRow=Voir les navires présentis pour cette ligne wao.ui.action.viewIndicatorsHistory=Voir l'historique des modifications des indicateurs +wao.ui.actions=Actions wao.ui.boatList=Liste de %s navires wao.ui.boatinfo.title=Informations sur %s wao.ui.boats.associatedLine=Ligne(s) du plan associée(s) à ce navire @@ -290,6 +291,7 @@ wao.ui.page.SamplingPlan.title=Plan d'échantillonnage wao.ui.page.Synthesis.title=Synthèse wao.ui.page.UserProfileForm.title=Gestion du profil +wao.ui.page.companies.title=Sociétés wao.ui.publishedByProgram=Publiée par le programme wao.ui.publishedByYourCompany=Publiée par la société wao.ui.sampleRow.creation=Création d'une ligne du plan d'échantillonnage Added: trunk/wao-web/src/main/webapp/WEB-INF/content/administration/companies.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/administration/companies.jsp (rev 0) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/administration/companies.jsp 2014-03-03 17:16:55 UTC (rev 1709) @@ -0,0 +1,68 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@taglib uri="/struts-tags" prefix="s" %> + +<html> + + <head> + + </head> + + <h1><s:text name="wao.ui.page.companies.title" /></h1> + + <table class="table table-bordered"> + <tr> + <th> + <s:text name="wao.ui.field.Company.name" /> + </th> + <th> + <s:text name="wao.ui.field.Company.active" /> + </th> + <th> + <s:text name="wao.ui.actions" /> + </th> + </tr> + <s:iterator value="companies"> + <tr> + <td> + <s:if test="active"> + <s:property value="name" /> + </s:if> + <s:else> + <del> + <s:property value="name" /> + </del> + </s:else> + </td> + <td> + <s:if test="active"> + <s:text name="wao.ui.misc.yes" /> + </s:if> + <s:else> + <s:text name="wao.ui.misc.no" /> + </s:else> + </td> + <td> + <s:url action="edit-company!input" id="editCompanyUrl"> + <s:param name="companyId" value="topiaId" /> + </s:url> + <s:a href="%{editCompanyUrl}"> + <i class="icon-edit"></i> <s:text name="wao.ui.action.edit" /> + </s:a> + + <s:url action="delete-company" id="deleteCompanyUrl"> + <s:param name="companyId" value="topiaId" /> + </s:url> + <s:a href="%{deleteCompanyUrl}"> + <i class="icon-trash"></i> <s:text name="wao.ui.action.delete" /> + </s:a> + </td> + </tr> + </s:iterator> + </table> + + <s:url action="edit-company!input" id="createCompanyUrl" /> + <s:a href="%{createCompanyUrl}"> + <i class="icon-plus"></i> <s:text name="wao.ui.action.createCompany" /> + </s:a> + +</html> Added: trunk/wao-web/src/main/webapp/WEB-INF/content/administration/edit-company.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/administration/edit-company.jsp (rev 0) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/administration/edit-company.jsp 2014-03-03 17:16:55 UTC (rev 1709) @@ -0,0 +1,35 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@taglib uri="/struts-tags" prefix="s" %> + +<html> + <head> + </head> + + <s:form> + + <s:hidden name="companyId" value="%{companyId}" /> + + <s:textfield name="company.name" label="%{getText('wao.ui.field.Company.name')}" requiredLabel="true" cssClass="input-xxlarge" /> + <s:textfield name="company.address1" label="%{getText('wao.ui.field.Company.address1')}" cssClass="input-xxlarge" /> + <s:textfield name="company.address2" label="%{getText('wao.ui.field.Company.address2')}" cssClass="input-xxlarge" /> + <s:textfield name="company.postalCode" label="%{getText('wao.ui.field.Company.postalCode')}" cssClass="input-xxlarge" /> + <s:textfield name="company.city" label="%{getText('wao.ui.field.Company.city')}" cssClass="input-xxlarge" /> + <s:textfield name="company.phoneNumber" label="%{getText('wao.ui.field.Company.phoneNumber')}" size="14" /> + <s:textfield type="email" name="company.email" label="%{getText('wao.ui.field.Company.email')}" cssClass="input-xxlarge" /> + + <s:checkbox name="company.active" label="%{getText('wao.ui.field.Company.active')}" /> + + <div class="form-actions"> + <s:url action="companies" id="companiesUrl" /> + <s:a href="%{companiesUrl}" cssClass="btn"> + <i class="icon-chevron-left"></i> <s:text name="wao.ui.action.cancel" /> + </s:a> + + <s:submit type="button" cssClass="btn"> + <i class="icon-ok"></i> <s:text name="wao.ui.action.save" /> + </s:submit> + </div> + + </s:form> + +</html> Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/news.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/news.jsp 2014-02-28 17:37:02 UTC (rev 1708) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/news.jsp 2014-03-03 17:16:55 UTC (rev 1709) @@ -8,7 +8,8 @@ </head> <s:url action="edit-news!input" id="createNewsUrl" /> - <s:a href="%{createNewsUrl}" title="Ajouter une actualité"> + <s:a href="%{createNewsUrl}"> + <%-- TODO i18n --> <i class="icon-plus"></i> Ajouter une actualité </s:a> Modified: trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-02-28 17:37:02 UTC (rev 1708) +++ trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-03-03 17:16:55 UTC (rev 1709) @@ -70,6 +70,12 @@ <i class="icon-upload"></i> <s:text name="wao.ui.page.ReferentialManagement.title" /> </s:a> </li> + <li> + <s:url namespace="/administration" action="companies" id="companiesUrl" /> + <s:a href="%{companiesUrl}"> + <i class="icon-user"></i> <s:text name="wao.ui.page.companies.title" /> + </s:a> + </li> </ul> </li> <li class="dropdown">