Author: fdesbois Date: 2009-12-08 18:20:44 +0000 (Tue, 08 Dec 2009) New Revision: 115 Added: trunk/checkstyle.xml trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java Removed: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ElligibleBoatsCompanyImpl.java Modified: trunk/changelog.txt trunk/pom.xml trunk/suiviobsmer-business/pom.xml trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java trunk/suiviobsmer-ui/pom.xml trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java trunk/suiviobsmer-ui/src/main/resources/log4j.properties trunk/suiviobsmer-ui/src/main/webapp/Boats.tml Log: - Refactor ElligibleBoatsCompany by CompanyBoatInfos to include BoatInfos - Resolve problem refreshing selected company BoatInfos in admin mode Modified: trunk/changelog.txt =================================================================== --- trunk/changelog.txt 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/changelog.txt 2009-12-08 18:20:44 UTC (rev 115) @@ -1,6 +1,17 @@ 0.0.1-alpha-2 - - [08-12-2009] [desbois] ANO SamplingPlan : Caractère de fin manquant sur l'affichage des zones de pêche - - [08-12-2009] [desbois] EVO Contacts : Renommage colonne "Mammifères" en "Observations et captures accidentelles" - - [08-12-2009] [desbois] EVO BoatInfos : Renomage texte "... embarquements dont X dans votre société..." par "... embarquements dont X pour votre société..." - - [08-12-2009] [desbois] ANO BoatInfos : Lien présent pour la création d'un contact lorsque la ligne du plan est barré + - [08-12-2009] [fdesbois] ANO BoatInfos : En mode admin le champ de sélection des sociétés + ne charge pas les données + + - [08-12-2009] [fdesbois] EVO : Ajout d'une config pour logger les erreurs/debugs dans un fichier + + - [08-12-2009] [fdesbois] ANO SamplingPlan : Caractère de fin manquant sur l'affichage des zones de pêche + + - [08-12-2009] [fdesbois] EVO Contacts : Renommage colonne "Mammifères" + en "Observations et captures accidentelles" + + - [08-12-2009] [fdesbois] EVO BoatInfos : Renomage texte "... embarquements dont X dans votre société..." + par "... embarquements dont X pour votre société..." + + - [08-12-2009] [fdesbois] ANO BoatInfos : Lien présent pour la création d'un contact + lorsque la ligne du plan est barré Added: trunk/checkstyle.xml =================================================================== --- trunk/checkstyle.xml (rev 0) +++ trunk/checkstyle.xml 2009-12-08 18:20:44 UTC (rev 115) @@ -0,0 +1,186 @@ +<?xml version="1.0"?> +<!DOCTYPE module PUBLIC + "-//Puppy Crawl//DTD Check Configuration 1.2//EN" + "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> + +<module name="Checker"> + <!-- + If you set the basedir property below, then all reported file + names will be relative to the specified directory. See + http://checkstyle.sourceforge.net/5.x/config.html#Checker + + <property name="basedir" value="${basedir}"/> + --> + + <metadata name="com.atlas-sw.eclipse" value="I like Sydney"/> + + <property name="severity" value="error"/> + + <!-- <module name="SuppressionFilter"> + <property name="file" value="checkstyle_suppression.xml"/> + </module> --> + + <module name="JavadocPackage"> + <property name="allowLegacy" value="false"/> + </module> + + <!-- <module name="Translation"> + <property name="severity" value="${translation.severity}"/> + </module> --> + + <module name="FileTabCharacter"> + <property name="eachLine" value="false"/> + </module> + + <module name="FileLength"> + <property name="fileExtensions" value="java"/> + </module> + + <!-- <module name="Header"> + <property name="headerFile" value="checkstyle_header.xml"/> + <property name="fileExtensions" value="java"/> + <property name="id" value="header"/> + </module> --> + + <module name="RegexpSingleline"> + <property name="format" value="^[^\*]*\s+$"/> + <property name="minimum" value="0"/> + <property name="maximum" value="0"/> + </module> + + <module name="TreeWalker"> + <property name="tabWidth" value="4" /> + + <module name="AvoidStarImport"/> + <module name="ConstantName"/> + <module name="EmptyBlock"/> + <module name="EmptyForIteratorPad"/> + <module name="EqualsHashCode"/> + + <!-- module name="IllegalCatch"/ + <module name="ImportControl"> + <property name="file" value="checkstyle_import.xml"/> + </module> --> + <module name="IllegalImport"/> + <module name="IllegalInstantiation"/> + <module name="IllegalThrows"/> + <module name="InnerAssignment"/> + <module name="JavadocType"> + <property name="authorFormat" value="\S"/> + </module> + <module name="JavadocMethod"> + <property name="allowUndeclaredRTE" value="true"/> + <property name="allowThrowsTagsForSubclasses" value="true"/> + </module> + <module name="JavadocVariable"/> + <module name="JavadocStyle"> + <property name="scope" value="public"/> + </module> + + <module name="LeftCurly"> + <property name="tokens" value="CLASS_DEF,INTERFACE_DEF,METHOD_DEF,CTOR_DEF"/> + <property name="option" value="eol"/> + </module> + <module name="LeftCurly"> + <property name="tokens" value="LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_SWITCH,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE"/> + <property name="option" value="eol"/> + </module> + + <module name="OuterTypeNumber"/> + <module name="LineLength"> + <property name="severity" value="warning" /> + <property name="ignorePattern" value="^ *\* *[^ ]+$"/> + </module> + + <module name="LocalFinalVariableName"/> + <module name="LocalVariableName"/> + <module name="MemberName"> + <property name="format" value="^[a-z][a-zA-Z0-9]*$"/> + </module> + <module name="MethodLength"/> + <module name="MethodName"/> + <module name="MethodParamPad"/> + <module name="ModifierOrder"/> + <module name="NeedBraces"/> + <module name="NoWhitespaceAfter"> + <property name="tokens" value="ARRAY_INIT, BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS" /> + </module> + + <module name="NoWhitespaceBefore"/> + <module name="NoWhitespaceBefore"> + <property name="tokens" value="DOT"/> + <property name="allowLineBreaks" value="true"/> + </module> + + <module name="OperatorWrap"/> + <module name="OperatorWrap"> + <property name="tokens" value="ASSIGN, DIV_ASSIGN, PLUS_ASSIGN, MINUS_ASSIGN, STAR_ASSIGN, MOD_ASSIGN, SR_ASSIGN, BSR_ASSIGN, SL_ASSIGN, BXOR_ASSIGN, BOR_ASSIGN, BAND_ASSIGN"/> + <property name="option" value="eol"/> + </module> + <module name="PackageName"/> + <module name="ParameterName"> + <property name="format" value="^[a-z][a-zA-Z0-9]*$"/> + </module> + <module name="ParameterNumber"> + <property name="id" value="paramNum"/> + </module> + <module name="ParenPad"/> + <module name="TypecastParenPad"/> + <module name="RedundantImport"/> + <module name="RedundantModifier"> + <property name="severity" value="warning" /> + </module> + <module name="RightCurly"> + <property name="option" value="same"/> + </module> + <module name="SimplifyBooleanExpression"/> + <module name="SimplifyBooleanReturn"/> + <module name="StaticVariableName"> + <property name="format" value="^[a-z][a-zA-Z0-9]*$"/> + </module> + <module name="TypeName"/> + <module name="UnusedImports"/> + <module name="UpperEll"/> + <module name="VisibilityModifier"> + <property name="protectedAllowed" value="true"/> + </module> + <module name="WhitespaceAfter"> + <property name="tokens" value="COMMA, SEMI"/> + </module> + <module name="WhitespaceAround"/> + <module name="GenericWhitespace"/> + <module name="FinalClass"/> + <module name="MissingSwitchDefault"/> + <module name="MagicNumber"> + <property name="severity" value="warning" /> + <property name="ignoreNumbers" value="-1,0,1, 1"/> + </module> + <module name="Indentation"> + <property name="severity" value="warning" /> + <property name="basicOffset" value="4"/> + <property name="braceAdjustment" value="0"/> + <property name="caseIndent" value="0"/> + </module> + <module name="ArrayTrailingComma"/> + <!--<module name="FinalLocalVariable"/> --> + <module name="EqualsAvoidNull"/> + + <!-- Generates quite a few errors --> + <module name="CyclomaticComplexity"> + <property name="severity" value="ignore"/> + </module> + + <module name="NestedIfDepth"> + <property name="max" value="3"/> + </module> + <module name="NestedTryDepth"/> + <module name="ExplicitInitialization"/> + <module name="AnnotationUseStyle"/> + <module name="MissingDeprecated"/> + <module name="MissingOverride"> + <property name="javaFiveCompatibility" value="true"/> + </module> + <module name="PackageAnnotation"/> + <module name="SuppressWarnings"/> + </module> +</module> \ No newline at end of file Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/pom.xml 2009-12-08 18:20:44 UTC (rev 115) @@ -84,13 +84,13 @@ <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> - <version>1.5.8</version> + <version>1.5.10</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> - <version>1.5.8</version> + <version>1.5.10</version> <scope>runtime</scope> </dependency> <dependency> @@ -234,10 +234,10 @@ <!-- libraries version --> <nuitonutils.version>1.1.1</nuitonutils.version> - <topia.version>2.3.0-beta-1</topia.version> + <topia.version>2.3.0-beta-2-SNAPSHOT</topia.version> <license.version>2.0.0</license.version> <helper.version>1.1.0</helper.version> - <eugene.version>2.0.0-beta-1</eugene.version> + <eugene.version>2.0.0-beta-2-SNAPSHOT</eugene.version> <tapestry.version>5.1.0.5</tapestry.version> <!-- default license to use --> @@ -482,6 +482,10 @@ <artifactId>maven-project-info-reports-plugin</artifactId> <version>2.1.2</version> </plugin> + <plugin> + <artifactId>maven-jxr-plugin</artifactId> + <version>2.1</version> + </plugin> <plugin> <artifactId>maven-javadoc-plugin</artifactId> @@ -499,6 +503,14 @@ <version>2.4.3</version> </plugin> + <plugin> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>2.4</version> + <configuration> + <configLocation>checkstyle.xml</configLocation> + </configuration> + </plugin> + </plugins> </reporting> Modified: trunk/suiviobsmer-business/pom.xml =================================================================== --- trunk/suiviobsmer-business/pom.xml 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/pom.xml 2009-12-08 18:20:44 UTC (rev 115) @@ -64,7 +64,7 @@ <!-- *** Project Information ************************************* --> <!-- ************************************************************* --> - <name>SuiviObsmer Business</name> + <name>SuiviObsmer :: Business</name> <description>Métier de l'application SuiviObsmer</description> <!-- ************************************************************* --> Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java 2009-12-08 18:20:44 UTC (rev 115) @@ -68,11 +68,17 @@ log.info("Create first admin : login=\"admin\" / password=\"password\""); } - Company company = companyDAO.create(Company.ACTIVE, false, Company.NAME, "superadmin"); + Company company = companyDAO.create(Company.ACTIVE, false, Company.NAME, "ADMIN"); String password = SuiviObsmerUtils.encodeString("password"); - User user = dao.create(User.ADMIN, true, User.ACTIVE, false, User.LOGIN, "admin", User.PASSWORD, password); + User user = dao.create( + User.ADMIN, true, + User.ACTIVE, false, + User.LOGIN, "admin", + User.PASSWORD, password, + User.FIRST_NAME, "Super", + User.LAST_NAME, "Admin"); company.addUser(user); user.setCompany(company); Copied: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java (from rev 110, trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ElligibleBoatsCompanyImpl.java) =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java (rev 0) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java 2009-12-08 18:20:44 UTC (rev 115) @@ -0,0 +1,106 @@ +/* + * *##% + * SuiviObsmer Business + * Copyright (C) 2009 Ifremer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * ##%* + */ + +package fr.ifremer.suiviobsmer.bean; + +import fr.ifremer.suiviobsmer.entity.ElligibleBoat; +import fr.ifremer.suiviobsmer.entity.ElligibleBoatImpl; +import fr.ifremer.suiviobsmer.entity.SampleRow; +import java.util.Collection; +import java.util.Iterator; +import org.apache.commons.lang.StringUtils; + +/** + * ElligibleBoatsCompanyImpl + * + * Created: 7 déc. 2009 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class CompanyBoatInfosImpl extends CompanyBoatInfos { + + @Override + public void removeElligibleBoat(String sampleRowCode) { + ElligibleBoat elligible = elligibleBoats.get(sampleRowCode); + // ElligibleBoat set by an admin + if (elligible.getCompanyActive() == null) { + elligible.setCompanyActive(Boolean.FALSE); + } else { + if (!deletedElligibleBoats.contains(elligible) && !StringUtils.isEmpty(elligible.getTopiaId())) { + deletedElligibleBoats.add(elligible); + } + elligibleBoats.remove(sampleRowCode); + } + } + + @Override + public ElligibleBoat getElligibleBoat(String sampleRowCode) { + return elligibleBoats.get(sampleRowCode); + } + + @Override + public ElligibleBoat setNewElligibleBoat(SampleRow row) { + ElligibleBoat elligible = null; + if (row == null) { + return null; + } + if (!elligibleBoats.containsKey(row.getCode())) { + elligible = new ElligibleBoatImpl(); + elligible.setCompanyActive(Boolean.TRUE); + elligible.setBoat(boatInfos.getBoat()); + elligible.setSampleRow(row); + elligibleBoats.put(row.getCode(), elligible); + removePreviouslyDeleted(row.getCode()); + } + return elligible; + } + + protected void removePreviouslyDeleted(String sampleRowCode) { + Iterator<ElligibleBoat> it = deletedElligibleBoats.iterator(); + while (it.hasNext()) { + ElligibleBoat current = it.next(); + if (current.getSampleRow().getCode().equals(sampleRowCode)) { + it.remove(); + } + } + } + + /** + * Active only element wich is inactive. So element which is linked by admin in SamplingRowForm. + * The Boolean CompanyActive is set to null : no specific modification for company. + * @param sampleRowCode code of the element to reactivate + */ + @Override + public void activeElligibleBoat(String sampleRowCode) { + ElligibleBoat elligible = getElligibleBoat(sampleRowCode); + elligible.setCompanyActive(null); + } + + @Override + public Collection<ElligibleBoat> getElligibleBoatsValues() { + return elligibleBoats.values(); + } + +} Property changes on: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Revision Added: svn:mergeinfo + Deleted: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ElligibleBoatsCompanyImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ElligibleBoatsCompanyImpl.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ElligibleBoatsCompanyImpl.java 2009-12-08 18:20:44 UTC (rev 115) @@ -1,106 +0,0 @@ -/* - * *##% - * SuiviObsmer Business - * Copyright (C) 2009 Ifremer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.bean; - -import fr.ifremer.suiviobsmer.entity.ElligibleBoat; -import fr.ifremer.suiviobsmer.entity.ElligibleBoatImpl; -import fr.ifremer.suiviobsmer.entity.SampleRow; -import java.util.Collection; -import java.util.Iterator; -import org.apache.commons.lang.StringUtils; - -/** - * ElligibleBoatsCompanyImpl - * - * Created: 7 déc. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ElligibleBoatsCompanyImpl extends ElligibleBoatsCompany { - - @Override - public void removeElement(String sampleRowCode) { - ElligibleBoat elligible = elligibleBoats.get(sampleRowCode); - // ElligibleBoat set by an admin - if (elligible.getCompanyActive() == null) { - elligible.setCompanyActive(Boolean.FALSE); - } else { - if (!deletedElligibleBoats.contains(elligible) && !StringUtils.isEmpty(elligible.getTopiaId())) { - deletedElligibleBoats.add(elligible); - } - elligibleBoats.remove(sampleRowCode); - } - } - - @Override - public ElligibleBoat getElement(String sampleRowCode) { - return elligibleBoats.get(sampleRowCode); - } - - @Override - public ElligibleBoat setNewElement(SampleRow row) { - ElligibleBoat elligible = null; - if (row == null) { - return null; - } - if (!elligibleBoats.containsKey(row.getCode())) { - elligible = new ElligibleBoatImpl(); - elligible.setCompanyActive(Boolean.TRUE); - elligible.setBoat(boat); - elligible.setSampleRow(row); - elligibleBoats.put(row.getCode(), elligible); - removePreviouslyDeleted(row.getCode()); - } - return elligible; - } - - protected void removePreviouslyDeleted(String sampleRowCode) { - Iterator<ElligibleBoat> it = deletedElligibleBoats.iterator(); - while (it.hasNext()) { - ElligibleBoat current = it.next(); - if (current.getSampleRow().getCode().equals(sampleRowCode)) { - it.remove(); - } - } - } - - /** - * Active only element wich is inactive. So element which is linked by admin in SamplingRowForm. - * The Boolean CompanyActive is set to null : no specific modification for company. - * @param sampleRowCode code of the element to reactivate - */ - @Override - public void activeElement(String sampleRowCode) { - ElligibleBoat elligible = getElement(sampleRowCode); - elligible.setCompanyActive(null); - } - - @Override - public Collection<ElligibleBoat> values() { - return elligibleBoats.values(); - } - -} Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java 2009-12-08 18:20:44 UTC (rev 115) @@ -47,6 +47,7 @@ private static final long serialVersionUID = 1L; @Override + @Deprecated public BoatInfos getBoatInfos(Company company) throws SuiviObsmerException { TopiaContext transaction = null; BoatInfos boatInfos = null; Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2009-12-08 18:20:44 UTC (rev 115) @@ -26,8 +26,8 @@ import fr.ifremer.suiviobsmer.SuiviObsmerException; import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; import fr.ifremer.suiviobsmer.bean.BoatFilter; -import fr.ifremer.suiviobsmer.bean.ElligibleBoatsCompany; -import fr.ifremer.suiviobsmer.bean.ElligibleBoatsCompanyImpl; +import fr.ifremer.suiviobsmer.bean.CompanyBoatInfos; +import fr.ifremer.suiviobsmer.bean.CompanyBoatInfosImpl; import fr.ifremer.suiviobsmer.entity.*; import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.services.ServiceBoat; @@ -213,7 +213,7 @@ } /** - * Get elligible boats for a company and a boat. This method is useful to get sampleRows elligibles for + * Get boat infos and elligible boats for a company and a boat. This method is useful to get sampleRows elligibles for * the boat. Only sampleRows not closed linked with the company argument will be returned. * The result give a Map with sampleRowCode in key and ElligibleBoat in value. The ElligibleBoat entity * contains the SampleRow and attributes useful to know if the link is active or specific for the company. @@ -223,13 +223,15 @@ * deleted elements */ @Override - public ElligibleBoatsCompany getElligibleBoats(int boatImmatriculation, Company company) + public CompanyBoatInfos getCompanyBoatInfos(int boatImmatriculation, Company company) throws SuiviObsmerException { - Map<String, ElligibleBoat> map = new HashMap<String, ElligibleBoat>(); - ElligibleBoatsCompany result = new ElligibleBoatsCompanyImpl(); + + Map<String, ElligibleBoat> elligibleBoats = new HashMap<String, ElligibleBoat>(); + CompanyBoatInfos result = new CompanyBoatInfosImpl(); result.setCompany(company); - result.setElligibleBoats(map); + result.setElligibleBoats(elligibleBoats); result.setDeletedElligibleBoats(new ArrayList<ElligibleBoat>()); + TopiaContext transaction = null; try { transaction = rootContext.beginTransaction(); @@ -237,8 +239,20 @@ BoatDAO dao = SuiviObsmerModelDAOHelper.getBoatDAO(transaction); Boat boat = dao.findByImmatriculation(boatImmatriculation); - result.setBoat(boat); + BoatInfosDAO boatInfosDAO = SuiviObsmerModelDAOHelper.getBoatInfosDAO(transaction); + BoatInfos boatInfos = boatInfosDAO.findByProperties( + BoatInfos.BOAT, boat, BoatInfos.COMPANY, company); + if (boatInfos == null) { + boatInfos = new BoatInfosImpl(); + boatInfos.setBoat(boat); + boatInfos.setCompany(company); + } else { + // load data + boatInfos.getBoat(); + } + result.setBoatInfos(boatInfos); + for (ElligibleBoat elligible : boat.getElligibleBoat()) { SampleRow sampleRow = elligible.getSampleRow(); @@ -249,7 +263,7 @@ sampleRow.getCompany().getTopiaId() : ""; if (companyId.equals(company.getTopiaId())) { - map.put(sampleRow.getCode(), elligible); + elligibleBoats.put(sampleRow.getCode(), elligible); } } } @@ -257,14 +271,15 @@ transaction.closeContext(); } catch (Exception eee) { SuiviObsmerUtils.serviceException(transaction, - "Impossible de récupérer les lignes du plans elligibles pour" + - " ce navire : " + boatImmatriculation, eee); + "Impossible de récupérer les informations du navire " + + "immatriculé '" + boatImmatriculation + "'" + + " pour la société '" + company.getName() + "'", eee); } return result; } @Override - public void createUpdateBoatInfos(BoatInfos boatInfos, ElligibleBoatsCompany elligibleBoatsCompany) + public void createUpdateCompanyBoatInfos(CompanyBoatInfos companyBoatInfos) throws SuiviObsmerException { TopiaContext transaction = null; try { @@ -272,18 +287,19 @@ BoatInfosDAO dao = SuiviObsmerModelDAOHelper.getBoatInfosDAO(transaction); + BoatInfos boatInfos = companyBoatInfos.getBoatInfos(); SuiviObsmerUtils.prepareTopiaId(BoatInfos.class, boatInfos); dao.update(boatInfos); ElligibleBoatDAO elligibleDAO = SuiviObsmerModelDAOHelper.getElligibleBoatDAO(transaction); - for (ElligibleBoat elligible : elligibleBoatsCompany.values()) { + for (ElligibleBoat elligible : companyBoatInfos.getElligibleBoatsValues()) { SuiviObsmerUtils.prepareTopiaId(ElligibleBoat.class, elligible); elligibleDAO.update(elligible); } // Delete ElligibleBoats for the company - for (ElligibleBoat elligible : elligibleBoatsCompany.getDeletedElligibleBoats()) { + for (ElligibleBoat elligible : companyBoatInfos.getDeletedElligibleBoats()) { elligibleDAO.delete(elligible); } Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2009-12-08 18:20:44 UTC (rev 115) @@ -77,7 +77,7 @@ results.put(contact.getTopiaId(), contact); } } else { - List list = transaction.find("FROM ContactImpl WHERE user.company = :company", + List list = transaction.find("FROM ContactImpl WHERE user.company = :company", "company", company); for (Object o : list) { Contact contact = (Contact)o; @@ -88,7 +88,7 @@ transaction.closeContext(); } catch (Exception eee) { - SuiviObsmerUtils.serviceException(transaction, + SuiviObsmerUtils.serviceException(transaction, "Impossible de filtrer la liste des contacts", eee); } return results; Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java 2009-12-08 18:20:44 UTC (rev 115) @@ -23,7 +23,7 @@ import fr.ifremer.suiviobsmer.SuiviObsmerException; import fr.ifremer.suiviobsmer.bean.BoatFilter; -import fr.ifremer.suiviobsmer.bean.ElligibleBoatsCompany; +import fr.ifremer.suiviobsmer.bean.CompanyBoatInfos; import fr.ifremer.suiviobsmer.entity.*; import fr.ifremer.suiviobsmer.services.ServiceBoat; import java.io.InputStream; @@ -222,7 +222,7 @@ } @Override - public ElligibleBoatsCompany getElligibleBoats(int boatImmatriculation, Company company) throws SuiviObsmerException { + public CompanyBoatInfos getCompanyBoatInfos(int boatImmatriculation, Company company) throws SuiviObsmerException { throw new UnsupportedOperationException("Not supported yet."); } @@ -232,7 +232,7 @@ } @Override - public void createUpdateBoatInfos(BoatInfos boatInfos, ElligibleBoatsCompany elligibleBoatsCompany) throws SuiviObsmerException { + public void createUpdateCompanyBoatInfos(CompanyBoatInfos elligibleBoatsCompany) throws SuiviObsmerException { throw new UnsupportedOperationException("Not supported yet."); } Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo =================================================================== (Binary files differ) Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java 2009-12-08 18:20:44 UTC (rev 115) @@ -92,7 +92,7 @@ assertEquals(1, companies.size()); Company company = companies.get(0); - assertEquals("superadmin", company.getName()); + assertEquals("ADMIN", company.getName()); List<User> users = (List<User>)company.getUser(); assertEquals(1, users.size()); Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2009-12-08 18:20:44 UTC (rev 115) @@ -28,7 +28,7 @@ import fr.ifremer.suiviobsmer.bean.BoatFilterImpl; import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.bean.BoatFilter; -import fr.ifremer.suiviobsmer.bean.ElligibleBoatsCompany; +import fr.ifremer.suiviobsmer.bean.CompanyBoatInfos; import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.entity.BoatInfos; import fr.ifremer.suiviobsmer.entity.Company; @@ -148,12 +148,12 @@ /** EXEC METHOD **/ - ElligibleBoatsCompany result = service.getElligibleBoats(174592, company); + CompanyBoatInfos result = service.getCompanyBoatInfos(174592, company); assertNotNull(result); - assertEquals(174592, result.getBoat().getImmatriculation()); + assertEquals(174592, result.getBoatInfos().getBoat().getImmatriculation()); assertEquals("TARTANPION", result.getCompany().getName()); // only row1 is getting - assertEquals(1, result.values().size()); + assertEquals(1, result.getElligibleBoatsValues().size()); } private List<SampleRow> prepareSampleRows(Company company) @@ -217,7 +217,7 @@ // Return new BoatInfos BoatInfos boatInfos = boat.getBoatInfos(company); - ElligibleBoatsCompany elligibleBoats = service.getElligibleBoats(174592, company); + CompanyBoatInfos companyBoatInfos = service.getCompanyBoatInfos(174592, company); /** EXEC METHOD **/ @@ -227,38 +227,38 @@ /** TEST1 **/ // ajout d'une nouvelle ligne "2010_4" non mise en elligible auparavent - elligibleBoats.setNewElement(rows.get(1)); + companyBoatInfos.setNewElligibleBoat(rows.get(1)); // ligne deja elligible mise en inactive - elligibleBoats.removeElement("2009_3"); + companyBoatInfos.removeElligibleBoat("2009_3"); - service.createUpdateBoatInfos(boatInfos, elligibleBoats); + service.createUpdateCompanyBoatInfos(companyBoatInfos); - elligibleBoats = service.getElligibleBoats(174592, company); + companyBoatInfos = service.getCompanyBoatInfos(174592, company); - Map<String, ElligibleBoat> results = elligibleBoats.getElligibleBoats(); + Map<String, ElligibleBoat> results = companyBoatInfos.getElligibleBoats(); assertEquals(2, results.size()); - ElligibleBoat elligible = elligibleBoats.getElement("2009_3"); + ElligibleBoat elligible = companyBoatInfos.getElligibleBoat("2009_3"); assertNotNull(elligible.getCompanyActive()); assertFalse(elligible.getCompanyActive()); - elligible = elligibleBoats.getElement("2010_4"); + elligible = companyBoatInfos.getElligibleBoat("2010_4"); assertTrue(elligible.getCompanyActive()); /** TEST2 **/ // Suppression ligne lié elligible pour la société - elligibleBoats.removeElement("2010_4"); + companyBoatInfos.removeElligibleBoat("2010_4"); // Reactivation ligne mise en inactive juste avant - elligibleBoats.activeElement("2009_3"); + companyBoatInfos.activeElligibleBoat("2009_3"); - service.createUpdateBoatInfos(boatInfos, elligibleBoats); + service.createUpdateCompanyBoatInfos(companyBoatInfos); - elligibleBoats = service.getElligibleBoats(174592, company); + companyBoatInfos = service.getCompanyBoatInfos(174592, company); - results = elligibleBoats.getElligibleBoats(); + results = companyBoatInfos.getElligibleBoats(); assertEquals(1, results.size()); - elligible = elligibleBoats.getElement("2009_3"); + elligible = companyBoatInfos.getElligibleBoat("2009_3"); assertNull(elligible.getCompanyActive()); assertTrue(elligible.getGlobalActive()); Modified: trunk/suiviobsmer-ui/pom.xml =================================================================== --- trunk/suiviobsmer-ui/pom.xml 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-ui/pom.xml 2009-12-08 18:20:44 UTC (rev 115) @@ -71,7 +71,7 @@ <!-- *** Project Information ************************************* --> <!-- ************************************************************* --> - <name>SuiviObsmer Web Interface</name> + <name>SuiviObsmer :: Web Interface</name> <description>Interface utilisateur du SuiviObsmer</description> <!-- ************************************************************* --> Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2009-12-08 18:20:44 UTC (rev 115) @@ -24,9 +24,9 @@ import fr.ifremer.suiviobsmer.SuiviObsmerException; import fr.ifremer.suiviobsmer.bean.BoatFilterImpl; import fr.ifremer.suiviobsmer.entity.Boat; +import fr.ifremer.suiviobsmer.bean.BoatFilter; +import fr.ifremer.suiviobsmer.bean.CompanyBoatInfos; import fr.ifremer.suiviobsmer.entity.BoatInfos; -import fr.ifremer.suiviobsmer.bean.BoatFilter; -import fr.ifremer.suiviobsmer.bean.ElligibleBoatsCompany; import fr.ifremer.suiviobsmer.entity.Company; import fr.ifremer.suiviobsmer.entity.ElligibleBoat; import fr.ifremer.suiviobsmer.entity.FishingZone; @@ -118,8 +118,9 @@ getSampleRowSelectModel(); // Suppress persistant boat informations for selected boat - boatInfos = null; - elligibleSampleRows = null; + //boatInfos = null; + companyBoatInfos = null; + boatSelectedImmatriculation = null; if (isSampleRowExists()) { filtersHidden = false; boats = null; @@ -328,8 +329,8 @@ // Suppress persistant immatriculation for boat selected boatSelectedImmatriculation = null; // Suppress persistant boat informations for boat selected - boatInfos = null; - elligibleSampleRows = null; + //boatInfos = null; + companyBoatInfos = null; } /**************************** Boats List *****************************************/ @@ -338,6 +339,7 @@ private Map<Integer, Boat> boats; @Property + @Persist private Integer boatSelectedImmatriculation; @Property @@ -379,18 +381,19 @@ Block onActionFromShowBoatInfos(Integer boatImma) { boatSelectedImmatriculation = boatImma; // Suppress persistant boat informations - boatInfos = null; - elligibleSampleRows = null; + //boatInfos = null; + companyBoatInfos = null; + //companyId = null; return boatsZone.getBody(); } /**************************** Boat selected Infos *************************/ - @Persist - private BoatInfos boatInfos; +// @Persist +// private BoatInfos boatInfos; @Persist - private ElligibleBoatsCompany elligibleSampleRows; + private CompanyBoatInfos companyBoatInfos; @InjectComponent private Zone boatInfosZone; @@ -401,9 +404,6 @@ @Inject private Block editBoatInfos; - /** - * Current element for professionLibelles loop - */ @Property private ElligibleBoat elligibleBoat; @@ -430,30 +430,30 @@ return displayBoatInfos; } - public BoatInfos getBoatInfos() throws SuiviObsmerException { - if (boatInfos == null && boatSelectedImmatriculation != null) { - Boat selectedBoat = getBoats().get(boatSelectedImmatriculation); + public CompanyBoatInfos getCompanyBoatInfos() throws SuiviObsmerException { + if (companyBoatInfos == null && boatSelectedImmatriculation != null) { if (log.isInfoEnabled()) { - log.info("BUSINESS REQUEST [boat.getBoatInfos]"); log.info("BUSINESS REQUEST [getElligibleBoats]"); } - boatInfos = selectedBoat.getBoatInfos(getCompany()); - elligibleSampleRows = - serviceBoat.getElligibleBoats(boatSelectedImmatriculation, getCompany()); + companyBoatInfos = + serviceBoat.getCompanyBoatInfos(boatSelectedImmatriculation, getCompany()); } - return boatInfos; + return companyBoatInfos; } - public ElligibleBoatsCompany getElligibleSampleRows() throws SuiviObsmerException { -// if (elligibleSampleRows == null && boatSelectedImmatriculation != null) { -// Boat selectedBoat = getBoats().get(boatSelectedImmatriculation); -// if (log.isInfoEnabled()) { -// -// } -// } - return elligibleSampleRows; + public String getBoatName() throws SuiviObsmerException { + Boat boat = null; + if (getBoatInfos() != null) { + boat = getBoatInfos().getBoat(); + } + boat = getBoats().get(boatSelectedImmatriculation); + return boat.getName(); } + public BoatInfos getBoatInfos() throws SuiviObsmerException { + return getCompanyBoatInfos().getBoatInfos(); + } + public String getElligibleRowInfos() { return BusinessUtils.getTooltipSampleRow(elligibleBoat.getSampleRow()); } @@ -487,7 +487,10 @@ return companySelectModel; } - Block onSuccessFromCompanySelectForm() { + Block onSuccessFromCompanySelectForm() throws SuiviObsmerException { + companyBoatInfos = null; + // boatSelectedImmatriculation is getting from Persist("flash") + getCompanyBoatInfos(); return boatInfosZone.getBody(); } @@ -502,10 +505,11 @@ log.debug("Change property"); } }*/ + // Set boatSelectedImmatriculation for boatInfos to reinitialize it (next getBoatInfos() call) - boatSelectedImmatriculation = getBoatInfos().getBoat().getImmatriculation(); + //boatSelectedImmatriculation = getBoatInfos().getBoat().getImmatriculation(); // Suppress boatInfos to get the one from serviceBoat (not updated yet) - boatInfos = null; + companyBoatInfos = null; return boatInfosZone.getBody(); } @@ -514,24 +518,24 @@ boatInfosEditable = true; if (!StringUtils.isEmpty(boatInfosSampleRowCode)) { SampleRow row = getSampleRowSelectModel().findObject(boatInfosSampleRowCode); - elligibleSampleRows.setNewElement(row); + companyBoatInfos.setNewElligibleBoat(row); } } void onSelectedFromRemoveBoatInfosSampleRow(String sampleRowCode) throws SuiviObsmerException { boatInfosEditable = true; - elligibleSampleRows.removeElement(sampleRowCode); + companyBoatInfos.removeElligibleBoat(sampleRowCode); } void onSelectedFromActiveBoatInfosSampleRow(String sampleRowCode) throws SuiviObsmerException { boatInfosEditable = true; - elligibleSampleRows.activeElement(sampleRowCode); + companyBoatInfos.activeElligibleBoat(sampleRowCode); } Block onSuccessFromBoatInfosForm() throws SuiviObsmerException { if (!boatInfosEditable) { // Save data - serviceBoat.createUpdateBoatInfos(boatInfos, elligibleSampleRows); + serviceBoat.createUpdateCompanyBoatInfos(companyBoatInfos); } return boatInfosZone.getBody(); } Modified: trunk/suiviobsmer-ui/src/main/resources/log4j.properties =================================================================== --- trunk/suiviobsmer-ui/src/main/resources/log4j.properties 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-ui/src/main/resources/log4j.properties 2009-12-08 18:20:44 UTC (rev 115) @@ -1,44 +1,24 @@ # Default to info level output; this is very handy if you eventually use Hibernate as well. -log4j.rootCategory=warn, A1 +log4j.rootCategory=WARN, console, globalfile -# A1 is set to be a ConsoleAppender. -log4j.appender.A1=org.apache.log4j.ConsoleAppender +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +#log4j.appender.console.layout.ConversionPattern=%d [%p] %c{2} %m%n +log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss} %5p (%F:%L) %m%n +log4j.appender.console.Threshold=INFO -# A1 uses PatternLayout. -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%d [%p] %c{2} %m%n +log4j.appender.globalfile=org.apache.log4j.RollingFileAppender +log4j.appender.globalfile.File=${user.home}/.suiviobsmer/log/suiviobsmer.log +log4j.appender.globalfile.MaxFileSize=500KB +log4j.appender.globalfile.Append=true +log4j.appender.globalfile.MaxBackupIndex=10 +log4j.appender.globalfile.Threshold=DEBUG +log4j.appender.globalfile.layout=org.apache.log4j.PatternLayout +log4j.appender.globalfile.layout.ConversionPattern=%d{yyyy/MM/dd hh:mm:ss} %5p (%F:%L) %m%n -# Service category names are the name of the defining module class -# and then the service id. -log4j.category.org.chorem.test.services.AppModule.TimingFilter=info +# For Tapestry +log4j.logger.org.apache.tapestry5.services.TapestryModule.ComponentClassResolver=INFO +log4j.logger.org.apache.tapestry5.TapestryFilter=INFO -# Outputs a list of pages, components and mixins at startup. -log4j.category.org.apache.tapestry5.services.TapestryModule.ComponentClassResolver=info - -# Outputs startup statistics; elapsed time to setup and initialize the registry, and a list of -# available services. -log4j.category.org.apache.tapestry5.TapestryFilter=info - - -# Turning on debug mode for a page's or component's transformer logger -# will show all of the code changes that occur when the -# class is loaded. - -# log4j.category.tapestry.transformer.org.chorem.test.pages.Index=debug - -# Turning on debug mode for a component's events logger will show all the events triggered on the -# component, and which component methods are invoked as a result. - -# log4j.category.tapestry.events.org.chorem.test.pages.Index=debug - -# Turning on trace mode for a page's render provides extended information about every step -# in rendering (this is not generally helpful). Turning on debug mode will add a one-line -# summary that includes the elapsed render time. - -# log4j.category.tapestry.render.org.chorem.test.pages.Index=debug - -# Turn on some verbose debugging about everything in the application. This is nice initially, -# while getting everything set up. You'll probably want to remove this once you are -# up and running, replacing it with more selecting debugging output. log4j.logger.fr.ifremer.suiviobsmer=DEBUG log4j.logger.org.nuiton.util=INFO Modified: trunk/suiviobsmer-ui/src/main/webapp/Boats.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Boats.tml 2009-12-08 13:45:12 UTC (rev 114) +++ trunk/suiviobsmer-ui/src/main/webapp/Boats.tml 2009-12-08 18:20:44 UTC (rev 115) @@ -74,17 +74,19 @@ <div t:type="zone" t:id="boatsZone" t:update="show" class="clearfix"> - <!-- Liste des navires --> + <!-- BOATLIST:: --> <div class="fleft" id="so-boats-list"> <h1>Liste des navires</h1> <div t:type="grid" t:source="boats.values()" t:row="boat" t:include="name, immatriculation, districtCode, boatLength, buildYear" t:rowClass="prop:rowClass" t:rowsPerPage="20"> <p:nameCell> - <t:if t:test="sampleRowExists"> - <a t:type="actionlink" t:id="addNewContactFromBoat" t:context="boat.immatriculation"> - <img src="${asset:context:}/img/contact-22px.png" title="Créer un nouveau contact pour ce navire et la ligne sélectionnée dans les filtres"/> - </a> - </t:if> + <t:unless t:test="user.admin"> + <t:if t:test="sampleRowExists"> + <a t:type="actionlink" t:id="addNewContactFromBoat" t:context="boat.immatriculation"> + <img src="${asset:context:}/img/contact-22px.png" title="Créer un nouveau contact pour ce navire et la ligne sélectionnée dans les filtres"/> + </a> + </t:if> + </t:unless> <a t:type="actionlink" t:id="showBoatInfos" t:context="boat.immatriculation" t:zone="boatsZone">${boat.name}</a> </p:nameCell> <p:boatLengthCell> @@ -92,19 +94,44 @@ </p:boatLengthCell> </div> </div> - <!-- Informations du navire sélectionné --> + + + + <!-- BOATINFOS:: Informations du navire sélectionné --> <t:if t:test="boatSelectedImmatriculation"> - <t:zone t:id="boatInfosZone" t:update="show" class="fleft" id="so-boats-boat-infos"> - <t:delegate to="activeBoatInfosBlock" /> - <fieldset id="so-boats-boat-infos-calendar"> - <legend>Calendrier d'activité 2009</legend> - <p><img src="${asset:context:}/img/calendar.png" title="Calendrier d'activité"/></p> - </fieldset> + <t:zone t:id="boatInfosZone" t:update="show" class="fleft" id="so-boats-boat-infos"> + <t:if t:test="user.admin"> + <!-- For admin --> + <h2>Informations sur <!--${companyBoatInfos.boatInfos.boat.name}-->${boatName}</h2> + <form t:type="form" t:id="companySelectForm" t:zone="so-boats-boat-infos"> + <t:label t:for="company" /> : + <input t:type="select" t:id="company" t:model="companySelectModel" t:value="companyId" /> + <input t:type="submit" class="ico search" t:id="searchCompany" value="Search" /> + </form> + <t:if t:test="companyId"> + <t:delegate to="activeBoatInfosBlock" /> + <fieldset id="so-boats-boat-infos-calendar"> + <legend>Calendrier d'activité 2009</legend> + <p><img src="${asset:context:}/img/calendar.png" title="Calendrier d'activité"/></p> + </fieldset> + </t:if> + + <!-- For user --> + <p:else> + <t:delegate to="activeBoatInfosBlock" /> + <fieldset id="so-boats-boat-infos-calendar"> + <legend>Calendrier d'activité 2009</legend> + <p><img src="${asset:context:}/img/calendar.png" title="Calendrier d'activité"/></p> + </fieldset> + </p:else> + </t:if> </t:zone> - <!-- Mode : affichage --> + + + <!-- BOATINFOS:: DISPLAY MODE --> <t:block t:id="displayBoatInfos"> - <!-- En-tête --> - <t:if t:test="user.admin"> + + <!--t:if t:test="user.admin"> <h2>Informations sur ${boatInfos.boat.name}</h2> <form t:type="form" t:id="companySelectForm" t:zone="so-boats-boat-infos"> <t:label t:for="company" /> : @@ -112,21 +139,25 @@ t:value="companyId" /> <input t:type="submit" class="ico search" t:id="searchCompany" value="Search" /> </form> - <p:else> - <div class="clearfix"> - <div class="fleft"> - <h2>Informations sur ${boatInfos.boat.name}</h2> - </div> - <!-- En-tête - actions --> - <div class="fright"> - <a t:type="actionlink" t:id="editBoatInfos" t:zone="so-boats-boat-infos"> - <img src="${asset:context:}/img/edit.png" title="Editer les informations"/> - </a> - </div> + <p:else--> + + <!-- HEADER (User only) --> + <t:unless t:test="user.admin"> + <div class="clearfix"> + <div class="fleft"> + <h2>Informations sur ${boatInfos.boat.name}</h2> </div> - </p:else> - </t:if> - <!-- Corps - contact --> + <!-- En-tête - actions --> + <div class="fright"> + <a t:type="actionlink" t:id="editBoatInfos" t:zone="so-boats-boat-infos"> + <img src="${asset:context:}/img/edit.png" title="Editer les informations"/> + </a> + </div> + </div> + <!--/p:else--> + </t:unless> + + <!-- BODY - armateur, contact --> <fieldset id="so-boats-boat-infos-shipowner"> <legend>Armateur</legend> <div t:type="beandisplay" t:id="boatInfosShipOwner" t:object="boatInfos.boat.shipOwner" @@ -137,7 +168,8 @@ <div t:type="beandisplay" t:id="boatInfosContact" t:object="boatInfos" t:include="contactFirstName, contactLastName, contactPhoneNumber, contactEmail" /> </fieldset> - <!-- Corps - embarquement --> + + <!-- BODY - autres --> <fieldset id="so-boats-boat-infos-boarding"> <legend>Autres informations sur le navire</legend> <div> @@ -151,16 +183,18 @@ <p class="sep"> </p> <label>Ligne(s) du plan :</label> <ul> - <li t:type="loop" t:source="elligibleSampleRows.values()" t:value="elligibleBoat"> + <li t:type="loop" t:source="companyBoatInfos.elligibleBoatsValues" t:value="elligibleBoat"> <span t:type="ck/Tooltip" title="Infos" t:value="prop:elligibleRowInfos" t:effect="appear"> <span class="${elligibleRowClass}"> ${elligibleBoat.sampleRow.code} </span> </span> - <t:unless t:test="elligibleBoatCompanyActiveFalse"> - <a t:type="actionlink" t:id="addNewContactFromSampleRow" t:context="elligibleBoat.sampleRow.code"> - <img src="${asset:context:}/img/contact-22px.png" title="Créer un nouveau contact pour ce navire et cette ligne du plan"/> - </a> + <t:unless t:test="user.admin"> + <t:unless t:test="elligibleBoatCompanyActiveFalse"> + <a t:type="actionlink" t:id="addNewContactFromSampleRow" t:context="elligibleBoat.sampleRow.code"> + <img src="${asset:context:}/img/contact-22px.png" title="Créer un nouveau contact pour ce navire et cette ligne du plan"/> + </a> + </t:unless> </t:unless> </li> </ul> @@ -172,10 +206,14 @@ </div> </fieldset> </t:block> - <!-- Mode : édition --> + + + + <!-- BOATINFOS:: EDITION MODE (User only) --> <t:block t:id="editBoatInfos"> <form t:type="form" t:id="boatInfosForm" t:zone="so-boats-boat-infos"> <t:errors /> + <!-- En-tête --> <div class="clearfix"> <div class="fleft"> @@ -190,6 +228,7 @@ title="Enregistrer les modifications" /> </div> </div> + <!-- Corps - contact --> <!--fieldset id="so-boats-boat-infos-shipowner"> <legend>Armateur</legend> @@ -203,7 +242,8 @@ t:include="contactFirstName, contactLastName, contactPhoneNumber, contactEmail" /> </div> </fieldset> - <!-- Corps - embarquement --> + + <!-- Corps - autres --> <fieldset id="so-boats-boat-infos-boarding"> <legend>Autres informations sur le navire</legend> <div> @@ -217,7 +257,7 @@ <p class="sep"> </p> <label>Ligne(s) du plan :</label> <ul> - <li t:type="loop" t:source="elligibleSampleRows.values()" volatile="true" t:value="elligibleBoat"> + <li t:type="loop" t:source="companyBoatInfos.elligibleBoatsValues" volatile="true" t:value="elligibleBoat"> <span t:type="ck/Tooltip" title="Infos" t:value="prop:elligibleRowInfos" t:effect="appear"> <span class="${elligibleRowClass}"> ${elligibleBoat.sampleRow.code}