r1903 - in trunk: wao-services/src/main/java/fr/ifremer/wao/services wao-services/src/main/java/fr/ifremer/wao/services/service wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer wao-web/src/main/resources/i18n wao-web/src/main/webapp wao-web/src/main/webapp/WEB-INF/content/obsmer wao-web/src/main/webapp/WEB-INF/decorators
Author: bleny Date: 2014-04-24 14:26:15 +0200 (Thu, 24 Apr 2014) New Revision: 1903 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1903 Log: refs #4487 start reviewing contacts page Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.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/SampleRowsFilterValues.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ContactsAction.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ImportContactsAction.java trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp trunk/wao-web/src/main/webapp/wao.css Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java 2014-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java 2014-04-24 12:26:15 UTC (rev 1903) @@ -187,6 +187,10 @@ return userProfile.isAdmin(); } + public boolean isAuthorizedToImportContacts() { + return userProfile.isAdmin(); + } + public boolean isAuthorizedToEditSamplingPlan() { return userProfile.isAdmin(); } 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-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-04-24 12:26:15 UTC (rev 1903) @@ -424,12 +424,11 @@ dcf5CodesAndDescriptions.put(key, description); } terrestrialLocationNamesAndDescriptions = new LinkedHashMap<>(); - if (CollectionUtils.isNotEmpty(sampleRow.getTerrestrialLocations())) { for (TerrestrialLocation terrestrialLocation : sampleRow.getTerrestrialLocations()) { String key = terrestrialLocation.getDistrictName(); String description = terrestrialLocation.getDescription(); - dcf5CodesAndDescriptions.put(key, description); + terrestrialLocationNamesAndDescriptions.put(key, description); } } professionDescriptionWithoutDCF5 = sampleRow.getProfessionDescriptionWithoutDCF5(); 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-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java 2014-04-24 12:26:15 UTC (rev 1903) @@ -74,7 +74,6 @@ fishingZoneFacadeNames.add(FilterOption.forString(fishingZone.getFacadeName())); fishingZoneSectorNames.add(FilterOption.forString(fishingZone.getSectorName())); } - //sampleRowCodes.add(FilterOption.forString(sampleRow.getCode())); sampleRowCodes.add(FilterOption.forString(sampleRow.getCode())); programNames.add(FilterOption.forString(sampleRow.getProgramName())); Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ContactsAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ContactsAction.java 2014-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ContactsAction.java 2014-04-24 12:26:15 UTC (rev 1903) @@ -23,26 +23,25 @@ import com.opensymphony.xwork2.Preparable; import fr.ifremer.wao.ContactsFilter; -import fr.ifremer.wao.entity.Boat; +import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.Contact; import fr.ifremer.wao.entity.ContactState; +import fr.ifremer.wao.entity.DCF5Code; import fr.ifremer.wao.entity.FishingZone; -import fr.ifremer.wao.entity.ObsProgram; -import fr.ifremer.wao.entity.Profession; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.services.service.ContactsFilterValues; import fr.ifremer.wao.services.service.ObsMerContactsList; import fr.ifremer.wao.services.service.ObsMerContactsService; import fr.ifremer.wao.services.service.PaginationBean; import fr.ifremer.wao.web.WaoJspActionSupport; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.time.DateUtils; import org.nuiton.topia.persistence.pager.TopiaPagerBean; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.Date; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; /** * Created on 4/3/14. @@ -153,56 +152,6 @@ return comment; } - public String getTooltipBoat(Boat boat) { - StringBuilder result = new StringBuilder("<strong>"). - append(boat.getImmatriculation()).append("</strong>"). - append("\n<strong>Quartier : </strong>"). - append(boat.getDistrictCode()). - append("\n<strong>Longueur : </strong>"). - append(boat.getBoatLength()).append(" m"). - append("\n<strong>Année de construction : </strong>"). - append(boat.getBuildYear()); - return getTooltipText(result.toString()); - } - - //FIXME - public String getTooltipSampleRow(SampleRow row) { - StringBuilder result = new StringBuilder(); - DateFormat dateFormat; - if (row.getObsProgram() == ObsProgram.OBSDEB) { - if (row.isFieldWorkObservation()) { - dateFormat = new SimpleDateFormat("dd/MM/yyyy"); - result.append(row.getObservationUnit().getDescription()); - } else { - dateFormat = new SimpleDateFormat("'semaine' w (yyyy)"); - result.append(row.getBoat().getName()); - } - result.append("\n") - .append(dateFormat.format(row.getExpectedDate())); - } else { - dateFormat = new SimpleDateFormat("MM/yyyy"); - Profession profession = row.getProfession(); - result.append("<strong>Métier : </strong>"). - append(row.getProfessionDescription()); - result.append(" - ").append(profession.getLibelle()); - if (!StringUtils.isEmpty(profession.getSpecies())) { - result.append("\n<strong>Espèces cibles : </strong>"). - append(profession.getSpecies()); - } - result.append("\n<strong>Programme : </strong>"). - append(row.getProgramName()). - append("\n<strong>Période : </strong> du "). - append(dateFormat.format(row.getPeriodBegin())).append(" au "). - append(dateFormat.format(row.getPeriodEnd())); - - for (FishingZone zone : row.getFishingZone()) { - result.append("\n<strong>Zone de pêche : </strong>"). - append(zone.getCode()); - } - } - return getTooltipText(result.toString()); - } - public String getDivision(SampleRow sampleRow) { String result = ""; for (FishingZone zone : sampleRow.getFishingZone()) { @@ -233,7 +182,44 @@ return result; } + public String getContactCssClass(Contact contact) { + // TODO brendan 23/04/14 revoir la logique + boolean admin = getAuthenticatedWaoUser().isAdmin(); + String result = ""; + boolean accepted = BooleanUtils.isTrue(contact.getValidationProgram()) || + (!admin && BooleanUtils.isTrue(contact.getValidationCompany())); + + ContactState state = contact.getContactState(); + if (BooleanUtils.isFalse(contact.getValidationProgram()) || + (!admin && BooleanUtils.isFalse(contact.getValidationCompany()))) { + result = "refused"; + } else if (accepted && state.equals(ContactState.OBSERVATION_DONE)) { + result = "accepted"; + } else if (accepted && state.isUnfinishedState()) { + result = "unfinished"; + } else if (state.isFinalState()) { + result = "even"; + } else { + result = "odd"; + } + return result; + } + public String getContactToHighlightId() { return session.getContactToHighlightId(); } + + public Map<String, String> getDcf5CodesAndDescriptions(SampleRow sampleRow) { + Map<String, String> dcf5CodesAndDescriptions = new LinkedHashMap<>(); + for (DCF5Code dcf5Code : sampleRow.getdCF5Code()) { + String key = dcf5Code.getCode(); + String description = dcf5Code.getFishingGearCode() + " - " + WaoUtils.l(getLocale(), dcf5Code.getFishingGearDCF()); + if (dcf5Code.getTargetSpeciesCode() != null) { + description += " ; " + dcf5Code.getTargetSpeciesCode() + " - " + WaoUtils.l(getLocale(), dcf5Code.getTargetSpeciesDCF()); + } + dcf5CodesAndDescriptions.put(key, description); + } + return dcf5CodesAndDescriptions; + } + } \ No newline at end of file Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ImportContactsAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ImportContactsAction.java 2014-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ImportContactsAction.java 2014-04-24 12:26:15 UTC (rev 1903) @@ -36,9 +36,9 @@ * @since 4.0 */ @Results({ - @Result(name = "error", type = "redirectAction", params = {"actionName", "import-contacts!input"}), - @Result(name = "success", type = "redirectAction", params = {"actionName", "contacts"}) - }) + @Result(name = "error", type = "redirectAction", params = {"actionName", "import-contacts!input"}), + @Result(name = "success", type = "redirectAction", params = {"actionName", "contacts"}) + }) public class ImportContactsAction extends AbstractImportCsvAction { private static final long serialVersionUID = 1L; Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties =================================================================== --- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-24 12:26:15 UTC (rev 1903) @@ -17,7 +17,7 @@ wao.import.terrestrialLocations.prompt=Import terrestrial locations wao.import.terrestrialLocations.success=Import terrestrial locations successful wao.ui.acceptCgu=I've read and accept the terms of use -wao.ui.action.acceptContact=Validate contact +wao.ui.action.acceptContact=Accept contact wao.ui.action.add=Add wao.ui.action.addNewContactFromBoat=Create a new contact for this boat and the selected sample row (in filters) wao.ui.action.back=Back to previous screen Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties =================================================================== --- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-24 12:26:15 UTC (rev 1903) @@ -17,7 +17,7 @@ wao.import.terrestrialLocations.prompt=Import des lieux terrestres wao.import.terrestrialLocations.success=Import des lieux terrestres réalisé avec succès wao.ui.acceptCgu=J'ai lu et j'accepte les conditions d'utilisation -wao.ui.action.acceptContact=Valider le contact +wao.ui.action.acceptContact=Accepter le contact wao.ui.action.add=Ajouter wao.ui.action.addNewContactFromBoat=Créer un nouveau contact pour ce navire et la ligne sélectionnée dans les filtres wao.ui.action.back=Revenir à l'écran précédent Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-04-24 12:26:15 UTC (rev 1903) @@ -71,203 +71,191 @@ <s:form method="GET" id="contacts-filters-form" cssClass="filters-form"> -<fieldset> + <fieldset> - <s:textfield name="filter.periodFrom" - label="%{getText('wao.ui.form.periodFrom')}" - placeholder="%{getFilterPeriodFromPlaceholder()}" - cssClass="input-small"/> + <s:textfield name="filter.periodFrom" + label="%{getText('wao.ui.form.periodFrom')}" + placeholder="%{getFilterPeriodFromPlaceholder()}" + cssClass="input-small"/> - <s:textfield name="filter.periodTo" - label="%{getText('wao.ui.form.period.to')}" - placeholder="%{getFilterPeriodToPlaceholder()}" - cssClass="input-small"/> + <s:textfield name="filter.periodTo" + label="%{getText('wao.ui.form.period.to')}" + placeholder="%{getFilterPeriodToPlaceholder()}" + cssClass="input-small"/> -</fieldset> + <s:checkbox name="filter.filterOnObservationBeginDate" + label="%{getText('wao.ui.form.filterOnObservationBeginDate')}"/> -<fieldset> + </fieldset> - <s:select name="filter.boatFilter.boatIds" - label="%{getText('wao.ui.contacts.boatName')}" - list="filterValues.boatNames" - listKey="value" - listValue="label" - multiple="true" - dataBinding="boatNames"/> + <fieldset> - <s:select name="filter.boatFilter.registrationCode" - label="%{getText('wao.ui.field.Boat.immatriculation')}" - list="filterValues.boatRegistrationCodes" - listKey="value" - listValue="label" - multiple="true" - dataBinding="boatRegistrationCodes"/> + <s:select name="filter.sampleRowFilter.sampleRowCodes" + label="%{getText('wao.ui.field.SampleRow.code')}" + list="filterValues.sampleRowsFilterValues.sampleRowCodes" + listKey="value" + listValue="label" + multiple="true" + dataBinding="sampleRowsFilterValues.sampleRowCodes"/> -</fieldset> + <s:select name="filter.sampleRowFilter.programNames" + label="%{getText('wao.ui.field.SampleRow.programName')}" + list="filterValues.sampleRowsFilterValues.programNames" + listKey="value" + listValue="label" + multiple="true" + dataBinding="sampleRowsFilterValues.programNames"/> -<fieldset> + <s:select name="filter.sampleRowFilter.fishingZoneFacadeNames" + label="%{getText('wao.ui.field.FishingZone.facadeName')}" + list="filterValues.sampleRowsFilterValues.fishingZoneFacadeNames" + listKey="value" + listValue="label" + multiple="true" + dataBinding="sampleRowsFilterValues.fishingZoneFacadeNames"/> - <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> - - <s:select name="filter.sampleRowFilter.companyIds" - label="%{getText('wao.ui.entity.Company')}" - list="filterValues.sampleRowsFilterValues.companies" + <s:select name="filter.sampleRowFilter.fishingZoneSectorNames" + label="%{getText('wao.ui.field.FishingZone.sectorName')}" + list="filterValues.sampleRowsFilterValues.fishingZoneSectorNames" listKey="value" listValue="label" multiple="true" - dataBinding="sampleRowsFilterValues.companies"/> + dataBinding="sampleRowsFilterValues.fishingZoneSectorNames"/> - </s:if> + </fieldset> - <s:select name="filter.sampleRowFilter.sampleRowCodes" - label="%{getText('wao.ui.field.SampleRow.code')}" - list="filterValues.sampleRowsFilterValues.sampleRowCodes" - listKey="value" - listValue="label" - multiple="true" - dataBinding="sampleRowsFilterValues.sampleRowCodes"/> + <fieldset> - <s:select name="filter.sampleRowFilter.programNames" - label="%{getText('wao.ui.field.SampleRow.programName')}" - list="filterValues.sampleRowsFilterValues.programNames" - listKey="value" - listValue="label" - multiple="true" - dataBinding="sampleRowsFilterValues.programNames"/> + <s:select name="filter.boatFilter.boatIds" + label="%{getText('wao.ui.contacts.boatName')}" + list="filterValues.boatNames" + listKey="value" + listValue="label" + multiple="true" + dataBinding="boatNames"/> -</fieldset> + <s:select name="filter.boatFilter.registrationCode" + label="%{getText('wao.ui.field.Boat.immatriculation')}" + list="filterValues.boatRegistrationCodes" + listKey="value" + listValue="label" + multiple="true" + dataBinding="boatRegistrationCodes"/> -<fieldset> + <s:select name="filter.boatFilter.districtIds" + label="%{getText('wao.ui.field.Boat.district')}" + list="filterValues.boatsFilterValues.districts" + listKey="value" + listValue="label" + multiple="true" + dataBinding="boatsFilterValues.districts"/> - <s:select name="filter.sampleRowFilter.fishingZoneFacadeNames" - label="%{getText('wao.ui.field.FishingZone.facadeName')}" - list="filterValues.sampleRowsFilterValues.fishingZoneFacadeNames" - listKey="value" - listValue="label" - multiple="true" - dataBinding="sampleRowsFilterValues.fishingZoneFacadeNames"/> + </fieldset> - <s:select name="filter.sampleRowFilter.fishingZoneSectorNames" - label="%{getText('wao.ui.field.FishingZone.sectorName')}" - list="filterValues.sampleRowsFilterValues.fishingZoneSectorNames" - listKey="value" - listValue="label" - multiple="true" - dataBinding="sampleRowsFilterValues.fishingZoneSectorNames"/> + <fieldset> - <s:select name="filter.boatFilter.districtIds" - label="%{getText('wao.ui.field.Boat.district')}" - list="filterValues.boatsFilterValues.districts" - listKey="value" - listValue="label" - multiple="true" - dataBinding="boatsFilterValues.districts"/> + <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> -</fieldset> + <s:select name="filter.sampleRowFilter.companyIds" + label="%{getText('wao.ui.entity.Company')}" + list="filterValues.sampleRowsFilterValues.companies" + listKey="value" + listValue="label" + multiple="true" + dataBinding="sampleRowsFilterValues.companies"/> -<fieldset> + </s:if> - <s:select name="filter.observerIds" - label="%{getText('wao.ui.misc.observer')}" - list="filterValues.observers" - listKey="value" - listValue="label" - multiple="true" - dataBinding="observers"/> + <s:select name="filter.observerIds" + label="%{getText('wao.ui.misc.observer')}" + list="filterValues.observers" + listKey="value" + listValue="label" + multiple="true" + dataBinding="observers"/> - <s:select name="filter.contactStates" - label="%{getText('wao.ui.field.Contact.contactState')}" - list="filterValues.contactStates" - listKey="value" - listValue="label" - multiple="true" - dataBinding="contactStates"/> + <s:select name="filter.contactStates" + label="%{getText('wao.ui.field.Contact.contactState')}" + list="filterValues.contactStates" + listKey="value" + listValue="label" + multiple="true" + dataBinding="contactStates"/> - <s:select name="filter.observedDataControls" - label="%{getText('wao.ui.field.Contact.observedDataControl')}" - list="filterValues.observedDataControls" - listKey="value" - listValue="label" - multiple="true" - dataBinding="observedDataControls"/> + <s:select name="filter.companyAcceptations" + label="%{getText('wao.ui.field.Contact.validationCompany')}" + list="filterValues.companyAcceptations" + listKey="value" + listValue="label" + multiple="true" + dataBinding="companyAcceptations"/> - <s:select name="filter.dataReliabilities" - label="%{getText('wao.ui.field.Contact.dataReliability')}" - list="filterValues.dataReliabilities" - listKey="value" - listValue="label" - multiple="true" - dataBinding="dataReliabilities"/> -</fieldset> + <s:select name="filter.programAcceptations" + label="%{getText('wao.ui.field.Contact.validationProgram')}" + list="filterValues.programAcceptations" + listKey="value" + listValue="label" + multiple="true" + dataBinding="programAcceptations"/> + </fieldset> -<fieldset> + <fieldset> - <s:select name="filter.companyAcceptations" - label="%{getText('wao.ui.field.Contact.validationCompany')}" - list="filterValues.companyAcceptations" - listKey="value" - listValue="label" - multiple="true" - dataBinding="companyAcceptations"/> + <s:select name="filter.observedDataControls" + label="%{getText('wao.ui.field.Contact.observedDataControl')}" + list="filterValues.observedDataControls" + listKey="value" + listValue="label" + multiple="true" + dataBinding="observedDataControls"/> - <s:select name="filter.programAcceptations" - label="%{getText('wao.ui.field.Contact.validationProgram')}" - list="filterValues.programAcceptations" - listKey="value" - listValue="label" - multiple="true" - dataBinding="programAcceptations"/> + <s:select name="filter.dataReliabilities" + label="%{getText('wao.ui.field.Contact.dataReliability')}" + list="filterValues.dataReliabilities" + listKey="value" + listValue="label" + multiple="true" + dataBinding="dataReliabilities"/> -</fieldset> + <s:checkbox name="filter.mammalsObservationOnly" + label="%{getText('wao.ui.misc.observations')}"/> -<fieldset> + <s:checkbox name="filter.mammalsCaptureOnly" + label="%{getText('wao.ui.field.Contact.mammalsCapture')}"/> - <s:checkbox name="filter.mammalsObservationOnly" - label="%{getText('wao.ui.misc.observations')}"/> + <s:checkbox name="filter.commentDefinedOnly" + label="%{getText('wao.ui.field.Contact.comment')}"/> - <s:checkbox name="filter.mammalsCaptureOnly" - label="%{getText('wao.ui.field.Contact.mammalsCapture')}"/> + <s:checkbox name="filter.commentCompanyDefinedOnly" + label="%{getText('wao.ui.field.Contact.commentCompany')}"/> - <s:checkbox name="filter.commentDefinedOnly" - label="%{getText('wao.ui.field.Contact.comment')}"/> + <s:checkbox name="filter.commentAdminDefinedOnly" + label="%{getText('wao.ui.field.Contact.commentAdmin')}"/> + </fieldset> - <s:checkbox name="filter.commentCompanyDefinedOnly" - label="%{getText('wao.ui.field.Contact.commentCompany')}"/> + <fieldset> - <s:checkbox name="filter.commentAdminDefinedOnly" - label="%{getText('wao.ui.field.Contact.commentAdmin')}"/> -</fieldset> + <s:checkbox name="filter.sortedByBoardingDate" + label="%{getText('wao.ui.form.sortByTideBegin')}"/> -<fieldset> + </fieldset> - <s:checkbox name="filter.sortedByBoardingDate" - label="%{getText('wao.ui.form.sortByTideBegin')}"/> + <div class="form-actions"> - <s:checkbox name="filter.filterOnObservationBeginDate" - label="%{getText('wao.ui.form.filterOnObservationBeginDate')}"/> + <s:submit type="button" cssClass="btn btn-primary"> + <i class="icon-filter"></i> <s:text name="wao.ui.action.filter"/> + </s:submit> -</fieldset> + <s:submit action="reset-contacts-filter" type="button" cssClass="btn"> + <i class="icon-reset"></i> <s:text name="wao.ui.action.reset"/> + </s:submit> -<div class="form-actions"> + <s:submit action="export-contacts" type="button" cssClass="btn"> + <i class="icon-download"></i> <s:text name="wao.ui.action.csvExport"/> + </s:submit> - <s:submit type="button" cssClass="btn btn-primary"> - <i class="icon-filter"></i> <s:text name="wao.ui.action.filter"/> - </s:submit> + </div> - <s:submit action="reset-contacts-filter" type="button" cssClass="btn"> - <i class="icon-reset"></i> <s:text name="wao.ui.action.reset"/> - </s:submit> - - <s:submit action="export-contacts" type="button" cssClass="btn"> - <i class="icon-download"></i> <s:text name="wao.ui.action.csvExport"/> - </s:submit> - - <s:submit action="import-contacts" method="input" type="button" cssClass="btn"> - <i class="icon-upload"></i> <s:text name="wao.ui.action.csvImport"/> - </s:submit> - -</div> - </s:form> <h3> @@ -320,278 +308,278 @@ </div> <s:set var="fullView" value="%{fullView}"/> <s:if test="authenticatedWaoUser.admin"> - <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.switchToCompactView"/> - </span> + <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.switchToCompactView"/> + </span> </button> </s:if> -<table id="contacts-list" class="large-table contacts-list"> -<thead> -<tr> - <th><s:text name="wao.ui.field.Contact.creationDate"/></th> - <th><s:text name="wao.ui.contacts.observers"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.field.SampleRow.company"/></th> - <th><s:text name="wao.ui.field.Contact.sampleRow"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.field.SampleRow.programName"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.field.SampleRow.professionCode"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.contacts.Profession.libelle"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.contacts.Profession.species"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.contacts.FishingZone.facadeName"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.contacts.FishingZone.sectorName"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.contacts.division"/></th> - <th><s:text name="wao.ui.contacts.boatName"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.contacts.immatriculation"/></th> - <th class="only-in-full-view"><s:text name="wao.ui.contacts.district"/></th> - <th><s:text name="wao.ui.field.Contact.contactState"/></th> - <th><s:text name="wao.ui.field.Contact.contactStateMotif"/></th> - <th><s:text name="wao.ui.field.Contact.beginDate"/></th> - <th><s:text name="wao.ui.field.Contact.endDate"/></th> - <th><s:text name="wao.ui.field.Contact.nbObservants"/></th> - <th><s:text name="wao.ui.contacts.observations"/></th> - <th><s:text name="wao.ui.field.Contact.comment"/></th> - <th><s:text name="wao.ui.field.Contact.dataInputDate"/></th> - <th><s:text name="wao.ui.field.Contact.observedDataControl"/></th> - <th><s:text name="wao.ui.field.Contact.restitution"/></th> - <th><s:text name="wao.ui.contacts.validation"/></th> - <th><s:text name="wao.ui.field.Contact.commentCompany"/></th> - <th><s:text name="wao.ui.field.Contact.commentAdmin"/></th> - <th><s:text name="wao.ui.field.Contact.dataReliability"/></th> - <th><s:text name="wao.ui.actions"/></th> -</tr> -</thead> -<tbody> +<table id="contacts-list" class="contacts-list large-table <s:if test="fullView">full-view</s:if><s:else>compact-view</s:else>"> + <thead> + <tr> + <th><s:text name="wao.ui.field.Contact.creationDate"/></th> + <th><s:text name="wao.ui.contacts.boatName"/></th> + <th><s:text name="wao.ui.field.Contact.sampleRow"/></th> + <th class="only-in-full-view"><s:text name="wao.ui.field.SampleRow.programName"/></th> + <th class="only-in-full-view"><s:text name="wao.ui.field.SampleRow.professionCode"/></th> + <th class="only-in-full-view"><s:text name="wao.ui.contacts.Profession.libelle"/></th> + <th class="only-in-full-view"><s:text name="wao.ui.contacts.Profession.species"/></th> + <th class="only-in-full-view"><s:text name="wao.ui.contacts.FishingZone.facadeName"/></th> + <th class="only-in-full-view"><s:text name="wao.ui.contacts.FishingZone.sectorName"/></th> + <th class="only-in-full-view"><s:text name="wao.ui.contacts.division"/></th> + <th class="only-in-full-view"><s:text name="wao.ui.field.SampleRow.company"/></th> + <th><s:text name="wao.ui.contacts.observers"/></th> + <th><s:text name="wao.ui.field.Contact.contactState"/> (<s:text name="wao.ui.field.Contact.contactStateMotif"/>)</th> + <th class="date-time"><s:text name="wao.ui.field.Contact.beginDate"/></th> + <th class="date-time"><s:text name="wao.ui.field.Contact.endDate"/></th> + <th class="date"><s:text name="wao.ui.field.Contact.dataInputDate"/></th> + <th class="date"><s:text name="wao.ui.field.Contact.restitution"/></th> + <th><s:text name="wao.ui.field.Contact.observedDataControl"/></th> + <th><s:text name="wao.ui.contacts.observations"/></th> + <th><s:text name="wao.ui.field.Contact.comment"/></th> + <th><s:text name="wao.ui.field.Contact.commentCompany"/></th> + <th><s:text name="wao.ui.field.Contact.commentAdmin"/></th> + <th><s:text name="wao.ui.field.Contact.dataReliability"/></th> + <th><s:text name="wao.ui.contacts.validation"/></th> + <th><s:text name="wao.ui.actions"/></th> + </tr> + </thead> + <tbody> -<s:iterator value="contacts" var="contact"> -<tr class="contact-row <s:if test="topiaId.equals(contactToHighlightId)"> highlight</s:if>"> -<td> - <s:property value="creationDate"/> -</td> -<td> - <s:if test="secondaryObserversEmpty"> - <s:property value="mainObserver.fullName"/> - </s:if> - <s:else> - <s:property value="mainObserver.fullName"/>... - <%--TODO<s:text name="wao.ui.field.Contact.secondaryObservers"><s:param value="secondaryObservers"/></s:text>--%> - </s:else> - -</td> -<td class="only-in-full-view"> - <s:property value="sampleRow.company.name"/> -</td> -<td> - <s:property value="sampleRow.code"/> - <%--TODO<s:property value="%{getTooltipSampleRow(sampleRow)}"/>--%> -</td> -<td class="only-in-full-view"> - <s:property value="sampleRow.programName"/> -</td> -<td class="only-in-full-view"> - <s:property value="sampleRow.professionDescription"/> -</td> -<td class="only-in-full-view"> - <s:property value="sampleRow.profession.libelle"/> -</td> -<td class="only-in-full-view"> - <s:property value="sampleRow.profession.species"/> -</td> -<td class="only-in-full-view"> - <s:property value="sampleRow.facade"/> -</td> -<td class="only-in-full-view"> - <s:property value="sampleRow.sectors"/> -</td> -<td class="only-in-full-view"> - <s:property value="%{getDivision(sampleRow)}"/> -</td> -<td> - <s:property value="boat.name"/> - <%--TODO <s:property value="%{getTooltipBoat(boat)}"/>--%> -</td> -<td class="only-in-full-view"> - <s:property value="%{'' + boat.immatriculation}"/> -</td> -<td class="only-in-full-view"> - <s:property value="boat.districtCode"/> -</td> -<td> - <s:if test="contactStateMotif"> - <s:text name="%{contactState.i18nKey}"/> - <%--TODO <s:text name="wao.ui.field.Contact.contactStateMotif"><s:param value="%{contactStateMotif.name}"/></s:text>--%> - </s:if> - <s:else> - <s:text name="%{contactState.i18nKey}"/> - </s:else> -</td> -<td> - <s:if test="contactStateMotif"> - <s:property value="contactStateMotif.name"/> - </s:if> -</td> -<td> - <s:if test="observationBeginDate"> - <s:property value="observationBeginDate"/> - </s:if> -</td> -<td> - <s:if test="observationEndDate"> - <s:property value="observationEndDate"/> - </s:if> -</td> -<td> - <s:property value="nbObservants"/> -</td> -<td> - <s:if test="mammalsObservation"> - <img src="<s:url value="/img/eye-22px.png"/>" - alt="<s:text name="wao.ui.field.Contact.mammalsObservation"/>"/> - </s:if> - <s:if test="mammalsCapture"> - <s:if test="mammalsInfo"> - <img src="<s:url value="/img/fishing-net-22px.png"/>" - alt="<s:text name="wao.ui.field.Contact.mammalsCapture"/>"/> - <%--TODO<s:text name="wao.ui.field.Contact.mammalsInfo"><s:param value="%{getMammalsInfo(#contact)}"/></s:text>--%> - </s:if> - <s:else> - <img src="<s:url value="/img/fishing-net-22px.png"/>" - alt="<s:text name="wao.ui.field.Contact.mammalsCapture"/>"/> - </s:else> - </s:if> -</td> -<td> - <s:if test="!comment.empty"> - <s:property value="comment"/> - <%--TODO<s:text name="wao.ui.misc.comment"><s:param value="%{getTooltipText(comment)}"/></s:text>--%> - </s:if> -</td> -<td> - <s:if test="dataInputDate"> - <s:property value="dataInputDate"/> - </s:if> -</td> -<td> - <s:if test="observedDataControl"> - <s:text name="%{observedDataControl.i18nKey}"/> - </s:if> -</td> -<td> - <s:if test="restitution"> - <s:property value="restitution"/> - </s:if> -</td> -<td> - <s:if test="validationCompany == null"> - <img src="<s:url value="/img/help-22px.png"/>" - alt="<s:text name="wao.ui.misc.notValidated"/>"/> - </s:if> - <s:elseif test="validationCompany"> - <img src="<s:url value="/img/true-22px.png"/>" - alt="<s:text name="wao.ui.misc.validated"/>"/> - </s:elseif> - <s:else> - <img src="<s:url value="/img/false-22px.png"/>" - alt="<s:text name="wao.ui.misc.refused"/>"/> - </s:else> - <s:if test="validationProgram == null"> - <img src="<s:url value="/img/help-22px.png"/>" - alt="<s:text name="wao.ui.misc.notValidated"/>"/> - </s:if> - <s:elseif test="validationProgram"> - <img src="<s:url value="/img/true-22px.png"/>" - alt="<s:text name="wao.ui.misc.validated"/>"/> - </s:elseif> - <s:else> - <img src="<s:url value="/img/false-22px.png"/>" - alt="<s:text name="wao.ui.misc.refused"/>"/> - </s:else> -</td> -<td> - <s:if test="!commentCoordinator.empty"> - <s:property value="commentCoordinator"/> - <%--TODO<s:text name="wao.ui.field.Contact.commentCoordinator"><s:param value="%{getTooltipText(commentCoordinator)}"/></s:text>--%> - </s:if> -</td> -<td> - <s:if test="!commentAdmin.empty"> - <s:property value="commentAdmin"/> - <%--<s:property value="%{getCommentDisplayText(commentAdmin)}"/>--%> - <%--TODO<s:text name="wao.ui.field.Contact.commentAdmin"><s:param value="%{getTooltipText(commentAdmin)}"/></s:text>--%> - </s:if> -</td> -<td> - <s:if test="isBoardingDone(#contact)"> - <s:if test="validationCompany"> - <s:text name="%{dataReliability.i18nKey}"/> - </s:if> - </s:if> -</td> -<td class="actions"> - <div class="dropdown"> - <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> - <s:text name="wao.ui.actions"/> - <b class="caret"></b> - </a> - <ul class="dropdown-menu"> - <s:if test="authenticatedWaoUser.isAuthorizedToEditOrDeleteContact(#contact)"> - <li> - <s:if test="authenticatedWaoUser.admin"> - <s:set name="focusAnchor">adminFocus</s:set> + <s:iterator value="contacts" var="contact"> + <tr class="contact-row <s:property value="getContactCssClass(#contact)"/><s:if test="topiaId.equals(contactToHighlightId)"> highlight</s:if>"> + <td> + <s:property value="creationDate"/> + </td> + <td> + <s:set name="boatTooltip"> + <s:text name="wao.ui.boats.registrationCode"/> <s:property value="%{'' + boat.immatriculation}" escapeHtml="false"/> + <s:text name="wao.ui.boats.boatLength"/> <s:property value="boat.boatLength" escapeHtml="false"/> m + <s:text name="wao.ui.boats.buildYear"/> <s:property value="%{'' + boat.buildYear}" escapeHtml="false"/> + <s:text name="wao.ui.boats.district"/> <s:property value="boat.district.districtName" escapeHtml="false"/> (<s:property value="boat.district.districtCode" escapeHtml="false"/>) + </s:set> + <span data-original-title="<s:property value="#boatTooltip"/>" data-toggle="tooltip" data-placement="right"> + <s:property value="boat.name"/> + </span> + </td> + <td class="only-in-compact-view"> + <s:set name="sampleRowTooltip"> + <s:text name="wao.ui.field.SampleRow.programName"/> <s:property value="sampleRow.programName" escapeHtml="false"/> + <s:text name="wao.ui.field.SampleRow.professionCode"/> <s:property value="sampleRow.professionDescription" escapeHtml="false"/> + <s:text name="wao.ui.contacts.Profession.libelle"/> <s:property value="sampleRow.profession.libelle" escapeHtml="false"/> + <s:text name="wao.ui.contacts.Profession.species"/> <s:property value="sampleRow.profession.species" escapeHtml="false"/> + <s:text name="wao.ui.contacts.FishingZone.facadeName"/> <s:property value="sampleRow.facade" escapeHtml="false"/> + <s:text name="wao.ui.contacts.FishingZone.sectorName"/> <s:property value="sampleRow.sectors" escapeHtml="false"/> + <s:text name="wao.ui.contacts.division"/> <s:property value="%{getDivision(sampleRow)}" escapeHtml="false"/> + </s:set> + <span data-original-title="<s:property value="#sampleRowTooltip"/>" data-toggle="tooltip" data-placement="right"> + <s:property value="sampleRow.code"/> + </span> + </td> + <td class="only-in-full-view"> + <s:property value="sampleRow.code"/> + </td> + <td class="only-in-full-view"> + <s:property value="sampleRow.programName"/> + </td> + <td class="only-in-full-view"> + <s:iterator value="getDcf5CodesAndDescriptions(sampleRow)"> + <abbr title="<s:property value="value"/>"><s:property value="key"/></abbr> + </s:iterator> + <s:property value="sampleRow.professionDescriptionWithoutDCF5" /> + </td> + <td class="only-in-full-view"> + <s:property value="sampleRow.profession.libelle"/> + </td> + <td class="only-in-full-view"> + <s:property value="sampleRow.profession.species"/> + </td> + <td class="only-in-full-view"> + <s:property value="sampleRow.facade"/> + </td> + <td class="only-in-full-view"> + <s:property value="sampleRow.sectors"/> + </td> + <td class="only-in-full-view"> + <s:property value="%{getDivision(sampleRow)}"/> + </td> + <td class="only-in-full-view"> + <s:property value="sampleRow.company.name"/> + </td> + <td> + <ul> + <s:iterator value="allObservers"> + <li><s:property value="fullName"/></li> + </s:iterator> + </ul> + </td> + <td> + <s:text name="%{contactState.i18nKey}"/> + <s:if test="contactStateMotif != null"> + <s:property value="contactStateMotif.name"/> </s:if> + </td> + <td class="date-time"> + <s:if test="observationBeginDate != null"> + <s:property value="observationBeginDate"/> + </s:if> + </td> + <td class="date-time"> + <s:if test="observationEndDate != null"> + <s:property value="observationEndDate"/> + </s:if> + </td> + <td class="date"> + <s:if test="dataInputDate != null"> + <s:property value="dataInputDate"/> + </s:if> + </td> + <td class="date"> + <s:if test="restitution != null"> + <s:property value="restitution"/> + </s:if> + </td> + <td> + <s:if test="observedDataControl != null"> + <s:text name="%{observedDataControl.i18nKey}"/> + </s:if> + </td> + <td> + <s:if test="mammalsObservation"> + <img src="<s:url value="/img/eye-22px.png"/>" + alt="<s:text name="wao.ui.field.Contact.mammalsObservation"/>"/> + </s:if> + <s:if test="mammalsCapture"> + <s:if test="mammalsInfo"> + <img src="<s:url value="/img/fishing-net-22px.png"/>" + alt="<s:text name="wao.ui.field.Contact.mammalsCapture"/>"/> + <%--TODO<s:text name="wao.ui.field.Contact.mammalsInfo"><s:param value="%{getMammalsInfo(#contact)}"/></s:text>--%> + </s:if> + <s:else> + <img src="<s:url value="/img/fishing-net-22px.png"/>" + alt="<s:text name="wao.ui.field.Contact.mammalsCapture"/>"/> + </s:else> + </s:if> + </td> + <td> + <s:if test=" ! comment.empty"> + <span data-original-title="<s:property value="comment" escapeHtml="false"/>" data-toggle="tooltip" data-placement="left"> + <i class="icon-comment"></i> + </span> + </s:if> + </td> + <td> + <s:if test=" ! commentCoordinator.empty"> + <span data-original-title="<s:property value="commentCoordinator" escapeHtml="false"/>" data-toggle="tooltip" data-placement="left"> + <i class="icon-comment"></i> + </span> + </s:if> + </td> + <td> + <s:if test=" ! commentAdmin.empty"> + <span data-original-title="<s:property value="commentAdmin" escapeHtml="false"/>" data-toggle="tooltip" data-placement="left"> + <i class="icon-comment"></i> + </span> + </s:if> + </td> + <td> + <s:if test="isBoardingDone(#contact)"> + <s:if test="validationCompany"> + <s:text name="%{dataReliability.i18nKey}"/> + </s:if> + </s:if> + </td> + <td> + <s:if test="validationCompany == null"> + <img src="<s:url value="/img/help-22px.png"/>" + alt="<s:text name="wao.ui.misc.notValidated"/>"/> + </s:if> + <s:elseif test="validationCompany"> + <img src="<s:url value="/img/true-22px.png"/>" + alt="<s:text name="wao.ui.misc.validated"/>"/> + </s:elseif> <s:else> - <s:set name="focusAnchor">coordinatorOrObserverFocus</s:set> + <img src="<s:url value="/img/false-22px.png"/>" + alt="<s:text name="wao.ui.misc.refused"/>"/> </s:else> - <s:url action="edit-contact!input" id="editContactUrl" anchor='%{focusAnchor}'> - <s:param name="contactId" value="topiaId"/> + <s:if test="validationProgram == null"> + <img src="<s:url value="/img/help-22px.png"/>" + alt="<s:text name="wao.ui.misc.notValidated"/>"/> + </s:if> + <s:elseif test="validationProgram"> + <img src="<s:url value="/img/true-22px.png"/>" + alt="<s:text name="wao.ui.misc.validated"/>"/> + </s:elseif> + <s:else> + <img src="<s:url value="/img/false-22px.png"/>" + alt="<s:text name="wao.ui.misc.refused"/>"/> + </s:else> + </td> + <td class="actions"> + <div class="dropdown"> + <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> + <s:text name="wao.ui.actions"/> + <b class="caret"></b> + </a> + <ul class="dropdown-menu"> + <s:if test="authenticatedWaoUser.isAuthorizedToEditOrDeleteContact(#contact)"> + <li> + <s:if test="authenticatedWaoUser.admin"> + <s:set name="focusAnchor">adminFocus</s:set> + </s:if> + <s:else> + <s:set name="focusAnchor">coordinatorOrObserverFocus</s:set> + </s:else> + <s:url action="edit-contact!input" id="editContactUrl" anchor='%{focusAnchor}'> + <s:param name="contactId" value="topiaId"/> - </s:url> - <s:a href="%{editContactUrl}"> - <i class="icon-edit"></i> <s:text name="wao.ui.action.editOrDeleteContact"/> - </s:a> - </li> - </s:if> - <s:if test="authenticatedWaoUser.authorizedToValidateContacts"> - <s:if test="authenticatedWaoUser.isAuthorizedToValidateContact(#contact)"> - <li> - <s:url action="validate-contact-json" id="acceptContactUrl" escapeAmp="false"> - <s:param name="contactId" value="topiaId"/> - <s:param name="validationState">true</s:param> - </s:url> - <s:a cssClass='validation-action' href="#notifications" data="%{acceptContactUrl}"> - <s:text name="wao.ui.action.acceptContact"/> - </s:a> - </li> - <li> - <s:url action="validate-contact-json" id="refuseContactUrl" escapeAmp="false"> - <s:param name="contactId" value="topiaId"/> - <s:param name="validationState">false</s:param> - </s:url> - <s:a cssClass='validation-action' href="#notifications" data="%{refuseContactUrl}"> - <s:text name="wao.ui.action.refuseContact"/> - </s:a> - </li> - </s:if> - <s:if test="authenticatedWaoUser.isAuthorizedToUnvalidateContact(#contact)"> - <li> - <s:url action="validate-contact-json" id="unvalidateContactUrl"> - <s:param name="contactId" value="topiaId"/> - </s:url> - <s:a cssClass='validation-action' href="#notifications" data="%{unvalidateContactUrl}"> - <s:text name="wao.ui.action.unvalidateContact"/> - </s:a> - </li> - </s:if> - </s:if> - </ul> - </div> -</td> -</tr> -</s:iterator> -</todby> + </s:url> + <s:a href="%{editContactUrl}"> + <i class="icon-edit"></i> <s:text name="wao.ui.action.editOrDeleteContact"/> + </s:a> + </li> + </s:if> + <s:if test="authenticatedWaoUser.authorizedToValidateContacts"> + <s:if test="authenticatedWaoUser.isAuthorizedToValidateContact(#contact)"> + <li> + <s:url action="validate-contact-json" id="acceptContactUrl" escapeAmp="false"> + <s:param name="contactId" value="topiaId"/> + <s:param name="validationState">true</s:param> + </s:url> + <s:a cssClass='validation-action' href="#notifications" data="%{acceptContactUrl}"> + <s:text name="wao.ui.action.acceptContact"/> + </s:a> + </li> + <li> + <s:url action="validate-contact-json" id="refuseContactUrl" escapeAmp="false"> + <s:param name="contactId" value="topiaId"/> + <s:param name="validationState">false</s:param> + </s:url> + <s:a cssClass='validation-action' href="#notifications" data="%{refuseContactUrl}"> + <s:text name="wao.ui.action.refuseContact"/> + </s:a> + </li> + </s:if> + <s:if test="authenticatedWaoUser.isAuthorizedToUnvalidateContact(#contact)"> + <li> + <s:url action="validate-contact-json" id="unvalidateContactUrl"> + <s:param name="contactId" value="topiaId"/> + </s:url> + <s:a cssClass='validation-action' href="#notifications" data="%{unvalidateContactUrl}"> + <s:text name="wao.ui.action.unvalidateContact"/> + </s:a> + </li> + </s:if> + </s:if> + </ul> + </div> + </td> + </tr> + </s:iterator> + </todby> </table> </html> 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-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-04-24 12:26:15 UTC (rev 1903) @@ -318,7 +318,7 @@ <s:property value="fishingZones"/> </s:if> <s:else> - <span data-original-title="<s:property value="fishingZonesInfos"/>" data-toggle="tooltip" data-placement="left"> + <span data-original-title="<s:property value="fishingZonesInfos" escapeHtml="false"/>" data-toggle="tooltip" data-placement="left"> <s:property value="fishingZones"/> </span> </s:else> @@ -349,7 +349,7 @@ <s:property value="professionLibelle"/> </s:if> <s:else> - <span data-original-title="<s:property value="professionSpecies"/>" data-toggle="tooltip" data-placement="left"> + <span data-original-title="<s:property value="professionSpecies" escapeHtml="false"/>" data-toggle="tooltip" data-placement="left"> <s:property value="professionLibelle"/> </span> </s:else> @@ -420,7 +420,7 @@ </td> <td> <s:if test=" ! comment.empty"> - <span data-original-title="<s:property value="comment"/>" data-toggle="tooltip" data-placement="left"> + <span data-original-title="<s:property value="comment" escapeHtml="false"/>" data-toggle="tooltip" data-placement="left"> <i class="icon-comment"></i> </span> </s:if> Modified: trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-04-24 12:26:15 UTC (rev 1903) @@ -101,6 +101,14 @@ </s:a> </li> </s:if> + <s:if test="authenticatedWaoUser.authorizedToImportContacts"> + <li> + <s:url namespace="/%{obsProgram.name().toLowerCase()}" action="import-contacts!input" id="importContactsUrl" /> + <s:a href="%{importContactsUrl}"> + <i class="icon-upload"></i> <s:text name="wao.ui.import.contacts" /> + </s:a> + </li> + </s:if> <s:if test="authenticatedWaoUser.authorizedToUpdateReferential"> <li> <s:url namespace="/administration" action="referential-management" id="referentialManagementUrl" /> Modified: trunk/wao-web/src/main/webapp/wao.css =================================================================== --- trunk/wao-web/src/main/webapp/wao.css 2014-04-24 08:07:28 UTC (rev 1902) +++ trunk/wao-web/src/main/webapp/wao.css 2014-04-24 12:26:15 UTC (rev 1903) @@ -159,6 +159,10 @@ white-space: nowrap; } +/** + * .large-table + */ + .large-table, .large-table thead th { border: solid 1px #aaaaaa; } @@ -167,6 +171,10 @@ list-style-type: none; } +.large-table ul:not(.dropdown-menu) { + margin: 0; +} + .large-table tbody th, .large-table td { border: solid 1px #aaaaaa; border-left-style: dashed; @@ -174,6 +182,24 @@ padding: 2px; } +.large-table td.date, +.large-table td.date-time { + white-space: nowrap; + text-align: center; +} + +/* +.large-table th.date, +.large-table td.date { + max-width: 75px; +} + +.large-table th.date-time, +.large-table td.date-time { + max-width: 120px; +} +*/ + /** * Les filtres */
participants (1)
-
bleny@users.forge.codelutin.com