Wao-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
January 2010
- 4 participants
- 139 discussions
22 Jan '10
Author: fdesbois
Date: 2010-01-22 18:48:16 +0000 (Fri, 22 Jan 2010)
New Revision: 260
Modified:
trunk/changelog.txt
trunk/src/site/rst/business-rules.rst
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/BoatFilterImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Boats.properties
trunk/suiviobsmer-ui/src/main/webapp/Boats.tml
trunk/suiviobsmer-ui/src/main/webapp/css/boats.css
Log:
- Problem with filters Ano #2033 and #2042
- Ano #2034 : Bad calcul for realTides
Modified: trunk/changelog.txt
===================================================================
--- trunk/changelog.txt 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/changelog.txt 2010-01-22 18:48:16 UTC (rev 260)
@@ -4,6 +4,9 @@
0.1.2
-----
+- [fdesbois] Ano #2033 : Problème avec le filtre sur un code de ligne dans les synthèses
+- [fdesbois] Ano #2034 : Mauvais calcul des marées réels
+- [fdesbois] Ano #2042 : Problème sur les filtres de la page contacts (une validation les enlève)
- [fdesbois] Evol #2017 : Permettre la suppression d'un utilisateur non utilisé dans l'application
- [fdesbois] Evol #1959 : Contacts : Popup pour la sasie d'un commentaire sur une ligne
- [fdesbois] Evol #2030 : Refactoré filtres des navires pour utiliser la partie commune a ceux des contacts et des syntheses
Modified: trunk/src/site/rst/business-rules.rst
===================================================================
--- trunk/src/site/rst/business-rules.rst 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/src/site/rst/business-rules.rst 2010-01-22 18:48:16 UTC (rev 260)
@@ -101,10 +101,10 @@
- Calcul du nombre de marées réels :
- * Ajout si accepté (validé) par la société
- * Retrait si invalidé par la société après avoir été accepté
- * Retrait si refusé par le programme
- * Ajout si validé par le programme après avoir été refusé
+ * Ajout d'une marée si accepté (validé) par la société
+ * Retrait d'une marée si invalidé par la société après avoir été accepté
+ * Retrait d'une marée si refusé par le programme
+ * Ajout d'une marée si validé par le programme après avoir été refusé
- Unicité : code de la ligne du plan + immatriculation du navire + société + date de création (avec temps)
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/BoatFilterImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/BoatFilterImpl.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/BoatFilterImpl.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -63,4 +63,9 @@
public boolean isBoatFiltered() {
return StringUtils.isNotEmpty(getBoatName()) || StringUtils.isNotEmpty(getBoatDistrictCode()) || getBoatImmatriculation() != null;
}
+
+// @Override
+// public boolean isFiltered() {
+// return super.isFiltered() || isBoatFiltered();
+// }
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -81,6 +81,19 @@
}
query.add(contact + "." + Contact.VALIDATION_COMPANY, companyValidValues, getCompanyUndefined());
+ if (getState() != null) {
+ query.add(contact + "." + Contact.STATE, getState().toString());
+ }
+
return query;
}
+
+ @Override
+ public boolean isFiltered() {
+ return isBoatFiltered() || isSamplingFiltered() || getObserver() != null ||
+ getMammalsObservation() || getMammalsCapture() ||
+ getProgramAccepted() || getProgramRefused() || getProgramUndefined() ||
+ getCompanyAccepted() || getCompanyRefused() || getCompanyUndefined() ||
+ getState() != null;
+ }
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -89,4 +89,9 @@
getPeriod() != null || getProfession() != null;
}
+// @Override
+// public boolean isFiltered() {
+// return super.isFiltered() || isSamplingFiltered();
+// }
+
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactImpl.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactImpl.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -47,13 +47,15 @@
@Override
public void setTideBeginDate(Date beginDate) {
super.setTideBeginDate(beginDate);
- calculTideNbDays();
+ // Temporarly commented, tideNbDays is not used yet
+// calculTideNbDays();
}
@Override
public void setTideEndDate(Date beginDate) {
super.setTideEndDate(beginDate);
- calculTideNbDays();
+ // Temporarly commented, tideNbDays is not used yet
+// calculTideNbDays();
}
/**
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -205,13 +205,13 @@
if (contact.getTideEndDate() == null || contact.getTideBeginDate() == null) {
return;
}
- int nbDays = contact.getTideNbDays(); //getDifferenceDays(contact);
+ //int nbDays = contact.getTideNbDays(); //getDifferenceDays(contact);
SampleMonth month = getSampleMonth(contact.getTideBeginDate());
- if (log.isDebugEnabled()) {
- log.debug("Add tide time " + nbDays + " for " +
+ if (log.isTraceEnabled()) {
+ log.trace("Add 1 tide for " +
month.getPeriodMonth() + "/" + month.getPeriodYear() + " [" + this.getCode() + "]");
}
- month.addRealTideTime(nbDays);
+ month.addRealTideTime(1);
}
@Override
@@ -219,13 +219,13 @@
if (contact.getTideEndDate() == null || contact.getTideBeginDate() == null) {
return;
}
- int nbDays = contact.getTideNbDays(); //getDifferenceDays(contact);
+ //int nbDays = contact.getTideNbDays(); //getDifferenceDays(contact);
SampleMonth month = getSampleMonth(contact.getTideBeginDate());
- if (log.isDebugEnabled()) {
- log.debug("Remove tide time " + nbDays + " for " +
+ if (log.isTraceEnabled()) {
+ log.trace("Remove 1 tide for " +
month.getPeriodMonth() + "/" + month.getPeriodYear() + " [" + this.getCode() + "]");
}
- month.addRealTideTime(-nbDays);
+ month.addRealTideTime(-1);
}
@Override
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -339,8 +339,6 @@
try {
transaction = rootContext.beginTransaction();
- // TODO-FD20090106 add filters for facadeName and sectorName (in argument) for Boats and Contacts use
-
SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
TopiaQuery<SampleRow> query = dao.createQuery("S");
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -120,7 +120,7 @@
Contact contact = new ContactImpl();
Date beginDate = DateUtils.createDate(12, 4, 2009);
- Date endDate = DateUtils.createDate(12, 4, 2009);
+ Date endDate = DateUtils.createDate(15, 4, 2009);
contact.setTideBeginDate(beginDate);
contact.setTideEndDate(endDate);
@@ -129,16 +129,15 @@
SampleMonth result = getRowFromContext().getSampleMonth(beginDate);
assertEquals(1, result.getRealTidesValue());
- // Reinit result for next test
- result.addRealTideTime(-1);
-
- // Test with a more than one day interval dates from contact
- endDate = DateUtils.createDate(18, 4, 2009);
- contact.setTideEndDate(endDate);
-
- getRowFromContext().addRealTideTime(contact);
- result = getRowFromContext().getSampleMonth(beginDate);
- assertEquals(7, result.getRealTidesValue());
+// // Reinit result for next test
+// result.addRealTideTime(-1);
+// // Test with a more than one day interval dates from contact
+// endDate = DateUtils.createDate(18, 4, 2009);
+// contact.setTideEndDate(endDate);
+//
+// getRowFromContext().addRealTideTime(contact);
+// result = getRowFromContext().getSampleMonth(beginDate);
+// assertEquals(1, result.getRealTidesValue());
}
@Test
@@ -157,20 +156,19 @@
/** EXEC METHOD **/
row.removeRealTideTime(contact);
SampleMonth result = getRowFromContext().getSampleMonth(beginDate);
- // result stay at 0, can't remove 1 day from 0
+ // result stay at 0, can't remove 1 tide from 0
assertEquals(0, result.getRealTidesValue());
// Reinit result for next test
result.addRealTideTime(12);
- // Test with a more than one day interval dates from contact
+ // Test with a more than one day interval dates from contact : only one tide to remove
endDate = DateUtils.createDate(18, 4, 2009);
contact.setTideEndDate(endDate);
getRowFromContext().removeRealTideTime(contact);
result = getRowFromContext().getSampleMonth(beginDate);
- // result put to 5 : 12 - 7 (diff)
- assertEquals(5, result.getRealTidesValue());
+ assertEquals(11, result.getRealTidesValue());
}
@Test
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -134,6 +134,10 @@
*/
protected void initSelectFilters(boolean companySelect, boolean observerSelect) throws SuiviObsmerException {
+ if (log.isDebugEnabled()) {
+ log.debug("Filters : " + getFilter());
+ }
+
facadeSelectModel = null;
getFacadeSelectModel();
sectorSelectModel = null;
@@ -142,6 +146,9 @@
getSampleRowSelectModel();
if (getFilter().getSampleRow() != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("SampleRow filtered : " + getFilter().getSampleRow());
+ }
sampleRowId = getFilter().getSampleRow().getTopiaId();
}
@@ -201,7 +208,13 @@
if (log.isInfoEnabled()) {
log.info("BUSINESS REQUEST [getSampleRowsForUser]");
}
+
+ // WARN : no use of sampleRow filter
+ SampleRow rowFiltered = getFilter().getSampleRow();
+ getFilter().setSampleRow(null);
List<SampleRow> sampleRows = serviceSampling.getSampleRowsByFilter(getFilter());
+ getFilter().setSampleRow(rowFiltered);
+
sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class,
"code", "topiaId", propertyAccess);
}
@@ -286,8 +299,16 @@
// return null;
// }
- @Log
- public void onSuccess() throws SuiviObsmerException {
+ /**
+ * Called when search submit button is pressed. This method is useful to
+ * refresh all filters data from selects.
+ *
+ * @throws SuiviObsmerException
+ */
+ public void onSelectedFromSearch() throws SuiviObsmerException {
+ if (log.isDebugEnabled()) {
+ log.debug("REFRESH FILTERS DATA");
+ }
SampleRow row = getSampleRowSelectModel().findObject(sampleRowId);
getFilter().setSampleRow(row);
if (user.getAdmin()) {
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 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -352,9 +352,11 @@
* Other filters are managed by AbstractFilteredPage superclass.
*
* @throws SuiviObsmerException for business errors
- * @see AbstractFilteredPage
+ * @see AbstractFilteredPage#onSelectedFromSearch()
*/
- void onSelectedFromSearch() throws SuiviObsmerException {
+ @Override
+ public void onSelectedFromSearch() throws SuiviObsmerException {
+ super.onSelectedFromSearch();
if (log.isDebugEnabled()) {
log.debug("FILTER : facadeName=" + boatFilter.getFacadeName());
log.debug("FILTER : sectorName=" + boatFilter.getSectorName());
@@ -593,6 +595,8 @@
/** /////////////////////// ACTIONS //////////////////////////////////// **/
Block onSuccessFromCompanySelectForm() throws SuiviObsmerException {
+ // Must be call to refresh company data from select
+ super.onSelectedFromSearch();
companyBoatInfos = null;
// boatSelectedImmatriculation is getting from Persist("flash")
getCompanyBoatInfos();
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-22 18:48:16 UTC (rev 260)
@@ -123,6 +123,12 @@
contacts = null;
getContacts();
}
+ String boatName = getFilter().getBoatName();
+ boolean companyFiltered = getFilter().getCompany() != null && user.getAdmin();
+ // Show filters only if no boatName is set
+ if ((getContactFilter().isFiltered() || companyFiltered) && StringUtils.isEmpty(boatName)) {
+ filtersVisible = true;
+ }
contactsForm.clearErrors();
}
@@ -139,7 +145,7 @@
@Property
// @Persist(PersistenceConstants.FLASH)
- @Persist
+// @Persist
private boolean filtersVisible;
private boolean reset;
@@ -147,9 +153,6 @@
public ContactFilter getContactFilter() throws SuiviObsmerException {
if (contactFilter == null) {
contactFilter = new ContactFilterImpl();
-// if (!user.getAdmin()) {
-// contactFilter.setCompany(user.getCompany());
-// }
}
return contactFilter;
}
Modified: trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Boats.properties
===================================================================
--- trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Boats.properties 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Boats.properties 2010-01-22 18:48:16 UTC (rev 260)
@@ -14,7 +14,7 @@
# BOATS LIST
immatriculation-label: Imma.
buildYear-label: Ann\u00E9e
-boatLength-label: Longueur
+boatLength-label: Long.
# BOAT INFOS
referenceDate-label: Date
Modified: trunk/suiviobsmer-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Boats.tml 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-ui/src/main/webapp/Boats.tml 2010-01-22 18:48:16 UTC (rev 260)
@@ -87,7 +87,7 @@
<p:boatName>
<t:label t:for="boatName" />
<span> nom </span>
- <input t:type="textfield" t:id="boatName" t:value="filter.boatName" t:mixins="Autocomplete" />
+ <input t:type="textfield" t:id="boatName" class="width150" t:value="filter.boatName" t:mixins="Autocomplete" />
<span> immatriculation </span>
<input t:type="textfield" t:id="boatImmatriculation" class="width50" t:value="filter.boatImmatriculation" />
<span> code quartier </span>
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/boats.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/boats.css 2010-01-22 15:45:52 UTC (rev 259)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/boats.css 2010-01-22 18:48:16 UTC (rev 260)
@@ -7,7 +7,7 @@
*/
div#so-boats {
- width: 90%;
+ width: 100%;
margin-left: auto;
margin-right: auto;
margin-top: 20px;
1
0
[Suiviobsmer-commits] r259 - in trunk: src/site/resources src/site/rst suiviobsmer-business/src/main/filters suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages suiviobsmer-ui/src/main/webapp suiviobsmer-ui/src/main/webapp/css
by fdesbois@users.labs.libre-entreprise.org 22 Jan '10
by fdesbois@users.labs.libre-entreprise.org 22 Jan '10
22 Jan '10
Author: fdesbois
Date: 2010-01-22 15:45:52 +0000 (Fri, 22 Jan 2010)
New Revision: 259
Added:
trunk/src/site/resources/Modele_WAO.png
trunk/src/site/rst/model.rst
Modified:
trunk/suiviobsmer-business/src/main/filters/SuiviObsmer.properties
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java
trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Administration.properties
trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties
trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Synthesis.properties
trunk/suiviobsmer-ui/src/main/webapp/Administration.tml
trunk/suiviobsmer-ui/src/main/webapp/SamplingPlan.tml
trunk/suiviobsmer-ui/src/main/webapp/UserProfile.tml
trunk/suiviobsmer-ui/src/main/webapp/css/common.css
Log:
Change some style and text + other minor modifications
Added: trunk/src/site/resources/Modele_WAO.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/Modele_WAO.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/rst/model.rst
===================================================================
--- trunk/src/site/rst/model.rst (rev 0)
+++ trunk/src/site/rst/model.rst 2010-01-22 15:45:52 UTC (rev 259)
@@ -0,0 +1,8 @@
+Modèle de données
+=================
+
+:Author: $Author: fdesbois$
+:Revision: $Revision$
+:Date: $Date$
+
+.. image:: ../Modele_WAO.png
Modified: trunk/suiviobsmer-business/src/main/filters/SuiviObsmer.properties
===================================================================
--- trunk/suiviobsmer-business/src/main/filters/SuiviObsmer.properties 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-business/src/main/filters/SuiviObsmer.properties 2010-01-22 15:45:52 UTC (rev 259)
@@ -16,4 +16,4 @@
suiviobsmer.email.from=admin at suiviobsmer.org
## Version
-suiviobsmer.version=0.1.1
\ No newline at end of file
+suiviobsmer.version=0.1.2
\ No newline at end of file
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-22 15:45:52 UTC (rev 259)
@@ -218,6 +218,7 @@
//String harbourCode = reader.get("SYNA_POR_COD").trim();
String harbourCode = ImportHelper.read(reader, ACTIVITY_CALENDAR.SYNA_POR_COD);
boolean active = harbourCode != null && !harbourCode.equals("INA");
+ // FIXME-FD20100122 : INA a tester sur le code du métier : YOUPI ONE
ActivityMonth month = calendar.getActivityMonth(monthNum);
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java 2010-01-22 15:45:52 UTC (rev 259)
@@ -176,6 +176,8 @@
dao.update(user);
+ // FIXME-JC20100122 Use REGEX instead of @ to test if the login is
+ // a valid email
if (user.getLogin().contains("@") && user.isPasswordChanged()) {
String subject = "[WAO] ";
String msg = "Bonjour,\n\n";
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-22 15:45:52 UTC (rev 259)
@@ -273,6 +273,7 @@
user.setPasswordChanged(true);
}
try {
+ // TODO return true if mail ok
serviceUser.createUpdateUser(user, generatePassword);
userId = user.getId();
} catch (SuiviObsmerBusinessException eee) {
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-22 15:45:52 UTC (rev 259)
@@ -134,8 +134,8 @@
}
List<SortedMap<Date, Integer>> res = serviceSynthesis.getDataSampling(getFilter());
Map<String, SortedMap<Date, Integer>> data = new HashMap<String, SortedMap<Date, Integer>>();
- data.put("Données prévus", res.get(0));
- data.put("Données réels", res.get(1));
+ data.put("Planifié", res.get(0));
+ data.put("Réalisé", res.get(1));
String title = BusinessUtils.getDataSamplingTitle(getFilter());
return ChartUtils.createCategoryChart(title, "Nb marées", getDataSamplingChartType(), data);
}
Modified: trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Administration.properties
===================================================================
--- trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Administration.properties 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Administration.properties 2010-01-22 15:45:52 UTC (rev 259)
@@ -1,6 +1,6 @@
fishingZoneCsvFile-label: Fichier CSV des zones de p\u00EAche
companies-label: Liste des soci\u00E9t\u00E9s
-name-label: Nom
+name-label: Nom*
address1-label: Adresse
address2-label: Compl\u00E9ment d'adresse
postalCode-label: Code postal
@@ -8,9 +8,9 @@
phoneNumber-label: T\u00E9l\u00E9phone
email-label: E-mail
users-label: Liste des utilisateurs
-firstName-label: Pr\u00E9nom
-lastName-label: Nom
-login-label: Identifiant de connexion
+firstName-label: Pr\u00E9nom*
+lastName-label: Nom*
+login-label: Identifiant de connexion (email)*
active-label: Actif
generatePassword-label: G\u00E9n\u00E9rer le password
password-label: ou d\u00E9finir manuellement
\ No newline at end of file
Modified: trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties
===================================================================
--- trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties 2010-01-22 15:45:52 UTC (rev 259)
@@ -22,6 +22,9 @@
mammals-label: Observations et captures accidentelles
dataInputDate-label: Saisie des donn\u00E9es dans Allegro
comment-label: Com.
+professionCode-label: M\u00E9tier
+professionLibelle-label: Libell\u00E9 m\u00E9tier
+professionSpecies-label: Esp\u00E8ces cibles
# Form labels
contactsForm-errors-banner: Le contact n'a pas \u00E9t\u00E9 sauvegard\u00E9 \u00E0 cause des erreurs suivantes :
Modified: trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Synthesis.properties
===================================================================
--- trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Synthesis.properties 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Synthesis.properties 2010-01-22 15:45:52 UTC (rev 259)
@@ -5,4 +5,5 @@
boatDistrictCode-label: Quartier
facadeName-label: Fa\u00E7ade
sectorName-label: Zone
-sampleRow-label: Code ligne
\ No newline at end of file
+sampleRow-label: Code ligne
+company-label: Soci\u00E9t\u00E9
\ No newline at end of file
Modified: trunk/suiviobsmer-ui/src/main/webapp/Administration.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Administration.tml 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/webapp/Administration.tml 2010-01-22 15:45:52 UTC (rev 259)
@@ -26,7 +26,13 @@
</form>
<fieldset class="user-form clearfix">
- <form t:type="beaneditform" class="clearfix" t:id="company" t:include="name, address1, address2, postalCode, city, phoneNumber, email, active" />
+ <form t:type="beaneditform" class="clearfix" t:id="company"
+ t:include="name, address1, address2, postalCode, city, phoneNumber, email, active">
+ <p:name>
+ <t:label t:for="name" />
+ <input t:type="textfield" t:id="name" t:validate="required" value="company.name" />
+ </p:name>
+ </form>
</fieldset>
<t:if t:test="usersAvailable">
@@ -45,6 +51,14 @@
<fieldset class="user-form clearfix">
<form t:type="beaneditform" class="clearfix" t:id="user" t:include="firstName, lastName, login, password, phoneNumber, admin, active">
+ <p:firstName>
+ <t:label t:for="firstName" />
+ <input t:type="textfield" t:id="firstName" value="user.firstName" t:validate="required" />
+ </p:firstName>
+ <p:lastName>
+ <t:label t:for="lastName" />
+ <input t:type="textfield" t:id="lastName" value="user.lastName" t:validate="required" />
+ </p:lastName>
<p:login>
<t:label t:for="login" />
<input t:type="textfield" t:id="login" value="user.login" t:validate="required" />
Modified: trunk/suiviobsmer-ui/src/main/webapp/SamplingPlan.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/SamplingPlan.tml 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/webapp/SamplingPlan.tml 2010-01-22 15:45:52 UTC (rev 259)
@@ -138,9 +138,9 @@
</t:if>
</td>
</t:loop>
- <td class="width50 aright bright">${totalTidesExpected} (${totalTidesReal})</td>
- <td class="width60 aright">${row.averageTideTime}</td>
- <td class="width60 aright bright">${row.nbObservants}</td>
+ <td class="width50 acenter bright">${totalTidesExpected} (${totalTidesReal})</td>
+ <td class="width60 acenter">${row.averageTideTime}</td>
+ <td class="width60 acenter bright">${row.nbObservants}</td>
<!-- Actions -->
<td class="${actionsClass} bright">
<t:if t:test="canAccessBoats()">
Modified: trunk/suiviobsmer-ui/src/main/webapp/UserProfile.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/UserProfile.tml 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/webapp/UserProfile.tml 2010-01-22 15:45:52 UTC (rev 259)
@@ -13,6 +13,10 @@
<t:label t:for="password2" />
<input t:type="passwordfield" t:id="password2" value="password2"/>
</p:password2>
+<!-- <p:login>
+ <label>${message:login}</label>
+ ${user.login}
+ </p:login>-->
</form>
</fieldset>
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/common.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/common.css 2010-01-22 08:31:08 UTC (rev 258)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/common.css 2010-01-22 15:45:52 UTC (rev 259)
@@ -217,6 +217,7 @@
fieldset.user-form div.t-beaneditor span {
color: #007CC2;
font-weight: bold;
+ font-size: 0.8em;
}
fieldset#so-contacts-form div.t-beaneditor input.t-beaneditor-submit,
@@ -289,6 +290,7 @@
width: 120px;
color: #007CC2;
font-weight: bold;
+ font-size: 0.8em;
}
div.t-autocomplete-menu ul {
1
0
[Suiviobsmer-commits] r258 - in trunk: . suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl suiviobsmer-business/src/main/xmi suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages suiviobsmer-ui/src/main/webapp
by fdesbois@users.labs.libre-entreprise.org 22 Jan '10
by fdesbois@users.labs.libre-entreprise.org 22 Jan '10
22 Jan '10
Author: fdesbois
Date: 2010-01-22 08:31:08 +0000 (Fri, 22 Jan 2010)
New Revision: 258
Modified:
trunk/changelog.txt
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java
trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java
trunk/suiviobsmer-ui/src/main/webapp/Administration.tml
Log:
Evol #2017 : A user can be deleted if he is not linked with a contact or a sampleRowLog
Modified: trunk/changelog.txt
===================================================================
--- trunk/changelog.txt 2010-01-22 07:39:50 UTC (rev 257)
+++ trunk/changelog.txt 2010-01-22 08:31:08 UTC (rev 258)
@@ -4,6 +4,7 @@
0.1.2
-----
+- [fdesbois] Evol #2017 : Permettre la suppression d'un utilisateur non utilisé dans l'application
- [fdesbois] Evol #1959 : Contacts : Popup pour la sasie d'un commentaire sur une ligne
- [fdesbois] Evol #2030 : Refactoré filtres des navires pour utiliser la partie commune a ceux des contacts et des syntheses
- [fdesbois] Ano #2019 : L'affichage des zones sur le plan d'échantillonnage n'est pas cohérent avec les lignes.
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java 2010-01-22 07:39:50 UTC (rev 257)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java 2010-01-22 08:31:08 UTC (rev 258)
@@ -28,6 +28,10 @@
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
import fr.ifremer.suiviobsmer.entity.Company;
import fr.ifremer.suiviobsmer.entity.CompanyDAO;
+import fr.ifremer.suiviobsmer.entity.Contact;
+import fr.ifremer.suiviobsmer.entity.ContactDAO;
+import fr.ifremer.suiviobsmer.entity.SampleRowLog;
+import fr.ifremer.suiviobsmer.entity.SampleRowLogDAO;
import fr.ifremer.suiviobsmer.entity.User;
import fr.ifremer.suiviobsmer.entity.UserDAO;
import fr.ifremer.suiviobsmer.services.ServiceUser;
@@ -204,6 +208,47 @@
}
@Override
+ public void deleteUser(User user) throws SuiviObsmerException {
+ TopiaContext transaction = null;
+ try {
+ transaction = rootContext.beginTransaction();
+
+ String userType = user.getAdmin() ? "administrateur" : "observateur";
+ String msgBegin = "L'" + userType + " '" + user.getLogin() + "' ne peut pas être supprimé";
+ String msgEnd = "Vous pouvez cependant le désactiver pour qu'il ne puisse plus se connecter.";
+
+ if (user.getAdmin()) {
+ SampleRowLogDAO logDAO = SuiviObsmerModelDAOHelper.getSampleRowLogDAO(transaction);
+ List<SampleRowLog> results = logDAO.findAllByUser(user);
+
+ if (!results.isEmpty()) {
+ throw new SuiviObsmerBusinessException(Type.ALREADY_EXISTS, this.getClass(),
+ msgBegin + " car il a participé à la modification du plan d'échantillonnage. " + msgEnd);
+ }
+ } else {
+
+ ContactDAO contactDAO = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
+ List<Contact> results = contactDAO.findAllByUser(user);
+
+ if (!results.isEmpty()) {
+ throw new SuiviObsmerBusinessException(Type.ALREADY_EXISTS, this.getClass(),
+ msgBegin + " car il est lié à plusieurs contacts existants. " + msgEnd);
+ }
+ }
+
+
+ UserDAO dao = SuiviObsmerModelDAOHelper.getUserDAO(transaction);
+
+ dao.delete(user);
+
+ transaction.commitTransaction();
+ transaction.closeContext();
+ } catch (Exception eee) {
+ SuiviObsmerContext.serviceException(transaction, "Impossible de créer ou de mettre à jour l'utilisateur", eee);
+ }
+ }
+
+ @Override
public void createUpdateCompany(Company company) throws SuiviObsmerException {
TopiaContext transaction = null;
try {
Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
===================================================================
(Binary files differ)
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-22 07:39:50 UTC (rev 257)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-22 08:31:08 UTC (rev 258)
@@ -112,6 +112,7 @@
private boolean addNewCompanySelected;
private boolean addNewUserSelected;
+ private boolean deleteUserSelected;
void setupRender() {
companies = null;
@@ -241,13 +242,24 @@
addNewUserSelected = true;
}
- void onSuccessFromUserActionsForm() {
+ void onSelectedFromDeleteUser() {
+ deleteUserSelected = true;
+ }
+
+ void onSuccessFromUserActionsForm() throws SuiviObsmerException {
if (addNewUserSelected) {
userId = null;
+ } else if (deleteUserSelected && userId != null) {
+ user = getUsersSelectModel().findObject(userId);
+ try {
+ serviceUser.deleteUser(user);
+ user = null;
+ userId = null;
+ layout.getFeedBack().addInfo("Utilisateur supprimé avec succès !");
+ } catch (SuiviObsmerBusinessException eee) {
+ layout.getFeedBack().addError(eee.getMessage());
+ }
}
- // If login already defined by an other user :
- // popup : "Un autre utilisateur possède le même identifiant, voulez désactiver l'ancien compte ?"
- // Technique : catch exception for alreadyExist user
}
@Log
Modified: trunk/suiviobsmer-ui/src/main/webapp/Administration.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Administration.tml 2010-01-22 07:39:50 UTC (rev 257)
+++ trunk/suiviobsmer-ui/src/main/webapp/Administration.tml 2010-01-22 08:31:08 UTC (rev 258)
@@ -37,7 +37,9 @@
</div>
<div class="icons fleft">
<input t:type="submit" t:id="showUser" class="ico search" value="Show Details" t:title="Afficher détails" />
- <input t:type="submit" t:id="addNewUser" class="ico add" value="Add new company" t:title="Ajouter une nouvelle société" />
+ <input t:type="submit" t:id="deleteUser" class="ico22px delete" value="Delete user" t:title="Supprimer cet utilisateur"
+ t:mixins="Confirm" t:message="Etes-vous sûr de vouloir supprimer définitivement cet utilisateur ?" />
+ <input t:type="submit" t:id="addNewUser" class="ico add" value="Add new company" t:title="Ajouter un nouvel utilisateur" />
</div>
</form>
1
0
22 Jan '10
Author: fdesbois
Date: 2010-01-22 07:39:50 +0000 (Fri, 22 Jan 2010)
New Revision: 257
Modified:
trunk/changelog.txt
Log:
update changelog
Modified: trunk/changelog.txt
===================================================================
--- trunk/changelog.txt 2010-01-22 07:37:49 UTC (rev 256)
+++ trunk/changelog.txt 2010-01-22 07:39:50 UTC (rev 257)
@@ -4,6 +4,8 @@
0.1.2
-----
+- [fdesbois] Evol #1959 : Contacts : Popup pour la sasie d'un commentaire sur une ligne
+- [fdesbois] Evol #2030 : Refactoré filtres des navires pour utiliser la partie commune a ceux des contacts et des syntheses
- [fdesbois] Ano #2019 : L'affichage des zones sur le plan d'échantillonnage n'est pas cohérent avec les lignes.
0.1.1
1
0
[Suiviobsmer-commits] r256 - in trunk/suiviobsmer-ui/src/main: java/fr/ifremer/suiviobsmer/ui/pages resources/fr/ifremer/suiviobsmer/ui/pages webapp webapp/css
by fdesbois@users.labs.libre-entreprise.org 22 Jan '10
by fdesbois@users.labs.libre-entreprise.org 22 Jan '10
22 Jan '10
Author: fdesbois
Date: 2010-01-22 07:37:49 +0000 (Fri, 22 Jan 2010)
New Revision: 256
Modified:
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties
trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css
Log:
Evol #1959 : Add popup for comment using chenilleKit Window component + Js directly in tml page.
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-21 12:23:50 UTC (rev 255)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-22 07:37:49 UTC (rev 256)
@@ -113,10 +113,16 @@
@Persist(PersistenceConstants.FLASH)
private String editableContactId;
+ @Log
void setupRender() throws SuiviObsmerException {
- initSelectFilters(true ,true);
- contacts = null;
- getContacts();
+ if (StringUtils.isEmpty(editableContactId)) {
+ if (log.isDebugEnabled()) {
+ log.debug("RESET DATA");
+ }
+ initSelectFilters(true ,true);
+ contacts = null;
+ getContacts();
+ }
contactsForm.clearErrors();
}
@@ -328,6 +334,13 @@
this.contactState = contactState;
}
+ public String getCommentDisplayed() {
+ if (contact.getComment() != null && contact.getComment().length() > 20) {
+ return contact.getComment().substring(0, 20) + "...";
+ }
+ return contact.getComment();
+ }
+
public String getSampleRowDescription() {
return BusinessUtils.getTooltipSampleRow(contact.getSampleRow());
}
@@ -369,6 +382,9 @@
private boolean contactDeleted;
+ @Persist
+ private String oldComment;
+
public boolean hasActions() {
return !user.getAdmin() && contact.getValidationCompany() == null;
}
@@ -425,7 +441,8 @@
}
contact.setValidationProgram(null);
} else {
- // For company unvalidate from previous accepted validation, removeRealTideTime
+ // For company unvalidate from previous accepted validation,
+ // removeRealTideTime
if (BooleanUtils.isTrue(contact.getValidationCompany())) {
contact.getSampleRow().removeRealTideTime(contact);
}
@@ -438,6 +455,7 @@
contactUserId = contact.getUser().getTopiaId();
editableContactId = contactId;
contactSelectedId = contactId;
+ oldComment = contact.getComment();
contactEdited = true;
}
@@ -451,6 +469,10 @@
contact.setState(contactState.toString());
User contactUser = getUserSelectModel().findObject(contactUserId);
contact.setUser(contactUser);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Comment : " + contact.getComment());
+ }
}
void onSelectedFromCancelEditContact() throws SuiviObsmerException {
@@ -483,8 +505,8 @@
@InjectComponent
private Field nbObservants;
- @InjectComponent
- private Field comment;
+// @InjectComponent
+// private Field comment;
@InjectComponent
private Field inputDate;
@@ -492,7 +514,8 @@
@Log
void onValidateFormFromContactsForm() {
contactsForm.clearErrors();
- // Validation for saving contact depends on contactState (only edition form)
+ // Validation for saving contact depends on contactState (only edition
+ // form)
if (!contactEdited && contactState != null) {
if (log.isInfoEnabled()) {
log.info("For state : " + contactState);
@@ -509,12 +532,6 @@
"La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne " + row.getCode());
}
-// if (end != null && !DateUtils.between(end, row.getPeriodBegin(), row.getPeriodEnd())) {
-// contactsForm.recordError(endDate,
-// "La date de fin de la marée doit être comprise dans la période de la ligne : du " +
-// dateFormat.format(row.getPeriodBegin()) + " au " + dateFormat.format(row.getPeriodEnd()));
-// }
-
if (begin != null && end != null && end.before(begin)) {
contactsForm.recordError(endDate, "La date de fin de la marée ne peut pas être antérieure à celle de début");
}
@@ -535,7 +552,7 @@
// Non abouti, Refus ou Refus Définitif
if (contactState.isUnfinishedState()) {
- if (!StringUtils.isEmpty(contact.getComment())) {
+ if (oldComment != null && StringUtils.isNotEmpty(contact.getComment()) && !oldComment.equals(contact.getComment())) {
// RAZ des champs
contact.setTideBeginDate(null);
contact.setTideEndDate(null);
@@ -544,7 +561,7 @@
contact.setMammalsObservation(false);
contact.setDataInputDate(null);
} else {
- contactsForm.recordError(comment, "Le commentaire est obligatoire pour l'état '" + contactState + "'");
+ contactsForm.recordError("Vous devez ajouter un commentaire pour l'état '" + contactState + "'");
}
// Embarquement Réalisé
} else if (contactState.equals(ContactState.BOARDING_DONE)) {
@@ -570,6 +587,7 @@
}
serviceContact.saveContact(contact, contactDeleted);
contactSelectedId = contact.getTopiaId();
+ oldComment = null;
} catch (SuiviObsmerException eee) {
layout.getFeedBack().addError(eee.getMessage());
}
@@ -582,7 +600,8 @@
if (log.isDebugEnabled()) {
log.debug("Contact can't be saved with errors");
}
- // The contact is not saved, the contact must be editable to show form and correct errors
+ // The contact is not saved, the contact must be editable to show form
+ // and correct errors
contactEdited = true;
editableContactId = contact.getTopiaId();
return contactsForm;
Modified: trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties
===================================================================
--- trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties 2010-01-21 12:23:50 UTC (rev 255)
+++ trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties 2010-01-22 07:37:49 UTC (rev 256)
@@ -8,6 +8,8 @@
createdBy-label: Observateur
company-label: Soci\u00E9t\u00E9
sampleRow-label: M\u00E9tier
+boat-label: Navire
+state-label: Etat
topiaCreateDate-label: Cr\u00E9ation
tideBeginDate-label: D\u00E9but de la mar\u00E9e
tideEndDate-label: Fin de la mar\u00E9e
@@ -19,7 +21,7 @@
boatDistrictCode-label: CQ
mammals-label: Observations et captures accidentelles
dataInputDate-label: Saisie des donn\u00E9es dans Allegro
-comment-label: Commentaire
+comment-label: Com.
# Form labels
contactsForm-errors-banner: Le contact n'a pas \u00E9t\u00E9 sauvegard\u00E9 \u00E0 cause des erreurs suivantes :
Modified: trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-21 12:23:50 UTC (rev 255)
+++ trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-22 07:37:49 UTC (rev 256)
@@ -208,20 +208,32 @@
<input t:type="textarea" t:id="comment" cols="5" rows="3" value="contact.comment" />
</t:form>
</t:block>-->
- <input t:type="textarea" t:id="comment" cols="10" rows="1" value="contact.comment" />
-<!-- <a href="#" onclick="window1.showCenter(true)"><img src="${asset:context:}/img/comment-22px.png" alt="Add comment" /></a>
+ <!--<input t:type="hidden" t:id="comment" id="commentHidden" value="contact.comment"/>-->
+
+ <span t:type="ck/Tooltip" title="Commentaire" t:value="prop:contact.comment" t:effect="appear">
+ <a href="#" onclick="windowComment.showCenter(true); $('commentPopup').setValue($F('comment'))">
+ <img src="${asset:context:}/img/comment-22px.png" alt="Add comment" />
+ </a>
+ </span>
+ <textarea t:type="textarea" t:id="comment" class="hidden-textarea" cols="0" rows="0" value="contact.comment" />
- <div t:type="ck/Window" t:id="window1" style="bluelighting" show="false" modal="true" title="literal:Window 1">
- <h3>Test Window</h3>
+ <div t:type="ck/Window" t:id="windowComment" show="false" modal="true"
+ title="literal:Ajouter un commentaire" width="488" height="210">
<p>
- <input t:type="textarea" t:id="comment" cols="20" rows="6" value="contact.comment" />
- <input t:type="submit" t:id="saveComment" class="ico22px save22px" value="Save"
- t:context="contact.topiaId" title="Enregistrer le commentaire" />
+ <textarea id="commentPopup" cols="50" rows="7" />
</p>
- </div>-->
+ <p> </p>
+ <p class="aright">
+ <a onclick="$('comment').setValue($F('commentPopup')); windowComment.close()" class="save">
+ <img src="${asset:context:}/img/save-22px.png" alt="Save comment" title="Enregistrer le commentaire"/>
+ </a>
+ </p>
+ </div>
<p:else>
- ${contact.comment}
+ <span t:type="ck/Tooltip" title="Commentaire" t:value="prop:contact.comment" t:effect="appear">
+ ${commentDisplayed}
+ </span>
</p:else>
</t:if>
</p:commentCell>
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css 2010-01-21 12:23:50 UTC (rev 255)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css 2010-01-22 07:37:49 UTC (rev 256)
@@ -129,6 +129,16 @@
white-space: nowrap;
}
+div#so-contacts table.t-data-grid tbody tr td.comment {
+ white-space: normal;
+ width: 100px;
+ text-align: center;
+}
+
+a.save {
+ cursor: pointer;
+}
+
td.validation, td.mammals, /* TEMP */
div#so-contacts table.t-data-grid tbody td.validation,
div#so-contacts table.t-data-grid tbody td.mammals {
@@ -158,3 +168,9 @@
input.nbObservants {
width: 18px;
}
+
+textarea.hidden-textarea {
+ border: 0;
+ width: 0;
+ height: 0;
+}
1
0
21 Jan '10
Author: fdesbois
Date: 2010-01-21 12:23:50 +0000 (Thu, 21 Jan 2010)
New Revision: 255
Modified:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/BusinessUtils.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java
trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Boats.properties
trunk/suiviobsmer-ui/src/main/webapp/Boats.tml
trunk/suiviobsmer-ui/src/main/webapp/css/common.css
trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css
Log:
Evol #2030 : Refactor boats using AbstractFilteredPage + improve and add javadoc
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java 2010-01-21 12:23:50 UTC (rev 255)
@@ -46,29 +46,34 @@
@Override
public TopiaQuery prepareQueryForSampling(TopiaQuery query, String main) {
- //query = super.prepareQuery(query);
- //String sampleRow = main + ".sampleRow";
-
+ // SampleRow filter depends on SampleRow or sectorName or facadeName
if (getSampleRow() != null) {
query.add(main, getSampleRow());
- } else if (!StringUtils.isEmpty(getSectorName())) {
+ } else if (StringUtils.isNotEmpty(getSectorName())) {
query.addFrom(FishingZone.class.getName() + " F");
query.add("F." + FishingZone.SECTOR_NAME, getSectorName()).add(main + " IN elements(F." + FishingZone.SAMPLE_ROW + ")");
- } else if (!StringUtils.isEmpty(getFacadeName())) {
+ } else if (StringUtils.isNotEmpty(getFacadeName())) {
query.addFrom(FishingZone.class.getName() + " F");
query.add("F." + FishingZone.FACADE_NAME, getFacadeName()).add(main + " IN elements(F." + FishingZone.SAMPLE_ROW + ")");
}
+ // Profession filter
+ if (getProfession() != null) {
+ query.add(main + "." + SampleRow.PROFESSION, getProfession());
+ }
+
+ // Period filter on sampleRow dates
if (getPeriod() != null) {
getPeriod().initDayOfMonthExtremities();
query.add(main + "." + SampleRow.PERIOD_BEGIN, Op.LT, getPeriod().getThruDate()).
add(main + "." + SampleRow.PERIOD_END, Op.GT, getPeriod().getFromDate());
}
- if (getNbMonthFinishedFromToday() != null) {
+ /** Finished rows constraint only needed if an other filter is set **/
+ if (isSamplingFiltered() && getNbMonthFinishedFromToday() != null) {
// Only rows which are not finished will be kept
- //Date current = SuiviObsmerContext.getCurrentDate();
+ // Date current = SuiviObsmerContext.getCurrentDate();
Calendar calendar = new GregorianCalendar();
calendar.setTime(SuiviObsmerContext.getCurrentDate());
calendar.add(Calendar.MONTH, getNbMonthFinishedFromToday());
@@ -78,4 +83,10 @@
return query;
}
+ @Override
+ public boolean isSamplingFiltered() {
+ return getSampleRow() != null || StringUtils.isNotEmpty(getSectorName()) || StringUtils.isNotEmpty(getFacadeName()) ||
+ getPeriod() != null || getProfession() != 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 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-21 12:23:50 UTC (rev 255)
@@ -111,33 +111,35 @@
String main = query.getMainAlias();
query = filter.prepareQueryForBoat(query, main);
- boolean sampleRowCodeFiltered = !StringUtils.isEmpty(filter.getSampleRowCode());
- boolean professionFiltered = filter.getProfession() != null;
- boolean fishingZoneFiltered = filter.getFishingZone() != null;
- boolean sampleRowFiltered = sampleRowCodeFiltered || professionFiltered || fishingZoneFiltered;
+// boolean sampleRowCodeFiltered = !StringUtils.isEmpty(filter.getSampleRowCode());
+// boolean professionFiltered = filter.getProfession() != null;
+// boolean fishingZoneFiltered = filter.getFishingZone() != null;
+// boolean sampleRowFiltered = sampleRowCodeFiltered || professionFiltered || fishingZoneFiltered;
- // Add join for ElligibleBoat
- if (sampleRowFiltered) {
+ // Sampling filter
+ if (filter.isSamplingFiltered()) {
+ // Add join for ElligibleBoat
String elligibleBoatClassName = ElligibleBoat.class.getName();
query.addFrom(elligibleBoatClassName + " E").add("E.boat = " + main);
- }
- // SampleRowCode
- if (sampleRowCodeFiltered) {
- query.add("E.sampleRow.code", filter.getSampleRowCode());
- }
- // Profession
- if (professionFiltered) {
- query.add("E.sampleRow.profession", filter.getProfession());
- }
+ query = filter.prepareQueryForSampling(query, "E." + ElligibleBoat.SAMPLE_ROW);
- // TODO FishingZone
-
- // Company : only if an other filter is set for the sampleRow
- if (filter.getCompany() != null && sampleRowFiltered) {
- query.add("E.sampleRow.company", filter.getCompany());
- query.add("E.companyActive = :booleanTrue OR (E.companyActive IS NULL AND E.globalActive = :booleanTrue)").
- addParam("booleanTrue", Boolean.TRUE);
+ // Company
+ if (filter.getCompany() != null) {
+ query.add("E." + ElligibleBoat.SAMPLE_ROW + "." + SampleRow.COMPANY, filter.getCompany());
+ // Test only valid ElligibleBoat for that company
+ query.add("E." + ElligibleBoat.COMPANY_ACTIVE + " = :booleanTrue " +
+ "OR (E." + ElligibleBoat.COMPANY_ACTIVE + " IS NULL AND E." + ElligibleBoat.GLOBAL_ACTIVE + " = :booleanTrue)");
+ query.addParam("booleanTrue", Boolean.TRUE);
+ }
}
+// // SampleRowCode
+// if (sampleRowCodeFiltered) {
+// query.add("E.sampleRow.code", filter.getSampleRowCode());
+// }
+// // Profession
+// if (professionFiltered) {
+// query.add("E.sampleRow.profession", filter.getProfession());
+// }
return query;
}
Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
===================================================================
(Binary files differ)
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 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2010-01-21 12:23:50 UTC (rev 255)
@@ -152,7 +152,7 @@
// Exec with filter on SampleRowCode and company
filter = new BoatFilterImpl();
- filter.setSampleRowCode("2009_03");
+ filter.setSampleRow(rows.get(0)); // Code = 2009_03
filter.setCompany(company);
boats = service.getBoatsByFilter(filter);
assertEquals(2, boats.size());
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-21 12:23:50 UTC (rev 255)
@@ -67,6 +67,7 @@
* - Select change, use JavaScript :
* <script type="text/javascript">
* Event.observe('facadeName', 'change', function() { $('filtersForm').submit(); } );
+ * Event.observe('sectorName', 'change', function() { $('filtersForm').submit(); } );
* Event.observe('company', 'change', function() { $('filtersForm').submit(); } );
* </script>
* </pre>
@@ -124,7 +125,14 @@
@Property
private String observerId;
- protected void initFilter() throws SuiviObsmerException {
+ /**
+ * Initialize all select for filters. By default, only facade, sector and sampleRow selects will be initialized.
+ *
+ * @param companySelect if true, company select will be initialized
+ * @param observerSelect if true, observer select will be initialized
+ * @throws SuiviObsmerException
+ */
+ protected void initSelectFilters(boolean companySelect, boolean observerSelect) throws SuiviObsmerException {
facadeSelectModel = null;
getFacadeSelectModel();
@@ -137,7 +145,7 @@
sampleRowId = getFilter().getSampleRow().getTopiaId();
}
- if (user.getAdmin()) {
+ if (user.getAdmin() && companySelect) {
companySelectModel = null;
getCompanySelectModel();
if (getFilter().getCompany() != null) {
@@ -150,11 +158,13 @@
getFilter().setCompany(user.getCompany());
}
- observerSelectModel = null;
- getObserverSelectModel();
+ if (observerSelect) {
+ observerSelectModel = null;
+ getObserverSelectModel();
- if (getFilter().getObserver() != null) {
- observerId = getFilter().getObserver().getTopiaId();
+ if (getFilter().getObserver() != null) {
+ observerId = getFilter().getObserver().getTopiaId();
+ }
}
}
@@ -229,12 +239,15 @@
protected abstract BoatFilter getFilter() throws SuiviObsmerException;
- protected abstract void resetFilter();
-
// protected abstract Zone getSampleRowFilterZone();
//
// protected abstract Zone getObserverFilterZone();
+ /**
+ * Used to show only active company and observers.
+ *
+ * @return true if only active users will be showed, false either
+ */
protected abstract boolean getAvailableDataForFiltersOnly();
public String[] onProvideCompletionsFromBoatName(String input) throws SuiviObsmerException {
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/BusinessUtils.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/BusinessUtils.java 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/BusinessUtils.java 2010-01-21 12:23:50 UTC (rev 255)
@@ -120,7 +120,7 @@
return result;
}
- public static String getCSSColorClassForContact(Contact contact, boolean admin) {
+ public static String getContactStyle(Contact contact, boolean admin) {
String result = "";
ContactState state = ContactState.createContactStateEnum(contact.getState());
if (BooleanUtils.isFalse(contact.getValidationProgram()) ||
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 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-21 12:23:50 UTC (rev 255)
@@ -27,8 +27,6 @@
import fr.ifremer.suiviobsmer.entity.Boat;
import fr.ifremer.suiviobsmer.bean.BoatFilter;
import fr.ifremer.suiviobsmer.bean.CompanyBoatInfos;
-import fr.ifremer.suiviobsmer.bean.SamplingFilter;
-import fr.ifremer.suiviobsmer.bean.SamplingFilterImpl;
import fr.ifremer.suiviobsmer.entity.BoatInfos;
import fr.ifremer.suiviobsmer.entity.Company;
import fr.ifremer.suiviobsmer.entity.Contact;
@@ -41,6 +39,7 @@
import fr.ifremer.suiviobsmer.services.ServiceReferential;
import fr.ifremer.suiviobsmer.services.ServiceSampling;
import fr.ifremer.suiviobsmer.services.ServiceUser;
+import fr.ifremer.suiviobsmer.ui.base.AbstractFilteredPage;
import fr.ifremer.suiviobsmer.ui.data.BusinessUtils;
import fr.ifremer.suiviobsmer.ui.base.GenericSelectModel;
import fr.ifremer.suiviobsmer.ui.base.SuiviObsmerPage;
@@ -89,7 +88,7 @@
* par : $Author$
*/
@IncludeStylesheet("context:css/boats.css")
-public class Boats implements SuiviObsmerPage {
+public class Boats extends AbstractFilteredPage implements SuiviObsmerPage {
@Override
public boolean isOnlyForAdmin() {
@@ -119,7 +118,7 @@
private PropertyAccess propertyAccess;
@Property
- private String sampleRowCode;
+ private String sampleRowContextId;
@InjectComponent
private FeedBack filterFeedback;
@@ -127,57 +126,45 @@
void setupRender() throws SuiviObsmerException {
sampleRow = null;
getSampleRow();
+ // Profession select reset
professionSelectModel = null;
getProfessionSelectModel();
- fishingZoneSelectModel = null;
- getFishingZoneSelectModel();
- sampleRowSelectModel = null;
- getSampleRowSelectModel();
- // Suppress persistant boat informations for selected boat
- //boatInfos = null;
- companyBoatInfos = null;
- boatSelectedImmatriculation = null;
+ // Manage sampleRow from context
if (isSampleRowExists()) {
+ // Filters will be set and displayed
+ getFilter().setSampleRow(sampleRow);
filtersHidden = false;
boats = null;
filterFeedback.addInfo("Vous êtes en cours de sélection d'un navire pour la ligne du plan " + sampleRow.getCode());
professionId = getSampleRow().getProfession().getTopiaId();
- // FIXME FD-20100121 Missing filter for fishingZone --> Need use of AbstratFilteredPage
- //fishingZoneId = getSampleRow().getFirstFishingZone().getTopiaId();
- getBoatFilter().setSampleRowCode(getSampleRow().getCode());
}
+
+ // Initialize filters using AbstractFilteredPage superclass
+ initSelectFilters(true, false);
+ // Only rows which are not finished nearly one month
+ getFilter().setNbMonthFinishedFromToday(-1);
+
+ companyBoatInfos = null;
+ boatSelectedImmatriculation = null;
}
void onActivate(EventContext ec) {
if (ec.getCount() > 0) {
- sampleRowCode = ec.get(String.class, 0);
+ sampleRowContextId = ec.get(String.class, 0);
}
}
String onPassivate() {
- return sampleRowCode;
+ return sampleRowContextId;
}
/**************************** Import Forms ********************************/
- /**
- * Fichier CSV contenant une liste de navires.
- */
+ /** Csv file for boats import */
@Property
private UploadedFile boatsCsvFile;
- @InjectComponent
- private Form importBoatsForm;
-
- /**
- * Récupération des exceptions du champs d'upload de fichier.
- */
- /*Object onUploadException(FileUploadException ex) {
- createListForm.recordError("Upload exception: " + ex.getMessage());
- return this;
- }*/
-
@Log
void onSuccessFromImportBoatsForm() {
//importBoatsForm.clearErrors();
@@ -189,9 +176,9 @@
} catch (SuiviObsmerException eee) {
layout.getFeedBack().addError(eee.getMessage());
}
- //return importBoatsForm.getHasErrors() ? importBoatsForm : this;
}
+ /** Csv file for activityCalendar import, can be a Gzip file */
@Property
private UploadedFile activityCalendarsCsvFile;
@@ -258,55 +245,61 @@
/**************************** Filters Form *****************************************/
+ /** Filters to apply on boats list */
@Persist
private BoatFilter boatFilter;
+ /** Current sampleRow from context */
@Persist
private SampleRow sampleRow;
+ /** Profession select */
@Persist
- private GenericSelectModel<SampleRow> sampleRowSelectModel;
-
- @Persist
private GenericSelectModel<Profession> professionSelectModel;
@Property
private String professionId;
+ /** Used to manage view of filters zone */
@Persist
- private GenericSelectModel<FishingZone> fishingZoneSelectModel;
-
- @Property
- private String fishingZoneId;
-
- @Persist
private boolean filtersHidden;
@InjectComponent
private Zone filtersZone;
- public BoatFilter getBoatFilter() throws SuiviObsmerException {
+ /**
+ * Filters to apply on boats list. Method used by AbstractFilteredPage superclass.
+ *
+ * @return the current BoatFilter to apply
+ * @throws SuiviObsmerException
+ * @see AbstractFilteredPage
+ */
+ @Override
+ public BoatFilter getFilter() throws SuiviObsmerException {
if (boatFilter == null) {
boatFilter = new BoatFilterImpl();
- if (log.isDebugEnabled()) {
- log.debug("new BoatFilter");
- }
- if (!user.getAdmin()) {
- if (log.isDebugEnabled()) {
- log.debug("set company for boatFilter");
- }
- boatFilter.setCompany(user.getCompany());
- }
}
return boatFilter;
}
+ @Override
+ protected boolean getAvailableDataForFiltersOnly() {
+ return true;
+ }
+
+ /**
+ * Retrieve sampleRow from business with id from url context. The sampleRowId from context is set by SamplingPlan page.
+ * When the sampleRow is not null, the filters are disabled to optimize searching boats for this row.
+ *
+ * @return the sampleRow from business
+ * @throws SuiviObsmerException
+ */
public SampleRow getSampleRow() throws SuiviObsmerException {
- if (sampleRow == null && !StringUtils.isEmpty(sampleRowCode)) {
+ if (sampleRow == null && !StringUtils.isEmpty(sampleRowContextId)) {
if (log.isInfoEnabled()) {
log.info("BUSINESS REQUEST [getSampleRow]");
}
- sampleRow = serviceSampling.getSampleRow(sampleRowCode);
+ sampleRow = serviceSampling.getSampleRow(sampleRowContextId);
}
return sampleRow;
}
@@ -315,25 +308,6 @@
return getSampleRow() != null;
}
- public GenericSelectModel<SampleRow> getSampleRowSelectModel() throws SuiviObsmerException {
- if (sampleRowSelectModel == null) {
- if (log.isInfoEnabled()) {
- log.info("BUSINESS REQUEST [getSampleRowsForUser]");
- }
- // FIXME-FD20100118 Refactor filter system using AbstractFilteredPage
- SamplingFilter filter = new SamplingFilterImpl();
- // Used to test if the rows are finished with a gap of 1 month (today - 1 month)
- filter.setNbMonthFinishedFromToday(-1);
- if (!user.getAdmin()) {
- filter.setCompany(user.getCompany());
- }
- List<SampleRow> sampleRows = serviceSampling.getSampleRowsByFilter(filter);
- sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class,
- "code", "code", propertyAccess);
- }
- return sampleRowSelectModel;
- }
-
public GenericSelectModel<Profession> getProfessionSelectModel() throws SuiviObsmerException {
if (professionSelectModel == null) {
if (log.isInfoEnabled()) {
@@ -346,28 +320,11 @@
return professionSelectModel;
}
- public GenericSelectModel<FishingZone> getFishingZoneSelectModel() throws SuiviObsmerException {
- if (fishingZoneSelectModel == null) {
- if (log.isInfoEnabled()) {
- log.info("BUSINESS REQUEST [getFishingZones]");
- }
- List<FishingZone> fishingZones = null;
- if (isSampleRowExists()) {
- fishingZones = getSampleRow().getFishingZone();
- } else {
- fishingZones = serviceReferential.getFishingZones();
- }
- fishingZoneSelectModel = new GenericSelectModel<FishingZone>(fishingZones, FishingZone.class,
- "code", "topiaId", propertyAccess);
- }
- return fishingZoneSelectModel;
- }
-
public boolean isFiltersHidden() {
return filtersHidden;
}
- public String getHiddenClass() {
+ public String getHiddenStyle() {
return isFiltersHidden() ? "hidden" : "";
}
@@ -380,18 +337,28 @@
filtersHidden = true;
return filtersZone.getBody();
}
-
+
+ /**
+ * EVENT_SELECTED :: reset submit button for filtersForm. Reset filters and sampleRow from context.
+ */
void onSelectedFromReset() {
- // Suppress persistant boat filter
+ // Suppress persistant boat filter and sampleRowId in url context.
boatFilter = null;
- sampleRowCode = null;
+ sampleRowContextId = null;
}
+ /**
+ * EVENT_SELECTED :: search sumit button for filtersForm. Get profession from selectModel to add it in filters.
+ * Other filters are managed by AbstractFilteredPage superclass.
+ *
+ * @throws SuiviObsmerException for business errors
+ * @see AbstractFilteredPage
+ */
void onSelectedFromSearch() throws SuiviObsmerException {
if (log.isDebugEnabled()) {
- //log.debug("SUBMIT : facadeChange=" + facadeChangeSelected);
- log.debug("FILTER : fishingZone=" + boatFilter.getFishingZone());
- log.debug("FILTER : sampleRowCode=" + boatFilter.getSampleRowCode());
+ log.debug("FILTER : facadeName=" + boatFilter.getFacadeName());
+ log.debug("FILTER : sectorName=" + boatFilter.getSectorName());
+ log.debug("FILTER : sampleRow=" + boatFilter.getSampleRow());
log.debug("FILTER : profession=" + boatFilter.getProfession());
log.debug("FILTER : boatName=" + boatFilter.getBoatName());
log.debug("FILTER : boatImmatriculation=" + boatFilter.getBoatImmatriculation());
@@ -399,57 +366,66 @@
log.debug("FILTER : company=" + boatFilter.getCompany());
}
Profession profession = getProfessionSelectModel().findObject(professionId);
- FishingZone fishingZone = getFishingZoneSelectModel().findObject(fishingZoneId);
boatFilter.setProfession(profession);
- boatFilter.setFishingZone(fishingZone);
}
+ /**
+ * EVENT_SUCCESS :: for filtersForm. Reset persitant data to have new data using filters selected.
+ *
+ * @throws SuiviObsmerException for business errors
+ */
void onSuccessFromFiltersForm() throws SuiviObsmerException {
// Suppress persistant boats list to get new one with filter
boats = null;
// Suppress persistant immatriculation for boat selected
boatSelectedImmatriculation = null;
// Suppress persistant boat informations for boat selected
- //boatInfos = null;
companyBoatInfos = null;
}
/**************************** Boats List *****************************************/
-
+
+ /** DataSource containing the boats */
@Persist
-// private Map<Integer, Boat> boats;
private BoatDataSource boats;
+ /** Selected boat immatriculation for showing boatInfos */
@Property
@Persist
private Integer boatSelectedImmatriculation;
+ /** Current boat in the Grid */
@Property
private Boat boat;
+ /** Used to change style a line on two */
private boolean even = true;
+ /** Used to refresh boats Grid */
@InjectComponent
private Zone boatsZone;
+ /**
+ * Get dataSource which contains current boats to show on the page. Depends on filters sets by user.
+ * BoatDataSource uses serviceBoat to retrieve boats with filters.
+ *
+ * @return the BoatDataSource which contains the boats map
+ * @throws SuiviObsmerException
+ * @see BoatDataSource
+ */
public BoatDataSource getBoats() throws SuiviObsmerException {
if (boats == null) {
- boats = new BoatDataSource(getBoatFilter(), serviceBoat);
+ boats = new BoatDataSource(getFilter(), serviceBoat);
}
return boats;
}
-// public Map<Integer, Boat> getBoats() throws SuiviObsmerException {
-// if (boats == null) {
-// if (log.isInfoEnabled()) {
-// log.info("BUSINESS REQUEST [getBoatsByFilter]");
-// }
-// boats = serviceBoat.getBoatsByFilter(boatFilter);
-// }
-// return boats;
-// }
-
- public String getRowClass() {
+ /**
+ * Initialized row CSS style depends on selection in the list. The style is also changed a line on two.
+ *
+ * @return the CSS style class to used for the current row in the Grid
+ */
+ public String getRowStyle() {
String result = "";
even = !even;
if (boatSelectedImmatriculation != null &&
@@ -469,9 +445,6 @@
public boolean canCreateNewContactFromList() throws SuiviObsmerException {
if (!user.getAdmin() && isSampleRowExists()) {
-// if (getSampleRow().isFinished()) {
-// return false;
-// }
return boat.canCreateContact(user.getCompany());
}
return false;
@@ -480,15 +453,7 @@
Block onActionFromShowBoatInfos(Integer boatImma) {
boatSelectedImmatriculation = boatImma;
// Suppress persistant boat informations
- //boatInfos = null;
- companyBoatInfos = null;
- //companyId = null;
-
- // Initialize from Date for boarding calcul in BoatInfos
- Calendar calendar = new GregorianCalendar();
- calendar.add(Calendar.MONTH, -12);
- boardingFromDate = calendar.getTime();
-
+ companyBoatInfos = null;
return boatsZone.getBody();
}
@@ -514,15 +479,6 @@
private boolean boatInfosEditable;
- @Inject
- private ServiceUser serviceUser;
-
- private GenericSelectModel<Company> companySelectModel;
-
- @Property
- private String companyId;
-
- @Property
private Date boardingFromDate;
/*@Persist
@@ -534,10 +490,6 @@
return SuiviObsmerContext.isActivityCalendarImportRun();
}
- public boolean canShowActiveBoatInfos() {
- return (user.getAdmin() && companyId != null) || !user.getAdmin();
- }
-
public Block getActiveBoatInfosBlock() {
if (boatInfosEditable) {
return editBoatInfos;
@@ -545,52 +497,74 @@
return displayBoatInfos;
}
- public Company getCompany() throws SuiviObsmerException {
- if (user.getAdmin() && companyId != null) {
- return getCompanySelectModel().findObject(companyId);
- }
- return user.getCompany();
- }
-
- public GenericSelectModel<Company> getCompanySelectModel() throws SuiviObsmerException {
- if (companySelectModel == null) {
- if (log.isDebugEnabled()) {
- log.debug("BUSINESS REQUEST [getCompanies]");
- }
- List<Company> companies = serviceUser.getCompanies(true);
- companySelectModel = new GenericSelectModel<Company>(companies,Company.class,
- "name","topiaId",propertyAccess);
- }
- return companySelectModel;
- }
-
public CompanyBoatInfos getCompanyBoatInfos() throws SuiviObsmerException {
if (companyBoatInfos == null && boatSelectedImmatriculation != null) {
if (log.isInfoEnabled()) {
log.info("BUSINESS REQUEST [getElligibleBoats]");
}
+ // Use filter to retrieve company
+ Company company = getFilter().getCompany() != null ? getFilter().getCompany() : user.getCompany();
companyBoatInfos =
- serviceBoat.getCompanyBoatInfos(boatSelectedImmatriculation, getCompany());
+ serviceBoat.getCompanyBoatInfos(boatSelectedImmatriculation, company);
}
return companyBoatInfos;
}
+ /**
+ * Used to get the selected boat name. This method is useful to avoid problems when using only boatInfos.
+ * Actually, the name is displayed when the boat is selected.
+ *
+ * @return
+ * @throws SuiviObsmerException
+ */
public String getBoatName() throws SuiviObsmerException {
- Boat boat = null;
+ Boat selectedBoat = null;
if (getBoatInfos() != null) {
- boat = getBoatInfos().getBoat();
+ selectedBoat = getBoatInfos().getBoat();
+ } else {
+ selectedBoat = getBoats().get(boatSelectedImmatriculation);
}
- boat = getBoats().get(boatSelectedImmatriculation);
- return boat.getName();
+ return selectedBoat.getName();
}
+ /**
+ * Date for calculate boardings done for the selected boat. All boardings (number of contacts) will be calculated from this date.
+ * Initialized as 12 months from today, but can be set by user.
+ *
+ * @return the Date used to calculate boardings done on the selected boat
+ */
+ public Date getBoardingFromDate() {
+ if (boardingFromDate == null) {
+ Calendar calendar = new GregorianCalendar();
+ calendar.add(Calendar.MONTH, -12);
+ boardingFromDate = calendar.getTime();
+ }
+ return boardingFromDate;
+ }
+
+ /**
+ * Used by Tapestry to set the boardingFromDate from calculateBoardings form.
+ *
+ * @param boardingFromDate used to calculate boardings done on the selected boat
+ */
+ public void setBoardingFromDate(Date boardingFromDate) {
+ this.boardingFromDate = boardingFromDate;
+ }
+
public BoatInfos getBoatInfos() throws SuiviObsmerException {
return getCompanyBoatInfos().getBoatInfos();
}
- public String getlastContactClass() throws SuiviObsmerException {
+ /**
+ * Get CSS style class to apply on lastContact depends on its state.
+ *
+ * @return the CSS style to apply on contact block
+ * @throws SuiviObsmerException
+ * @see BusinessUtils#getContactStyle(Contact, boolean)
+ */
+ public String getlastContactStyle() throws SuiviObsmerException {
Contact contact = getCompanyBoatInfos().getLastContact();
- return BusinessUtils.getCSSColorClassForContact(contact, user.getAdmin());
+ return BusinessUtils.getContactStyle(contact, user.getAdmin());
}
/** /////////////////////// FOR EACH ELLIGIBLEBOAT ROW ///////////////// **/
@@ -604,20 +578,15 @@
}
public boolean canCreateNewContactFromElligibleBoat() throws SuiviObsmerException {
- if (!user.getAdmin() && !isElligibleBoatCompanyActiveFalse()) {
-// SampleRow row = elligibleBoat.getSampleRow();
-// if (row.isFinished()) {
-// return false;
-// }
+ if (!user.getAdmin() && !isElligibleBoatCompanyActiveFalse()) {
Boat boat = getBoatInfos().getBoat();
return boat.canCreateContact(user.getCompany());
}
return false;
}
- public String getElligibleRowClass() {
+ public String getElligibleRowStyle() {
boolean condition1 = elligibleBoat.getCompanyActive() == null && !elligibleBoat.getGlobalActive();
-
return condition1 || isElligibleBoatCompanyActiveFalse() ? "line-through" : "";
}
@@ -677,10 +646,6 @@
}
Block onSuccessFromCalculateBoardings() throws SuiviObsmerException {
- // Reinitialiaze companyId for select (admin only)
- if (user.getAdmin()) {
- companyId = getCompanyBoatInfos().getCompany().getTopiaId();
- }
return boatInfosZone.getBody();
}
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-21 12:23:50 UTC (rev 255)
@@ -114,7 +114,7 @@
private String editableContactId;
void setupRender() throws SuiviObsmerException {
- initFilter();
+ initSelectFilters(true ,true);
contacts = null;
getContacts();
contactsForm.clearErrors();
@@ -152,12 +152,6 @@
protected BoatFilter getFilter() throws SuiviObsmerException {
return getContactFilter();
}
-
- @Override
- protected void resetFilter() {
- contactFilter = null;
- filtersVisible = false;
- }
// @Override
// protected Zone getSampleRowFilterZone() {
@@ -347,7 +341,7 @@
}
public String getRowClass() {
- String result = BusinessUtils.getCSSColorClassForContact(contact, user.getAdmin());
+ String result = BusinessUtils.getContactStyle(contact, user.getAdmin());
if (contact.getTopiaId().equals(contactSelectedId)) {
result = "selected";
}
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-21 12:23:50 UTC (rev 255)
@@ -77,7 +77,7 @@
private User user;
void setupRender() throws SuiviObsmerException {
- initFilter();
+ initSelectFilters(true, false);
//getFilter().setUnfinishedRowsOnly(false);
}
@@ -113,11 +113,6 @@
return dataSamplingFilter;
}
- @Override
- protected void resetFilter() {
- dataSamplingFilter = null;
- }
-
// @Override
// protected Zone getSampleRowFilterZone() {
// return sampleRowZone;
@@ -174,7 +169,7 @@
void onSuccessFromFiltersForm() {
if (reset) {
- resetFilter();
+ dataSamplingFilter = null;
}
}
Modified: trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Boats.properties
===================================================================
--- trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Boats.properties 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Boats.properties 2010-01-21 12:23:50 UTC (rev 255)
@@ -3,7 +3,7 @@
# FILTERS
sampleRow-label: Ligne du plan
-fishingZone-label: Zone de p\u00EAche
+facadeName-label: Fa\u00E7ade
profession-label: M\u00E9tier du plan
boatName-label: Navire
districtCode-label: Quartier
Modified: trunk/suiviobsmer-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Boats.tml 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/webapp/Boats.tml 2010-01-21 12:23:50 UTC (rev 255)
@@ -64,20 +64,22 @@
</t:if>
</div>
<t:feedback t:id="filterFeedback" />
- <div class="so-filters-form ${hiddenClass}">
+ <div class="so-filters-form ${hiddenStyle}">
<form t:type="form" t:id="filtersForm">
<t:errors />
<div class="t-beaneditor">
- <t:beaneditor t:id="filtersEditor" t:object="boatFilter"
- t:include="boatName" t:add="sampleRow, fishingZone, profession" t:reorder="sampleRow, fishingZone, profession, boatName">
+ <t:beaneditor t:id="filtersEditor" t:object="filter"
+ t:include="boatName" t:add="facade, sampleRow, profession" t:reorder="facade, sampleRow, profession, boatName">
+ <p:facade>
+ <t:label t:for="facadeName" />
+ <select t:type="select" t:id="facadeName" t:model="facadeSelectModel" value="filter.facadeName" />
+ <span> zone </span>
+ <select t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="filter.sectorName" />
+ </p:facade>
<p:sampleRow>
<t:label t:for="sampleRow" />
- <select t:type="select" t:id="sampleRow" t:disabled="sampleRowExists" t:model="sampleRowSelectModel" value="boatFilter.sampleRowCode" />
+ <select t:type="select" t:id="sampleRow" t:disabled="sampleRowExists" t:model="sampleRowSelectModel" value="sampleRowId" />
</p:sampleRow>
- <p:fishingZone>
- <t:label t:for="fishingZone" />
- <select t:type="select" t:id="fishingZone" t:model="fishingZoneSelectModel" value="fishingZoneId" />
- </p:fishingZone>
<p:profession>
<t:label t:for="profession" />
<select t:type="select" t:id="profession" t:disabled="sampleRowExists" t:model="professionSelectModel" value="professionId" />
@@ -85,11 +87,11 @@
<p:boatName>
<t:label t:for="boatName" />
<span> nom </span>
- <input t:type="textfield" t:id="boatName" t:value="boatFilter.boatName" />
+ <input t:type="textfield" t:id="boatName" t:value="filter.boatName" t:mixins="Autocomplete" />
<span> immatriculation </span>
- <input t:type="textfield" t:id="boatImmatriculation" class="width50" t:value="boatFilter.boatImmatriculation" />
+ <input t:type="textfield" t:id="boatImmatriculation" class="width50" t:value="filter.boatImmatriculation" />
<span> code quartier </span>
- <input t:type="textfield" t:id="boatDistrictCode" class="width50" t:value="boatFilter.boatDistrictCode" />
+ <input t:type="textfield" t:id="boatDistrictCode" class="width50" t:value="filter.boatDistrictCode" />
</p:boatName>
</t:beaneditor>
<div class="t-beaneditor-row aright">
@@ -108,7 +110,7 @@
<div class="fleft" id="so-boats-list">
<h1>Liste des navires</h1>
<div t:type="grid" t:source="boats" t:row="boat"
- t:include="name, immatriculation, districtCode, boatLength, buildYear" t:rowClass="prop:rowClass" t:rowsPerPage="20">
+ t:include="name, immatriculation, districtCode, boatLength, buildYear" t:rowClass="prop:rowStyle" t:rowsPerPage="20">
<p:nameCell>
<t:if t:test="canCreateNewContactFromList()">
<a t:type="actionlink" t:id="addNewContactFromBoat" t:context="boat.immatriculation">
@@ -137,7 +139,7 @@
</form>
</t:if>
<!-- BODY - delegator -->
- <t:if t:test="canShowActiveBoatInfos()">
+ <t:if t:test="filter.company">
<t:delegate to="activeBoatInfosBlock" />
</t:if>
<!-- BODY - activity calendar -->
@@ -194,7 +196,7 @@
<t:if t:test="companyBoatInfos.lastContact">
<fieldset id="so-boats-boat-infos-lastcontact">
<legend>Dernier contact avec le navire pour votre société</legend>
- <div class="${lastContactClass}">
+ <div class="${lastContactStyle}">
<dl t:type="beandisplay" t:id="boatInfosLastContact" t:object="companyBoatInfos.lastContact"
t:include="referenceDate, state" t:add="createdBy, sampleRowCode">
<p:createdBy>
@@ -233,7 +235,7 @@
</p>
<p class="sep"> </p>
<p>
- <form t:type="form" t:id="CalculateBoardings" t:zone="so-boats-boat-infos">
+ <form t:type="form" t:id="calculateBoardings" t:zone="so-boats-boat-infos">
<t:label t:for="fromDate"/> :
<input t:type="datefield" t:id="fromDate" class="width70" value="boardingFromDate" />
<input t:type="submit" class="ico refresh" t:id="refreshBoardings" value="Refresh" title="Recalculer les embarquements"/>
@@ -249,7 +251,7 @@
<ul>
<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}">
+ <span class="${elligibleRowStyle}">
${elligibleBoat.sampleRow.code}
</span>
</span>
@@ -329,7 +331,7 @@
<ul>
<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}">
+ <span class="${elligibleRowStyle}">
${elligibleBoat.sampleRow.code}
</span>
</span>
@@ -359,7 +361,9 @@
</t:if>
</div>
-
-
-
+ <!-- Script for filters change -->
+ <script type="text/javascript">
+ Event.observe('facadeName', 'change', function() { $('filtersForm').submit(); } );
+ Event.observe('sectorName', 'change', function() { $('filtersForm').submit(); } );
+ </script>
</t:layout>
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/common.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/common.css 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/common.css 2010-01-21 12:23:50 UTC (rev 255)
@@ -291,7 +291,11 @@
font-weight: bold;
}
+div.t-autocomplete-menu ul {
+ background-color: #19a28d;
+}
+
/***** ZONE IMPORT *****/
div.so-import {
width: 60%;
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css 2010-01-21 09:39:18 UTC (rev 254)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css 2010-01-21 12:23:50 UTC (rev 255)
@@ -46,9 +46,9 @@
border: 1px outset black;
}
-div#so-contacts-search div.t-autocomplete-menu ul {
+/*div#so-contacts-search div.t-autocomplete-menu ul {
background-color: #19a28d;
-}
+}*/
div#so-contacts-search a {
text-decoration: none;
1
0
21 Jan '10
Author: fdesbois
Date: 2010-01-21 09:39:18 +0000 (Thu, 21 Jan 2010)
New Revision: 254
Modified:
trunk/changelog.txt
Log:
- Ano #2019 : Add header for multiple zone in samplingPlan (refactor getFirstFishingZone by two methods getFacade and getSectors)
Modified: trunk/changelog.txt
===================================================================
--- trunk/changelog.txt 2010-01-21 09:37:59 UTC (rev 253)
+++ trunk/changelog.txt 2010-01-21 09:39:18 UTC (rev 254)
@@ -1,6 +1,11 @@
Release note
============
+0.1.2
+-----
+
+- [fdesbois] Ano #2019 : L'affichage des zones sur le plan d'échantillonnage n'est pas cohérent avec les lignes.
+
0.1.1
-----
1
0
[Suiviobsmer-commits] r253 - in trunk: src/site/rst suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity suiviobsmer-business/src/main/xmi suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services
by fdesbois@users.labs.libre-entreprise.org 21 Jan '10
by fdesbois@users.labs.libre-entreprise.org 21 Jan '10
21 Jan '10
Author: fdesbois
Date: 2010-01-21 09:37:59 +0000 (Thu, 21 Jan 2010)
New Revision: 253
Modified:
trunk/src/site/rst/index.rst
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowLogImpl.java
trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/AbstractMappedGridDataSource.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java
Log:
- Ano #2019 : Add header for multiple zone in samplingPlan (refactor getFirstFishingZone by two methods getFacade and getSectors)
- Clean some FIXME
Modified: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst 2010-01-20 12:25:57 UTC (rev 252)
+++ trunk/src/site/rst/index.rst 2010-01-21 09:37:59 UTC (rev 253)
@@ -1,4 +1,4 @@
Accueil
=======
-TODO
+Application permettant le suivi des embarquements effectués sur des navires de pêche dans le cadre d'observations scientifiques.
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java 2010-01-20 12:25:57 UTC (rev 252)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java 2010-01-21 09:37:59 UTC (rev 253)
@@ -24,6 +24,7 @@
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
@@ -77,15 +78,49 @@
* Return the first fishingZone of the list linked with the SampleRow.
* @return a FishingZone or null if there is no fishingZone linked with the SampleRow
*/
+// @Override
+// public FishingZone getFirstFishingZone() {
+// if (getFishingZone().size() > 0) {
+// return getFishingZone().get(0);
+// }
+// return null;
+// }
+
+ /**
+ * Get the facade of the sampleRow. The row has normally only one facade in the FishingZone list.
+ *
+ * @return the facade name of the row
+ */
@Override
- public FishingZone getFirstFishingZone() {
+ public String getFacade() {
if (getFishingZone().size() > 0) {
- return getFishingZone().get(0);
+ return getFishingZone().get(0).getFacadeName();
}
return null;
}
/**
+ * Get the sectors of the sampleRow. The sectors will be concat as a single String with "-" as separator.
+ *
+ * @return a String with all sectors linked to the sampleRow
+ */
+ @Override
+ public String getSectors() {
+ List<String> results = new ArrayList<String>();
+ for (FishingZone zone : getFishingZone()) {
+ String sector = zone.getSectorName();
+ if (!results.contains(sector)) {
+ results.add(sector);
+ }
+ }
+ String result = "";
+ for (String sector : results) {
+ result += sector + " - ";
+ }
+ return result.substring(0, result.length()-3);
+ }
+
+ /**
* Check if the sampleRow has an ElligibleBoat corresponding to the boat in argument.
* The test return true only if it's a global ElligbleBoat set by an admin and not by a user (companyActive).
* @param boat Boat to test
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowLogImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowLogImpl.java 2010-01-20 12:25:57 UTC (rev 252)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowLogImpl.java 2010-01-21 09:37:59 UTC (rev 253)
@@ -23,7 +23,6 @@
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.nuiton.util.PeriodDates;
@@ -69,7 +68,6 @@
return;
}
- // FIXME doesn't work
if (!nvl(oldProfession.getCode()).equals(nvl(newProfession.getCode()))) {
addChange("Le métier de la ligne est passé de " + oldProfession.getCode() + " à " + newProfession.getCode());
}
Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
===================================================================
(Binary files differ)
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/AbstractMappedGridDataSource.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/AbstractMappedGridDataSource.java 2010-01-20 12:25:57 UTC (rev 252)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/AbstractMappedGridDataSource.java 2010-01-21 09:37:59 UTC (rev 253)
@@ -76,8 +76,8 @@
mapResults = execute(startIndex, endIndex, getSortConstraint(sortConstraints));
listResults = new ArrayList<E>(mapResults.values());
- // FIXME manage sort columns in execute ???? obvious
- sortResults(sortConstraints);
+ // FIXME manage sort columns in execute ???? seems obvious --> needed for Contacts, done for Boats
+ //sortResults(sortConstraints);
} catch (SuiviObsmerException eee) {
throw new TapestryException("", eee);
}
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 2010-01-20 12:25:57 UTC (rev 252)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-21 09:37:59 UTC (rev 253)
@@ -143,7 +143,8 @@
boats = null;
filterFeedback.addInfo("Vous êtes en cours de sélection d'un navire pour la ligne du plan " + sampleRow.getCode());
professionId = getSampleRow().getProfession().getTopiaId();
- fishingZoneId = getSampleRow().getFirstFishingZone().getTopiaId();
+ // FIXME FD-20100121 Missing filter for fishingZone --> Need use of AbstratFilteredPage
+ //fishingZoneId = getSampleRow().getFirstFishingZone().getTopiaId();
getBoatFilter().setSampleRowCode(getSampleRow().getCode());
}
}
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java 2010-01-20 12:25:57 UTC (rev 252)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java 2010-01-21 09:37:59 UTC (rev 253)
@@ -196,18 +196,16 @@
}
public boolean isFacadeChanged() {
- FishingZone zone = row.getFirstFishingZone();
- if (!zone.getFacadeName().equals(currentFacadeName)) {
- currentFacadeName = zone.getFacadeName();
+ if (!row.getFacade().equals(currentFacadeName)) {
+ currentFacadeName = row.getFacade();
return true;
}
return false;
}
public boolean isSectorChanged() {
- FishingZone zone = row.getFirstFishingZone();
- if (!zone.getSectorName().equals(currentSectorName)) {
- currentSectorName = zone.getSectorName();
+ if (!row.getSectors().equals(currentSectorName)) {
+ currentSectorName = row.getSectors();
return true;
}
return false;
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java 2010-01-20 12:25:57 UTC (rev 252)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java 2010-01-21 09:37:59 UTC (rev 253)
@@ -293,7 +293,7 @@
@Override
public Object get(Object arg0) {
Contact contact = (Contact)arg0;
- return contact.getSampleRow().getFirstFishingZone().getFacadeName();
+ return contact.getSampleRow().getFacade();
}
@Override
@@ -317,7 +317,7 @@
@Override
public Object get(Object arg0) {
Contact contact = (Contact)arg0;
- return contact.getSampleRow().getFirstFishingZone().getSectorName();
+ return contact.getSampleRow().getSectors();
}
@Override
1
0
[Suiviobsmer-commits] r252 - in trunk: . suiviobsmer-business suiviobsmer-ui
by fdesbois@users.labs.libre-entreprise.org 20 Jan '10
by fdesbois@users.labs.libre-entreprise.org 20 Jan '10
20 Jan '10
Author: fdesbois
Date: 2010-01-20 12:25:57 +0000 (Wed, 20 Jan 2010)
New Revision: 252
Modified:
trunk/pom.xml
trunk/suiviobsmer-business/pom.xml
trunk/suiviobsmer-ui/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-01-20 12:25:55 UTC (rev 251)
+++ trunk/pom.xml 2010-01-20 12:25:57 UTC (rev 252)
@@ -15,7 +15,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>suiviobsmer</artifactId>
- <version>0.1.1</version>
+ <version>0.1.2-SNAPSHOT</version>
<modules>
<module>suiviobsmer-ui</module>
@@ -218,9 +218,9 @@
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:svn://anonymous at labs.libre-entreprise.org/svnroot/suiviobsmer/tags/suiviobsmer-0.1.1</connection>
- <developerConnection>scm:svn:svn+ssh://fdesbois at labs.libre-entreprise.org/svnroot/suiviobsmer/tags/suiviobsmer-0.1.1</developerConnection>
- <url>http://labs.libre-entreprise.org/scm/viewvc.php/tags/suiviobsmer-0.1.1?root…</url>
+ <connection>scm:svn:svn://anonymous at labs.libre-entreprise.org/svnroot/suiviobsmer/trunk</connection>
+ <developerConnection>scm:svn:svn+ssh://fdesbois at labs.libre-entreprise.org/svnroot/suiviobsmer/trunk</developerConnection>
+ <url>http://labs.libre-entreprise.org/scm/viewvc.php/trunk/?root=suiviobsmer</url>
</scm>
<build>
Modified: trunk/suiviobsmer-business/pom.xml
===================================================================
--- trunk/suiviobsmer-business/pom.xml 2010-01-20 12:25:55 UTC (rev 251)
+++ trunk/suiviobsmer-business/pom.xml 2010-01-20 12:25:57 UTC (rev 252)
@@ -10,7 +10,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>suiviobsmer</artifactId>
- <version>0.1.1</version>
+ <version>0.1.2-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.suiviobsmer</groupId>
@@ -131,9 +131,9 @@
</build>
<scm>
- <url>http://labs.libre-entreprise.org/scm/viewvc.php/tags/suiviobsmer-0.1.1/suiv…</url>
- <connection>scm:svn:svn://anonymous at labs.libre-entreprise.org/svnroot/suiviobsmer/tags/suiviobsmer-0.1.1/suivio…</connection>
- <developerConnection>scm:svn:svn+ssh://fdesbois at labs.libre-entreprise.org/svnroot/suiviobsmer/tags/suiviobsmer-0.1.1/suivio…</developerConnection>
+ <url>http://labs.libre-entreprise.org/scm/viewvc.php/trunk/suiviobsmer-business/…</url>
+ <connection>scm:svn:svn://anonymous at labs.libre-entreprise.org/svnroot/suiviobsmer/trunk/suiviobsmer-business</connection>
+ <developerConnection>scm:svn:svn+ssh://fdesbois at labs.libre-entreprise.org/svnroot/suiviobsmer/trunk/suiviobsmer-business</developerConnection>
</scm>
</project>
Modified: trunk/suiviobsmer-ui/pom.xml
===================================================================
--- trunk/suiviobsmer-ui/pom.xml 2010-01-20 12:25:55 UTC (rev 251)
+++ trunk/suiviobsmer-ui/pom.xml 2010-01-20 12:25:57 UTC (rev 252)
@@ -10,7 +10,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>suiviobsmer</artifactId>
- <version>0.1.1</version>
+ <version>0.1.2-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.suiviobsmer</groupId>
@@ -133,9 +133,9 @@
</repositories>
<scm>
- <url>http://labs.libre-entreprise.org/scm/viewvc.php/tags/suiviobsmer-0.1.1/suiv…</url>
- <connection>scm:svn:svn://anonymous at labs.libre-entreprise.org/svnroot/suiviobsmer/tags/suiviobsmer-0.1.1/suivio…</connection>
- <developerConnection>scm:svn:svn+ssh://fdesbois at labs.libre-entreprise.org/svnroot/suiviobsmer/tags/suiviobsmer-0.1.1/suivio…</developerConnection>
+ <url>http://labs.libre-entreprise.org/scm/viewvc.php/trunk/suiviobsmer-ui/?root=…</url>
+ <connection>scm:svn:svn://anonymous at labs.libre-entreprise.org/svnroot/suiviobsmer/trunk/suiviobsmer-ui</connection>
+ <developerConnection>scm:svn:svn+ssh://fdesbois at labs.libre-entreprise.org/svnroot/suiviobsmer/trunk/suiviobsmer-ui</developerConnection>
</scm>
</project>
1
0
Author: fdesbois
Date: 2010-01-20 12:25:55 +0000 (Wed, 20 Jan 2010)
New Revision: 251
Added:
tags/suiviobsmer-0.1.1/
Log:
[maven-scm] copy for tag suiviobsmer-0.1.1
1
0