r1729 - in trunk: wao-services/src/main/java/fr/ifremer/wao/services wao-web/src/main/java/fr/ifremer/wao/web wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer wao-web/src/main/resources/i18n wao-web/src/main/webapp/WEB-INF/content/obsmer wao-web/src/main/webapp/WEB-INF/decorators wao-web/src/main/webapp/css wao-web/src/main/webapp/js
Author: bleny Date: 2014-03-19 16:15:10 +0100 (Wed, 19 Mar 2014) New Revision: 1729 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1729 Log: refs #4483 start sampling plan table Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp trunk/wao-web/src/main/webapp/js/wao.js Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoSession.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditSampleRowAction.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/edit-sample-row-input.jsp trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp trunk/wao-web/src/main/webapp/css/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-03-19 15:11:43 UTC (rev 1728) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java 2014-03-19 15:15:10 UTC (rev 1729) @@ -178,4 +178,13 @@ public boolean isAuthorizedToImportSamplingPlan() { return userProfile.isAdmin(); } + + public boolean isAuthorizedToEditSamplingPlan() { + return userProfile.isAdmin(); + } + + public boolean isAuthorizedToCreateContact() { + return userProfile.isCoordinatorOrObserver(); + } + } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoSession.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoSession.java 2014-03-19 15:11:43 UTC (rev 1728) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoSession.java 2014-03-19 15:15:10 UTC (rev 1729) @@ -16,6 +16,8 @@ protected AuthenticatedWaoUser authenticatedWaoUser; + protected String sampleRowToHighlightId; + public Collection<String> getMessages() { if (messages == null) { messages = Lists.newLinkedList(); @@ -51,4 +53,11 @@ this.authenticatedWaoUser = authenticatedWaoUser; } + public String getSampleRowToHighlightId() { + return sampleRowToHighlightId; + } + + public void setSampleRowToHighlightId(String sampleRowToHighlightId) { + this.sampleRowToHighlightId = sampleRowToHighlightId; + } } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditSampleRowAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditSampleRowAction.java 2014-03-19 15:11:43 UTC (rev 1728) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditSampleRowAction.java 2014-03-19 15:15:10 UTC (rev 1729) @@ -118,6 +118,8 @@ session.addMessage(t("wao.ui.form.updateSampleRowCommand.success", updateSampleRowCommand.getSampleRow().getCode())); + session.setSampleRowToHighlightId(updateSampleRowCommand.getSampleRow().getTopiaId()); + return SUCCESS; } Added: 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 (rev 0) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java 2014-03-19 15:15:10 UTC (rev 1729) @@ -0,0 +1,41 @@ +package fr.ifremer.wao.web.action.obsmer; + +import fr.ifremer.wao.SampleRowsFilter; +import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.services.service.ObsMerSamplingPlanService; +import fr.ifremer.wao.web.WaoJspActionSupport; + +import java.util.List; + +public class SamplingPlanAction extends WaoJspActionSupport { + + protected ObsMerSamplingPlanService service; + + protected List<SampleRow> samplingPlan; + + public void setService(ObsMerSamplingPlanService service) { + this.service = service; + } + + @Override + public String execute() { + + SampleRowsFilter filter = service.newSampleRowsFilter(getAuthenticatedWaoUser()); + + filter.setPeriodFrom(null); + filter.setPeriodTo(null); + + samplingPlan = service.getSamplingPlan(filter); + + return SUCCESS; + + } + + public List<SampleRow> getSamplingPlan() { + return samplingPlan; + } + + public String getSampleRowToHighlightId() { + return getSession().getSampleRowToHighlightId(); + } +} 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-03-19 15:11:43 UTC (rev 1728) +++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-03-19 15:15:10 UTC (rev 1729) @@ -25,9 +25,11 @@ wao.ui.action.changeLocale=Change language wao.ui.action.contactAdmin=Contact an admin wao.ui.action.create=Create +wao.ui.action.createAssociatedContact=Create a new contact for this sample row wao.ui.action.createCompany=Create a company wao.ui.action.createNews=Create news wao.ui.action.createNews.success=News created +wao.ui.action.createSampleRow=Add a sample row to the plan wao.ui.action.createWaoUser=Create a user wao.ui.action.delete=Delete wao.ui.action.deleteCompany=Delete company @@ -66,9 +68,12 @@ wao.ui.action.showDetails=Show details wao.ui.action.showFilters=Show filters wao.ui.action.unvalidateContact=Unvalidate contact +wao.ui.action.viewAssociatedContacts=View sample row contacts wao.ui.action.viewBoatsForRow=View the boats for this sample row wao.ui.action.viewCompanyWaoUsers=View users for this company +wao.ui.action.viewElligibleBoats=View eligible boats wao.ui.action.viewIndicatorsHistory=View indicators historic +wao.ui.action.viewSampleRowLog=View sample row log wao.ui.actions=Actions wao.ui.boatList=List of %s boats wao.ui.boatinfo.title=Infos about %s 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-03-19 15:11:43 UTC (rev 1728) +++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-03-19 15:15:10 UTC (rev 1729) @@ -25,9 +25,11 @@ wao.ui.action.changeLocale=Changer de langue wao.ui.action.contactAdmin=Contacter un responsable ObsMer wao.ui.action.create=Créer +wao.ui.action.createAssociatedContact=Créer un contact pour cette ligne wao.ui.action.createCompany=Créer une société wao.ui.action.createNews=Créer une actualité wao.ui.action.createNews.success=Actualité enregistrée avec succès +wao.ui.action.createSampleRow=Ajouter une ligne au plan wao.ui.action.createWaoUser=Créer un utilisateur wao.ui.action.delete=Supprimer wao.ui.action.deleteCompany=Supprimer la société @@ -66,9 +68,12 @@ wao.ui.action.showDetails=Voir les détails wao.ui.action.showFilters=Afficher les filtres wao.ui.action.unvalidateContact=Invalider le contact +wao.ui.action.viewAssociatedContacts=Voir les contacts associés à cette ligne wao.ui.action.viewBoatsForRow=Voir les navires présentis pour cette ligne wao.ui.action.viewCompanyWaoUsers=Voir les utilisateurs associés à cette société +wao.ui.action.viewElligibleBoats=Consulter les navires éligibles wao.ui.action.viewIndicatorsHistory=Voir l'historique des modifications des indicateurs +wao.ui.action.viewSampleRowLog=Consulter l'historique de cette ligne wao.ui.actions=Actions wao.ui.boatList=Liste de %s navires wao.ui.boatinfo.title=Informations sur %s Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-sample-row-input.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-sample-row-input.jsp 2014-03-19 15:11:43 UTC (rev 1728) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-sample-row-input.jsp 2014-03-19 15:15:10 UTC (rev 1729) @@ -20,37 +20,43 @@ var $expectedObservationsByMonthsTable = $('#expectedObservationsByMonthsTable'); var $expectedObservationsByMonthsTableHead = $expectedObservationsByMonthsTable.find('thead'); var $expectedObservationsByMonthsTableBody = $expectedObservationsByMonthsTable.find('tbody'); - var $periodBeginInput = $('input[name="updateSampleRowCommand.sampleRow.periodBegin"'); - var $periodEndInput = $('input[name="updateSampleRowCommand.sampleRow.periodEnd"'); + var $periodBeginInput = $('input[name="updateSampleRowCommand.sampleRow.periodBegin"]'); + var $periodEndInput = $('input[name="updateSampleRowCommand.sampleRow.periodEnd"]'); var updateExpectedObservationsByMonthsTable = function() { - var periodBegin = moment($periodBeginInput.val(), "MM/YYYY"); - var periodEnd = moment($periodEndInput.val(), "MM/YYYY"); - if (periodBegin > periodEnd) { - $periodEndInput.val($periodBeginInput.val()); - periodEnd = moment($periodEndInput.val(), "MM/YYYY"); - } - var months = []; - do { - months.push(periodBegin.format("YYYYMM")); - periodBegin.add('months', 1); - } while (periodBegin <= periodEnd); $expectedObservationsByMonthsTableHead.empty(); $expectedObservationsByMonthsTableBody.empty(); - $expectedObservationsByMonthsTableHead.append('<tr></tr>'); - $expectedObservationsByMonthsTableBody.append('<tr></tr>'); - $(months).each(function (index, month) { - var newInput = ' <td>' - + ' ' + moment(month, "YYYYMM").format('MM/YYYY') - + ' </td>'; - $expectedObservationsByMonthsTableHead.find('tr').append(newInput); - }); - $(months).each(function (index, month) { - var newInput = ' <td>' - + ' <input type="number" name="expectedObservationsByMonths[\'' + month + '\']" value="' + expectedObservationsByMonths[month] + '" class="input-small" />' - + ' </td>'; - $expectedObservationsByMonthsTableBody.find('tr').append(newInput); - }); + var periodBegin = moment($periodBeginInput.val(), 'MM/YYYY'); + var periodEnd = moment($periodEndInput.val(), 'MM/YYYY'); + if (periodBegin.isValid() && periodEnd.isValid()) { + if (periodBegin > periodEnd) { + $periodEndInput.val($periodBeginInput.val()); + periodEnd = moment($periodEndInput.val(), 'MM/YYYY'); + } + var months = []; + do { + months.push(periodBegin.format('YYYYMM')); + periodBegin.add('months', 1); + } while (periodBegin <= periodEnd); + $expectedObservationsByMonthsTableHead.append('<tr></tr>'); + $expectedObservationsByMonthsTableBody.append('<tr></tr>'); + $(months).each(function (index, month) { + var newInput = ' <td>' + + ' ' + moment(month, 'YYYYMM').format('MM/YYYY') + + ' </td>'; + $expectedObservationsByMonthsTableHead.find('tr').append(newInput); + }); + $(months).each(function (index, month) { + var value = ""; + if (expectedObservationsByMonths[month]) { + value = expectedObservationsByMonths[month]; + } + var newInput = ' <td>' + + ' <input type="number" name="expectedObservationsByMonths[\'' + month + '\']" value="' + value + '" class="input-small" />' + + ' </td>'; + $expectedObservationsByMonthsTableBody.find('tr').append(newInput); + }); + } } updateExpectedObservationsByMonthsTable(); @@ -145,8 +151,14 @@ <s:textfield name="updateSampleRowCommand.sampleRow.programName" label="%{getText('wao.ui.field.SampleRow.programName')}" disabled="updateSampleRowCommand.observationAlreadyStarted" /> - <s:textfield name="updateSampleRowCommand.sampleRow.periodBegin" label="%{getText('wao.ui.field.SampleRow.periodBegin')}" cssClass="input-small" /> - <s:textfield name="updateSampleRowCommand.sampleRow.periodEnd" label="%{getText('wao.ui.field.SampleRow.periodEnd')}" cssClass="input-small" /> + <s:textfield name="updateSampleRowCommand.sampleRow.periodBegin" + label="%{getText('wao.ui.field.SampleRow.periodBegin')}" + placeholder="04/2014" + cssClass="input-small" /> + <s:textfield name="updateSampleRowCommand.sampleRow.periodEnd" + label="%{getText('wao.ui.field.SampleRow.periodEnd')}" + placeholder="03/2015" + cssClass="input-small" /> <div class="control-group"> Added: 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 (rev 0) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-19 15:15:10 UTC (rev 1729) @@ -0,0 +1,107 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@taglib uri="/struts-tags" prefix="s" %> + +<html> + + <head> + <title> + <s:text name="wao.ui.page.SamplingPlan.title" /> + </title> + </head> + + <h1> + <s:text name="wao.ui.page.SamplingPlan.title" /> + </h1> + + <table class="large-table table-hover"> + <thead> + <th> + <s:text name="wao.ui.field.SampleRow.code" /> + </th> + <th> + <s:text name="wao.ui.actions" /> + </th> + </thead> + <tbody> + <s:iterator value="samplingPlan" var="sampleRow"> + <tr<s:if test="sampleRowToHighlightId.equals(topiaId)"> class="highlight"</s:if>> + <th> + <s:property value="code" /> + </th> + <td class="actions"> + <%-- + <td class="actions 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"> + --%> + <ul> + <s:if test="authenticatedWaoUser.authorizedToEditSamplingPlan"> + <li> + <s:url action="edit-sample-row!input" id="editSampleRowUrl"> + <s:param name="sampleRowId" value="topiaId" /> + </s:url> + <s:a href="%{editSampleRowUrl}"> + <i class="icon-edit"></i> <s:text name="wao.ui.action.edit" /> + </s:a> + </li> + <li> + <s:url action="delete-sample-row" id="deleteSampleRowUrl"> + <s:param name="companyId" value="topiaId" /> + </s:url> + <s:a href="%{deleteSampleRowUrl}"> + <i class="icon-trash"></i> <s:text name="wao.ui.action.delete" /> + </s:a> + </li> + </s:if> + <li> + <s:url action="sample-row-log" id="sampleRowLogUrl"> + <s:param name="sampleRowId" value="topiaId" /> + </s:url> + <s:a href="%{sampleRowLogUrl}"> + <i class="icon-time"></i> <s:text name="wao.ui.action.viewSampleRowLog" /> + </s:a> + </li> + <li> + <s:url action="boats" id="viewElligibleBoatsUrl"> + <s:param name="sampleRowIds" value="topiaId" /> + </s:url> + <s:a href="%{viewElligibleBoatsUrl}"> + <s:text name="wao.ui.action.viewElligibleBoats" /> + </s:a> + </li> + <li> + <s:url action="contacts" id="viewAssociatedContactsUrl"> + <s:param name="sampleRowIds" value="topiaId" /> + </s:url> + <s:a href="%{viewAssociatedContactsUrl}"> + <s:text name="wao.ui.action.viewAssociatedContacts" /> + </s:a> + </li> + <s:if test="authenticatedWaoUser.authorizedToCreateContact"> + <li> + <s:url action="contacts" id="createAssociatedContactUrl"> + <s:param name="sampleRowIds" value="topiaId" /> + </s:url> + <s:a href="%{createAssociatedContactUrl}"> + <i class="icon-add"></i> <s:text name="wao.ui.action.createAssociatedContact" /> + </s:a> + </li> + </s:if> + </ul> + </td> + </tr> + </s:iterator> + </todby> + <tfoot> + + </tfoot> + </table> + + <s:if test="authenticatedWaoUser.authorizedToEditSamplingPlan"> + <s:url action="edit-sample-row!input" id="createSampleRow" /> + <s:a href="%{createSampleRow}"> + <i class="icon-plus"></i> <s:text name="wao.ui.action.createSampleRow" /> + </s:a> + </s:if> + +</html> 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-19 15:11:43 UTC (rev 1728) +++ trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-03-19 15:15:10 UTC (rev 1729) @@ -11,10 +11,11 @@ <sj:head locale="fr" jqueryui="true" loadAtOnce="true" jquerytheme="start" /> <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/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/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='/css/select2/select2.css' />" /> + <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"> <decorator:head /> Modified: trunk/wao-web/src/main/webapp/css/wao.css =================================================================== --- trunk/wao-web/src/main/webapp/css/wao.css 2014-03-19 15:11:43 UTC (rev 1728) +++ trunk/wao-web/src/main/webapp/css/wao.css 2014-03-19 15:15:10 UTC (rev 1729) @@ -49,6 +49,10 @@ */ /* pour représente qu'une entité (société, utilisateur) est inactive */ +.highlight { + background-color: #ffff99; +} + .inactive { text-decoration: line-through; } @@ -57,9 +61,34 @@ white-space: nowrap; } +.large-table, .large-table thead th { + border: solid 1px #aaaaaa; +} + +.large-table * { + padding: 0px; + margin: 0px; +} + +.large-table li { + list-style-type: none; +} + +.large-table tr:hover { + background-color: #f5f5f5; +} + +.large-table tbody th, .large-table td { + border: solid 1px #aaaaaa; + border-left-style: dashed; + border-right-style: dashed; + padding: 2px; +} + /** * Styles spécifiques pour certainse pages de l'appli */ + #expectedObservationsByMonthsTable th { white-space: nowrap; } Added: trunk/wao-web/src/main/webapp/js/wao.js =================================================================== --- trunk/wao-web/src/main/webapp/js/wao.js (rev 0) +++ trunk/wao-web/src/main/webapp/js/wao.js 2014-03-19 15:15:10 UTC (rev 1729) @@ -0,0 +1,5 @@ +$(document).ready(function () { + + $('select').select2(); + +}); \ No newline at end of file
participants (1)
-
bleny@users.forge.codelutin.com