r296 - in trunk/echobase-ui/src/main: java/fr/ifremer/echobase/ui/actions/importData resources/config resources/fr/ifremer/echobase/ui/actions/importData resources/i18n webapp/WEB-INF webapp/WEB-INF/jsp/importData webapp/css webapp/js
Author: tchemit Date: 2012-01-26 16:35:35 +0100 (Thu, 26 Jan 2012) New Revision: 296 Url: http://forge.codelutin.com/repositories/revision/echobase/296 Log: continue import data (acoustic data) (ui part) Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java Modified: trunk/echobase-ui/src/main/resources/config/struts-importData.xml trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData-validation.xml trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp trunk/echobase-ui/src/main/webapp/css/screen.css trunk/echobase-ui/src/main/webapp/js/gridHelper.js Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java (rev 0) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java 2012-01-26 15:35:35 UTC (rev 296) @@ -0,0 +1,92 @@ +/* + * #%L + * EchoBase :: UI + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * 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% + */ +package fr.ifremer.echobase.ui.actions.importData; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Maps; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.services.EchoBaseServiceSupport; +import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import org.apache.commons.lang3.StringUtils; +import org.nuiton.util.decorator.Decorator; + +import java.util.Map; + +/** + * Given a voyage, obtain all his transits. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ +public class GetTransits extends EchoBaseActionSupport { + + private static final long serialVersionUID = 1L; + + + protected String voyageId; + + protected Map<String, String> transits; + + public void setVoyageId(String voyageId) { + this.voyageId = voyageId; + } + + public Map<String, String> getTransits() { + return transits; + } + + @Override + public String execute() throws Exception { + + transits = Maps.newLinkedHashMap(); + + if (StringUtils.isNotEmpty(voyageId)) { + + EchoBaseServiceSupport service = + newService(EchoBaseServiceSupport.class); + + Voyage voyage = service.getEntityById(Voyage.class, voyageId); + + Preconditions.checkNotNull( + voyage, + "Could not find voyage with id " + voyageId); + + if (!voyage.isTransitEmpty()) { + + Decorator<Transit> decorator = + getDecoratorService().getDecorator(getLocale(), + Transit.class, + null); + + for (Transit transit : voyage.getTransit()) { + String value = decorator.toString(transit); + transits.put(transit.getTopiaId(), value); + } + } + } + + return SUCCESS; + } +} Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java (rev 0) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java 2012-01-26 15:35:35 UTC (rev 296) @@ -0,0 +1,95 @@ +/* + * #%L + * EchoBase :: UI + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * 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% + */ +package fr.ifremer.echobase.ui.actions.importData; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Maps; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.Vessel; +import fr.ifremer.echobase.services.EchoBaseServiceSupport; +import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; +import org.apache.commons.lang3.StringUtils; +import org.nuiton.util.decorator.Decorator; + +import java.util.Map; + +/** + * Given a voyage, obtain all his transits. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ +public class GetVessels extends EchoBaseActionSupport { + + private static final long serialVersionUID = 1L; + + + protected String transitId; + + protected Map<String, String> vessels; + + public void setTransitId(String transitId) { + this.transitId = transitId; + } + + public Map<String, String> getVessels() { + return vessels; + } + + @Override + public String execute() throws Exception { + + vessels = Maps.newLinkedHashMap(); + + if (StringUtils.isNotEmpty(transitId)) { + + EchoBaseServiceSupport service = + newService(EchoBaseServiceSupport.class); + + Transit transit = service.getEntityById(Transit.class, transitId); + + Preconditions.checkNotNull(transit, + "Could not find transit with id " + transitId); + if (!transit.isTransectEmpty()) { + + Decorator<Vessel> decorator = + getDecoratorService().getDecorator(getLocale(), + Vessel.class, + null); + + for (Transect transect : transit.getTransect()) { + String id = transect.getTopiaId(); + if (!vessels.containsKey(id)) { + String value = decorator.toString(transect.getVessel()); + vessels.put(id, value); + } + } + } + } + + return SUCCESS; + } +} Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/resources/config/struts-importData.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-importData.xml 2012-01-26 15:35:06 UTC (rev 295) +++ trunk/echobase-ui/src/main/resources/config/struts-importData.xml 2012-01-26 15:35:35 UTC (rev 296) @@ -64,6 +64,18 @@ <result>/WEB-INF/jsp/importData/result{1}.jsp</result> </action> + <!-- Get transits for a given voyage id --> + <action name="getTransits" + class="fr.ifremer.echobase.ui.actions.importData.GetTransits"> + <result type="json"/> + </action> + + <!-- Get vessels (of transects) for a given transit id --> + <action name="getVessels" + class="fr.ifremer.echobase.ui.actions.importData.GetVessels"> + <result type="json"/> + </action> + </package> </struts> Modified: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData-validation.xml =================================================================== --- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData-validation.xml 2012-01-26 15:35:06 UTC (rev 295) +++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData-validation.xml 2012-01-26 15:35:35 UTC (rev 296) @@ -32,25 +32,106 @@ </field-validator> </field> + <field name="model.transitId"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.transit.required"/> + </field-validator> + </field> + <field name="model.vesselId"> <field-validator type="nrequiredstring"> <message key="echobase.error.import.vessel.required"/> </field-validator> </field> + <field name="model.transceiverAcquisitionAbsorptionDescription"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.transceiverAcquisitionAbsorptionDescription.required"/> + </field-validator> + </field> + + <field name="model.acquisitionSoftwareVersionER60"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.acquisitionSoftwareVersionER60.required"/> + </field-validator> + </field> + + <field name="model.acquisitionSoftwareVersionME70"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.acquisitionSoftwareVersionME70.required"/> + </field-validator> + </field> + <field name="model.echosounderSoundSpeed"> <field-validator type="nrequiredstring"> <message key="echobase.error.import.echosounderSoundSpeed.required"/> </field-validator> </field> - <field name="model.soundSpeedCalculations"> + <field name="model.loggedDataFormat"> <field-validator type="nrequiredstring"> + <message key="echobase.error.import.loggedDataFormat.required"/> + </field-validator> + </field> + + <field name="model.loggedDataDatatype"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.loggedDataDatatype.required"/> + </field-validator> + </field> + + <field name="model.pingDutyCycle"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.pingDutyCycle.required"/> + </field-validator> + </field> + + <field name="model.soundSpeedCalculationsER60"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.soundSpeedCalculationsER60.required"/> + </field-validator> + </field> + + <field name="model.soundSpeedCalculationsME70"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.soundSpeedCalculationsME70.required"/> + </field-validator> + </field> + + <field name="model.sounderConstant"> + <field-validator type="nrequiredstring"> + <message key="echobase.error.import.sounderConstant.required"/> + </field-validator> + </field> + + <field name="model.processingTemplate"> + <field-validator type="nrequiredstring"> <message - key="echobase.error.import.soundSpeedCalculations.required"/> + key="echobase.error.import.processingTemplate.required"/> </field-validator> </field> + <field name="model.processingDescription"> + <field-validator type="nrequiredstring"> + <message + key="echobase.error.import.processingDescription.required"/> + </field-validator> + </field> + + <field name="model.digitThreshold"> + <field-validator type="nrequiredstring"> + <message + key="echobase.error.import.digitThreshold.required"/> + </field-validator> + </field> + + <field name="model.acousticDensityUnit"> + <field-validator type="nrequiredstring"> + <message + key="echobase.error.import.acousticDensityUnit.required"/> + </field-validator> + </field> + <field name="model.notes"> <field-validator type="nrequiredstring"> <message key="echobase.error.import.notes.required"/> Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-26 15:35:06 UTC (rev 295) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-01-26 15:35:35 UTC (rev 296) @@ -43,10 +43,12 @@ echobase.common.notes=notes echobase.common.password=Mot de passe echobase.common.pingDutyCycle=pingDutyCycle -echobase.common.soundSpeedCalculations=soundSpeedCalculations +echobase.common.processingDescription=processingDescription +echobase.common.processingTemplate=processingTemplate echobase.common.soundSpeedCalculationsER60=soundSpeedCalculations (ER60 instrument) echobase.common.soundSpeedCalculationsME70=soundSpeedCalculations (ME70 instrument) echobase.common.sounderConstant=sounderConstant +echobase.common.transceiverAcquisitionAbsorptionDescription=transceiverAcquisitionAbsorptionDescription echobase.common.transectBinUnitsPingAxis=BinUnitsPingAxis (transect) echobase.common.transectGeospatialVerticalPositive=GeospatialVerticalPositive (transect) echobase.common.transectLicence=Licence (transect) @@ -74,7 +76,17 @@ echobase.error.import.moviesFile.required=La sélection d'un fichier Movies est obligatoire echobase.error.import.notes.required=Note des DataProcessing non renseigné echobase.error.import.regionsFile.required=La sélection d'un fichier Region est obligatoire -echobase.error.import.soundSpeedCalculations.required=soundSpeedCalculations non renseigné +echobase.error.import.processingDescription.required=processingDescription non renseigné +echobase.error.import.processingTemplate.required=processingTemplate non renseigné +echobase.error.import.sounderConstant.required=sounderConstant non renseigné +echobase.error.import.soundSpeedCalculationsME70.required=soundSpeedCalculationsME70 non renseigné +echobase.error.import.soundSpeedCalculationsER60.required=soundSpeedCalculationsER60 non renseigné +echobase.error.import.pingDutyCycle.required=pingDutyCycle non renseigné +echobase.error.import.loggedDataDatatype.required=loggedDataDatatype non renseigné +echobase.error.import.loggedDataFormat.required=loggedDataFormat non renseigné +echobase.error.import.acquisitionSoftwareVersionER60.required=acquisitionSoftwareVersionER60 non renseigné +echobase.error.import.acquisitionSoftwareVersionME70.required=acquisitionSoftwareVersionME70 non renseigné +echobase.error.import.transceiverAcquisitionAbsorptionDescription.required=transceiverAcquisitionAbsorptionDescription non renseigné echobase.error.import.tblMensurationClasseFile.required=La sélection d'un fichier tblMensurationClasse est obligatoire echobase.error.import.tblMensurationFile.required=La sélection d'un fichier tblMensuration est obligatoire echobase.error.import.tlbeStationFile.required=La sélection d'un fichier tlbeStation est obligatoire @@ -86,6 +98,7 @@ echobase.error.import.transitRelatedActivity.required=RelatedActivity des transits non rengeigné echobase.error.import.vessel.required=La sélection d'un navire est obligatoire echobase.error.import.voyage.required=La sélection d'une campagne est obligatoire +echobase.error.import.transit.required=La sélection d'un transit est obligatoire echobase.error.import.voyageDescription.required=Description de la campagne non rengeigné echobase.error.import.voyageFile.required=La sélection d'un fichier Voyage est obligatoire echobase.error.import.xtblTriFile.required=La sélection d'un fichier xtblTri est obligatoire Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2012-01-26 15:35:06 UTC (rev 295) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/decorators.xml 2012-01-26 15:35:35 UTC (rev 296) @@ -32,6 +32,7 @@ <pattern>/dbeditor/getForeignEntities*</pattern> <pattern>/dbeditor/doExport*</pattern> <pattern>/exportQuery/exportQueryResult*</pattern> + <pattern>/importData/get*</pattern> </excludes> <decorator name="layout-default" page="layout-default.jsp"> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-01-26 15:35:06 UTC (rev 295) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-01-26 15:35:35 UTC (rev 296) @@ -23,14 +23,42 @@ --%> <%@page contentType="text/html" pageEncoding="UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> +<%@ taglib prefix="sj" uri="/struts-jquery-tags" %> +<script type="text/javascript" + src="<s:url value='/js/gridHelper.js' />"></script> <title>Configuration <s:text name="echobase.common.importDataMode.accousticData"/></title> +<s:url id="getTransitsUrl" action="getTransits" namespace="/importData"/> +<s:url id="getVesselsUrl" action="getVessels" namespace="/importData"/> + <script type="text/javascript"> jQuery(document).ready(function () { + var transitSelectBox = $('[name="model.transitId"]'); + var vesselSelectBox = $('[name="model.vesselId"]'); + + $('[name="model.voyageId"]').change({transitSelectBox:transitSelectBox, + vesselSelectBox:vesselSelectBox}, function (event) { + + $.updateSelectBoxContent('${getTransitsUrl}', + {voyageId:this.value}, + 'transits', + event.data.transitSelectBox + ); + event.data.vesselSelectBox.html(""); + }); + + + $('[name="model.transitId"]').change({vesselSelectBox:vesselSelectBox}, function (event) { + + $.updateSelectBoxContent('${getVesselsUrl}', + {transitId:this.value}, + 'vessels', + event.data.vesselSelectBox); + }); }); </script> @@ -41,61 +69,64 @@ <s:text name="echobase.legend.importData.configure"/> </legend> - <s:select name="model.voyageId" value="''" required="true" + <s:select key="model.voyageId" value="''" required="true" label='%{getText("echobase.common.voyage")}' list="voyages" headerKey="" headerValue=""/> - <s:select name="model.transitId" value="''" required="true" - label='%{getText("echobase.common.transit")}' - list="transits" headerKey="" headerValue=""/> + <sj:select key="model.transitId" required="true" + label='%{getText("echobase.common.transit")}'/> - <s:select name="model.vesselId" value="''" required="true" - label='%{getText("echobase.common.vessel")}' - list="vessels" headerKey="" headerValue=""/> + <sj:select key="model.vesselId" required="true" + label='%{getText("echobase.common.vessel")}'/> - <s:textfield key="model.transceiverAcquisitionAbsorptionDescription" size="40" required="true" + <s:textfield key="model.transceiverAcquisitionAbsorptionDescription" + size="100" required="true" label='%{getText("echobase.common.transceiverAcquisitionAbsorptionDescription")}'/> - <s:textfield key="model.acquisitionSoftwareVersionER60" size="40" required="true" + <s:textfield key="model.acquisitionSoftwareVersionER60" size="100" + required="true" label='%{getText("echobase.common.acquisitionSoftwareVersionER60")}'/> - <s:textfield key="model.acquisitionSoftwareVersionME70" size="40" required="true" + <s:textfield key="model.acquisitionSoftwareVersionME70" size="100" + required="true" label='%{getText("echobase.common.acquisitionSoftwareVersionME70")}'/> - <s:textfield key="model.loggedDataFormat" size="40" required="true" + <s:textfield key="model.loggedDataFormat" size="100" required="true" label='%{getText("echobase.common.loggedDataFormat")}'/> - <s:textfield key="model.loggedDataDatatype" size="40" required="true" + <s:textfield key="model.loggedDataDatatype" size="100" required="true" label='%{getText("echobase.common.loggedDataDatatype")}'/> - <s:textfield key="model.pingDutyCycle" size="40" required="true" + <s:textfield key="model.pingDutyCycle" size="100" required="true" label='%{getText("echobase.common.pingDutyCycle")}'/> - <s:textfield key="model.echosounderSoundSpeed" size="40" required="true" + <s:textfield key="model.echosounderSoundSpeed" size="100" required="true" label='%{getText("echobase.common.echosounderSoundSpeed")}'/> - <s:textfield key="model.soundSpeedCalculationsER60" size="40" required="true" + <s:textfield key="model.soundSpeedCalculationsER60" size="100" + required="true" label='%{getText("echobase.common.soundSpeedCalculationsER60")}'/> - <s:textfield key="model.soundSpeedCalculationsME70" size="40" required="true" + <s:textfield key="model.soundSpeedCalculationsME70" size="100" + required="true" label='%{getText("echobase.common.soundSpeedCalculationsME70")}'/> - <s:textfield key="model.sounderConstant" size="40" required="true" + <s:textfield key="model.sounderConstant" size="100" required="true" label='%{getText("echobase.common.sounderConstant")}'/> - <s:textfield key="model.processingTemplate" size="40" required="true" + <s:textfield key="model.processingTemplate" size="100" required="true" label='%{getText("echobase.common.processingTemplate")}'/> - <s:textfield key="model.processingDescription" size="40" required="true" + <s:textfield key="model.processingDescription" size="100" required="true" label='%{getText("echobase.common.processingDescription")}'/> - <s:textfield key="model.digitThreshold" size="40" required="true" + <s:textfield key="model.digitThreshold" size="100" required="true" label='%{getText("echobase.common.digitThreshold")}'/> - <s:textfield key="model.acousticDensityUnit" size="40" required="true" + <s:textfield key="model.acousticDensityUnit" size="100" required="true" label='%{getText("echobase.common.acousticDensityUnit")}'/> - <s:textfield key="model.notes" size="40" required="true" + <s:textfield key="model.notes" size="100" required="true" label='%{getText("echobase.common.notes")}'/> <s:file key="moviesFile" required="true" Modified: trunk/echobase-ui/src/main/webapp/css/screen.css =================================================================== --- trunk/echobase-ui/src/main/webapp/css/screen.css 2012-01-26 15:35:06 UTC (rev 295) +++ trunk/echobase-ui/src/main/webapp/css/screen.css 2012-01-26 15:35:35 UTC (rev 296) @@ -135,7 +135,7 @@ .wwlbl { float: left; clear: both; - width: 300px; + width: 350px; /*# text-align: right;*/ } .wwctrl { Modified: trunk/echobase-ui/src/main/webapp/js/gridHelper.js =================================================================== --- trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-01-26 15:35:06 UTC (rev 295) +++ trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-01-26 15:35:35 UTC (rev 296) @@ -25,8 +25,8 @@ $.fn.extend( { - addRowSelectTopic: function(gridId, callback) { - $.subscribe(gridId + '-rowSelect', function(event) { + addRowSelectTopic:function (gridId, callback) { + $.subscribe(gridId + '-rowSelect', function (event) { if (event.originalEvent) { var gridId = event.data.id; var opts = jQuery.struts2_jquery[gridId] = {}; @@ -43,8 +43,8 @@ }, {id:gridId, callback:callback}); }, - addClearSelectTopic: function (gridId, callback) { - $.subscribe(gridId + '-clearSelect', function(event) { + addClearSelectTopic:function (gridId, callback) { + $.subscribe(gridId + '-clearSelect', function (event) { var gridId = event.data.id; jQuery.struts2_jquery[gridId] = {}; var callback = event.data.callback; @@ -54,15 +54,15 @@ }, {id:gridId, callback:callback}); }, - addAddRowTopic: function (gridId, url) { - $.subscribe(gridId + '-rowAdd', function(event) { + addAddRowTopic:function (gridId, url) { + $.subscribe(gridId + '-rowAdd', function (event) { var url = event.data.url; window.location = url; }, {id:gridId, url:url}); }, - addSingleRowTopic: function (gridId, action, url, parameterName) { - $.subscribe(gridId + '-row' + action, function(event) { + addSingleRowTopic:function (gridId, action, url, parameterName) { + $.subscribe(gridId + '-row' + action, function (event) { var gridId = event.data.id; var opts = jQuery.struts2_jquery[gridId]; if (opts && opts['selectedRow']) { @@ -75,8 +75,8 @@ } }, {id:gridId, url:url, parameterName:parameterName}); }, - addMultiRowTopic: function (gridId, action, target, checkboxName, callback) { - $.subscribe(gridId + '-row' + action, function(event) { + addMultiRowTopic:function (gridId, action, target, checkboxName, callback) { + $.subscribe(gridId + '-row' + action, function (event) { var gridId = event.data.id; var prefix = 'jqg_' + gridId + '_'; var prefixLength = prefix.length; @@ -86,7 +86,7 @@ if (inputs && inputs.length) { var checkboxName = event.data.checkboxName; - inputs.each(function() { + inputs.each(function () { var id = this.id; var newId = id.substring(prefixLength); $.attr(this, "name", checkboxName); @@ -105,7 +105,7 @@ callback:callback}); }, - serializeCheckboxs: function(id, params, newId) { + serializeCheckboxs:function (id, params, newId) { var all = $(':checkbox[name="' + id + '"]'); var selected = $(':checked[name="' + id + '"]'); @@ -113,7 +113,7 @@ // apply a year filter var list = []; - selected.each(function() { + selected.each(function () { list.push(this.value); }); if (!newId) { @@ -123,7 +123,7 @@ } }, - prepareUrl: function (url, params) { + prepareUrl:function (url, params) { var result = url; if (url.indexOf("?") > -1) { result += "&"; @@ -132,34 +132,55 @@ } result += $.param(params); return result; + }, + + updateSelectBoxContent:function (url, params, jsonTarget, target) { + + // call url to obtain datas to injetc in target select box + jQuery.getJSON(url, params, function (result) { + + // will contains selectBox html code + var html = "<option/>"; + + // iterate on found datas (each data gives a select option) + $.each(result[jsonTarget], function (propertyName, value) { + html += '<option value="' + propertyName + '">' + value + '</option>' + }); + + // change the target html code + target.html(html); + }); } }); $.extend({ - addRowSelectTopic:function(gridId, callback) { + addRowSelectTopic:function (gridId, callback) { return $(document).addRowSelectTopic(gridId, callback); }, - addClearSelectTopic:function(gridId, callback) { + addClearSelectTopic:function (gridId, callback) { return $(document).addClearSelectTopic(gridId, callback); }, - addAddRowTopic:function(gridId, url) { + addAddRowTopic:function (gridId, url) { return $(document).addAddRowTopic(gridId, url); }, - addSingleRowTopic:function(gridId, action, url, parameterName) { + addSingleRowTopic:function (gridId, action, url, parameterName) { return $(document).addSingleRowTopic(gridId, action, url, parameterName); }, - addMultiRowTopic:function(gridId, action, target, checkboxName, calbback) { + addMultiRowTopic:function (gridId, action, target, checkboxName, calbback) { return $(document).addMultiRowTopic(gridId, action, target, checkboxName, calbback); }, - serializeCheckboxs: function(id, params, newId) { + serializeCheckboxs:function (id, params, newId) { return $(document).serializeCheckboxs(id, params, newId); }, - prepareUrl:function(url, params) { + prepareUrl:function (url, params) { return $(document).prepareUrl(url, params); + }, + updateSelectBoxContent:function (url, params, jsonTarget, target) { + return $(document).updateSelectBoxContent(url, params, jsonTarget, target); } }); })(jQuery);
participants (1)
-
tchemit@users.forge.codelutin.com