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
- 2352 discussions
r1778 - trunk/wao-persistence/src/main/java/fr/ifremer/wao
by tchemit@users.forge.codelutin.com 31 Mar '14
by tchemit@users.forge.codelutin.com 31 Mar '14
31 Mar '14
Author: tchemit
Date: 2014-03-31 15:27:37 +0200 (Mon, 31 Mar 2014)
New Revision: 1778
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1778
Log:
fix WaoUtils dates
Modified:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-03-31 13:14:09 UTC (rev 1777)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-03-31 13:27:37 UTC (rev 1778)
@@ -82,6 +82,7 @@
return ordinals;
}
+ //TODO use I18n
protected static final SimpleDateFormat dateFormat = new SimpleDateFormat("MM/yyyy");
public static boolean isCurrentMonth(Date month) {
@@ -90,8 +91,9 @@
return currentStr.equals(monthStr);
}
- public static Date getEndOfMonth(Date month) {
- return DateUtils.addMilliseconds(DateUtils.setMonths(month, 1), -1);
+ public static Date getEndOfMonth(Date month) {
+ return DateUtils.addMilliseconds(
+ DateUtils.addMonths(month, 1), -1);
}
/**
1
0
r1777 - in trunk: wao-persistence/src/main/java/fr/ifremer/wao wao-services/src/main/java/fr/ifremer/wao/services/service wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer
by tchemit@users.forge.codelutin.com 31 Mar '14
by tchemit@users.forge.codelutin.com 31 Mar '14
31 Mar '14
Author: tchemit
Date: 2014-03-31 15:14:09 +0200 (Mon, 31 Mar 2014)
New Revision: 1777
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1777
Log:
refs #4483 add I18n on filters + new dates on SampleRowPart + fix contacts filter dateTo
Removed:
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/LocalizedSampleRowsFilterValues.java
Modified:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/FilterOption.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SampleRowsFilterValuesJsonAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -23,6 +23,7 @@
import fr.ifremer.wao.entity.ObsProgram;
import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.time.DateUtils;
import java.text.DateFormat;
import java.text.ParseException;
@@ -89,6 +90,10 @@
return currentStr.equals(monthStr);
}
+ public static Date getEndOfMonth(Date month) {
+ return DateUtils.addMilliseconds(DateUtils.setMonths(month, 1), -1);
+ }
+
/**
* Wrapper on {@link org.apache.commons.collections4.CollectionUtils#isEqualCollection(java.util.Collection, java.util.Collection)}
* that handles null values.
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/FilterOption.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/FilterOption.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/FilterOption.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -3,8 +3,12 @@
import com.google.common.collect.Ordering;
import fr.ifremer.wao.entity.I18nAble;
-public class FilterOption implements Comparable<FilterOption> {
+import java.io.Serializable;
+public class FilterOption implements Comparable<FilterOption>, Serializable {
+
+ private static final long serialVersionUID = 1L;
+
protected String value;
protected String label;
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -21,10 +21,13 @@
* #L%
*/
+import com.google.common.collect.Range;
import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.entity.DCF5Code;
import fr.ifremer.wao.entity.FishingZone;
+import fr.ifremer.wao.entity.SampleMonth;
import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.SampleRowLog;
import fr.ifremer.wao.entity.TerrestrialLocation;
import org.apache.commons.collections4.CollectionUtils;
@@ -35,7 +38,6 @@
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
public class ObsMerSamplingPlan implements Iterable<ObsMerSamplingPlan.ObsMerSamplingPlanFacadePart>, Serializable {
@@ -43,11 +45,6 @@
private static final long serialVersionUID = 1L;
/**
- * Locale used by this sampling plan. Need to be here as part of future cache index.
- */
- protected Locale locale;
-
- /**
* All facades of the sampling plan.
*/
protected Collection<ObsMerSamplingPlanFacadePart> facades;
@@ -64,21 +61,21 @@
/**
* Total of observation times in days expected.
- *
+ * <p/>
* <strong>Note:</strong> can be null.
*/
protected Double observationTimesInDaysTotalExpected;
/**
* Total of observation times in days real.
- *
+ * <p/>
* <strong>Note:</strong> can be null.
*/
protected Long observationTimesInDaysTotalReal;
/**
* Total of observation times in days estimated.
- *
+ * <p/>
* <strong>Note:</strong> can be null.
*/
protected Long observationTimesInDaysTotalEstimated;
@@ -88,6 +85,9 @@
*/
protected List<Date> months;
+ /**
+ * Universe of filter values.
+ */
protected SampleRowsFilterValues filterValues;
public ObsMerSamplingPlan(List<Date> months,
@@ -335,6 +335,21 @@
protected String sampleRowId;
+ /**
+ * Date of the latest sample log.
+ */
+ protected Date latestSampleLogCreateDate;
+
+ /**
+ * Sample month range (from the first sample month to the last one).
+ */
+ protected Range<Date> sampleRowMonthPeriod;
+
+ /**
+ * Last sample month end of month.
+ */
+ protected Date lastSampleMonthEndOfMonth;
+
public ObsMerSamplingPlanSampleRowPart(Map<Date, ObsMerSamplingPlanStatistics> nbTidesPerMonth,
SampleRow sampleRow,
Double observationTimesInDaysExpected,
@@ -411,6 +426,24 @@
professionDescriptionWithoutDCF5 = sampleRow.getProfessionDescriptionWithoutDCF5();
samplingStrategy = "";//TODO sampleRow.getSamplingStrategy().getI18nKey();
sampleRowId = sampleRow.getTopiaId();
+
+ // compute lastSampleLogCreateDate
+ if (sampleRow.isSampleRowLogNotEmpty()) {
+ for (SampleRowLog sampleRowLog : sampleRow.getSampleRowLog()) {
+ if (latestSampleLogCreateDate == null ||
+ sampleRowLog.getCreateDate().after(latestSampleLogCreateDate)) {
+ latestSampleLogCreateDate = sampleRowLog.getCreateDate();
+ }
+ }
+ }
+
+ // compute sampleRowPeriod
+ List<SampleMonth> sampleMonth = sampleRow.getSampleMonth();
+ Date dateFrom = sampleMonth.get(0).getPeriodDate();
+ Date dateTo = sampleMonth.get(sampleMonth.size() - 1).getPeriodDate();
+ sampleRowMonthPeriod = Range.closed(dateFrom, dateTo);
+
+ lastSampleMonthEndOfMonth = WaoUtils.getEndOfMonth(dateTo);
}
public String getSamplingStrategy() {
@@ -421,6 +454,18 @@
return sampleRowId;
}
+ public Date getLatestSampleLogCreateDate() {
+ return latestSampleLogCreateDate;
+ }
+
+ public Range<Date> getSampleRowMonthPeriod() {
+ return sampleRowMonthPeriod;
+ }
+
+ public Date getLastSampleMonthEndOfMonth() {
+ return lastSampleMonthEndOfMonth;
+ }
+
public int getNbObservants() {
return nbObservants;
}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -35,6 +35,7 @@
import java.util.Collection;
import java.util.Date;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.TreeMap;
@@ -72,21 +73,21 @@
/**
* To compute the high total expected.
*
- * @see ObsMerSamplingPlan#highTotalExpected
+ * @see ObsMerSamplingPlan#highTotals
*/
protected int highTotalExpected;
/**
* To compute the high total real.
*
- * @see ObsMerSamplingPlan#highTotalReal
+ * @see ObsMerSamplingPlan#highTotals
*/
protected int highTotalReal;
/**
* To compute the high total estimated.
*
- * @see ObsMerSamplingPlan#highTotalEstimated
+ * @see ObsMerSamplingPlan#highTotals
*/
protected int highTotalEstimated;
@@ -132,9 +133,9 @@
*/
protected Map<Date, MutableInt> totalRealForMonths;
- public ObsMerSamplingPlanBuilder(SampleRowsFilter sampleRowsFilter) {
+ public ObsMerSamplingPlanBuilder(Locale locale, SampleRowsFilter sampleRowsFilter) {
this.sampleRowsFilter = sampleRowsFilter;
- this.sampleRowsFilterValues = new SampleRowsFilterValues();
+ this.sampleRowsFilterValues = new SampleRowsFilterValues(locale);
this.facadeMap = new TreeMap<>();
this.observationTimesInDaysTotalExpected = new MutableDouble();
this.observationTimesInDaysTotalReal = new MutableLong();
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -33,6 +33,7 @@
import fr.ifremer.wao.ContactsFilter;
import fr.ifremer.wao.SampleRowsFilter;
import fr.ifremer.wao.WaoTechnicalException;
+import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.entity.Boats;
import fr.ifremer.wao.entity.Company;
@@ -380,10 +381,13 @@
List<SampleRow> sampleRows = dao.findAll(sampleRowsFilter);
// creation du plan d'echantillonnage
- ObsMerSamplingPlanBuilder builder = new ObsMerSamplingPlanBuilder(sampleRowsFilter);
+ ObsMerSamplingPlanBuilder builder = new ObsMerSamplingPlanBuilder(serviceContext.getLocale(),
+ sampleRowsFilter);
+ // begin of month
Date periodFrom = sampleRowsFilter.getPeriodFrom();
- Date periodTo = sampleRowsFilter.getPeriodTo();
+ // end of month
+ Date periodTo = WaoUtils.getEndOfMonth(sampleRowsFilter.getPeriodTo());
for (SampleRow sampleRow : sampleRows) {
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -1,14 +1,19 @@
package fr.ifremer.wao.services.service;
import fr.ifremer.wao.entity.DCF5Code;
+import fr.ifremer.wao.entity.FishingGearDCF;
import fr.ifremer.wao.entity.FishingZone;
import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.TargetSpeciesDCF;
import fr.ifremer.wao.entity.TerrestrialLocation;
import java.io.Serializable;
+import java.util.Locale;
import java.util.SortedSet;
import java.util.TreeSet;
+import static org.nuiton.i18n.I18n.l;
+
/**
* Bean to hold all values that user can select to fill {@link fr.ifremer.wao.SampleRowsFilter}.
*/
@@ -16,6 +21,11 @@
private static final long serialVersionUID = 1L;
+ /**
+ * Locale used by this sampling plan. Need to be here as part of future cache index.
+ */
+ protected Locale locale;
+
protected SortedSet<FilterOption> fishingZoneFacadeNames = new TreeSet<>();
protected SortedSet<FilterOption> fishingZoneSectorNames = new TreeSet<>();
@@ -36,6 +46,10 @@
/** Values are the code and the label i18n key. */
protected SortedSet<FilterOption> targetSpeciesDcfs = new TreeSet<>();
+ public SampleRowsFilterValues(Locale locale) {
+ this.locale=locale;
+ }
+
public void addSampleRow(SampleRow sampleRow) {
for (FishingZone fishingZone : sampleRow.getFishingZone()) {
fishingZoneFacadeNames.add(FilterOption.forString(fishingZone.getFacadeName()));
@@ -53,15 +67,21 @@
terrestrialDistrict.getDescription()));
}
for (DCF5Code dcf5Code : sampleRow.getdCF5Code()) {
+ FishingGearDCF fishingGearDCF = dcf5Code.getFishingGearDCF();
+ String fishingGearLabel = fishingGearDCF.getCode() + " - " + l(locale, fishingGearDCF.getI18nKey());
fishingGearDcfs.add(
FilterOption.forValueAndLabel(
- dcf5Code.getFishingGearDCF().getTopiaId(),
- dcf5Code.getFishingGearDCF().getI18nKey()));
- if (dcf5Code.getTargetSpeciesDCF() != null) {
+ fishingGearDCF.getTopiaId(),
+ fishingGearLabel)
+ );
+ TargetSpeciesDCF targetSpeciesDCF = dcf5Code.getTargetSpeciesDCF();
+ if (targetSpeciesDCF != null) {
+ String targetspeciesLabel = targetSpeciesDCF.getCode() + " - " + l(locale, targetSpeciesDCF.getI18nKey());
targetSpeciesDcfs.add(
FilterOption.forValueAndLabel(
- dcf5Code.getTargetSpeciesDCF().getTopiaId(),
- dcf5Code.getTargetSpeciesDCF().getI18nKey()));
+ targetSpeciesDCF.getTopiaId(),
+ targetspeciesLabel)
+ );
}
}
}
@@ -101,4 +121,8 @@
public SortedSet<FilterOption> getTargetSpeciesDcfs() {
return targetSpeciesDcfs;
}
+
+ public Locale getLocale() {
+ return locale;
+ }
}
Deleted: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/LocalizedSampleRowsFilterValues.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/LocalizedSampleRowsFilterValues.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/LocalizedSampleRowsFilterValues.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -1,61 +0,0 @@
-package fr.ifremer.wao.web.action.obsmer;
-
-import fr.ifremer.wao.entity.SampleRow;
-import fr.ifremer.wao.services.WaoCacheElement;
-import fr.ifremer.wao.services.service.FilterOption;
-import fr.ifremer.wao.services.service.SampleRowsFilterValues;
-
-import java.util.Locale;
-import java.util.SortedSet;
-
-public class LocalizedSampleRowsFilterValues implements WaoCacheElement {
-
- protected Locale locale;
-
- protected SampleRowsFilterValues decorated;
-
- public LocalizedSampleRowsFilterValues(Locale locale, SampleRowsFilterValues decorated) {
- this.locale = locale;
- this.decorated = decorated;
- }
-
- public void addSampleRow(SampleRow sampleRow) {
- decorated.addSampleRow(sampleRow);
- }
-
- public SortedSet<FilterOption> getTargetSpeciesDcfs() {
- return decorated.getTargetSpeciesDcfs();
- }
-
- public SortedSet<FilterOption> getTerrestrialDistricts() {
- return decorated.getTerrestrialDistricts();
- }
-
- public SortedSet<FilterOption> getSampleRowCodes() {
- return decorated.getSampleRowCodes();
- }
-
- public SortedSet<FilterOption> getFishingZoneSectorNames() {
- return decorated.getFishingZoneSectorNames();
- }
-
- public SortedSet<FilterOption> getCompanies() {
- return decorated.getCompanies();
- }
-
- public SortedSet<FilterOption> getProgramNames() {
- return decorated.getProgramNames();
- }
-
- public SortedSet<FilterOption> getSamplingStrategies() {
- return decorated.getSamplingStrategies();
- }
-
- public SortedSet<FilterOption> getFishingZoneFacadeNames() {
- return decorated.getFishingZoneFacadeNames();
- }
-
- public SortedSet<FilterOption> getFishingGearDcfs() {
- return decorated.getFishingGearDcfs();
- }
-}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SampleRowsFilterValuesJsonAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SampleRowsFilterValuesJsonAction.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SampleRowsFilterValuesJsonAction.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -13,9 +13,9 @@
protected transient ObsMerSamplingPlanService service;
- protected transient SampleRowsFilter filter;
+ protected SampleRowsFilter filter;
- protected LocalizedSampleRowsFilterValues filterValues;
+ protected SampleRowsFilterValues filterValues;
public void setService(ObsMerSamplingPlanService service) {
this.service = service;
@@ -40,14 +40,12 @@
ObsMerSamplingPlan samplingPlan = service.getSamplingPlan(filter);
- SampleRowsFilterValues filterValues = samplingPlan.getFilterValues();
+ filterValues = samplingPlan.getFilterValues();
- this.filterValues = new LocalizedSampleRowsFilterValues(getLocale(), filterValues);
-
return SUCCESS;
}
- public LocalizedSampleRowsFilterValues getFilterValues() {
+ public SampleRowsFilterValues getFilterValues() {
return filterValues;
}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java 2014-03-31 12:41:30 UTC (rev 1776)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java 2014-03-31 13:14:09 UTC (rev 1777)
@@ -25,6 +25,7 @@
import fr.ifremer.wao.SampleRowsFilter;
import fr.ifremer.wao.services.service.ObsMerSamplingPlan;
import fr.ifremer.wao.services.service.ObsMerSamplingPlanService;
+import fr.ifremer.wao.services.service.SampleRowsFilterValues;
import fr.ifremer.wao.web.WaoJspActionSupport;
public class SamplingPlanAction extends WaoJspActionSupport implements Preparable {
@@ -71,11 +72,8 @@
return getSession().getSampleRowToHighlightId();
}
- public LocalizedSampleRowsFilterValues getFilterValues() {
- LocalizedSampleRowsFilterValues filterValues =
- new LocalizedSampleRowsFilterValues(
- getLocale(),
- getSamplingPlan().getFilterValues());
+ public SampleRowsFilterValues getFilterValues() {
+ SampleRowsFilterValues filterValues = getSamplingPlan().getFilterValues();
return filterValues;
}
1
0
r1776 - in trunk: wao-persistence/src/main/java/fr/ifremer/wao wao-web/src/main/java/fr/ifremer/wao/web wao-web/src/main/webapp wao-web/src/main/webapp/WEB-INF/content/obsmer wao-web/src/main/webapp/WEB-INF/decorators wao-web/src/main/webapp/bootstrap-2.3.1
by bleny@users.forge.codelutin.com 31 Mar '14
by bleny@users.forge.codelutin.com 31 Mar '14
31 Mar '14
Author: bleny
Date: 2014-03-31 14:41:30 +0200 (Mon, 31 Mar 2014)
New Revision: 1776
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1776
Log:
refs #4483 add bootstrap-popover review layout for dcf5 codes
Added:
trunk/wao-web/src/main/webapp/bootstrap-2.3.1/
trunk/wao-web/src/main/webapp/bootstrap-2.3.1/bootstrap-popover.js
trunk/wao-web/src/main/webapp/bootstrap-2.3.1/bootstrap-tooltip.js
trunk/wao-web/src/main/webapp/moment-js-2.5.1/
trunk/wao-web/src/main/webapp/select2-3.4.5/
trunk/wao-web/src/main/webapp/wao.css
trunk/wao-web/src/main/webapp/wao.js
Removed:
trunk/wao-web/src/main/webapp/css/
trunk/wao-web/src/main/webapp/js/
Modified:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfig.java
trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfigOption.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout-login.jsp
trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfig.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfig.java 2014-03-31 11:12:10 UTC (rev 1775)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfig.java 2014-03-31 12:41:30 UTC (rev 1776)
@@ -114,4 +114,8 @@
public File getLogConfigurationFile() {
return applicationConfig.getOptionAsFile(WaoApplicationConfigOption.LOG_CONFIGURATION_FILE.key);
}
+
+ public boolean isGoogleAnalyticsEnabled() {
+ return applicationConfig.getOptionAsBoolean(WaoApplicationConfigOption.GOOGLE_ANALYTICS_ENABLED.key);
+ }
}
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfigOption.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfigOption.java 2014-03-31 11:12:10 UTC (rev 1775)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoApplicationConfigOption.java 2014-03-31 12:41:30 UTC (rev 1776)
@@ -59,8 +59,14 @@
"logConfigurationFile",
"Chemin vers le fichier de configuration des journaux",
null,
- String.class);
+ String.class),
+ GOOGLE_ANALYTICS_ENABLED(
+ "googleAnalyticsEnabled",
+ "S'il faut activer les statistitques Google Analytics",
+ "false",
+ Boolean.class);
+
protected final String key;
protected final String description;
protected final Class<?> type;
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-03-31 11:12:10 UTC (rev 1775)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-03-31 12:41:30 UTC (rev 1776)
@@ -66,4 +66,8 @@
return t("wao.ui.misc.month", date);
}
+ public boolean isGoogleAnalyticsEnabled() {
+ return applicationConfig.isGoogleAnalyticsEnabled();
+ }
+
}
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-31 11:12:10 UTC (rev 1775)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-31 12:41:30 UTC (rev 1776)
@@ -303,9 +303,7 @@
<td class="only-in-full-view"><s:property value="fishingZonesInfos" /></td>
<td class="only-in-full-view">
<s:iterator value="dcf5CodesAndDescriptions">
- <span>
- <s:property value="key"/> (<s:property value="value"/>)
- </span>
+ <abbr title="<s:property value="value"/>"><s:property value="key"/></abbr>
</s:iterator>
</td>
<td class="only-in-full-view"><s:property value="professionMeshSize" /></td>
@@ -317,9 +315,7 @@
<td class="only-in-full-view"><s:property value="%{formatMonth(periodEnd)}" /></td>
<td class="only-in-compact-view">
<s:iterator value="dcf5CodesAndDescriptions">
- <span>
- <s:property value="key"/> (<s:property value="value"/>)
- </span>
+ <abbr title="<s:property value="value"/>"><s:property value="key"/></abbr>
</s:iterator>
<s:property value="professionDescriptionWithoutDCF5" />
</td>
Modified: trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout-login.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout-login.jsp 2014-03-31 11:12:10 UTC (rev 1775)
+++ trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout-login.jsp 2014-03-31 12:41:30 UTC (rev 1776)
@@ -30,12 +30,9 @@
<title><decorator:title default="Wao"/> - Wao</title>
<sj:head locale="fr" jqueryui="true" loadAtOnce="true" jquerytheme="start" />
<sb:head />
- <script type="text/javascript" src="<s:url value='/js/select2/select2.min.js' />"></script>
- <script type="text/javascript" src="<s:url value='/js/select2/select2_locale_fr.js' />"></script>
- <script type="text/javascript" src="<s:url value='/js/wao.js' />"></script>
- <link rel="stylesheet" type="text/css" href="<s:url value='/css/select2/select2.css' />" />
- <link rel="stylesheet" type="text/css" href="<s:url value='/css/wao.css' />" media="all" />
- <link rel="stylesheet" type="text/css" href="<s:url value='/css/wao-screen.css' />" media="screen">
+ <script type="text/javascript" src="<s:url value='/wao.js' />"></script>
+ <link rel="stylesheet" type="text/css" href="<s:url value='/wao.css' />" media="all" />
+ <link rel="stylesheet" type="text/css" href="<s:url value='/wao-screen.css' />" media="screen">
<decorator:head />
</head>
Modified: trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-03-31 11:12:10 UTC (rev 1775)
+++ trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-03-31 12:41:30 UTC (rev 1776)
@@ -30,14 +30,16 @@
<title><decorator:title default="Wao"/> - Wao</title>
<sj:head locale="fr" loadFromGoogle="true" jqueryui="true" />
<sb:head />
- <script type="text/javascript" src="<s:url value='/js/moment-js-2.5.1/moment-with-langs.js' />"></script>
- <script type="text/javascript" src="<s:url value='/js/select2-3.4.5/select2.min.js' />"></script>
- <script type="text/javascript" src="<s:url value='/js/select2-3.4.5/select2_locale_fr.js' />"></script>
- <script type="text/javascript" src="<s:url value='/js/wao.js' />"></script>
- <link rel="stylesheet" type="text/css" href="<s:url value='/js/select2-3.4.5/select2.css' />" />
- <link rel="stylesheet" type="text/css" href="<s:url value='/js/select2-3.4.5/select2-bootstrap.css' />" />
- <link rel="stylesheet" type="text/css" href="<s:url value='/css/wao.css' />" media="all" />
- <link rel="stylesheet" type="text/css" href="<s:url value='/css/wao-screen.css' />" media="screen">
+ <script type="text/javascript" src="<s:url value="/moment-js-2.5.1/moment-with-langs.js" />"></script>
+ <script type="text/javascript" src="<s:url value="/select2-3.4.5/select2.min.js" />"></script>
+ <script type="text/javascript" src="<s:url value="/select2-3.4.5/select2_locale_fr.js" />"></script>
+ <script type="text/javascript" src="<s:url value="/bootstrap-2.3.1/bootstrap-tooltip.js" />"></script>
+ <script type="text/javascript" src="<s:url value="/bootstrap-2.3.1/bootstrap-popover.js" />"></script>
+ <script type="text/javascript" src="<s:url value="/wao.js" />"></script>
+ <link rel="stylesheet" type="text/css" href="<s:url value="/select2-3.4.5/select2.css" />" />
+ <link rel="stylesheet" type="text/css" href="<s:url value="/select2-3.4.5/select2-bootstrap.css" />" />
+ <link rel="stylesheet" type="text/css" href="<s:url value="/wao.css" />" media="all" />
+ <link rel="stylesheet" type="text/css" href="<s:url value="/wao-screen.css" />" media="screen">
<decorator:head />
</head>
@@ -225,5 +227,22 @@
</div>
</s:if>
+ <s:if test="googleAnalyticsEnabled">
+ <!-- Script for Google Analytics -->
+ <script>
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-12982015-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+
+ </script>
+ </s:if>
+
</body>
</html>
Added: trunk/wao-web/src/main/webapp/bootstrap-2.3.1/bootstrap-popover.js
===================================================================
--- trunk/wao-web/src/main/webapp/bootstrap-2.3.1/bootstrap-popover.js (rev 0)
+++ trunk/wao-web/src/main/webapp/bootstrap-2.3.1/bootstrap-popover.js 2014-03-31 12:41:30 UTC (rev 1776)
@@ -0,0 +1,114 @@
+/* ===========================================================
+ * bootstrap-popover.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#popovers
+ * ===========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * =========================================================== */
+
+
+!function ($) {
+
+ "use strict"; // jshint ;_;
+
+
+ /* POPOVER PUBLIC CLASS DEFINITION
+ * =============================== */
+
+ var Popover = function (element, options) {
+ this.init('popover', element, options)
+ }
+
+
+ /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
+ ========================================== */
+
+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
+
+ constructor: Popover
+
+ , setContent: function () {
+ var $tip = this.tip()
+ , title = this.getTitle()
+ , content = this.getContent()
+
+ $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
+ $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
+
+ $tip.removeClass('fade top bottom left right in')
+ }
+
+ , hasContent: function () {
+ return this.getTitle() || this.getContent()
+ }
+
+ , getContent: function () {
+ var content
+ , $e = this.$element
+ , o = this.options
+
+ content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
+ || $e.attr('data-content')
+
+ return content
+ }
+
+ , tip: function () {
+ if (!this.$tip) {
+ this.$tip = $(this.options.template)
+ }
+ return this.$tip
+ }
+
+ , destroy: function () {
+ this.hide().$element.off('.' + this.type).removeData(this.type)
+ }
+
+ })
+
+
+ /* POPOVER PLUGIN DEFINITION
+ * ======================= */
+
+ var old = $.fn.popover
+
+ $.fn.popover = function (option) {
+ return this.each(function () {
+ var $this = $(this)
+ , data = $this.data('popover')
+ , options = typeof option == 'object' && option
+ if (!data) $this.data('popover', (data = new Popover(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ $.fn.popover.Constructor = Popover
+
+ $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
+ placement: 'right'
+ , trigger: 'click'
+ , content: ''
+ , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+ })
+
+
+ /* POPOVER NO CONFLICT
+ * =================== */
+
+ $.fn.popover.noConflict = function () {
+ $.fn.popover = old
+ return this
+ }
+
+}(window.jQuery);
Added: trunk/wao-web/src/main/webapp/bootstrap-2.3.1/bootstrap-tooltip.js
===================================================================
--- trunk/wao-web/src/main/webapp/bootstrap-2.3.1/bootstrap-tooltip.js (rev 0)
+++ trunk/wao-web/src/main/webapp/bootstrap-2.3.1/bootstrap-tooltip.js 2014-03-31 12:41:30 UTC (rev 1776)
@@ -0,0 +1,361 @@
+/* ===========================================================
+ * bootstrap-tooltip.js v2.3.1
+ * http://twitter.github.com/bootstrap/javascript.html#tooltips
+ * Inspired by the original jQuery.tipsy by Jason Frame
+ * ===========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================== */
+
+
+!function ($) {
+
+ "use strict"; // jshint ;_;
+
+
+ /* TOOLTIP PUBLIC CLASS DEFINITION
+ * =============================== */
+
+ var Tooltip = function (element, options) {
+ this.init('tooltip', element, options)
+ }
+
+ Tooltip.prototype = {
+
+ constructor: Tooltip
+
+ , init: function (type, element, options) {
+ var eventIn
+ , eventOut
+ , triggers
+ , trigger
+ , i
+
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.enabled = true
+
+ triggers = this.options.trigger.split(' ')
+
+ for (i = triggers.length; i--;) {
+ trigger = triggers[i]
+ if (trigger == 'click') {
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
+ } else if (trigger != 'manual') {
+ eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
+ eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
+ }
+ }
+
+ this.options.selector ?
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
+ this.fixTitle()
+ }
+
+ , getOptions: function (options) {
+ options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
+
+ if (options.delay && typeof options.delay == 'number') {
+ options.delay = {
+ show: options.delay
+ , hide: options.delay
+ }
+ }
+
+ return options
+ }
+
+ , enter: function (e) {
+ var defaults = $.fn[this.type].defaults
+ , options = {}
+ , self
+
+ this._options && $.each(this._options, function (key, value) {
+ if (defaults[key] != value) options[key] = value
+ }, this)
+
+ self = $(e.currentTarget)[this.type](options).data(this.type)
+
+ if (!self.options.delay || !self.options.delay.show) return self.show()
+
+ clearTimeout(this.timeout)
+ self.hoverState = 'in'
+ this.timeout = setTimeout(function() {
+ if (self.hoverState == 'in') self.show()
+ }, self.options.delay.show)
+ }
+
+ , leave: function (e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type)
+
+ if (this.timeout) clearTimeout(this.timeout)
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+ self.hoverState = 'out'
+ this.timeout = setTimeout(function() {
+ if (self.hoverState == 'out') self.hide()
+ }, self.options.delay.hide)
+ }
+
+ , show: function () {
+ var $tip
+ , pos
+ , actualWidth
+ , actualHeight
+ , placement
+ , tp
+ , e = $.Event('show')
+
+ if (this.hasContent() && this.enabled) {
+ this.$element.trigger(e)
+ if (e.isDefaultPrevented()) return
+ $tip = this.tip()
+ this.setContent()
+
+ if (this.options.animation) {
+ $tip.addClass('fade')
+ }
+
+ placement = typeof this.options.placement == 'function' ?
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
+ this.options.placement
+
+ $tip
+ .detach()
+ .css({ top: 0, left: 0, display: 'block' })
+
+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
+
+ pos = this.getPosition()
+
+ actualWidth = $tip[0].offsetWidth
+ actualHeight = $tip[0].offsetHeight
+
+ switch (placement) {
+ case 'bottom':
+ tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
+ break
+ case 'top':
+ tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
+ break
+ case 'left':
+ tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
+ break
+ case 'right':
+ tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
+ break
+ }
+
+ this.applyPlacement(tp, placement)
+ this.$element.trigger('shown')
+ }
+ }
+
+ , applyPlacement: function(offset, placement){
+ var $tip = this.tip()
+ , width = $tip[0].offsetWidth
+ , height = $tip[0].offsetHeight
+ , actualWidth
+ , actualHeight
+ , delta
+ , replace
+
+ $tip
+ .offset(offset)
+ .addClass(placement)
+ .addClass('in')
+
+ actualWidth = $tip[0].offsetWidth
+ actualHeight = $tip[0].offsetHeight
+
+ if (placement == 'top' && actualHeight != height) {
+ offset.top = offset.top + height - actualHeight
+ replace = true
+ }
+
+ if (placement == 'bottom' || placement == 'top') {
+ delta = 0
+
+ if (offset.left < 0){
+ delta = offset.left * -2
+ offset.left = 0
+ $tip.offset(offset)
+ actualWidth = $tip[0].offsetWidth
+ actualHeight = $tip[0].offsetHeight
+ }
+
+ this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
+ } else {
+ this.replaceArrow(actualHeight - height, actualHeight, 'top')
+ }
+
+ if (replace) $tip.offset(offset)
+ }
+
+ , replaceArrow: function(delta, dimension, position){
+ this
+ .arrow()
+ .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
+ }
+
+ , setContent: function () {
+ var $tip = this.tip()
+ , title = this.getTitle()
+
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
+ $tip.removeClass('fade in top bottom left right')
+ }
+
+ , hide: function () {
+ var that = this
+ , $tip = this.tip()
+ , e = $.Event('hide')
+
+ this.$element.trigger(e)
+ if (e.isDefaultPrevented()) return
+
+ $tip.removeClass('in')
+
+ function removeWithAnimation() {
+ var timeout = setTimeout(function () {
+ $tip.off($.support.transition.end).detach()
+ }, 500)
+
+ $tip.one($.support.transition.end, function () {
+ clearTimeout(timeout)
+ $tip.detach()
+ })
+ }
+
+ $.support.transition && this.$tip.hasClass('fade') ?
+ removeWithAnimation() :
+ $tip.detach()
+
+ this.$element.trigger('hidden')
+
+ return this
+ }
+
+ , fixTitle: function () {
+ var $e = this.$element
+ if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
+ $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
+ }
+ }
+
+ , hasContent: function () {
+ return this.getTitle()
+ }
+
+ , getPosition: function () {
+ var el = this.$element[0]
+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
+ width: el.offsetWidth
+ , height: el.offsetHeight
+ }, this.$element.offset())
+ }
+
+ , getTitle: function () {
+ var title
+ , $e = this.$element
+ , o = this.options
+
+ title = $e.attr('data-original-title')
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
+
+ return title
+ }
+
+ , tip: function () {
+ return this.$tip = this.$tip || $(this.options.template)
+ }
+
+ , arrow: function(){
+ return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
+ }
+
+ , validate: function () {
+ if (!this.$element[0].parentNode) {
+ this.hide()
+ this.$element = null
+ this.options = null
+ }
+ }
+
+ , enable: function () {
+ this.enabled = true
+ }
+
+ , disable: function () {
+ this.enabled = false
+ }
+
+ , toggleEnabled: function () {
+ this.enabled = !this.enabled
+ }
+
+ , toggle: function (e) {
+ var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
+ self.tip().hasClass('in') ? self.hide() : self.show()
+ }
+
+ , destroy: function () {
+ this.hide().$element.off('.' + this.type).removeData(this.type)
+ }
+
+ }
+
+
+ /* TOOLTIP PLUGIN DEFINITION
+ * ========================= */
+
+ var old = $.fn.tooltip
+
+ $.fn.tooltip = function ( option ) {
+ return this.each(function () {
+ var $this = $(this)
+ , data = $this.data('tooltip')
+ , options = typeof option == 'object' && option
+ if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ $.fn.tooltip.Constructor = Tooltip
+
+ $.fn.tooltip.defaults = {
+ animation: true
+ , placement: 'top'
+ , selector: false
+ , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
+ , trigger: 'hover focus'
+ , title: ''
+ , delay: 0
+ , html: false
+ , container: false
+ }
+
+
+ /* TOOLTIP NO CONFLICT
+ * =================== */
+
+ $.fn.tooltip.noConflict = function () {
+ $.fn.tooltip = old
+ return this
+ }
+
+}(window.jQuery);
Copied: trunk/wao-web/src/main/webapp/wao.css (from rev 1775, trunk/wao-web/src/main/webapp/css/wao.css)
===================================================================
--- trunk/wao-web/src/main/webapp/wao.css (rev 0)
+++ trunk/wao-web/src/main/webapp/wao.css 2014-03-31 12:41:30 UTC (rev 1776)
@@ -0,0 +1,262 @@
+/*
+ * #%L
+ * Wao :: Web
+ * %%
+ * Copyright (C) 2009 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+/******************************************************************************
+ * Personnalisation de Bootstrap
+ *****************************************************************************/
+
+/* On surcharge left: 0px par left: 0% car ça pose problème pour Firefox qui place le menu complètement à gauche de la fenêtre et pas en dessous du bouton */
+.dropdown-menu {
+ left: 0%;
+}
+
+legend+.control-group {
+ margin-top: 0px;
+}
+
+/******************************************************************************
+ * Des classes à usage transverse
+ *****************************************************************************/
+
+.highlight {
+ background-color: #ffff99;
+}
+
+/* pour représenter qu'on est à l'instant présent */
+.now {
+ background-color: #ffff99;
+}
+
+/* pour représente qu'une entité (société, utilisateur) est inactive */
+.inactive {
+ text-decoration: line-through;
+}
+
+/**
+ * Class permettant de faire faire une rotation à un élément de 90° sur la gauche.
+ * Ça peut par exemeple servir pour un th, afin de gagner de la largeur
+ *
+ * voir http://stackoverflow.com/questions/15806925/how-to-rotate-text-left-90-degr…
+ */
+.rotate {
+ display: block;
+ -moz-transform: rotate(-90.0deg); /* FF3.5+ */
+ -o-transform: rotate(-90.0deg); /* Opera 10.5 */
+ -webkit-transform: rotate(-90.0deg); /* Saf3.1+, Chrome */
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0.083)"; /* IE8 */
+
+}
+
+td.ellipsis {
+ max-width: 100px;
+}
+
+.ellipsis {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+td.ellipsis:hover {
+ overflow: visible;
+ white-space: normal;
+ text-overflow: initial;
+}
+
+.compact-view .only-in-full-view,
+.full-view .only-in-compact-view,
+.show-estimated .real,
+.show-real .estimated {
+ display: none;
+}
+
+.lower-than-expected {
+ color : red;
+}
+
+.higher-than-expected {
+ color : green;
+}
+
+
+/******************************************************************************
+ * Styles globaux à l'application
+ *****************************************************************************/
+
+/**
+ * Le style du layout
+ */
+
+footer {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+footer ul {
+ list-style-type: none;
+}
+
+footer ul li {
+ display: inline;
+ margin-left: 20px;
+}
+
+main {
+ max-width: 800px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+main.large {
+ width: 100%;
+ max-width: 100%;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+/**
+ * Le style général des formulaires
+ */
+
+.form-actions {
+ margin-top: 75px;
+}
+
+textarea {
+ width: 100%;
+ min-height: 150px;
+}
+
+.form-actions button[type="submit"] {
+ float: right;
+}
+
+th.actions, td.actions {
+ white-space: nowrap;
+}
+
+.large-table, .large-table thead th {
+ border: solid 1px #aaaaaa;
+}
+
+.large-table li {
+ list-style-type: none;
+}
+
+.large-table tbody th, .large-table td {
+ border: solid 1px #aaaaaa;
+ border-left-style: dashed;
+ border-right-style: dashed;
+ padding: 2px;
+}
+
+/**
+ * Les filtres
+ */
+
+form.filters-form {
+ width: auto;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+form.filters-form .control-group {
+ float: left;
+ margin-left: 5px;
+ margin-right: 5px;
+}
+
+form.filters-form .form-actions {
+ clear: both;
+ margin-top: 0px;
+ border: none;
+ background-color: white;
+}
+
+/******************************************************************************
+ * Styles spécifiques pour certaines pages de l'appli
+ *****************************************************************************/
+
+#expectedObservationsByMonthsTable th {
+ white-space: nowrap;
+}
+
+#expectedObservationsByMonthsTable input {
+ width: 40px;
+ text-align: right;
+}
+
+form#login button[type="submit"] {
+ margin-left: 180px;
+}
+
+#cgu {
+ overflow-y: auto;
+ max-height: 300px;
+ padding: 5px;
+ border: solid 5px #f2f2f2;
+ margin-bottom: 20px;
+}
+
+table.sampling-plan tr.facade-row {
+ color: white;
+ background-color: seagreen;
+ background-color: darkslategrey;
+ font-size: 150%;
+ line-height: 150%;
+}
+
+table.sampling-plan tr.sector-row {
+ color: white;
+ background-color: darkcyan;
+ background-color: darkseagreen;
+ font-size: 120%;
+ line-height: 120%;
+}
+
+table.sampling-plan tr.facade-row th,
+table.sampling-plan tr.sector-row th {
+ text-align: left;
+ padding: 10px;
+}
+
+table.sampling-plan tbody tr.sample-row-row:nth-child(2n) {
+ background-color: #e6e6e6;
+}
+
+table.sampling-plan tbody tr.sample-row-row:hover {
+ background-color: tan;
+ background-color: antiquewhite;
+ background-color: palegoldenrod;
+ background-color: papayawhip;
+ background-color: wheat;
+ background-color: beige;
+}
+
+table.sampling-plan td.effort {
+ text-align: center;
+}
+
+table.sampling-plan .actions .dropdown-menu {
+ left: -200px
+}
+
Copied: trunk/wao-web/src/main/webapp/wao.js (from rev 1774, trunk/wao-web/src/main/webapp/js/wao.js)
===================================================================
--- trunk/wao-web/src/main/webapp/wao.js (rev 0)
+++ trunk/wao-web/src/main/webapp/wao.js 2014-03-31 12:41:30 UTC (rev 1776)
@@ -0,0 +1,129 @@
+/*
+ * #%L
+ * Wao :: Web
+ * %%
+ * Copyright (C) 2009 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+var SampleRowsFilterModel = function (filterValuesUrl) {
+
+ var self = this;
+
+ this.filterValues = {};
+ this.filterValuesUrl = filterValuesUrl;
+
+ this.setFilterValues = function (filterValues) {
+ this.filterValues = filterValues;
+ $(this).trigger('updated');
+ };
+
+ this.updateFilterValues = function(filter) {
+ var successCallback = function (data) {
+ self.setFilterValues(data.filterValues)
+ };
+ $.get(this.filterValuesUrl, filter, successCallback);
+ }
+
+};
+
+var SampleRowsFilterView = function (sampleRowsFilterModel, $filtersForm) {
+
+ var self = this;
+
+ this.model = sampleRowsFilterModel;
+ this.$filtersForm = $filtersForm;
+ this.$selects = $filtersForm.find('select');
+ this.$inputs = $filtersForm.find('input[type=text]');
+
+ this.getFilter = function () {
+ var filter = {};
+ this.$selects.each(function (index, select) {
+ var $select = $(select);
+ var parameterName = $select.prop('name');
+ var parameterValues = [];
+ $select.find('option:selected').each(function (index, option) {
+ parameterValues.push($(option).prop('value'));
+ });
+ filter[parameterName] = parameterValues;
+ });
+ this.$inputs.each(function (index, input) {
+ var $input = $(input);
+ var parameterName = $(input).prop('name');
+ var parameterValue = $(input).prop('value');
+ filter[parameterName] = parameterValue;
+ });
+ return filter;
+ };
+
+ this.refreshFilterValues = function() {
+ // store options selected by user to re-select them after update
+ var filter = this.getFilter();
+ var filterValues = this.model.filterValues;
+ this.$selects.each(function (index, select) {
+ var $select = $(select).empty();
+ var name = $select.prop('name');
+ // FIXME brendan 26/03/14 should be data-binding but freemarker break the template :-(
+ var binding = $select.attr('databinding');
+ var options = filterValues[binding];
+ $.each(options, function (index, option) {
+ var optionHtml = '<option value="' + option.value + '">' + option.label + '</option>';
+ $select.append(optionHtml);
+ });
+ var selectedOptions = filter[name];
+ $.each(selectedOptions, function (index, selectedOption) {
+ $select.find('option[value="' + selectedOption + '"]').prop('selected', 'selected');
+ });
+ });
+ this.$filtersForm.effect( "highlight", "slow" );
+ }
+
+ $(this.model).on('updated', function () {
+ self.refreshFilterValues();
+ });
+
+};
+
+var SampleRowsFilterController = function (filterValuesUrl, $filtersForm) {
+
+ var self = this;
+
+ this.model = new SampleRowsFilterModel(filterValuesUrl);
+ this.view = new SampleRowsFilterView(this.model, $filtersForm);
+
+ this.onFilterChange = function () {
+ var filter = this.view.getFilter();
+ this.model.updateFilterValues(filter);
+ };
+
+ this.init = function () {
+ this.view.$selects.blur(function () {
+ self.onFilterChange();
+ });
+ this.view.$inputs.blur(function () {
+ self.onFilterChange();
+ });
+ }
+
+};
+
+$(document).ready(function () {
+
+ // $('select').select2();
+
+ $('a[data-toggle="popover"]').popover();
+
+});
\ No newline at end of file
1
0
r1775 - in trunk/wao-web/src/main: java/fr/ifremer/wao/web webapp/WEB-INF/content/obsmer webapp/css
by bleny@users.forge.codelutin.com 31 Mar '14
by bleny@users.forge.codelutin.com 31 Mar '14
31 Mar '14
Author: bleny
Date: 2014-03-31 13:12:10 +0200 (Mon, 31 Mar 2014)
New Revision: 1775
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1775
Log:
refs #4483 some styles
Modified:
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
trunk/wao-web/src/main/webapp/css/wao.css
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-03-31 09:16:40 UTC (rev 1774)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-03-31 11:12:10 UTC (rev 1775)
@@ -80,7 +80,7 @@
if (waoSession.getAuthenticatedWaoUser() == null) {
- boolean loginCheat = true;
+ boolean loginCheat = getWaoApplicationContext(invocation).getApplicationConfig().isDevMode();
if (loginCheat) {
// login à l'arrache
WaoUser admin = serviceContext.getPersistenceContext().getWaoUserDao().forLoginEquals("admin").findUnique();
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-31 09:16:40 UTC (rev 1774)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-31 11:12:10 UTC (rev 1775)
@@ -76,63 +76,67 @@
<fieldset>
- <s:select name="filter.companyIds"
- label="%{getText('wao.ui.entity.Company')}"
- list="filterValues.companies"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="companies" />
+ <s:select name="filter.companyIds"
+ label="%{getText('wao.ui.entity.Company')}"
+ list="filterValues.companies"
+ listKey="value"
+ listValue="label"
+ multiple="true"
+ dataBinding="companies" />
- <s:select name="filter.programNames"
- label="%{getText('wao.ui.field.SampleRow.programName')}"
- list="filterValues.programNames"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="programNames" />
+ <s:select name="filter.programNames"
+ label="%{getText('wao.ui.field.SampleRow.programName')}"
+ list="filterValues.programNames"
+ listKey="value"
+ listValue="label"
+ multiple="true"
+ dataBinding="programNames" />
- <s:select name="filter.fishingZoneFacadeNames"
- label="%{getText('wao.ui.field.FishingZone.facadeName')}"
- list="filterValues.fishingZoneFacadeNames"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="fishingZoneFacadeNames" />
+ <s:select name="filter.sampleRowCodes"
+ label="%{getText('wao.ui.field.SampleRow.code')}"
+ list="filterValues.sampleRowCodes"
+ listKey="value"
+ listValue="label"
+ multiple="true"
+ dataBinding="sampleRowCodes" />
- <s:select name="filter.fishingZoneSectorNames"
- label="%{getText('wao.ui.field.FishingZone.sectorName')}"
- list="filterValues.fishingZoneSectorNames"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="fishingZoneSectorNames" />
+ </fieldset>
- <s:select name="filter.sampleRowCodes"
- label="%{getText('wao.ui.field.SampleRow.code')}"
- list="filterValues.sampleRowCodes"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="sampleRowCodes" />
+ <fieldset>
- <s:select name="filter.fishingGearDcfIds"
- label="%{getText('wao.ui.entity.fishingGearDCF')}"
- list="filterValues.fishingGearDcfs"
- listKey="value"
- listValue="label"
- value="%getText(#value)"
- multiple="true"
- dataBinding="fishingGearDcfs" />
+ <s:select name="filter.fishingZoneFacadeNames"
+ label="%{getText('wao.ui.field.FishingZone.facadeName')}"
+ list="filterValues.fishingZoneFacadeNames"
+ listKey="value"
+ listValue="label"
+ multiple="true"
+ dataBinding="fishingZoneFacadeNames" />
- <s:select name="filter.targetSpeciesDcfIds"
- label="%{getText('wao.ui.entity.targetSpeciesDCF')}"
- list="filterValues.targetSpeciesDcfs"
- listKey="value"
- listValue="label"
- multiple="true"
- dataBinding="targetSpeciesDcfs" />
+ <s:select name="filter.fishingZoneSectorNames"
+ label="%{getText('wao.ui.field.FishingZone.sectorName')}"
+ list="filterValues.fishingZoneSectorNames"
+ listKey="value"
+ listValue="label"
+ multiple="true"
+ dataBinding="fishingZoneSectorNames" />
+ <s:select name="filter.fishingGearDcfIds"
+ label="%{getText('wao.ui.entity.fishingGearDCF')}"
+ list="filterValues.fishingGearDcfs"
+ listKey="value"
+ listValue="label"
+ value="%getText(#value)"
+ multiple="true"
+ dataBinding="fishingGearDcfs" />
+
+ <s:select name="filter.targetSpeciesDcfIds"
+ label="%{getText('wao.ui.entity.targetSpeciesDCF')}"
+ list="filterValues.targetSpeciesDcfs"
+ listKey="value"
+ listValue="label"
+ multiple="true"
+ dataBinding="targetSpeciesDcfs" />
+
</fieldset>
<div class="form-actions">
Modified: trunk/wao-web/src/main/webapp/css/wao.css
===================================================================
--- trunk/wao-web/src/main/webapp/css/wao.css 2014-03-31 09:16:40 UTC (rev 1774)
+++ trunk/wao-web/src/main/webapp/css/wao.css 2014-03-31 11:12:10 UTC (rev 1775)
@@ -36,7 +36,6 @@
* Des classes à usage transverse
*****************************************************************************/
-/* pour représente qu'une entité (société, utilisateur) est inactive */
.highlight {
background-color: #ffff99;
}
@@ -46,6 +45,7 @@
background-color: #ffff99;
}
+/* pour représente qu'une entité (société, utilisateur) est inactive */
.inactive {
text-decoration: line-through;
}
@@ -88,11 +88,11 @@
display: none;
}
-.effort .lower-than-expected {
+.lower-than-expected {
color : red;
}
-.effort .higher-than-expected {
+.higher-than-expected {
color : green;
}
1
0
r1774 - in trunk: wao-services/src/main/java/fr/ifremer/wao/services/service wao-web/src/main/webapp/WEB-INF/content/obsmer
by tchemit@users.forge.codelutin.com 31 Mar '14
by tchemit@users.forge.codelutin.com 31 Mar '14
31 Mar '14
Author: tchemit
Date: 2014-03-31 11:16:40 +0200 (Mon, 31 Mar 2014)
New Revision: 1774
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1774
Log:
refs #4483 (ajout info pour tooltips)
Modified:
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-31 09:10:25 UTC (rev 1773)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-31 09:16:40 UTC (rev 1774)
@@ -35,6 +35,7 @@
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class ObsMerSamplingPlan implements Iterable<ObsMerSamplingPlan.ObsMerSamplingPlanFacadePart>, Serializable {
@@ -42,6 +43,11 @@
private static final long serialVersionUID = 1L;
/**
+ * Locale used by this sampling plan. Need to be here as part of future cache index.
+ */
+ protected Locale locale;
+
+ /**
* All facades of the sampling plan.
*/
protected Collection<ObsMerSamplingPlanFacadePart> facades;
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-31 09:10:25 UTC (rev 1773)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-31 09:16:40 UTC (rev 1774)
@@ -291,12 +291,16 @@
</th>
<td><s:property value="programName" /></td>
<td class="only-in-full-view"><s:property value="companyName" /></td>
- <td><s:property value="fishingZones" /></td>
+ <td class="only-in-full-view"><s:property value="fishingZones" /></td>
+ <td class="only-in-compact-view">
+ <s:property value="fishingZones" />
+ (<s:property value="fishingZonesInfos" />)
+ </td>
<td class="only-in-full-view"><s:property value="fishingZonesInfos" /></td>
<td class="only-in-full-view">
<s:iterator value="dcf5CodesAndDescriptions">
<span>
- <s:property value="key"/>
+ <s:property value="key"/> (<s:property value="value"/>)
</span>
</s:iterator>
</td>
@@ -310,13 +314,13 @@
<td class="only-in-compact-view">
<s:iterator value="dcf5CodesAndDescriptions">
<span>
- <s:property value="key"/>
+ <s:property value="key"/> (<s:property value="value"/>)
</span>
</s:iterator>
<s:property value="professionDescriptionWithoutDCF5" />
</td>
<td class="only-in-compact-view">
- <s:property value="professionLibelle" />
+ <s:property value="professionLibelle" /> (<s:property value="professionSpecies" />)
</td>
<!-- Months columns -->
<s:iterator value="samplingPlan.months" var="month">
@@ -344,7 +348,7 @@
<s:property value="totalTidesEstimated" />
</span>
<span class="real<s:if test="totalTidesReal < totalTidesExpected"> lower-than-expected</s:if><s:if test="totalTidesReal > totalTidesExpected"> higher-than-expected</s:if>">
- <s:property value="totalTidesReal" />
+ <s:property value="totalTidesReal" /> (Total sur la période du ... au ...)
</span>
/
</s:if>
1
0
r1773 - in trunk/wao-web/src/main/webapp: WEB-INF/content/obsmer css
by bleny@users.forge.codelutin.com 31 Mar '14
by bleny@users.forge.codelutin.com 31 Mar '14
31 Mar '14
Author: bleny
Date: 2014-03-31 11:10:25 +0200 (Mon, 31 Mar 2014)
New Revision: 1773
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1773
Log:
refs #4483 some styles
Modified:
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
trunk/wao-web/src/main/webapp/css/wao.css
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-28 10:24:41 UTC (rev 1772)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-31 09:10:25 UTC (rev 1773)
@@ -58,10 +58,6 @@
<content tag="mainClass">large</content>
- <h1>
- <s:text name="wao.ui.page.SamplingPlan.title" />
- </h1>
-
<s:form method="GET" id="sampling-plan-filters-form" cssClass="filters-form">
<fieldset>
@@ -139,7 +135,7 @@
</fieldset>
- <div class="form-actions" style="clear: both;">
+ <div class="form-actions">
<s:url action="sampling-plan" id="samplingPlanUrl" />
<s:a href="%{samplingPlanUrl}" cssClass="btn">
@@ -486,12 +482,11 @@
<s:property value="#expected"/>
<s:if test="authenticatedWaoUser.authorizedToViewSamplingPlanReal">
<span class="estimated">
- <s:property value="samplingPlan.getTotalEstimatedRatio(#month)"/>
+ (<s:property value="samplingPlan.getTotalEstimatedRatio(#month)"/>)
</span>
<span class="real">
- <s:property value="samplingPlan.getTotalRealRatio(#month)"/>
+ (<s:property value="samplingPlan.getTotalRealRatio(#month)"/>)
</span>
-
</s:if>
</td>
</s:iterator>
@@ -511,12 +506,11 @@
<s:property value="#expected"/>
<s:if test="authenticatedWaoUser.authorizedToViewSamplingPlanReal">
<span class="estimated">
- <s:property value="samplingPlan.highTotalEstimatedRatio"/>
+ (<s:property value="samplingPlan.highTotalEstimatedRatio"/>)
</span>
<span class="real">
- <s:property value="samplingPlan.highTotalRealRatio"/>
+ (<s:property value="samplingPlan.highTotalRealRatio"/>)
</span>
-
</s:if>
</td>
<td class="effort">
Modified: trunk/wao-web/src/main/webapp/css/wao.css
===================================================================
--- trunk/wao-web/src/main/webapp/css/wao.css 2014-03-28 10:24:41 UTC (rev 1772)
+++ trunk/wao-web/src/main/webapp/css/wao.css 2014-03-31 09:10:25 UTC (rev 1773)
@@ -81,7 +81,22 @@
text-overflow: initial;
}
+.compact-view .only-in-full-view,
+.full-view .only-in-compact-view,
+.show-estimated .real,
+.show-real .estimated {
+ display: none;
+}
+.effort .lower-than-expected {
+ color : red;
+}
+
+.effort .higher-than-expected {
+ color : green;
+}
+
+
/******************************************************************************
* Styles globaux à l'application
*****************************************************************************/
@@ -170,6 +185,13 @@
margin-right: 5px;
}
+form.filters-form .form-actions {
+ clear: both;
+ margin-top: 0px;
+ border: none;
+ background-color: white;
+}
+
/******************************************************************************
* Styles spécifiques pour certaines pages de l'appli
*****************************************************************************/
@@ -230,21 +252,11 @@
background-color: beige;
}
-.compact-view .only-in-full-view,
-.full-view .only-in-compact-view,
-.show-estimated .real,
-.show-real .estimated {
- display: none;
+table.sampling-plan td.effort {
+ text-align: center;
}
-td.effort .lower-than-expected {
- color : red;
+table.sampling-plan .actions .dropdown-menu {
+ left: -200px
}
-td.effort .higher-than-expected {
- color : green;
-}
-
-td.effort {
- text-align: center;
-}
\ No newline at end of file
1
0
r1772 - in trunk: wao-services/src/main/java/fr/ifremer/wao/services/service wao-web/src/main/webapp/WEB-INF/content/obsmer
by tchemit@users.forge.codelutin.com 28 Mar '14
by tchemit@users.forge.codelutin.com 28 Mar '14
28 Mar '14
Author: tchemit
Date: 2014-03-28 11:24:41 +0100 (Fri, 28 Mar 2014)
New Revision: 1772
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1772
Log:
refs #4483 add esitmated and real ratio
Modified:
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-28 09:59:05 UTC (rev 1771)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-28 10:24:41 UTC (rev 1772)
@@ -138,11 +138,16 @@
return result;
}
- public String getTotalRatio(Date month) {
- String result = totalsPerMonth.get(month).getRatio("-");
+ public String getTotalRealRatio(Date month) {
+ String result = totalsPerMonth.get(month).getRealRatio("-");
return result;
}
+ public String getTotalEstimatedRatio(Date month) {
+ String result = totalsPerMonth.get(month).getRealRatio("-");
+ return result;
+ }
+
public Integer getHighTotalExpected() {
return highTotals.getNbTidesExpected();
}
@@ -155,11 +160,16 @@
return highTotals.getNbTidesEstimated();
}
- public String getHighTotalRatio() {
- String ratio = highTotals.getRatio("");
+ public String getHighTotalRealRatio() {
+ String ratio = highTotals.getRealRatio("");
return ratio;
}
+ public String getHighTotalEstimatedRatio() {
+ String ratio = highTotals.getEstimatedRatio("");
+ return ratio;
+ }
+
public SampleRowsFilterValues getFilterValues() {
return filterValues;
}
@@ -520,11 +530,16 @@
return result;
}
- public String getTotalPercentage() {
- String result = totalTides.getRatio("-");
+ public String getTotalRealPercentage() {
+ String result = totalTides.getRealRatio("-");
return result;
}
+ public String getTotalEstimatedPercentage() {
+ String result = totalTides.getEstimatedRatio("-");
+ return result;
+ }
+
public String getFishingZones() {
return fishingZones;
}
@@ -593,7 +608,7 @@
return nbTidesEstimated;
}
- public String getRatio(String defaultValue) {
+ public String getRealRatio(String defaultValue) {
String ratio = defaultValue;
if (nbTidesExpected != null && nbTidesExpected > 0 &&
nbTidesReal != null && nbTidesReal > 0) {
@@ -603,5 +618,15 @@
return ratio;
}
+ public String getEstimatedRatio(String defaultValue) {
+ String ratio = defaultValue;
+ if (nbTidesExpected != null && nbTidesExpected > 0 &&
+ nbTidesEstimated != null && nbTidesEstimated > 0) {
+ double percent = ((double) nbTidesEstimated / nbTidesExpected);
+ ratio = NumberFormat.getPercentInstance().format(percent);
+ }
+ return ratio;
+ }
+
}
}
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-28 09:59:05 UTC (rev 1771)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-28 10:24:41 UTC (rev 1772)
@@ -355,7 +355,13 @@
<s:property value="totalTidesExpected" />
<s:if test="authenticatedWaoUser.authorizedToViewSamplingPlanReal">
- (<s:property value="totalPercentage" />)
+ <span class="estimated">
+ (<s:property value="totalEstimatedPercentage" />)
+ </span>
+ <span class="real">
+ (<s:property value="totalRealPercentage" />)
+ </span>
+
</s:if>
</td>
<td class="effort">
@@ -479,7 +485,13 @@
</s:if>
<s:property value="#expected"/>
<s:if test="authenticatedWaoUser.authorizedToViewSamplingPlanReal">
- <s:property value="samplingPlan.getTotalRatio(#month)"/>
+ <span class="estimated">
+ <s:property value="samplingPlan.getTotalEstimatedRatio(#month)"/>
+ </span>
+ <span class="real">
+ <s:property value="samplingPlan.getTotalRealRatio(#month)"/>
+ </span>
+
</s:if>
</td>
</s:iterator>
@@ -498,7 +510,13 @@
</s:if>
<s:property value="#expected"/>
<s:if test="authenticatedWaoUser.authorizedToViewSamplingPlanReal">
- <s:property value="samplingPlan.highTotalRatio" />
+ <span class="estimated">
+ <s:property value="samplingPlan.highTotalEstimatedRatio"/>
+ </span>
+ <span class="real">
+ <s:property value="samplingPlan.highTotalRealRatio"/>
+ </span>
+
</s:if>
</td>
<td class="effort">
1
0
r1771 - in trunk/wao-web/src/main/webapp: WEB-INF/content/obsmer css
by bleny@users.forge.codelutin.com 28 Mar '14
by bleny@users.forge.codelutin.com 28 Mar '14
28 Mar '14
Author: bleny
Date: 2014-03-28 10:59:05 +0100 (Fri, 28 Mar 2014)
New Revision: 1771
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1771
Log:
refs #4483 show/hide sample row comment on hover
Modified:
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
trunk/wao-web/src/main/webapp/css/wao.css
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-28 09:23:06 UTC (rev 1770)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-28 09:59:05 UTC (rev 1771)
@@ -380,7 +380,9 @@
<s:property value="appliedCoverageRate" />%
</s:if>
</td>
- <td><s:property value="comment" /></td>
+ <td class="ellipsis">
+ <s:property value="comment"/>
+ </td>
<td class="actions">
<div class="dropdown">
Modified: trunk/wao-web/src/main/webapp/css/wao.css
===================================================================
--- trunk/wao-web/src/main/webapp/css/wao.css 2014-03-28 09:23:06 UTC (rev 1770)
+++ trunk/wao-web/src/main/webapp/css/wao.css 2014-03-28 09:59:05 UTC (rev 1771)
@@ -65,7 +65,23 @@
}
+td.ellipsis {
+ max-width: 100px;
+}
+.ellipsis {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+td.ellipsis:hover {
+ overflow: visible;
+ white-space: normal;
+ text-overflow: initial;
+}
+
+
/******************************************************************************
* Styles globaux à l'application
*****************************************************************************/
1
0
r1770 - in trunk/wao-web/src/main/webapp/WEB-INF: content/obsmer decorators
by bleny@users.forge.codelutin.com 28 Mar '14
by bleny@users.forge.codelutin.com 28 Mar '14
28 Mar '14
Author: bleny
Date: 2014-03-28 10:23:06 +0100 (Fri, 28 Mar 2014)
New Revision: 1770
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1770
Log:
refs #4483 implements compact/full view switch
Modified:
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-27 16:51:58 UTC (rev 1769)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-28 09:23:06 UTC (rev 1770)
@@ -159,12 +159,12 @@
</s:form>
<button type="button" id="switch-compact-full-view" class="btn <s:if test="fullView">full-view</s:if><s:else>compact-view</s:else>">
+ <span class="only-in-compact-view">
+ <i class="icon-resize-full"></i> <s:text name="wao.ui.action.switchToFullView" />
+ </span>
<span class="only-in-full-view">
- <i class="icon-resize-small"></i> <s:text name="wao.ui.action.switchToFullView" />
+ <i class="icon-resize-small"></i> <s:text name="wao.ui.action.switchToCompactView" />
</span>
- <span class="only-in-compact-view">
- <i class="icon-resize-full"></i> <s:text name="wao.ui.action.switchToCompactView" />
- </span>
</button>
<s:if test="authenticatedWaoUser.authorizedToViewSamplingPlanReal">
@@ -182,19 +182,26 @@
</s:a>
</s:if>
-<s:set var="estimatedTides" value="true"/>
-<s:set var="fullView" value="%{fullView}"/>
-<s:set var="displayTidesReal" value="true"/>
+<s:set var="estimatedTides" value="true" />
+<s:set var="fullView" value="%{fullView}" />
+<s:set var="displayTidesReal" value="true" />
-<s:set var="nbColumnsForProfession" value="%{#fullView ? 13 : 5}"/>
-<s:set var="nbColumnsForMonths" value="%{samplingPlan.months.size() + 1}"/>
-<s:set var="nbColumnsForOther" value="6"/>
-<s:set var="nbColumnsTotal" value="%{#nbColumnsForProfession + #nbColumnsForMonths + #nbColumnsForOther}"/>
+<s:set var="nbColumnsForProfessionInFullView" value="13" />
+<s:set var="nbColumnsForProfessionInCompactView" value="5" />
+<s:set var="nbColumnsForMonths" value="%{samplingPlan.months.size() + 1}" />
+<s:set var="nbColumnsForOther" value="6" />
+<s:set var="nbColumnsTotalInFullView" value="%{#nbColumnsForProfessionInFullView + #nbColumnsForMonths + #nbColumnsForOther}" />
+<s:set var="nbColumnsTotalInCompactView" value="%{#nbColumnsForProfessionInCompactView + #nbColumnsForMonths + #nbColumnsForOther}" />
<table id="sampling-plan" class="large-table sampling-plan show-estimated <s:if test="fullView">full-view</s:if><s:else>compact-view</s:else>">
<thead>
<tr>
- <th colspan="${nbColumnsForProfession}"> <s:text name="wao.ui.samplingPlan.sampledProfessions" /></th>
+ <th colspan="<s:property value="#nbColumnsForProfessionInFullView" />" class="only-in-full-view">
+ <s:text name="wao.ui.samplingPlan.sampledProfessions" />
+ </th>
+ <th colspan="<s:property value="#nbColumnsForProfessionInCompactView" />" class="only-in-compact-view">
+ <s:text name="wao.ui.samplingPlan.sampledProfessions" />
+ </th>
<th colspan="${nbColumnsForMonths}">
<s:text name="wao.ui.samplingPlan.effort" />
@@ -217,26 +224,20 @@
<!-- Profession columns -->
<th><s:text name="wao.ui.field.SampleRow.code"/></th>
<th><s:text name="wao.ui.samplingPlan.program"/></th>
-<s:if test="fullView">
- <th class="only-visible-fullview"><s:text name="wao.ui.entity.Company"/></th>
-</s:if>
+ <th class="only-in-full-view"><s:text name="wao.ui.entity.Company"/></th>
<th><s:text name="wao.ui.entity.FishingZone"/></th>
-<s:if test="fullView">
- <th class="only-visible-fullview"><s:text name="wao.ui.samplingPlan.fishingZoneInfo"/></th>
- <th class="only-visible-fullview"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.dcf5Code"/></th>
- <th class="only-visible-fullview"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.meshSize"/></th>
- <th class="only-visible-fullview"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.size"/></th>
- <th class="only-visible-fullview"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.other"/></th>
- <th class="only-visible-fullview"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.libelle"/></th>
- <th class="only-visible-fullview"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.species"/></th>
- <th class="only-visible-fullview"><s:text name="wao.ui.field.SampleRow.periodBegin"/></th>
- <th class="only-visible-fullview"><s:text name="wao.ui.field.SampleRow.periodEnd"/></th>
-</s:if>
-<s:else>
- <th class="only-visible-compactview"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.dcf5Code"/></th>
- <th class="only-visible-compactview"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.libelle"/></th>
-</s:else>
-
+ <th class="only-in-full-view"><s:text name="wao.ui.samplingPlan.fishingZoneInfo"/></th>
+ <th class="only-in-full-view"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.dcf5Code"/></th>
+ <th class="only-in-full-view"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.meshSize"/></th>
+ <th class="only-in-full-view"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.size"/></th>
+ <th class="only-in-full-view"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.other"/></th>
+ <th class="only-in-full-view"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.libelle"/></th>
+ <th class="only-in-full-view"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.species"/></th>
+ <th class="only-in-full-view"><s:text name="wao.ui.field.SampleRow.periodBegin"/></th>
+ <th class="only-in-full-view"><s:text name="wao.ui.field.SampleRow.periodEnd"/></th>
+ <th class="only-in-compact-view"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.dcf5Code"/></th>
+ <th class="only-in-compact-view"><s:text name="wao.ui.misc.METIER"/> <br/> <s:text name="wao.ui.field.SampleRow.libelle"/></th>
+
<!-- Months columns -->
<s:iterator value="samplingPlan.months" var="month">
<th class="effort <s:if test="@fr.ifremer.wao.WaoUtils@isCurrentMonth(#month)"> now</s:if>">
@@ -267,13 +268,25 @@
<%--Iterate on Facades--%>
<s:iterator value="samplingPlan" var="samplingPlanFacade">
<tr class="facade-row">
- <th colspan="${nbColumnsTotal}" class="facade"><s:property value="%{#samplingPlanFacade.facade}"/></td>
+ <th colspan="${nbColumnsTotalInFullView}" class="facade only-in-full-view">
+ <s:property value="%{#samplingPlanFacade.facade}"/>
+ </th>
+ <th colspan="${nbColumnsTotalInCompactView}" class="facade only-in-compact-view">
+ <s:property value="%{#samplingPlanFacade.facade}"/>
+ </th>
</tr>
<%--Iterate on Sectors --%>
<s:iterator value="samplingPlanFacade" var="samplingPlanSector">
<tr class="sector-row">
- <th colspan="${nbColumnsTotal}" class="sector"><s:property value="%{#samplingPlanSector.sectors}"/></td>
+ <th colspan="${nbColumnsTotalInFullView}" class="sector only-in-full-view">
+ <s:property value="%{#samplingPlanSector.sectors}"/>
+ </th>
</tr>
+ <tr class="sector-row">
+ <th colspan="${nbColumnsTotalInCompactView}" class="sector only-in-compact-view">
+ <s:property value="%{#samplingPlanSector.sectors}"/>
+ </th>
+ </tr>
<%--Iterate on SampleRows --%>
<s:iterator value="samplingPlanSector" var="samplingPlanRow">
<tr class="sample-row-row<s:if test="sampleRowToHighlightId.equals(topiaId)"> highlight</s:if>">
@@ -281,29 +294,24 @@
<s:property value="code" />
</th>
<td><s:property value="programName" /></td>
-<s:if test="fullView">
- <td class="only-visible-fullview"><s:property value="companyName" /></td>
-</s:if>
- <td class="only-visible-fullview"><s:property value="fishingZones" /></td>
-<s:if test="fullView">
- <td class="only-visible-fullview"><s:property value="fishingZonesInfos" /></td>
- <td class="only-visible-fullview">
+ <td class="only-in-full-view"><s:property value="companyName" /></td>
+ <td><s:property value="fishingZones" /></td>
+ <td class="only-in-full-view"><s:property value="fishingZonesInfos" /></td>
+ <td class="only-in-full-view">
<s:iterator value="dcf5CodesAndDescriptions">
<span>
<s:property value="key"/>
</span>
</s:iterator>
</td>
- <td class="only-visible-fullview"><s:property value="professionMeshSize" /></td>
- <td class="only-visible-fullview"><s:property value="professionSize" /></td>
- <td class="only-visible-fullview"><s:property value="professionOther" /></td>
- <td class="only-visible-fullview"><s:property value="professionLibelle" /></td>
- <td class="only-visible-fullview"><s:property value="professionSpecies" /></td>
- <td class="only-visible-fullview"><s:property value="%{formatMonth(periodBegin)}" /></td>
- <td class="only-visible-fullview"><s:property value="%{formatMonth(periodEnd)}" /></td>
-</s:if>
-<s:else>
- <td class="only-visible-compactview">
+ <td class="only-in-full-view"><s:property value="professionMeshSize" /></td>
+ <td class="only-in-full-view"><s:property value="professionSize" /></td>
+ <td class="only-in-full-view"><s:property value="professionOther" /></td>
+ <td class="only-in-full-view"><s:property value="professionLibelle" /></td>
+ <td class="only-in-full-view"><s:property value="professionSpecies" /></td>
+ <td class="only-in-full-view"><s:property value="%{formatMonth(periodBegin)}" /></td>
+ <td class="only-in-full-view"><s:property value="%{formatMonth(periodEnd)}" /></td>
+ <td class="only-in-compact-view">
<s:iterator value="dcf5CodesAndDescriptions">
<span>
<s:property value="key"/>
@@ -311,10 +319,9 @@
</s:iterator>
<s:property value="professionDescriptionWithoutDCF5" />
</td>
- <td class="only-visible-compactview">
+ <td class="only-in-compact-view">
<s:property value="professionLibelle" />
</td>
-</s:else>
<!-- Months columns -->
<s:iterator value="samplingPlan.months" var="month">
<s:set var="expected" value="%{getNbTidesExpected(#month)}"/>
@@ -447,9 +454,12 @@
</todby>
<tfoot>
- <th colspan="${nbColumnsForProfession}">
+ <th colspan="<s:property value="#nbColumnsForProfessionInFullView" />" class="only-in-full-view">
<s:text name="wao.ui.misc.totals" />
</th>
+ <th colspan="<s:property value="#nbColumnsForProfessionInCompactView" />" class="only-in-compact-view">
+ <s:text name="wao.ui.misc.totals" />
+ </th>
<!-- Months columns -->
<s:iterator value="samplingPlan.months" var="month">
<td class="effort<s:if test="@fr.ifremer.wao.WaoUtils@isCurrentMonth(#month)"> now</s:if>">
@@ -489,7 +499,7 @@
<s:property value="samplingPlan.highTotalRatio" />
</s:if>
</td>
- <td>
+ <td class="effort">
<s:set var="expected" value="%{samplingPlan.observationTimesInDaysTotalExpected}"/>
<s:set var="estimated" value="%{samplingPlan.observationTimesInDaysTotalEstimated}"/>
<s:set var="real" value="%{samplingPlan.observationTimesInDaysTotalReal}"/>
Modified: trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-03-27 16:51:58 UTC (rev 1769)
+++ trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-03-28 09:23:06 UTC (rev 1770)
@@ -75,7 +75,7 @@
<li>
<s:url namespace="/%{obsProgram.name().toLowerCase()}" action="synthesis" id="synthesisUrl" />
<s:a href="%{synthesisUrl}">
- <s:text name="wao.ui.page.Synthesis.title" />
+ <i class="icon-signal"></i> <s:text name="wao.ui.page.Synthesis.title" />
</s:a>
</li>
</ul>
1
0
27 Mar '14
See <http://ci.codelutin.com/jenkins/job/wao-nightly/12/changes>
Changes:
[bleny] refs #4483 reintroduce SampleRowLogImplTest
------------------------------------------
[...truncated 407 lines...]
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] Scan 235 files header done in 262.427ms.
[INFO]
* uptodate header on 36 files.
* add header on 199 files.
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ wao-persistence ---
[INFO] Compiling 202 source files to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>: Some input files use unchecked or unsafe operations.
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.9:check (default) @ wao-persistence ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java17:1.0
[INFO]
[INFO] --- jredmine-maven-plugin:1.6:generate-changes (jredmine-generate-changes) @ wao-persistence ---
[INFO] Skipping goal (skipGenerateChanges flag is on).
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ wao-persistence ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] Executed tasks
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ wao-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ wao-persistence ---
[INFO] Compiling 1 source file to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO]
[INFO] --- maven-surefire-plugin:2.16:test (default-test) @ wao-persistence ---
[INFO] Surefire report directory: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running fr.ifremer.wao.entity.SampleRowLogImplTest
log4j:WARN No appenders could be found for logger (fr.ifremer.wao.entity.SampleRowLogImplTest).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.121 sec - in fr.ifremer.wao.entity.SampleRowLogImplTest
Results :
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[JENKINS] Recording test results
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO]
[INFO] >>> maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence >>>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (ensure-no-container-api) @ wao-persistence ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ wao-persistence ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-redmine-login) @ wao-persistence ---
[INFO] Skipping goal (runOnce flag is on and goal was already executed).
[INFO]
[INFO] --- eugene-maven-plugin:2.7.3:generate (generate-entities) @ wao-persistence ---
[INFO] Process phase [zargo] for one entry.
[INFO] Expanding 1 xmi file(s) from <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] Copy file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…> to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] No file generated.
[INFO] Process phase [xmi] for one entry.
[INFO] Processing XSL tranformation on <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…> for 1 file(s).
[INFO] No file generated.
[INFO] Process phase [model] for one entry.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:126) beforeReadFile - No properties provider filled, will instanciate a new default one
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:577) getObjectElements - Invalid tagvalue [fr.ifremer.wao.entity.Boat.attribute.boatDistrict.tagValue.lazy] : Element 'boatDistrict' of type 'attribute' on classifier 'fr.ifremer.wao.entity.Boat' is null.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:577) getObjectElements - Invalid tagvalue [fr.ifremer.wao.entity.WaoUser.attribute.SampleRow.tagValue.inverse] : Element 'SampleRow' of type 'attribute' on classifier 'fr.ifremer.wao.entity.WaoUser' is null.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:459) loadTagValue - Invalid tag value [fr.ifremer.wao.entity.WaoUser.attribute.allegroWallet.tagValue.unique] : this tagvalue 'unique' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.copyright] : the tagvalue 'copyright' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.exceptionClass] : the tagvalue 'exceptionClass' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.java.lang.String] : the tagvalue 'java.lang.String' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:303) loadModelTagValue - Invalid model tag value [model.tagValue.useEnumerationName] : this tagvalue 'useEnumerationName' can not be apply on the model.
INFO [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:270) loadModelProperties - 32 tag values were succesfull imported from <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] No file generated.
[INFO] Apply generator TopiaMetaTransformer
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [getUserProfile([fr.ifremer.wao.entity.ObsProgram obsProgram<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name getUserProfile is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [setDCF5Code([java.lang.String codes<<[]>> tagvalue: {}, java.lang.String separatorRegex<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name setDCF5Code is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [getSampleMonth([java.util.Date date<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name getSampleMonth is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [setLogText([fr.ifremer.wao.entity.SampleRow oldSampleRow<<[]>> tagvalue: {}, fr.ifremer.wao.entity.SampleRow newSampleRow<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name setLogText is already reserved for a getter/setter of an entity attribute
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.WaoUserImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FishingGearDCFImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialDivisionImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.DCF5CodeImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.BoatImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ContactImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.IndicatorImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ContactStateMotifImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialLocationImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.BoatGroupImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.CompanyImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.IndicatorLevelImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FishingZoneImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleMonthImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FleetImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.UserProfileImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TargetSpeciesDCFImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ObsDebCodeImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowLogImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.NewsImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.WaoUserTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialDivisionTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialLocationTopiaDao], already found in class-path.
[WARNING] Failed to getClass for org.apache.maven.plugin.source.SourceJarMojo
[INFO]
[INFO] <<< maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence <<<
[INFO]
[INFO] --- maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO]
[INFO] --- maven-javadoc-plugin:2.9.1:jar (attach-javadocs) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO]
[INFO] --- maven-site-plugin:3.3:attach-descriptor (attach-descriptor) @ wao-persistence ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-pgp-passphrase) @ wao-persistence ---
[INFO] Exporting server [gpg-signer] username in ${gpg.keyname}
[INFO] Exporting server [gpg-signer] password in ${gpg.passphrase}
[INFO]
[INFO] --- helper-maven-plugin:2.1:collect-files (collect-build-artifacts) @ wao-persistence ---
[INFO] Loaded <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect-art…>
[INFO] Copying wao-persistence-4.0-SNAPSHOT.jar to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect/fr.…>
[INFO] Copying THIRD-PARTY.properties to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect/fr.…>
[INFO] Copying wao-persistence-4.0-SNAPSHOT-sources.jar to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect/fr.…>
[INFO] Copying wao-persistence-4.0-SNAPSHOT-javadoc.jar to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect/fr.…>
[INFO]
[INFO] --- helper-maven-plugin:2.1:collect-files (collect-build-attachements) @ wao-persistence ---
[WARNING] Skipping goal (No file to collect).
[INFO]
[INFO] --- maven-gpg-plugin:1.4:sign (sign-artifacts) @ wao-persistence ---
[INFO]
[INFO] --- maven-dependency-plugin:2.8:analyze-only (analyze) @ wao-persistence ---
[INFO] Used declared dependencies found:
[INFO] org.nuiton.topia:topia-persistence:jar:3.0-SNAPSHOT:compile
[INFO] org.nuiton:nuiton-config:jar:3.0-alpha-1:compile
[INFO] org.nuiton.i18n:nuiton-i18n:jar:3.0:compile
[INFO] org.apache.commons:commons-lang3:jar:3.1:compile
[INFO] commons-logging:commons-logging:jar:1.1.3:compile
[INFO] com.google.guava:guava:jar:15.0:compile
[INFO] junit:junit:jar:4.11:test
[WARNING] Used undeclared dependencies found:
[WARNING] org.hibernate:hibernate-core:jar:4.2.8.Final:compile
[WARNING] org.nuiton:nuiton-utils:jar:3.0-SNAPSHOT:compile
[WARNING] commons-collections:commons-collections:jar:3.2.1:compile
[WARNING] Unused declared dependencies found:
[WARNING] org.apache.commons:commons-collections4:jar:4.0:compile
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Wao ............................................... SUCCESS [ 6.625 s]
[INFO] Wao :: Persistence ................................ FAILURE [ 25.838 s]
[INFO] Wao :: Services ................................... SKIPPED
[INFO] Wao :: Web ........................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 34.095 s
[INFO] Finished at: 2014-03-18T00:07:25+01:00
[JENKINS] Archiving disabled
[INFO] Final Memory: 97M/1004M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:analyze-only (analyze) on project wao-persistence: Dependency problems found -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:analyze-only (analyze) on project wao-persistence: Dependency problems found
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.jvnet.hudson.maven3.launcher.Maven31Launcher.main(Maven31Launcher.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at jenkins.maven3.agent.Maven31Main.launch(Maven31Main.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.maven.plugin.MojoExecutionException: Dependency problems found
at org.apache.maven.plugin.dependency.analyze.AbstractAnalyzeMojo.execute(AbstractAnalyzeMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 30 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :wao-persistence
Sending e-mails to: wao-commits(a)list.forge.codelutin.com
Sending e-mails to: wao-commits(a)list.forge.codelutin.com leny(a)codelutin.com
channel stopped
Skipping sonar analysis due to bad build status FAILURE
1
7