Author: JirkaM Date: 2010-02-23 20:36:57 +0100 (Tue, 23 Feb 2010) New Revision: 1835 Added: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyEditBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyListBean.java trunk/server/webServer2/WebContent/images/icons/elvys-type.png Removed: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/CompaniesBean.java Modified: trunk/server/elvysCommons/src/elvys/server/bl/companyRel/CompanyBL.java trunk/server/elvysCommons/src/elvys/server/bl/companyRel/CompanyBLImpl.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyPermittedTypesBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/messages_cs.properties trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java trunk/server/webServer2/WebContent/WEB-INF/faces-beans.xml trunk/server/webServer2/WebContent/secured/companyrel/editCompanyForm.xhtml trunk/server/webServer2/WebContent/secured/companyrel/listOfCompanies.xhtml Log: * new structure of companies ( edit, list, delete ) modified src/elvys/server/bl/companyRel/CompanyBL.java modified src/elvys/server/bl/companyRel/CompanyBLImpl.java deleted JavaSource/cz/elvys/webServer/beans/CompaniesBean.java added JavaSource/cz/elvys/webServer/beans/companyrel/CompanyEditBean.java added JavaSource/cz/elvys/webServer/beans/companyrel/CompanyListBean.java modified JavaSource/cz/elvys/webServer/beans/companyrel/CompanyPermittedTypesBean.java modified JavaSource/cz/elvys/webServer/messages/labels_cs.properties modified JavaSource/cz/elvys/webServer/messages/messages_cs.properties modified JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java added WebContent/images/icons/elvys-type.png modified WebContent/secured/companyrel/editCompanyForm.xhtml modified WebContent/secured/companyrel/listOfCompanies.xhtml modified WebContent/WEB-INF/faces-beans.xml Modified: trunk/server/elvysCommons/src/elvys/server/bl/companyRel/CompanyBL.java =================================================================== --- trunk/server/elvysCommons/src/elvys/server/bl/companyRel/CompanyBL.java 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/elvysCommons/src/elvys/server/bl/companyRel/CompanyBL.java 2010-02-23 19:36:57 UTC (rev 1835) @@ -5,6 +5,8 @@ import org.hibernate.Session; import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.HIBgen.User; +import cz.elvys.webServer.toSpring.exception.ExecuteException; public interface CompanyBL { @@ -34,4 +36,26 @@ */ public Company getCompanyByIdMakeSession(Integer companyId); public Company getCompanyById(Integer companyId,Session sess); + + /** + * Method for loading user by login. There is created session. + * @param login Username of user + * @return User Object of User + * @throws ExecuteException + */ + public Company getCompanyByNameMakeSession(String name) throws ExecuteException; + public Company getCompanyByName(String name, Session sess) throws ExecuteException; + + /** + * Save company to database. + * @param company + */ + public void saveCompany(Company company); + + /** + * Delete company from db. + * @param company + */ + public void deleteCompany(Company company); + } Modified: trunk/server/elvysCommons/src/elvys/server/bl/companyRel/CompanyBLImpl.java =================================================================== --- trunk/server/elvysCommons/src/elvys/server/bl/companyRel/CompanyBLImpl.java 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/elvysCommons/src/elvys/server/bl/companyRel/CompanyBLImpl.java 2010-02-23 19:36:57 UTC (rev 1835) @@ -1,20 +1,26 @@ package elvys.server.bl.companyRel; +import java.io.File; +import java.io.IOException; import java.util.List; import org.apache.log4j.Logger; import org.bouncycastle.asn1.isismtt.x509.Restriction; import org.hibernate.Criteria; +import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.Restrictions; +import cz.elvys.commons.def.PropertyManager; import cz.elvys.commons.utils.CommonUtils; import cz.elvys.commons.utils.HibUtils; +import cz.elvys.webServer.HIBgen.CompSetting; import cz.elvys.webServer.HIBgen.Company; import cz.elvys.webServer.HIBgen.User; import cz.elvys.webServer.db.InitSessionFactory; +import cz.elvys.webServer.toSpring.exception.ExecuteException; public class CompanyBLImpl implements CompanyBL { //private fields @@ -34,15 +40,19 @@ List<Company> companies = null; try { - Criteria crit = sess.createCriteria(Company.class); + String queryString = "from Company company " + + "where company.disabled = 0 "; if (type == CompanyType.NOT_SYSTEM_ONLY ) { - crit.add(Restrictions.eq("system", Boolean.FALSE)); + queryString += " AND system = 0 "; } else if (type == CompanyType.SYSTEM_ONLY ) { - crit.add(Restrictions.eq("system", Boolean.TRUE)); + queryString += " AND system = 1 "; } else { // ALL - no Restriction needed } - companies = crit.list(); + + Query query = sess.createQuery(queryString); + + companies = query.list(); tx.commit(); } catch (Exception e) { tx.rollback(); @@ -87,4 +97,103 @@ return null; } + + @Override + public Company getCompanyByNameMakeSession(String name) throws ExecuteException { + Session session = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = HibUtils.startTx(session); + Company company = null; + try { + company = getCompanyByName(name,session); + tx.commit(); + } catch (Exception e) { + throw new Error("Company couldn't be obtained from DB",e); + } + return company; + } + + + @Override + public Company getCompanyByName(String name, Session sess) throws ExecuteException { + Query query = sess.createQuery("from Company company " + + "where company.name=:compname"); + query.setString("compname", name); + List<Company> companies = query.list(); + if(companies.size() == 1){ + return companies.get(0); + } + return null; + } + + @Override + public void saveCompany(Company company) { + Session sess = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = HibUtils.startTx(sess); + + boolean updating = (company.getId()==null?false:true); + + try { + + if(updating == false){ + // create company setting and assign company id to company + CompSetting cs = new CompSetting(); + sess.saveOrUpdate(cs); + company.setId(cs.getId()); + company.setCompSetting(cs); + } + + sess.saveOrUpdate(company); + + // crete new folders + if (updating == false) { + int id = company.getId(); + // screenshots directory + File scrPath = new File(PropertyManager.getScreenshotsPath()+File.separator+id); + if(!scrPath.mkdir()){ + throw new IOException("Cannot create directory: "+scrPath.getAbsolutePath()); + } + // documents directory + File docPath = new File(PropertyManager.getFileFolderPath()+File.separator+id); + if(!docPath.mkdir()) { + throw new IOException("Cannot create directory: "+docPath.getAbsolutePath()); + } + } + tx.commit(); + } catch (Exception e) { + tx.rollback(); + throw new Error("Unable to create/update company.", e); + } + } + + @Override + public void deleteCompany(Company company) { + Session sess = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = HibUtils.startTx(sess); + try { + company.setDisabled(true); + sess.saveOrUpdate(company); + String updateElvys = "update Elvys set disabled = 1, active = 0 " + + "where company = :companyId"; + Query queryElvysUpdate = sess.createQuery(updateElvys); + queryElvysUpdate.setInteger("companyId",company.getId()); + queryElvysUpdate.executeUpdate(); + + String updateLayout = "update Layout set disabled = 1 " + + "where company = :companyId"; + Query queryLayoutUpdate = sess.createQuery(updateLayout); + queryLayoutUpdate.setInteger("companyId",company.getId()); + queryLayoutUpdate.executeUpdate(); + + String updateUser = "update User set disabled = 1 " + + "where company = :companyId"; + Query queryUserUpdate = sess.createQuery(updateUser); + queryUserUpdate.setInteger("companyId",company.getId()); + queryUserUpdate.executeUpdate(); + tx.commit(); + } catch (Exception e) { + tx.rollback(); + throw new Error("Unable to delete company.", e); + } + } + } Deleted: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/CompaniesBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/CompaniesBean.java 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/CompaniesBean.java 2010-02-23 19:36:57 UTC (rev 1835) @@ -1,230 +0,0 @@ -package cz.elvys.webServer.beans; - -import java.io.File; -import java.io.IOException; -import java.io.Serializable; -import java.util.List; - -import javax.faces.application.FacesMessage; -import javax.faces.component.UIComponent; -import javax.faces.component.UIInput; -import javax.faces.context.FacesContext; -import javax.faces.event.ActionEvent; - -import org.hibernate.HibernateException; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.Transaction; - -import cz.elvys.commons.def.PropertyManager; -import cz.elvys.webServer.HIBgen.Company; -import cz.elvys.webServer.db.InitSessionFactory; -import cz.elvys.webServer.utils.faces.MessageUtils; - - - - - -/** - * - * TODO co tu dela hibernate????? zrefaktorovat a hned!!! - * TODO co tu dela hibernate????? zrefaktorovat a hned!!! - * TODO co tu dela hibernate????? zrefaktorovat a hned!!! - * TODO co tu dela hibernate????? zrefaktorovat a hned!!! - * TODO co tu dela hibernate????? zrefaktorovat a hned!!! - * TODO co tu dela hibernate????? zrefaktorovat a hned!!! - * TODO co tu dela hibernate????? zrefaktorovat a hned!!! - * @author David - * - */ -public class CompaniesBean implements Serializable { - private List<Company> companies; - private Company selectedCompany; - private boolean updating; - - - public List<Company> getCompanies() { - return companies; - } - - public void setCompanies(List<Company> companies) { - this.companies = companies; - } - - public Company getSelectedCompany() { - return selectedCompany; - } - - public void setSelectedCompany(Company selectedCompany) { - this.selectedCompany = selectedCompany; - } - - public boolean isUpdating() { - return updating; - } - - public void setUpdating(boolean updating) { - this.updating = updating; - } - - /** - * @return - */ - public String prepareListOfCompanies() { - companies = loadAllCompanies(); - return "listOfCompanies"; - } - - /** - * @return - */ - public String prepareCreateCompanyForm() { - selectedCompany = new Company(); - selectedCompany.setSystem(false); - return "editCompanyForm"; - } - - /** - * @return - */ - public String prepareUpdateCompanyForm() { - // selectedCompany selected from UC listOfCompanies - return "editCompanyForm"; - } - - - - public void saveOrUpdateCompany(ActionEvent aev) { - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - try { - sess.saveOrUpdate(selectedCompany); - - // crete new folders - if (this.updating == false) { - int id = selectedCompany.getId(); - // screenshots directory - File scrPath = new File(PropertyManager.getScreenshotsPath()+File.separator+id); - if(!scrPath.mkdir()){ - throw new IOException("Cannot create directory: "+scrPath.getAbsolutePath()); - } - // documents direcotory - File docPath = new File(PropertyManager.getFileFolderPath()+File.separator+id); - if(!docPath.mkdir()) { - throw new IOException("Cannot create directory: "+docPath.getAbsolutePath()); - } - } - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to create/update company.", e); - } - - - } - - - public void deleteCompanyAndReloadList(ActionEvent aev) { - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - try { - selectedCompany.setDisabled(true); - sess.saveOrUpdate(selectedCompany); - String updateElvys = "update Elvys set disabled = 1, active = 0 " + - "where company = :companyId"; - Query queryElvysUpdate = sess.createQuery(updateElvys); - queryElvysUpdate.setInteger("companyId",selectedCompany.getId()); - queryElvysUpdate.executeUpdate(); - - String updateLayout = "update Layout set disabled = 1 " + - "where company = :companyId"; - Query queryLayoutUpdate = sess.createQuery(updateLayout); - queryLayoutUpdate.setInteger("companyId",selectedCompany.getId()); - queryLayoutUpdate.executeUpdate(); - - String updateUser = "update User set disabled = 1 " + - "where company = :companyId"; - Query queryUserUpdate = sess.createQuery(updateUser); - queryUserUpdate.setInteger("companyId",selectedCompany.getId()); - queryUserUpdate.executeUpdate(); - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to delete company.", e); - } - companies.remove(selectedCompany); - } - - - private List<Company> loadAllCompanies() { - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - List<Company> companies = null; - try { - Query query = sess.createQuery("from Company " - +"where disabled = 0"); - companies = query.list(); - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to load all companies.", e); - } - return companies; - } - - - - public void validateCompanyName(FacesContext context, UIComponent comp, Object value) { - String compName = (String) value; - // when updating, company ID exists, when creating, create imaginary company ID - Integer compId = updating == true ? selectedCompany.getId() : -1; - - // get conflict company from db - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - List<Company> companies = null; - try { - Query query = sess.createQuery("from Company " + - "where id!=:id and name=:name"); - query.setInteger("id", compId); - query.setString("name", compName); - companies = query.list(); - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to load all companies.", e); - } - - - - - if (companies.size() > 0) { - ((UIInput)comp).setValid(false); - FacesMessage message = MessageUtils.getMessage( - "company.form.duplicitename", new String[]{compName}, FacesMessage.SEVERITY_ERROR); - FacesContext fc = FacesContext.getCurrentInstance(); - context.addMessage(comp.getClientId(context), message); - } - } - -} Added: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyEditBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyEditBean.java (rev 0) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyEditBean.java 2010-02-23 19:36:57 UTC (rev 1835) @@ -0,0 +1,115 @@ +package cz.elvys.webServer.beans.companyrel; + +import java.io.Serializable; + +import javax.faces.application.FacesMessage; +import javax.faces.context.FacesContext; +import org.apache.log4j.Logger; + +import cz.elvys.commons.utils.CommonUtils; +import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.toSpring.exception.ExecuteException; +import cz.elvys.webServer.utils.faces.BeanManager; +import cz.elvys.webServer.utils.faces.MessageUtils; +import elvys.server.bl.Fact; +import elvys.server.bl.companyRel.CompanyBL; +import elvys.server.bl.user.UserBL; + + +/** + * + * @author David + * + */ +public class CompanyEditBean implements Serializable { + private static final long serialVersionUID = -6054530191614602615L; + + private static final String CANNOT_GET_COMPANY_BY_NAME = "Cannot get company from db."; + + // static fields + private static Logger log; + + private Company selectedCompany; + private boolean updating; + private CompanyBL cbl; + + public CompanyEditBean(){ + log = Logger.getLogger(CompanyEditBean.class); + cbl = Fact.getCompanyBL(); + } + + public Company getSelectedCompany() { + return selectedCompany; + } + + public void setSelectedCompany(Company selectedCompany) { + this.selectedCompany = selectedCompany; + } + + public boolean isUpdating() { + return updating; + } + + public void setUpdating(boolean updating) { + this.updating = updating; + } + + /** + * @return + */ + public String prepareCreateCompanyForm() { + selectedCompany = new Company(); + selectedCompany.setSystem(false); + return "editCompanyForm"; + } + + /** + * @return + */ + public String prepareUpdateCompanyForm() { + // selectedCompany selected from UC listOfCompanies + return "editCompanyForm"; + } + + + public String saveOrUpdateCompany() { + String result = null; + Company comp = null; + try { + comp = cbl.getCompanyByNameMakeSession(selectedCompany.getName()); + } catch (ExecuteException e){ + String message = CommonUtils.prepareErrorMessage( + CANNOT_GET_COMPANY_BY_NAME); + log.error(message,e); + throw new RuntimeException(e); + } + + if( (selectedCompany.getId() == null && comp != null) || + (comp !=null && !comp.getId().equals(selectedCompany.getId()))){ + FacesMessage message = MessageUtils.getMessage( + "company.form.duplicitename", null, FacesMessage.SEVERITY_ERROR); + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage("FormModalContentForm:companyEditNameField", message); + result = "error"; + } + + + // check email address + UserBL userBL = Fact.getUserBL(); + if(!userBL.isCorrectEmail(selectedCompany.getEmail())){ + FacesMessage message = MessageUtils.getMessage( + "user.form.user.form.setCorrectEmail", null, FacesMessage.SEVERITY_ERROR); + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage("FormModalContentForm:companyEditEmailField", message); + result = "error"; + } + + if(result == null){ + cbl.saveCompany(selectedCompany); + CompanyListBean compList = BeanManager.getCompanyListBean(); + return compList.prepareListOfCompanies(); + } + return result; + } + +} Added: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyListBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyListBean.java (rev 0) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyListBean.java 2010-02-23 19:36:57 UTC (rev 1835) @@ -0,0 +1,134 @@ +package cz.elvys.webServer.beans.companyrel; + +import java.io.File; +import java.io.IOException; +import java.io.Serializable; +import java.util.List; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.component.UIInput; +import javax.faces.context.FacesContext; +import javax.faces.event.ActionEvent; + +import org.apache.log4j.Logger; +import org.hibernate.HibernateException; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.Transaction; + +import cz.elvys.commons.def.PropertyManager; +import cz.elvys.commons.utils.CommonUtils; +import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.HIBgen.User; +import cz.elvys.webServer.beans.categrel.CatDefEditBean; +import cz.elvys.webServer.db.InitSessionFactory; +import cz.elvys.webServer.utils.faces.MessageUtils; +import elvys.server.bl.Fact; +import elvys.server.bl.companyRel.CompanyBL; + +/** + * + * @author David + * + */ +public class CompanyListBean implements Serializable { + + private static final String CANNOT_PREPARE_LIST = "Cannot prepare list of companies."; + + private List<Company> companies; + private Company selectedCompany; + private CompanyBL cbl; + + // static fields + private static Logger log; + + // filter variables + private String filterValue; + + public CompanyListBean(){ + cbl = Fact.getCompanyBL(); + log = Logger.getLogger(CompanyListBean.class); + } + + + public List<Company> getCompanies() { + return companies; + } + + public void setCompanies(List<Company> companies) { + this.companies = companies; + } + + public Company getSelectedCompany() { + return selectedCompany; + } + + public void setSelectedCompany(Company selectedCompany) { + this.selectedCompany = selectedCompany; + } + + + /** + * @return + */ + public String prepareListOfCompanies() { + try { + companies = cbl.getListOfCompanies(null); + } catch (Exception e) { + String message = CommonUtils.prepareErrorMessage( + CANNOT_PREPARE_LIST); + log.error(message,e); + throw new RuntimeException(e); + } + return "listOfCompanies"; + } + + /** + * @return + */ + public String prepareCreateCompanyForm() { + selectedCompany = new Company(); + selectedCompany.setSystem(false); + return "editCompanyForm"; + } + + + public void deleteCompanyAndReloadList(ActionEvent aev) { + cbl.deleteCompany(selectedCompany); + prepareListOfCompanies(); + } + + /** + * Method for filtering list of user in table. + * + * @param current + * @return + */ + public boolean filterByValue(Object current) { + Company company = (Company) current; + if (filterValue == null || filterValue.length() == 0) { + return true; + } + + String filterValueLowerCase = filterValue.toLowerCase(); + + if (company.getName().toLowerCase().contains(filterValueLowerCase)) { return true; } + if (company.getHuman().toLowerCase().contains(filterValueLowerCase)) { return true; } + if (company.getTel().toLowerCase().contains(filterValueLowerCase)) { return true; } + if (company.getCity().toLowerCase().contains(filterValueLowerCase)) { return true; } + if (company.getAddress().toLowerCase().contains(filterValueLowerCase)) { return true; } + if (company.getZipcode().toLowerCase().contains(filterValueLowerCase)) { return true; } + + return false; + } + + public String getFilterValue() { + return filterValue; + } + + public void setFilterValue(String filterValue) { + this.filterValue = filterValue; + } + +} Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyPermittedTypesBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyPermittedTypesBean.java 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/companyrel/CompanyPermittedTypesBean.java 2010-02-23 19:36:57 UTC (rev 1835) @@ -12,7 +12,6 @@ import cz.elvys.commons.utils.CommonUtils; import cz.elvys.webServer.HIBgen.Company; import cz.elvys.webServer.HIBgen.ContentType; -import cz.elvys.webServer.beans.CompaniesBean; import cz.elvys.webServer.utils.faces.BeanManager; import elvys.server.bl.Factory; import elvys.server.bl.permTypesRel.PermittedSchedulingBL; @@ -130,7 +129,7 @@ // * @return // */ // public String navigateMeToListOfCompanies() { -// CompaniesBean b = BeanManager.getCompaniesBean(); +// CompanyListBean b = BeanManager.getCompaniesBean(); // b.prepareListOfCompanies(); // return "listOfCompanies"; // } Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties 2010-02-23 19:36:57 UTC (rev 1835) @@ -71,6 +71,8 @@ company.list.title=Seznam spole\u010Dnost\u00ED +company.list.body.operations=Akce +company.list.body.address=Adresa company.list.body.title=Seznam spole\u010Dnost\u00ED company.list.body.id=Id company.list.body.name=Jm\u00E9no @@ -84,20 +86,24 @@ company.list.body.permittedtypes.tooltip=Nastaven\u00ED povolen\u00FDch typ\u016F pl\u00E1nov\u00E1n\u00ED pro spole\u010Dnost company.list.body.delete=Maz\u00E1n\u00ED company.list.body.delete.tooltip=Smazat spole\u010Dnost -company.list.body.delete.tooltip.question=Opravdu smazat\: +company.list.body.delete.tooltip.question=Opravdu smazat company.list.body.delete.tooltip.yes=Ano company.list.body.delete.tooltip.no=Ne company.edit.title=Spole\u010Dnost company.edit.form.title.create=Nov\u00E1 spole\u010Dnost company.edit.form.title.modify=\u00DAprava spole\u010Dnosti -company.edit.form.name.label=Jm\u00E9no\: -company.edit.form.human.label=Kontaktn\u00ED osoba\: -company.edit.form.email.label=Email\: -company.edit.form.tel.label=Telefon\: +company.edit.form.name.label=Jm\u00E9no +company.edit.form.human.label=Kontaktn\u00ED osoba +company.edit.form.email.label=Email +company.edit.form.tel.label=Telefon company.edit.form.button.ok=OK company.edit.form.button.modify=Upravit company.edit.form.button.cancel=Zp\u011Bt na seznam +company.edit.form.address=Adresa +company.edit.form.city=M\u011Bsto +company.edit.form.zipCode=PS\u010C +company.edit.form.address.tooltip=Zadejte adresu ve tvaru ulice a \u010d\u00edslo popisn\u00e9 company.permtypes.title=Nastavov\u00E1n\u00ED povolen\u00FDch typ\u016F pl\u00E1nov\u00E1n\u00ED company.permtypes.form.title=Nastavov\u00E1n\u00ED povolen\u00FDch typ\u016F pl\u00E1nov\u00E1n\u00ED Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/messages_cs.properties =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/messages_cs.properties 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/messages_cs.properties 2010-02-23 19:36:57 UTC (rev 1835) @@ -1,4 +1,4 @@ -company.form.duplicitename=Jm\u00E9no spole\u010Dnosti "{0}" ji\u017E existuje. +company.form.duplicitename=Jm\u00E9no spole\u010Dnosti ji\u017E existuje. user.form.badPasswordAgain=\u0160patn\u011B zopakovan\u00E9 heslo. user.form.loginAlreadyExists=Uveden\u00E9 u\u017Eivatelsk\u00E9 jm\u00E9no se ji\u017E v datab\u00E1zi nach\u00E1z\u00ED, uve\u010Fte pros\u00EDm jin\u00E9 Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java 2010-02-23 19:36:57 UTC (rev 1835) @@ -23,13 +23,13 @@ import javax.servlet.http.HttpSession; import cz.elvys.commons.utils.CommonUtils; -import cz.elvys.webServer.beans.CompaniesBean; import cz.elvys.webServer.beans.ElvysesCompanyBean; import cz.elvys.webServer.beans.FilePlanningBean; import cz.elvys.webServer.beans.categrel.CatDefAssignStep1Bean; import cz.elvys.webServer.beans.categrel.CatDefAssignStep2Bean; import cz.elvys.webServer.beans.categrel.CatDefEditBean; import cz.elvys.webServer.beans.categrel.CatDefListBean; +import cz.elvys.webServer.beans.companyrel.CompanyListBean; import cz.elvys.webServer.beans.companyrel.CompanyPermittedTypesBean; import cz.elvys.webServer.beans.elvysrel.ElvysSettingBean; import cz.elvys.webServer.beans.layoutrel.LayoutEditBean; @@ -201,8 +201,8 @@ return b; } - public static CompaniesBean getCompaniesBean() { - CompaniesBean b = (CompaniesBean) getBeanByContextName(COMPANIES_BEAN, CompaniesBean.class); + public static CompanyListBean getCompanyListBean() { + CompanyListBean b = (CompanyListBean) getBeanByContextName(COMPANIES_BEAN, CompanyListBean.class); return b; } Modified: trunk/server/webServer2/WebContent/WEB-INF/faces-beans.xml =================================================================== --- trunk/server/webServer2/WebContent/WEB-INF/faces-beans.xml 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/webServer2/WebContent/WEB-INF/faces-beans.xml 2010-02-23 19:36:57 UTC (rev 1835) @@ -45,9 +45,14 @@ </managed-bean> <managed-bean> <managed-bean-name>companiesBean</managed-bean-name> - <managed-bean-class>cz.elvys.webServer.beans.CompaniesBean</managed-bean-class> + <managed-bean-class>cz.elvys.webServer.beans.companyrel.CompanyListBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> + <managed-bean> + <managed-bean-name>companyEditBean</managed-bean-name> + <managed-bean-class>cz.elvys.webServer.beans.companyrel.CompanyEditBean</managed-bean-class> + <managed-bean-scope>session</managed-bean-scope> + </managed-bean> <managed-bean> <managed-bean-name>companyPermittedTypesBean</managed-bean-name> <managed-bean-class>cz.elvys.webServer.beans.companyrel.CompanyPermittedTypesBean</managed-bean-class> Added: trunk/server/webServer2/WebContent/images/icons/elvys-type.png =================================================================== (Binary files differ) Property changes on: trunk/server/webServer2/WebContent/images/icons/elvys-type.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/server/webServer2/WebContent/secured/companyrel/editCompanyForm.xhtml =================================================================== --- trunk/server/webServer2/WebContent/secured/companyrel/editCompanyForm.xhtml 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/webServer2/WebContent/secured/companyrel/editCompanyForm.xhtml 2010-02-23 19:36:57 UTC (rev 1835) @@ -4,7 +4,8 @@ xmlns:f="http://java.sun.com/jsf/core"; xmlns:ui="http://java.sun.com/jsf/facelets"; xmlns:a4j="http://richfaces.org/a4j"; - xmlns:rich="http://richfaces.org/rich";> + xmlns:rich="http://richfaces.org/rich"; + xmlns:elvys="http://www.elvys.farm.particle.cz";> <ui:composition template="/template/elvys-template.xhtml"> @@ -14,54 +15,67 @@ <ui:define name="contentBody"> <rich:panel id="editCompanyFormPanel"> - <f:facet name="header">#{companiesBean.updating ? lbl['company.edit.form.title.modify'] : lbl['company.edit.form.title.create']}</f:facet> + <f:facet name="header">#{companyEditBean.updating ? lbl['company.edit.form.title.modify'] : lbl['company.edit.form.title.create']}</f:facet> <h:form id="FormModalContentForm"> - <h:panelGrid columns ="3"> - <h:outputLabel value="#{lbl['company.edit.form.name.label']}"></h:outputLabel> - <h:inputText id="CompanyName" - value="#{companiesBean.selectedCompany.name}" - required="true" validator="#{companiesBean.validateCompanyName}"/> - <h:message for="CompanyName" styleClass="error"/> + <h:panelGrid columns ="2"> + <elvys:label id="companyEditNameLabel" + label="#{lbl['company.edit.form.name.label']}"></elvys:label> + <elvys:inputText2 id="companyEditNameField" + value="#{companyEditBean.selectedCompany.name}" required="true" /> - <h:outputLabel value="#{lbl['company.edit.form.human.label']}"></h:outputLabel> - <h:inputText id="HumanName" - value="#{companiesBean.selectedCompany.human}" - required="true"/> - <h:message for="HumanName" styleClass="error"/> - - <h:outputLabel value="#{lbl['company.edit.form.email.label']}"></h:outputLabel> - <h:inputText id="Email" - value="#{companiesBean.selectedCompany.email}" - required="true"/> - <h:message for="Email" styleClass="error"/> - <h:outputLabel value="#{lbl['company.edit.form.tel.label']}"></h:outputLabel> - <h:inputText id="Tel" - value="#{companiesBean.selectedCompany.tel}" - required="true"/> - <h:message for="Tel" styleClass="error"/> + <elvys:label id="companyEditAddressLabel" + tooltip="#{lbl['company.edit.form.address.tooltip']}" + label="#{lbl['company.edit.form.address']}"></elvys:label> + <elvys:inputText2 id="addressField" + value="#{companyEditBean.selectedCompany.address}" required="true" /> + + <elvys:label id="companyEditCityLabel" + label="#{lbl['company.edit.form.city']}"></elvys:label> + <elvys:inputText2 id="cityField" + value="#{companyEditBean.selectedCompany.city}" required="true" /> + + <elvys:label id="companyEditZipCodeLabel" + label="#{lbl['company.edit.form.zipCode']}"></elvys:label> + <elvys:inputText2 id="zipCodeField" + value="#{companyEditBean.selectedCompany.zipcode}" required="true" /> + + <elvys:label id="companyEditHumanNameLabel" + label="#{lbl['company.edit.form.human.label']}"></elvys:label> + <elvys:inputText2 id="humanNameField" + value="#{companyEditBean.selectedCompany.human}" required="true" /> + + <elvys:label id="companyEditEmailLabel" + label="#{lbl['company.edit.form.email.label']}"></elvys:label> + <elvys:inputText2 id="companyEditEmailField" + value="#{companyEditBean.selectedCompany.email}" required="true" /> + + <elvys:label id="companyEditTelLabel" + label="#{lbl['company.edit.form.tel.label']}"></elvys:label> + <elvys:inputText2 id="companyEditTelField" + value="#{companyEditBean.selectedCompany.tel}" required="true" /> + </h:panelGrid> + <!-- OK BUTTON --> <h:commandButton value="#{lbl['company.edit.form.button.ok']}" - actionListener="#{companiesBean.saveOrUpdateCompany}" - action="#{companiesBean.prepareListOfCompanies}" - rendered="#{!companiesBean.updating}" + action="#{companyEditBean.saveOrUpdateCompany}" + rendered="#{!companyEditBean.updating}" /> <!-- MODIFY BUTTON --> <h:commandButton value="#{lbl['company.edit.form.button.modify']}" - actionListener="#{companiesBean.saveOrUpdateCompany}" - action="#{companiesBean.prepareListOfCompanies}" - rendered="#{companiesBean.updating}" + action="#{companyEditBean.saveOrUpdateCompany}" + rendered="#{companyEditBean.updating}" /> <!-- CANCEL BUTTON --> <h:commandButton value="#{lbl['company.edit.form.button.cancel']}" immediate="true" action="#{companiesBean.prepareListOfCompanies}" - rendered="#{companiesBean.updating}" + rendered="#{companyEditBean.updating}" /> </h:form> </rich:panel> Modified: trunk/server/webServer2/WebContent/secured/companyrel/listOfCompanies.xhtml =================================================================== --- trunk/server/webServer2/WebContent/secured/companyrel/listOfCompanies.xhtml 2010-02-23 19:17:18 UTC (rev 1834) +++ trunk/server/webServer2/WebContent/secured/companyrel/listOfCompanies.xhtml 2010-02-23 19:36:57 UTC (rev 1835) @@ -17,89 +17,115 @@ <rich:panel id="listOfCompaniesPanel"> <f:facet name="header">#{lbl['company.list.body.title']}</f:facet> <h:panelGrid id="listOfCompanies"> - <rich:dataTable value="#{companiesBean.companies}" var="company" rows="10"> - <h:column> - <f:facet name="header">#{lbl['company.list.body.id']}</f:facet> - <h:outputText value="#{company.id}"/> - </h:column> - <h:column> + <rich:dataTable + value="#{companiesBean.companies}" + var="company" rows="10" + sortMode="single" + reRender="listOfCompanies" + columnsWidth="180,200,130,130,150,100" + > + + + <f:facet name="header"> + <rich:columnGroup> + <rich:column colspan="6"> + <div class="controlPanel"> + <h:panelGroup> + <h:commandButton id="CreateNewCompany" + image="/images/icons/create.png" + action="#{companyEditBean.prepareCreateCompanyForm}"> + <f:setPropertyActionListener value="${false}" target="#{companyEditBean.updating}" /> + </h:commandButton> + <rich:toolTip for="CreateNewCompany"> + <h:outputText value="#{lbl['company.list.body.create.tooltip']}"/> + </rich:toolTip> + </h:panelGroup> + </div> + <div class="searchPanel"> + #{lbl['list.search']} : + <h:inputText value="#{companiesBean.filterValue}" id="input"> + <a4j:support event="onkeyup" reRender="listOfCompanies" + ignoreDupResponses="true" requestDelay="700" + oncomplete="setCaretToEnd(event);" /> + </h:inputText> + </div> + </rich:column> + </rich:columnGroup> + </f:facet> + + + <rich:column + filterMethod="#{companiesBean.filterByValue}" + sortBy="#{company.name}"> <f:facet name="header">#{lbl['company.list.body.name']}</f:facet> <h:outputText value="#{company.name}"/> - </h:column> - <h:column> + </rich:column> + <rich:column sortBy="#{company.address}" > + <f:facet name="header">#{lbl['company.list.body.address']}</f:facet> + <h:outputText value="#{company.address}, #{company.zipcode} #{company.city}"/> + </rich:column> + <rich:column sortBy="#{company.tel}"> <f:facet name="header">#{lbl['company.list.body.tel']}</f:facet> <h:outputText value="#{company.tel}"/> - </h:column> - <h:column> + </rich:column> + <rich:column sortBy="#{company.human}"> <f:facet name="header">#{lbl['company.list.body.human']}</f:facet> <h:outputText value="#{company.human}"/> - </h:column> - <h:column> + </rich:column> + <rich:column sortBy="#{company.email}"> <f:facet name="header">#{lbl['company.list.body.email']}</f:facet> <h:outputText value="#{company.email}"/> - </h:column> + </rich:column> <!-- EDIT/UPDATE --> <h:column> - <f:facet name="header">#{lbl['company.list.body.edit']}</f:facet> - <h:commandButton id="EditCompany" - image="/images/icons/edit.png" - rendered="#{!company.system}" - action="#{companiesBean.prepareUpdateCompanyForm}"> - <f:setPropertyActionListener value="#{company}" target="#{companiesBean.selectedCompany}" /> - <f:setPropertyActionListener value="${true}" target="#{companiesBean.updating}" /> - </h:commandButton> - <rich:toolTip for="EditCompany"> - <h:outputText value="#{lbl['company.list.body.edit.tooltip']}"/> - </rich:toolTip> - </h:column> - - <!-- PERMITTED TYPES --> - <h:column> - <f:facet name="header">#{lbl['company.list.body.permittedtypes']}</f:facet> - <h:commandButton id="SetPermittedTypesToCompany" - image="/images/icons/edit.png" - rendered="#{!company.system}" - action="#{companyPermittedTypesBean.prepareBean}"> - <f:setPropertyActionListener value="#{company}" target="#{companyPermittedTypesBean.selectedComp}" /> - </h:commandButton> - <rich:toolTip for="SetPermittedTypesToCompany"> - <h:outputText value="#{lbl['company.list.body.permittedtypes.tooltip']}"/> - </rich:toolTip> - </h:column> - - <!-- DELETE --> - <h:column> - <f:facet name="header">#{lbl['company.list.body.delete']}</f:facet> - <a4j:commandButton id="DeleteCompany" - rendered="#{user.company.id!=company.id and !company.system}" - reRender="DeleteCompanyModalContent" - oncomplete="Richfaces.showModalPanel('DeleteCompanyModal',{left:300, top:300})" - ajaxSingle="true" - immediate="true" - image="/images/icons/delete.gif"> - <f:setPropertyActionListener value="#{company}" target="#{companiesBean.selectedCompany}" /> - </a4j:commandButton> - <rich:toolTip for="DeleteCompany"> - <h:outputText value="#{lbl['company.list.body.delete.tooltip']}"/> - </rich:toolTip> - </h:column> - - <!-- CREATE --> - <h:column> - <f:facet name="header"> - <h:panelGroup> - <a4j:commandButton id="CreateNewCompany" - image="/images/icons/create.png" - action="#{companiesBean.prepareCreateCompanyForm}"> - <f:setPropertyActionListener value="${false}" target="#{companiesBean.updating}" /> + <f:facet name="header">#{lbl['company.list.body.operations']}</f:facet> + <div class="list-operations-main"> + + <div class="list-operations-item"> + <a4j:commandButton id="DeleteCompany" + rendered="#{user.company.id!=company.id and !company.system}" + reRender="DeleteCompanyModalContent" + oncomplete="Richfaces.showModalPanel('DeleteCompanyModal',{left:300, top:300})" + ajaxSingle="true" + immediate="true" + image="/images/icons/delete.gif"> + <f:setPropertyActionListener value="#{company}" target="#{companiesBean.selectedCompany}" /> </a4j:commandButton> - <rich:toolTip for="CreateNewCompany"> - <h:outputText value="#{lbl['company.list.body.create.tooltip']}"/> + <rich:toolTip for="DeleteCompany" direction="bottom-left"> + <h:outputText value="#{lbl['company.list.body.delete.tooltip']}"/> </rich:toolTip> - </h:panelGroup> - </f:facet> + </div> + + <div class="list-operations-item"> + <h:commandButton id="SetPermittedTypesToCompany" + image="/images/icons/elvys-type.png" + rendered="#{!company.system}" + action="#{companyPermittedTypesBean.prepareBean}"> + <f:setPropertyActionListener value="#{company}" target="#{companyPermittedTypesBean.selectedComp}" /> + </h:commandButton> + <rich:toolTip for="SetPermittedTypesToCompany" direction="bottom-left"> + <h:outputText value="#{lbl['company.list.body.permittedtypes.tooltip']}"/> + </rich:toolTip> + </div> + + <div class="list-operations-item"> + <h:commandButton id="EditCompany" + image="/images/icons/edit.png" + rendered="#{!company.system}" + action="#{companyEditBean.prepareUpdateCompanyForm}"> + <f:setPropertyActionListener value="#{company}" target="#{companyEditBean.selectedCompany}" /> + <f:setPropertyActionListener value="${true}" target="#{companyEditBean.updating}" /> + </h:commandButton> + <rich:toolTip for="EditCompany" direction="bottom-left"> + <h:outputText value="#{lbl['company.list.body.edit.tooltip']}"/> + </rich:toolTip> + </div> + + + </div> </h:column> + <f:facet name="footer"> <rich:datascroller renderIfSinglePage="false" immediate="true"/> </f:facet>