Changeset 767


Ignore:
Timestamp:
04/25/13 12:22:14 (11 years ago)
Author:
rboipsl
Message:

V2 ajout infobulles + textes

Location:
tapas
Files:
108 added
19 edited
3 copied
1 moved

Legend:

Unmodified
Added
Removed
  • tapas/domain/interface/com/ether/tapas/Preference.java

    r400 r767  
    7777 
    7878    @NotNull 
     79    public Pair<String, String> getBervCorrection() 
     80    { 
     81        return _bervCorrection; 
     82    } 
     83 
     84    public void setBervCorrection( @NotNull final Pair<String, String> bervCorrection ) 
     85    { 
     86        _bervCorrection = bervCorrection ; 
     87    } 
     88 
     89    @NotNull 
    7990    private Pair<String, String> _format; 
    8091    @NotNull 
     
    8899    @NotNull 
    89100    private Pair<String, String> _co2Extinction; 
     101    @NotNull 
     102    private Pair<String, String> _bervCorrection; 
    90103} 
  • tapas/service/implementation/com/ether/TapasServiceImpl.java

    r529 r767  
    4747 
    4848        final String servicePath = prop.getProperty( "service_path" ); 
    49         final String srcPath = prop.getProperty( "src_path" ); 
     49        //final String srcPath = prop.getProperty( "src_path" ); 
    5050        final String dataPath = prop.getProperty( "data_path" ); 
    5151 
    52         final String fichier = servicePath + "/" + "request.xml"; 
     52        //final String fichier = servicePath + "/" + "request.xml"; 
    5353        final Element tapas = new Element( "tapas" ); 
    5454        final List<Element> listRequest = new ArrayList<Element>( fTapas.getRequests().size() ); 
     
    125125            preferences.addContent( co2e ); 
    126126 
     127            //berv correction 
     128            final Element bervCorr = new Element( "berv_correction" ); 
     129            validR = new Attribute( "valid", "YES,NO" ); 
     130            bervCorr.setAttribute( validR ); 
     131            bervCorr.setText( iRequest.getPreference().getBervCorrection().getSecondValue() ); 
     132            preferences.addContent( bervCorr ); 
     133 
     134 
    127135            request.addContent( preferences ); 
    128136 
     
    488496        annee = "" + cal.get( Calendar.YEAR ); 
    489497 
    490         fileName = "/" + annee + "/" + mois + "/" + jour + "/" + nomCourt + "_" + annee + mois + jour + ind; 
     498        //fileName = "/" + annee + "/" + mois + "/" + jour + "/" + nomCourt + "_" + annee + mois + jour + ind; 
     499        fileName="/"+type+"/" + nomCourt + "_" + annee + mois + jour + ind; 
    491500 
    492501        if( type == "arletty" ) fileName = fileName + ".arl"; 
     
    495504        return fileName; 
    496505    } 
     506 
    497507 
    498508 
  • tapas/web/index.jsp

    r382 r767  
    11<%--This redirect is used to allow messages sources in the index page--%> 
    2 <jsp:forward page="project?methodName=home"/> 
     2<jsp:forward page="project?methodName=home_en"/> 
  • tapas/web/init_en.jsp

    r529 r767  
    2323     <fieldset class="cfs3"> 
    2424 
    25          WHAT TAPAS CAN DO FOR YOU : 
     25<u>What is TAPAS ?</u><br> 
     26 
     27TAPAS is a free on-line service for the astronomical community, allowing the user to access a simulated atmospheric transmission for the specific observing conditions. It can be accessed through the ETHER data base makes use of:<br> 
     28<ul type=circle> 
     29<li>the latest available version of spectroscopic HITRAN data base 
     30<li>the  most realistic atmospheric profile (temperature T(z)  and pressure p(z) ) that is available  from ECMWF meteorological field adapted to the location and time of the observation, with the addition of an estimate from MSIS-E for altitudes higher than 1 hPa pressure level. The composite profiles (p,T, density) is produced by an ETHER product called Arletty. 
     31</ul> 
     32For observations in the future, a climatological atmospheric profile is computed - the LBLRTM software for the calculation of the atmospheric transmission in the spherical geometry, including refraction -<br> 
     33 
     34The user receives an e-mail indicating an address where he can find the required atmospheric transmission product. Then, the user may divide his/her observed spectrum by the simulated transmission spectrum to get the spectrum of his/her target “out of atmosphere”. 
     35 
     36Reports from problems encountered by users, comments, critics, suggestions, appreciations from the users are very welcome, and could serve for an improvement of the TAPAS Services. 
     37They all should be addressed to "Cathy Boonne (IPSL)" <cbipsl@ipsl.jussieu.fr>. She will either answer directly or redirect to the relevant TAPAS team member. 
     38             <br><br> 
     39 
     40 
     41         <u>What TAPAS can do for you ?</u> 
    2642 
    2743         <ul type=circle> 
    28              <li>Make use of the <a href="http://ether.ipsl.jussieu.fr">ETHER</a> facility to interpolate within the ECMWF (European Centre for Medium-Range Weather Forecasts) the pressure, temperature, and constituent profile at the location of your observing site and within 6 hours from the date of your observations. 
    29          <br> 
     44             <li>Make use of the ETHER facility to interpolate within the ECMWF (European Centre for Medium-Range Weather Forecasts) pressure, temperature and constituent profile at the location of your observing site and within 6 hours from the date of your observations. 
     45 
    3046             <li>Compute the atmospheric transmittance from the top of the atmosphere down to the observatory, based on the HITRAN (high-resolution transmission molecular absorption database) molecular database and the LBLTRM (Line-By-Line Radiative Transfer Model) radiative transfer code. 
    31          <br> 
     47 
    3248             <li>Provide separate transmittances associated with H2O, O2, O3, CO2, and Rayleigh scattering. 
    33          <br> 
     49 
    3450             <li>Allow disentangling atmospheric features from other absorptions in your astronomical spectra. 
    3551 
    3652         </ul> 
    3753 
     54         <table cellpadding=4 cellspacing=6 align="center"> 
     55         <tr> 
     56             <td colspan=5> 
     57            <img width=760px height="290px" src="resources/images/graph_tapas1.jpg"> 
     58             </td> 
     59         </tr> 
     60             </table> 
    3861         <br> 
    3962 
     63 
     64 <u>Definition of spectral interval for the computation</u>    <br> 
     65Wavelength coverage: the spectral interval may be selected within the window from 350 to 2500 nm. 
     66     <br><br> 
     67<u>Wavelength sampling, resolution and PSF</u> 
     68         <br> 
     69The resolution is defined as &lambda;/FWHM, where FWHM is the Full-width at half maximum of an instrumental shape assumes to be Gaussian. The sampling is defined by the sampling ratio, the number of points per FWHM. 
     70<br><br> 
     71<u>Selection of atmospheric constituents:</u><br> 
     72The user may select the transmission computation within the following list: 
     73- Rayleigh extinction, O2, Ozone, H2O. In the future, NO2 and NO3 from a climatology established from GOMOS /ENVISAT measurements may also be available. 
     74 
     75The user may also select the option in which the transmissions are calculated separately for each constituent, for a better identification of observed lines. The total transmission is then the multiplication of all individual transmissions. It also may be useful to get the H2O transmission separately, because the quantity of H2O may be adjusted by a power law of the transmission, TX(H2O), where X is the adjusting factor. Such a formula must be applied, in principle only with the highest possible resolution, and after that the user may convolute by the spectrometer PSF spectral profile PSF. 
     76<br> 
     77<br> 
     78<u>Input parameters are:</u><br> 
     79<ul type=circle> 
     80    <li>RA DEC of the target, or the zenith angle of the target. 
     81    <li>location of the observer (including the altitude). A list of most important observatories (with location and altitude) are included in the TAPAS data base, easing the user request. 
     82    <li>Arletty p-T profile 
     83    <li>H2O and ozone profiles from ECMWF. 
     84</ul> 
     85The atmospheric refraction, which bends the light path and increases slightly the atmospheric path is taken into account. 
     86<br> 
     87<br> 
     88 
     89<u>The TAPAS team</u>: 
     90<ul type=circle> 
     91    <li>Jean-Loup Bertaux at LATMOS is the overall scientific manager of the project. 
     92    <li>Rosine Lallement at GEPI is the chief scientist for the astronomy. 
     93    <li>Stéphane Ferron at ACRI-ST has developed the computation of the transmission with LBLRTM 
     94    <li>Cathy Boonne at IPSL is managing the ETHER data center. 
     95    <li>Renaud Bodichon at IPSL has developed the user interface 
     96</ul> 
     97In addition, Alain Hauchecorne at LATMOS is used by the TAPAS team as an expert in atmospheric physics. He developed the Arletty product  within Ether. 
     98<br> 
     99<br> 
     100<u>Laboratories and institutions involved:</u><br> 
     101<u>GEPI</u>, <u>LATMOS</u>, <u>IPSL</u>, <u>ACRI-ST</u> 
     102 
     103<br><u>GEPI</u> is a Department of Observatoire de Paris-Meudon (France), involved in many instrumental projects (ground-based and space-based, GAIA/ESA,EUCLID/ESA), dealing with stellar Physics and galactic physics. 
     104 
     105<br><u>LATMOS</u> is located on the campus of UVSQ (Université de Versailles Saint Quentin) and on the campus of Université Pierre et Marie Curie, Paris, France. 
     106 
     107<br><u>IPSL</u> (Institut Pierre Simon Laplace) is a federation of 6 laboratories, which develop a common strategy in the field of Climate research. It manages a number of observation services, and the ETHER data center for the chemistry of the atmosphere. 
     108 
     109<br><u>ACRI-ST</u> is an independent R&D company based in Sophia-Antipolis, France. Its team of engineers and researchers provides skills in applied maths, geophysics, mechanics, numerical modeling, for studies, expertise, training, and environmental information services.: 260 route du Pin Montard, BP 234 06904 Sophia-Antipolis Cedex, France Tel +33 (0)4 92 96 75 00; Fax +33 (0)4 92 96 71 17 
     110 
     111<br><br>Any question about TAPAS should be addressed to <u>Cathy Boonne (IPSL) (cbipsl@ipsl.jussieu.fr)</u>. She will either answer directly or redirect to the relevant TAPAS team member. 
     112 
     113 
     114<br><br> 
     115         <u>Acknowledgements</u><br>This work is being supported by CNES (Centre National des Etudes Spatiales) and CNRS (Centre National de la Recherche Scientifique).<br>TAPAS is a service maintained by ETHER data center. ETHER acknowledges for TAPAS the use of HITRAN data base and the LBLRTM radiative transfer code, the use of ECMWF data and the ETHER data center. 
     116 
     117 
     118                            <br> 
    40119         <table cellpadding=4 cellspacing=6 align="center"> 
    41120 
     
    45124            <td><a target="_blank" href="http://www.ipsl.fr"><img width=100 src="resources/images/logo_ipsl.png"></a></td> 
    46125            <td><a target="_blank" href="http://www.cnrs.fr"><img border="1" width=70 src="resources/images/logo_cnrs.jpg"></a></td> 
     126            <td><a target="_blank" href="http://gepi.obspm.fr"><img border="1" width=140 src="resources/images/logo_gepi.jpg"></a></td> 
    47127         </tr> 
     128             </table> 
    48129 
    49130 
  • tapas/web/init_fr.jsp

    r529 r767  
    2323     <fieldset class="cfs3"> 
    2424 
    25          WHAT TAPAS CAN DO FOR YOU : 
     25<u>Qu'est-ce que TAPAS ?</u><br> 
     26 
     27TAPAS est un service en ligne gratuit pour la communauté astronomique, permettant à l'utilisateur d'accéder à une transmission atmosphérique simulée pour des conditions d'observations spécifiques. On peut y accéder par le biais de la base de données ETHER utilisant:<br> 
     28<ul type=circle> 
     29<li>la derni&egrave;re version de la base de données spectroscopiue HITRAN 
     30<li>le profil atmosph&eacute;rique le plus r&eacute;aliste (temp&eacute;rature T (z) et p pression (z)) qui est disponible &agrave; partir du champ m&eacute;t&eacute;orologique ECMWF adapt&eacute; à l'emplacement et l'heure de l'observation, avec l'ajout d'une estimation du MSIS-E pour les altitudes sup&eacute;rieures à 1hPa. Les profils P, T et densit&eacute; sont produits par le logiciel Arletty d'Ether. 
     31</ul> 
     32Pour des observations dans le futur, un profil atmosphérique climatologique est calculé - le logiciel LBLRTM pour le calcul de la transmission de l'atmosphÚre dans la géométrie sphérique incluant la réfraction - 
     33 
     34L'utilisateur reçoit un courrier électronique lui indiquant une lien où se trouve le produit de la transmission atmosphérique requise. 
     35Ensuite, l'utilisateur peut filtrer son spectre observé par le spectre de transmission simulé pour obtenir le spectre cible "hors de l'atmosphÚre". 
     36Les problÚmes rencontrés par les utilisateurs, commentaires, critiques, suggestions, appréciations des visiteurs sont les bienvenus, et peuvent servir à une amélioration de TAPAS. Ils devront être adressés à «Cathy Boonne (IPSL)". 
     37Elle répondra directement ou redirigera vers le membre de l'équipe TAPAS approprié. 
     38 
     39<br><br> 
     40 
     41 
     42         <u>Que peut faire TAPAS pour vous ?</u> 
    2643 
    2744         <ul type=circle> 
    28              <li>Make use of the <a href="http://ether.ipsl.jussieu.fr">ETHER</a> facility to interpolate within the ECMWF (European Centre for Medium-Range Weather Forecasts) the pressure, temperature, and constituent profile at the location of your observing site and within 6 hours from the date of your observations. 
    29          <br> 
    30              <li>Compute the atmospheric transmittance from the top of the atmosphere down to the observatory, based on the HITRAN (high-resolution transmission molecular absorption database) molecular database and the LBLTRM (Line-By-Line Radiative Transfer Model) radiative transfer code. 
    31          <br> 
    32              <li>Provide separate transmittances associated with H2O, O2, O3, CO2, and Rayleigh scattering. 
    33          <br> 
    34              <li>Allow disentangling atmospheric features from other absorptions in your astronomical spectra. 
     45             <li>Faire usage des services de Ether pour interpoler via ECMWF (Centre Européen pour les Prévisions Météorologiques à Moyen Terme) la pression, la température et le profil de l'espÚce concernée à l'emplacement de votre site d'observation et dans les 6 heures à partir de la date de vos observations. 
     46 
     47             <li>Calculer le facteur de transmission atmosphérique du sommet de l'atmosphÚre vers l'observatoire, basé sur la base de données moléculaire HITRAN ((high-resolution transmission molecular absorption database) et le code du transfert radiatif LBLTRM (Line-By-Line Radiative Transfer Model). 
     48 
     49             <li>Fournir des transmitions distinctes associées à H2O, O2, O3, CO2, et la diffusion de Rayleigh. 
     50 
     51             <li>Mettre en évidence d'autres caractéristiques atmosphériques par votre spectre astronomique. 
    3552 
    3653         </ul> 
    3754 
     55         <table cellpadding=4 cellspacing=6 align="center"> 
     56         <tr> 
     57             <td colspan=5> 
     58            <img width=760px height="290px" src="resources/images/graph_tapas1.jpg"> 
     59             </td> 
     60         </tr> 
     61             </table> 
    3862         <br> 
    3963 
     64 
     65<u>Définition de l'intervalle spectral pour le calcul</u>    <br> 
     66Couverture de longueurs d'onde: l'intervalle spectral peut être choisi dans la fenêtre de 350 à 2500 nm. 
     67<br><br> 
     68<u>Longueur d'onde d'échantillonnage, la résolution et PSF</u> 
     69<br> 
     70La résolution est définie comme &lambda; / FWHM, où LMH est la pleine largeur à mi-hauteur d'une forme instrumentale supposée gaussienne. L'échantillonnage est défini par le rapport d'échantillonnage : nombre de points par FWHM. 
     71<br><br> 
     72<u>Choix des composants atmosphériques:</u><br> 
     73L'utilisateur peut sélectionner le calcul de la transmission par la liste suivante : - Rayleigh extinction, O2, Ozone, H2O. À l'avenir, NO2 et NO3 d'une climatologie établie à partir des mesures GOMOS / ENVISAT peuvent également être disponibles. 
     74L'utilisateur peut également sélectionner l'option dont les transmissions sont calculées séparément pour chaque constituant, pour une meilleure identification des raies observées. La transmission totale est alors la multiplication de toutes les transmissions individuelles. Il peut également être utile pour obtenir la transmission H2O séparément, car la quantité de H2O peut être réglée par une loi de puissance de la transmission, TX (H2O), où X est le facteur d'ajustement. Une telle formule doit être appliquée en principe uniquement avec la résolution la plus élevée possible, et ensuite l'utilisateur peut convoluer par le spectromÚtre PSF profil spectral PSF. 
     75<br> 
     76<br> 
     77<u>Les paramÚtres d'entrée sont:</u> 
     78<br> 
     79<ul type=circle> 
     80    <li>RA DEC de la cible, ou l'angle zénithal de la cible. 
     81    <li>Position de l'observateur (incluant l'altitude). Une liste de la plupart des observatoires importants (avec l'emplacement et l'altitude) est incluse dans la base de données de TAPAS, facilitant la demande de l'utilisateur. 
     82    <li>Arletty p-T profile 
     83    <li>H2O and ozone profiles from ECMWF. 
     84</ul> 
     85La réfraction atmosphérique, qui infléchit la trajectoire de la lumiÚre et augmente légÚrement la voie atmosphérique est prise en compte.<br> 
     86<br> 
     87 
     88<u>L'équipe TAPAS</u>: 
     89<ul type=circle> 
     90    <li>Jean-Loup Bertaux (LATMOS), responsable scientifique du projet. 
     91    <li>Rosine Lallement (GEPI) chef scientifique pour l'astronomie. 
     92    <li>Stéphane Ferron (ACRI-ST) a développé le module de calcul de la transmission avec LBLRTM 
     93    <li>Cathy Boonne (IPSL) responsable du centre de données ETHER à Paris. 
     94    <li>Renaud Bodichon (IPSL) a développé l'interface utilisateur 
     95</ul> 
     96Egalement, Alain Hauchecorne (LATMOS) est consulté par l'équipe TAPAS en tant qu'expert en Physique de l'atmosphÚre. Il est à l'origine du produit Arletty. 
     97<br> 
     98<br> 
     99<u>Les laboratories and institutions impliquées:</u><br> 
     100<u>GEPI</u>, <u>LATMOS</u>, <u>IPSL</u>, <u>ACRI-ST</u> 
     101 
     102<br><u>GEPI</u> est un département de l'Observatoire de Paris-Meudon (France), impliqué dans de nombreux projets instrumentaux (basés au sol et dans l'espace, GAIA/ESA,EUCLID/ESA), traitant de Physique stellaire et galactique. 
     103 
     104<br><u>LATMOS</u>est situé sur le campus de l'UVSQ (Université de Versailles Saint Quentin) et sur ​​le campus de l'Université Pierre et Marie Curie, Paris, France. 
     105 
     106<br><u>IPSL</u> (Institut Pierre Simon Laplace) est une fédération de 6 laboratoires qui développent une stratégie commune dans le domaine de la recherche sur le climat. Saisissez du texte, l'adresse d'un site Web ou importez un document à traduire. Il gÚre un certain nombre de services d'observation et le centre de données Ether pour la Chimie de l'atmosphÚre. 
     107 
     108<br><u>ACRI-ST</u> est une société de R&D indépendante basée à Sophia-Antipolis, France. Son équipe d'ingénieurs et de chercheurs fournit des compétences en mathématiques appliquées, géophysique, mécanique, modélisation numérique, pour les études, l'expertise, la formation et les services d'information sur l'environnement : 260 route du Pin Montard, BP 234 06904 Sophia-Antipolis Cedex, France Tel +33 (0)4 92 96 75 00; Fax +33 (0)4 92 96 71 17. 
     109 
     110<br><br>Toute question au sujet de TAPAS doit être adressée à <u> Cathy Boonne (IPSL) (cbipsl@ipsl.jussieu.fr) </u>. Elle répondra directement ou redirigera vers le membre de l'équipe TAPAS pertinente. 
     111 
     112 
     113<br><br> 
     114         <u>Remerciements</u><br>Ce travail est soutenu par le CNES (Centre National des Etudes Spatiales) et le CNRS (Centre National de la Recherche Scientifique). 
     115         <br> TAPAS est un service géré par le centre de données Ether. Ether remercie pour TAPAS l'utilisation de la base de données HITRAN et le code de transfert radiatif LBLRTM, l'utilisation des données du ECMWF et le centre de données Ether. 
     116 
     117 
     118                            <br> 
    40119         <table cellpadding=4 cellspacing=6 align="center"> 
    41120 
     
    45124            <td><a target="_blank" href="http://www.ipsl.fr"><img width=100 src="resources/images/logo_ipsl.png"></a></td> 
    46125            <td><a target="_blank" href="http://www.cnrs.fr"><img border="1" width=70 src="resources/images/logo_cnrs.jpg"></a></td> 
     126            <td><a target="_blank" href="http://gepi.obspm.fr"><img border="1" width=140 src="resources/images/logo_gepi.jpg"></a></td> 
    47127         </tr> 
     128             </table> 
    48129 
    49130 
  • tapas/web/init_old.jsp

    r529 r767  
    1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 
    21<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 
    3 <%@ taglib prefix="tiles" uri="/WEB-INF/tlds/struts-tiles.tld" %> 
    4 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
    52 
    6 <tiles:insert page="/resources/templates/templateEther.jsp" flush="true"> 
     3<script type="text/javascript"> 
    74 
    8     <tiles:put name="insertCss" type="string"/> 
    9     <tiles:put name="insertJsOrJsp" type="string"/> 
     5var language='<spring:message code="language"/>'; 
    106 
    11     <tiles:put name="title" type="string"><spring:message code="app.title"/> - <spring:message code="title.home"/></tiles:put> 
    12     <tiles:put name="nav" type="string"><a href=""><spring:message code="label.home"/></a></tiles:put> 
     7document.location.href = "project?methodName=home_"+language; 
    138 
     9</script> 
    1410 
    15     <%-- ****************** CONTENT ****************** --%> 
    16     <tiles:put name="bodytitle" type="string"><spring:message code="title.home"/></tiles:put> 
    17  
    18     <tiles:put name="body" type="string"> 
    19         <c:if test="${not empty errors}"> 
    20             <div id="errors"><spring:message code="${errors}"/></div> 
    21         </c:if> 
    22     <div class="containerLabel3"> 
    23      <fieldset class="cfs3"> 
    24  
    25          WHAT TAPAS CAN DO FOR YOU : 
    26  
    27          <ul type=circle> 
    28              <li>Make use of the <a href="http://ether.ipsl.jussieu.fr">ETHER</a> facility to interpolate within the ECMWF (European Centre for Medium-Range Weather Forecasts) the pressure, temperature, and constituent profile at the location of your observing site and within 6 hours from the date of your observations. 
    29          <br> 
    30              <li>Compute the atmospheric transmittance from the top of the atmosphere down to the observatory, based on the HITRAN (high-resolution transmission molecular absorption database) molecular database and the LBLTRM (Line-By-Line Radiative Transfer Model) radiative transfer code. 
    31          <br> 
    32              <li>Provide separate transmittances associated with H2O, O2, O3, CO2, and Rayleigh scattering. 
    33          <br> 
    34              <li>Allow disentangling atmospheric features from other absorptions in your astronomical spectra. 
    35  
    36          </ul> 
    37  
    38          <br> 
    39  
    40          <table cellpadding=4 cellspacing=6 align="center"> 
    41  
    42          <tr> 
    43             <td><a target="_blank" href="http://www.cnes.fr"><img border="1" width=70 src="resources/images/logo_cnes.png"></a></td> 
    44             <td><a target="_blank" href="http://www.latmos.ipsl.fr"><img border="1" width=100 src="resources/images/logo_latmos.png"></a></td> 
    45             <td><a target="_blank" href="http://www.ipsl.fr"><img width=100 src="resources/images/logo_ipsl.png"></a></td> 
    46             <td><a target="_blank" href="http://www.cnrs.fr"><img border="1" width=70 src="resources/images/logo_cnrs.jpg"></a></td> 
    47          </tr> 
    48  
    49  
    50  
    51          </table> 
    52  
    53      </fieldset> 
    54  </div> 
    55  
    56     </tiles:put> 
    57  
    58 </tiles:insert> 
  • tapas/web/project/formTapas.jsp

    r529 r767  
    44<%@ page import="com.ether.WebException" %> 
    55<%@ page import="com.ether.YesNo" %> 
     6<%@ page import="com.ether.WebHelper" %> 
    67<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
    78<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 
     
    4344        <div class="containerForm" id="formulaire"></div> 
    4445 
    45  
     46        <%=WebHelper.getRequestParameter( request,"language","",true )%> 
    4647        <script type="text/javascript"> 
    4748            var tapasTexts = $A( "" ); 
     
    8485            tapasTexts["label.climato"] = "<spring:message code="label.climato"/>"; 
    8586            tapasTexts["label.datemesure"] = "<spring:message code="label.datemesure"/>"; 
     87            tapasTexts["label.berv"] = "<spring:message code="label.berv"/>"; 
    8688 
    8789            tapasTexts["label.format"] = "<spring:message code="label.format"/>"; 
     
    108110            tapasTexts["label.title.del"] = "<spring:message code="label.title.del"/>"; 
    109111            tapasTexts["label.or"] = "<spring:message code="label.or"/>"; 
     112            tapasTexts["language"] = "<spring:message code="language"/>"; 
    110113 
    111114            var interfaceTapas = new InterfaceTapas( ${jSonFileFormats}, ${jSonYesNos}, ${jSonObservatories}, ${jSonSpectralUnits}, ${jSonInstrumentalFunctions}, ${jSonClimatoReferences} ); 
  • tapas/web/project/formTapas_script.jsp

    r529 r767  
     1 
    12<script type="text/javascript"> 
    23 
     
    2223        this.select_ico2eList = new Object(); 
    2324        this.select_irextinctionList = new Object(); 
     25        this.select_ibervCList = new Object(); 
    2426 
    2527        this.jSonObservatories = jsonObservatories || false; 
     
    3537        this.numRequest = 1; 
    3638 
     39        this.language = tapasTexts["language"] ; 
     40        this.browser="Firefox"; 
     41 
     42        if (navigator.userAgent.indexOf('Firefox') != -1 && parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf('Firefox') + 8)) >= 3.6){ 
     43            this.browser="Firefox"; 
     44        } 
     45        else if (navigator.userAgent.indexOf('Chrome') != -1 && parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf('Chrome') + 7).split(' ')[0]) >= 15){ 
     46            this.browser="Chrome"; 
     47        } 
     48        else if(navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Version') != -1 && parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf('Version') + 8).split(' ')[0]) >= 5){ 
     49            this.browser="Safari"; 
     50        } 
     51 
    3752        // Buttons 
    3853        var submitButton = new Button( {value:tapasTexts["label.submitButton"], parent:this.containerCenter, id:"button_submit", className: "red_button", classNameText:"red_button_text", onClick:jQuery.proxy( this.onClickSubmit, this )} ); 
     
    159174 
    160175 
    161     createTr: function( texte, inputId, container, textesup, event, champ, ctnb ) 
    162     { 
     176    createTr: function( texte, inputId, container, textesup, event, champ, ctnb, info ) 
     177    { 
     178 
    163179        var tr = $( document.createElement( "tr" ) ); 
    164180        var td1 = $( document.createElement( "td" ) ); 
     
    184200        container.append( tr ); 
    185201 
     202        var re1 = new RegExp("isr_"); 
     203        var re2 = new RegExp("irp_"); 
     204 
     205        if (info && (inputId.match(re1) || inputId.match(re2))) { 
     206            var mt="-4px"; 
     207            var ml=""; 
     208 
     209            if (this.browser == "Firefox") { 
     210                if (this.language == "en") ml="-252px"; 
     211                else ml="-244px"; 
     212            } 
     213            else if (this.browser == "Chrome") { 
     214                if (this.language == "en") ml="-227px"; 
     215                else ml="-223px"; 
     216            } 
     217 
     218            var img = $( document.createElement( "img" ) ); 
     219            var a = $( document.createElement( "a" ) ); 
     220            var div = $( document.createElement( "div" ) ); 
     221            img.attr("src","resources/images/info.png"); 
     222            img.attr("width","19"); 
     223            a.attr("style","cursor:pointer"); 
     224 
     225            img.bind("click",[inputId,450,100,this],this.onClickInfos); 
     226            a.append(img); 
     227            div.append(a); 
     228            div.attr( "style","margin-left:"+ml+";margin-top:"+mt); 
     229 
     230            tr.append( div ); 
     231 
     232            /*td2.attr( {colspan:3} ); 
     233            tr.append( td2 ); 
     234            tr.append( div );*/ 
     235        } 
     236        else if (info) { 
     237            var img = $( document.createElement( "img" ) ); 
     238            var a = $( document.createElement( "a" ) ); 
     239            img.attr("src","resources/images/info.png"); 
     240            img.attr("width","19"); 
     241            a.attr("style","cursor:pointer"); 
     242            img.bind("click",[inputId,450,100,this],this.onClickInfos); 
     243            a.append(img); 
     244            td3.append(a); 
     245 
     246        } 
    186247    }, 
    187248 
     
    197258            tr.append( td1 ); 
    198259            container.append( tr ); 
     260 
    199261 
    200262    }, 
     
    210272        var td4 = $( document.createElement( "td" ) ); 
    211273        var td5 = $( document.createElement( "td" ) ); 
     274        var td6 = $( document.createElement( "td" ) ); 
    212275        var input1 = $( document.createElement( "input" ) ); 
    213276        var input2 = $( document.createElement( "input" ) ); 
     
    220283        td3.html( texte2 ); 
    221284        td5.html( textesup ); 
     285        var img = $( document.createElement( "img" ) ); 
     286        var a = $( document.createElement( "a" ) ); 
     287        img.attr("src","resources/images/info.png"); 
     288        img.attr("width","19"); 
     289        a.attr("style","cursor:pointer"); 
     290        img.bind("click",["spectral_range",450,100,this],this.onClickInfos); 
     291        a.append(img); 
     292        td5.append(a); 
     293 
     294        //img.onclick(this.onClickInfos("spectral_range",1200,440)); 
     295 
    222296        td1.attr( {class:"containerLabel"} ); 
    223297        td3.attr( {class:"containerLabel3"} ); 
     
    233307        tr.append( td4 ); 
    234308        tr.append( td5 ); 
     309        tr.append( td6 ); 
    235310        container.append( tr ); 
    236311    }, 
     
    238313 
    239314 
    240     createTrList: function( texte, inputId, index, container, type ) 
     315    createTrList: function( texte, inputId, index, container, type, info ) 
    241316    { 
    242317        var tr = $( document.createElement( "tr" ) ); 
     
    244319        var td2 = $( document.createElement( "td" ) ); 
    245320        var input = $( document.createElement( "input" ) ); 
     321        var champ="", ml="", mt="-4px"; 
     322 
     323        var div = $( document.createElement( "div" ) ); 
    246324 
    247325        input.attr( {id: inputId} ); 
     
    251329        tr.append( td1 ); 
    252330 
    253         if( 'format' == type ) this.displaySelect( td2, inputId, index, this.jSonFileFormats, this.selectFileFormatsList, false, null ); 
     331 
     332                 // alert(inputId); 
     333        if( 'format' == type ) { 
     334            this.displaySelect( td2, inputId, index, this.jSonFileFormats, this.selectFileFormatsList, false, null ); 
     335            info = true; 
     336            champ = "iformat_"; 
     337            ml="-2px"; 
     338            mt="-4px"; 
     339        } 
     340 
    254341        else 
    255342        if( 'yesno' == type ) 
     
    263350            else if( (/^(ico2e_[1-9]+)$/.test( inputId )  ) ) 
    264351                this.displaySelect( td2, inputId, index, this.jSonYesNos, this.select_ico2eList, false, "yesNos" ); 
    265             else if( (/^(irextinction_[1-9]+)$/.test( inputId )  ) ) 
     352            else if( (/^(irextinction_[1-9]+)$/.test( inputId )  ) ) { 
     353 
    266354                this.displaySelect( td2, inputId, index, this.jSonYesNos, this.select_irextinctionList, false, "yesNos" ); 
    267         } 
    268         else if( 'observatories' == type ) 
     355                info = true; 
     356                champ=inputId; 
     357                if (this.language == "en") ml="-11px"; 
     358                else ml="-13px"; 
     359 
     360            } 
     361            else if( (/^(ibervC_[1-9]+)$/.test( inputId )  ) ) { 
     362                this.displaySelect( td2, inputId, index, this.jSonYesNos, this.select_ibervCList, false, "yesNos" ); 
     363                info = true; 
     364                champ=inputId; 
     365                if (this.language == "en") ml="-11px"; 
     366                else ml="-13px"; 
     367            } 
     368        } 
     369        else if( 'observatories' == type ) { 
    269370            this.displaySelect( td2, inputId, index, this.jSonObservatories, this.selectObservatoriesList, true, "observatories" ); 
    270         else if( 'spectralUnit' == type ) 
     371 
     372            if (this.browser == "Firefox") { 
     373                if (this.language == "en") ml="-162px"; 
     374                else ml="-116px"; 
     375            } 
     376            else if (this.browser == "Chrome") { 
     377                if (this.language == "en") ml="-123px"; 
     378                else ml="-84px"; 
     379            } 
     380 
     381            champ="iobservatory_"; 
     382        } 
     383        else if( 'spectralUnit' == type ) { 
    271384            this.displaySelect( td2, inputId, index, this.jSonSpectralUnits, this.selectSpectralUnitsList, true, "spectralUnits" ); 
    272         else if( 'ilsf' == type ) 
     385            info = true; 
     386 
     387            champ = "ispectral_choice_"; 
     388 
     389           if (this.browser == "Firefox") { 
     390                if (this.language == "en") ml="-162px"; 
     391                else ml="-116px"; 
     392            } 
     393            else if (this.browser == "Chrome") { 
     394                if (this.language == "en") ml="-123px"; 
     395                else ml="-84px"; 
     396            } 
     397 
     398        } 
     399        else if( 'ilsf' == type ) { 
    273400            this.displaySelect( td2, inputId, index, this.jSonInstrumentalFunctions, this.selectInstrumentalFunctionsList, false, "instrumentalFunctions" ); 
    274         else if( 'climatoReference' == type ) 
     401            info = true; 
     402            champ = "ifunction_"; 
     403            if (this.language == "en") ml="-192px"; 
     404            else ml="-172px"; 
     405 
     406            if (this.browser == "Firefox") { 
     407                if (this.language == "en") ml="-192px"; 
     408                else ml="-172px"; 
     409            } 
     410            else if (this.browser == "Chrome") { 
     411                if (this.language == "en") ml="-149px"; 
     412                else ml="-134px"; 
     413            } 
     414 
     415        } 
     416        else if( 'climatoReference' == type ) { 
    275417            this.displaySelect( td2, inputId, index, this.jSonClimatoReferences, this.selectClimatoReferencesList, false, "climatoReferences" ); 
    276  
    277         td2.attr( {colspan:3} ); 
    278         tr.append( td2 ); 
     418            info = true; 
     419            champ = "icr_"; 
     420 
     421            if (this.browser == "Firefox") { 
     422                if (this.language == "en") ml="-170px"; 
     423                else ml="-162px"; 
     424            } 
     425            else if (this.browser == "Chrome") { 
     426                if (this.language == "en") ml="-127px"; 
     427                else ml="-124px"; 
     428            } 
     429 
     430        } 
     431 
     432 
     433 
     434        if (info) { 
     435            var img = $( document.createElement( "img" ) ); 
     436            var a = $( document.createElement( "a" ) ); 
     437            img.attr("src","resources/images/info.png"); 
     438            img.attr("width","19"); 
     439            a.attr("style","cursor:pointer"); 
     440 
     441            img.bind("click",[champ,450,100,this],this.onClickInfos); 
     442            a.append(img); 
     443            div.append(a); 
     444            div.attr( "style","margin-left:"+ml+";margin-top:"+mt); 
     445 
     446            td2.attr( {colspan:3} ); 
     447            tr.append( td2 ); 
     448            tr.append( div ); 
     449        } 
     450        else { 
     451            td2.attr( {colspan:3} ); 
     452            tr.append( td2 ); 
     453        } 
    279454        container.append( tr ); 
    280455    }, 
     
    306481 
    307482        var res = jQuery.parseJSON( result ).result; 
    308         alert( res ); 
     483 
    309484    }, 
    310485 
    311486 
    312487    // EVENTS ******************************************************** 
     488    onClickInfos: function(param) 
     489    { 
     490 
     491        var parametre=param.data[0]; 
     492        var width=param.data[1]; 
     493        var height=param.data[2]; 
     494        var context=param.data[3]; 
     495 
     496        if ("spectral_range" == parametre) { 
     497            width=600; 
     498            height=150; 
     499            var titre = "D&eacute;finition de l'intervalle spectral pour le calcul."; 
     500            var pageInfo = "resources/doc/infosSpectralRange_fr.txt"; 
     501 
     502            if( "fr" != context.language ) { 
     503                titre = "Definition of spectral interval for the computation."; 
     504                pageInfo = "resources/doc/infosSpectralRange_en.txt"; 
     505                width=600; 
     506                height=100; 
     507            } 
     508 
     509        } 
     510 
     511        if ("ispectral_choice_" == parametre) { 
     512            var titre = "Unit&eacute; spectrale"; 
     513            var pageInfo = "resources/doc/infosSpectralUnit_fr.txt"; 
     514            width=600; 
     515            height=450; 
     516            if( "fr" != context.language ) { 
     517                titre = "Spectral unit"; 
     518                pageInfo = "resources/doc/infosSpectralUnit_en.txt"; 
     519                width=500; 
     520                height=500; 
     521            } 
     522        } 
     523 
     524        var re = new RegExp("irp_"); 
     525        if (parametre.match(re)) { 
     526            var titre = "R&eacute;solution"; 
     527            var pageInfo = "resources/doc/infosResolution_fr.txt"; 
     528            width=600; 
     529            height=200; 
     530            if( "fr" != context.language ) { 
     531                titre = "Resolution power"; 
     532                pageInfo = "resources/doc/infosResolution_en.txt"; 
     533                width=500; 
     534                height=200; 
     535            } 
     536        } 
     537 
     538        var re = new RegExp("isr_"); 
     539        if (parametre.match(re)) { 
     540            var titre = "Taux d'&eacute;chantillonnage"; 
     541            var pageInfo = "resources/doc/infosSamplingRatio_fr.txt"; 
     542            width=600; 
     543            height=100; 
     544            if( "fr" != context.language ) { 
     545                titre = "Sampling Ratio"; 
     546                pageInfo = "resources/doc/infosSamplingRatio_en.txt"; 
     547                width=500; 
     548                height=100; 
     549            } 
     550        } 
     551 
     552       var re = new RegExp("ibervC_"); 
     553        if (parametre.match(re)) { 
     554            var titre = "Correction BERV"; 
     555            var pageInfo = "resources/doc/infosBERV_fr.txt"; 
     556            width=950; 
     557            height=700; 
     558            if( "fr" != context.language ) { 
     559                titre = "BERV correction"; 
     560                pageInfo = "resources/doc/infosBERV_en.txt"; 
     561                width=950; 
     562                height=700; 
     563            } 
     564        } 
     565 
     566        var re = new RegExp("ira_"); 
     567        if (parametre.match(re)) { 
     568            var titre = "LOS Ascension Droite"; 
     569            var pageInfo = "resources/doc/infosLOSRA_fr.txt"; 
     570            width=600; 
     571            height=100; 
     572            if( "fr" != context.language ) { 
     573                titre = "LOS Right Ascension"; 
     574                pageInfo = "resources/doc/infosLOSRA_en.txt"; 
     575                width=500; 
     576                height=100; 
     577            } 
     578        } 
     579 
     580        var re = new RegExp("ide_"); 
     581        if (parametre.match(re)) { 
     582            var titre = "LOS D&eacute;clinaison"; 
     583            var pageInfo = "resources/doc/infosLOSD_fr.txt"; 
     584            width=600; 
     585            height=100; 
     586            if( "fr" != context.language ) { 
     587                titre = "LOS Declination"; 
     588                pageInfo = "resources/doc/infosLOSD_en.txt"; 
     589                width=600; 
     590                height=100; 
     591            } 
     592        } 
     593 
     594        var re = new RegExp("iza_"); 
     595        if (parametre.match(re)) { 
     596            var titre = "Angle z&eacute;nithal"; 
     597            var pageInfo = "resources/doc/infosZenithalAngle_fr.txt"; 
     598            width=600; 
     599            height=100; 
     600            if( "fr" != context.language ) { 
     601                titre = "Zenithal angle"; 
     602                pageInfo = "resources/doc/infosZenithalAngle_en.txt"; 
     603                width=600; 
     604                height=100; 
     605            } 
     606        } 
     607 
     608        var re = new RegExp("isr_"); 
     609        if (parametre.match(re)) { 
     610            var titre = "Taux d'&eacute;chantillonnage"; 
     611            var pageInfo = "resources/doc/infosSamplingRatio_fr.txt"; 
     612            width=600; 
     613            height=100; 
     614            if( "fr" != context.language ) { 
     615                titre = "Sampling Ratio"; 
     616                pageInfo = "resources/doc/infosSamplingRatio_en.txt"; 
     617                width=500; 
     618                height=100; 
     619            } 
     620        } 
     621 
     622        var re = new RegExp("irextinction_"); 
     623        if (parametre.match(re)) { 
     624            var titre = "S&eacute;lection des composants atmsoph&eacute;riques"; 
     625            var pageInfo = "resources/doc/infosSpecies_fr.txt"; 
     626            width=600; 
     627            height=350; 
     628            if( "fr" != context.language ) { 
     629                titre = "Selection of atmospheric constituents"; 
     630                pageInfo = "resources/doc/infosSpecies_en.txt"; 
     631                width=600; 
     632                height=300; 
     633            } 
     634        } 
     635 
     636        if ("icr_" == parametre) { 
     637            var titre = "Mod&egrave;le atmosph&eacute;rique"; 
     638            var pageInfo = "resources/doc/infosAtmosphericModel_fr.txt"; 
     639            width=600; 
     640            height=500; 
     641            if( "fr" != context.language ) { 
     642                titre = "Atmospheric model"; 
     643                pageInfo = "resources/doc/infosAtmosphericModel_en.txt"; 
     644                width=500; 
     645                height=450; 
     646            } 
     647        } 
     648 
     649        if ("iobservatory_" == parametre) { 
     650            var titre = "Observatoire"; 
     651            var pageInfo = "resources/doc/infosObservatory_fr.txt"; 
     652            width=600; 
     653            height=200; 
     654            if( "fr" != context.language ) { 
     655                titre = "Observatory"; 
     656                pageInfo = "resources/doc/infosObservatory_en.txt"; 
     657                width=500; 
     658                height=200; 
     659            } 
     660        } 
     661 
     662        if ("iformat_" == parametre) { 
     663            var titre = "Format fichier"; 
     664            var pageInfo = "resources/doc/infosInstrumentalFunction_fr.txt"; 
     665            width=600; 
     666            height=200; 
     667            if( "fr" != context.language ) { 
     668                titre = "File format"; 
     669                pageInfo = "resources/doc/infosInstrumentalFunction_en.txt"; 
     670                width=500; 
     671                height=200; 
     672            } 
     673        } 
     674 
     675        if ("ifunction_" == parametre) { 
     676            var titre = "Fonction instrumentale"; 
     677            var pageInfo = "resources/doc/infosInstrumentalFunction_fr.txt"; 
     678            width=600; 
     679            height=250; 
     680            if( "fr" != context.language ) { 
     681                titre = "Instrumental function"; 
     682                pageInfo = "resources/doc/infosInstrumentalFunction_en.txt"; 
     683                width=500; 
     684                height=200; 
     685            } 
     686        } 
     687 
     688 
     689        var $dialog = $( '<div></div>' ) 
     690                .load( pageInfo ) 
     691                    .dialog( { 
     692                            autoOpen: false, 
     693                            title:titre, 
     694                            height:height, 
     695                            width:width 
     696                } ); 
     697 
     698        $dialog.dialog( 'open' ); 
     699 
     700    }, 
     701 
    313702    onClickSubmit: function() 
    314703    { 
     
    371760                    //$( "#tab_request" + i ).html( "toto"); 
    372761                    $( "#tab_request" + i ).attr( {name:z} ); 
    373                     $( "#tab_request" + i ).attr( {id:"tab_request" + z} ); 
     762                    $( "#tab_request" + i ).attr( {id:"tab_request" + z} );       this.angleChoice 
    374763                    $( "#tabObservation_" + i ).attr( {id:"tabObservation_" + z} ); 
    375764//                    $( "#select_iobservatory_" + i ).attr( {id:"select_iobservatory_" + z} ); 
     
    412801                    this.select_ico2eList[i] = null; 
    413802 
     803                    this.select_ibervCList[z] = this.select_ibervCList[i]; 
     804                    this.select_ibervCList[i] = null; 
     805 
    414806                    // Supression du calendrier puis re-création en insérant l'ancienne date 
    415807                    var oldDate = this.calendarConverter.parse( $( "#iobservation_date_" + i ).val() ); 
     
    512904    { 
    513905 
     906 
     907 
    514908        var divAll = $( document.createElement( "div" ) ); 
    515909        divAll.attr( {id:"all_" + this.nbRequest, class:"divAll"} ); 
     
    573967        this.createTrList( tapasTexts["label.eo2"], "io2e_" + this.nbRequest, this.nbRequest, tabPreference, 'yesno' ); 
    574968        this.createTrList( tapasTexts["label.eco2"], "ico2e_" + this.nbRequest, this.nbRequest, tabPreference, 'yesno' ); 
    575  
    576         this.createTrList( tapasTexts["label.observatory"], "iobservatory_" + this.nbRequest, this.nbRequest, tabObservation, 'observatories' ); 
     969        this.createTrList( tapasTexts["label.berv"], "ibervC_" + this.nbRequest, this.nbRequest, tabPreference, 'yesno' ); 
     970 
     971        this.createTrList( tapasTexts["label.observatory"], "iobservatory_" + this.nbRequest, this.nbRequest, tabObservation, 'observatories',true ); 
    577972        this.createCalendar( tabObservation, tapasTexts["label.datemesure"], "iobservation_date_" + this.nbRequest, false, true ); 
    578973 
     
    588983 
    589984 
    590         this.createTr( tapasTexts["label.resolution"], "irp_" + this.nbRequest, tabObservation, "", "", "","" ); 
    591         this.createTr( tapasTexts["label.ratio"], "isr_" + this.nbRequest, tabObservation, "", "","","" ); 
    592  
    593  
    594         this.createTr( tapasTexts["label.ira"], "ira_" + this.nbRequest,tabObservation,"hh:mm:ss (J2000)","keypress","ra","2" ); 
     985        this.createTr( tapasTexts["label.resolution"], "irp_" + this.nbRequest, tabObservation, "", "", "","",true ); 
     986        this.createTr( tapasTexts["label.ratio"], "isr_" + this.nbRequest, tabObservation, "", "","","",true ); 
     987 
     988 
     989        this.createTr( tapasTexts["label.ira"], "ira_" + this.nbRequest,tabObservation,"hh:mm:ss (J2000)","keypress","ra","2",true ); 
    595990        //this.createTime( tabObservation, tapasTexts["label.ira"], "ira_" + this.nbRequest, false, true,"hh:mm:ss (J2000)" ); 
    596         this.createTr( tapasTexts["label.ide"], "ide_" + this.nbRequest, tabObservation, "deg:':''","keypress","de","2" ); 
     991        this.createTr( tapasTexts["label.ide"], "ide_" + this.nbRequest, tabObservation, "deg:':''","keypress","de","2",true ); 
    597992        this.createTrTxt( tapasTexts["label.or"], tabObservation ); 
    598         this.createTr( tapasTexts["label.iza"], "iza_" + this.nbRequest, tabObservation, "[0,90] &deg;","keypress","za","2" ); 
     993        this.createTr( tapasTexts["label.iza"], "iza_" + this.nbRequest, tabObservation, "[0,90] &deg;","keypress","za","2",true ); 
    599994 
    600995 
     
    6401035            preference.co2Extinction.firstValue = this.select_ico2eList[i].getValuesInString(); 
    6411036            preference.co2Extinction.secondValue = this.select_ico2eList[i].getValue(); 
     1037 
     1038            preference.bervCorrection = new Object(); 
     1039            preference.bervCorrection.firstValue = this.select_ibervCList[i].getValuesInString(); 
     1040            preference.bervCorrection.secondValue = this.select_ibervCList[i].getValue(); 
    6421041 
    6431042 
     
    8771276      //this.createTime( tabObservation, tapasTexts["label.ira"], "ira_" + this.nbRequest, false, true,"hh:mm:ss (J2000)" ); 
    8781277      this.createTr( tapasTexts["label.ide"], "ide_" + this.nbRequest, tabObservation, "deg:':''","keypress","de","2" ); 
     1278 
    8791279      this.createTrTxt( "or", tabObservation ); 
    8801280      this.createTr( tapasTexts["label.iza"], "iza_" + this.nbRequest, tabObservation, "[0,90] &deg;","keypress","za","2" ); 
     
    9051305            this.select_io2eList[indice].select(this.select_io2eList[indice-1].getValue(),false); 
    9061306            this.select_ico2eList[indice].select(this.select_ico2eList[indice-1].getValue(),false); 
     1307            this.select_ibervCList[indice].select(this.select_ibervCList[indice-1].getValue(),false); 
    9071308 
    9081309            $( "#iminspectral_ranger_" + indice ).val($( "#iminspectral_ranger_" + indice0 ).val() ); 
  • tapas/web/resources/js/classesForJQuery/LoginButton.js

    r490 r767  
    228228    { 
    229229        this.errors = jQuery.parseJSON( result ).errors; 
    230         this.setJSONUser( null != jQuery.parseJSON( result ).jSONUser ? jQuery.parseJSON( result ).jSONUser : false ); 
     230        this.setJSONUser( null != jQuery.parseJSOetherN( result ).jSONUser ? jQuery.parseJSON( result ).jSONUser : false ); 
    231231        if( null == this.errors ) 
    232232            this.updateLoginOrLogout(); 
  • tapas/web/resources/js/classesForJQuery/Select.js

    r502 r767  
    3939        this.isHover = false; 
    4040        this.arrayOptions = $(); 
    41         this.values = $(); 
    4241        this.className = objectParameter.className ? "select_container " + objectParameter.className : "select_container"; 
    4342        this.classNameOption = objectParameter.classNameOption ? "select_choicelist " + objectParameter.classNameOption : "select_choicelist"; 
     43//                this.callbackSelect = objectParameter.callbackSelect ? objectParameter.callbackSelect : false; 
     44 
     45        // Variables 
     46        this.itemValues = $(); 
    4447 
    4548        // Select div 
    4649        this.divSelect = $( document.createElement( "div" ) ); 
    47         this.divSelect.attr( {id:this.id, class:this.className } ); 
     50        this.divSelect.attr( {id:this.id, class:this.className} ); 
    4851 
    4952        this.divSelectLeft = $( document.createElement( "div" ) ) 
     
    6568        this.divOption.addClass( this.classNameOption ); 
    6669        this.parent.append( this.divOption ); 
     70 
     71        //rajout pour onclick 
     72//                if(this.callbackSelect) 
     73//                    this.divSelect.bind( 'click', this, this.onClickSelect ); 
    6774 
    6875        this.divSelect.bind( "mouseup", this, this.toggleOption ); 
     
    7178        this.divOption.bind( 'mouseover', this, this.onMouseHover ); 
    7279        this.divOption.bind( 'mouseout', this, this.onMouseOut ); 
     80        this.parent.bind( 'mouseleave', this, this.onMouseParentOut ); 
    7381 
    7482        if( this.isDisplayed ) 
     
    8997    }, 
    9098 
     99    getValue2: function() 
     100    { 
     101        return this.itemValue2; 
     102    }, 
     103 
    91104    getValues: function() 
    92105    { 
    93         return this.values; 
     106        return this.itemValues; 
    94107    }, 
    95108 
    96109    getValuesInString: function( separator ) 
    97110    { 
    98         var valulues = $.makeArray( this.values ); 
     111        var valulues = $.makeArray( this.itemValues ); 
    99112        if( separator ) 
    100113            return valulues.join( separator ); 
     
    148161        this.divSelect.addClass( "disable" ); 
    149162        this.hideOption(); 
     163        /* Nath*/ 
     164        this.divSelectMiddle.removeClass( "select_selectMiddle" ); 
     165        this.divSelectMiddle.addClass( "select_selectMiddle_disable" ); 
    150166    }, 
    151167 
     
    155171        this.isDisable = false; 
    156172        this.divSelect.removeClass( "disable" ); 
     173        /* Nath*/ 
     174        this.divSelectMiddle.removeClass( "select_selectMiddle_disable" ); 
     175        this.divSelectMiddle.addClass( "select_selectMiddle" ); 
    157176    }, 
    158177 
     
    176195 
    177196    // public 
    178     add: function( itemValue, itemName, callback ) 
     197    add: function( itemValue, itemName, callback, itemValue2 ) 
    179198    { 
    180199        var divOptionMiddle = $( document.createElement( "div" ) ); 
     
    183202        divOptionMiddle.itemName = itemName; 
    184203        divOptionMiddle.itemValue = itemValue; 
     204        if( itemValue2 ) 
     205            divOptionMiddle.itemValue2 = itemValue2; 
    185206        divOptionMiddle.callback = callback; 
    186207        this.divOption.append( divOptionMiddle ); 
     
    189210 
    190211        this.arrayOptions.push( divOptionMiddle ); 
    191         this.values.push( itemValue ); 
     212        this.itemValues.push( itemValue ); 
    192213    }, 
    193214 
     
    202223                var index = jQuery.inArray( divOption, this.arrayOptions ); 
    203224                this.arrayOptions.splice( index, 1 ); 
    204                 this.values.splice( index, 1 ); 
     225                this.itemValues.splice( index, 1 ); 
    205226                return false; 
    206227            } 
     
    213234        this.divOption.empty(); 
    214235        this.arrayOptions = $(); 
    215         this.values = $(); 
     236        this.itemValues = $(); 
    216237    }, 
    217238 
     
    265286        this.itemName = divOption.itemName; 
    266287        this.itemValue = divOption.itemValue; 
     288        this.itemValue2 = divOption.itemValue2; 
    267289        this.divSelectMiddle.html( this.itemName ); 
    268290    }, 
     
    276298        contextEvent.hideOption(); 
    277299        contextEvent.select( divOption.itemValue, true ); 
    278         if( undefined != divOption.callback ) 
    279             divOption.callback( divOption.itemValue ); 
    280300    }, 
    281301 
     
    287307 
    288308    // private 
     309    onMouseParentOut: function( event ) 
     310    { 
     311        event.data.isHover = false; 
     312        event.data.hideOption(); 
     313    }, 
     314 
    289315    onMouseOut: function( event ) 
    290316    { 
     
    307333        } 
    308334    } 
     335 
     336//            onClickSelect: function() 
     337//            { 
     338//                this.callbackSelect(); 
     339//            } 
    309340} ); 
  • tapas/web/resources/jsp/dataProtocol_en.jsp

    r423 r767  
    11<div class="title1">TAPAS Data Policy and Data Protocol</div> 
    22<BR/> 
    3 qsdkmqldksfsdjfkl 
     3By using TAPAS, the user takes full responsibility of whatever may happen as a result of its use. The organizations establishing and maintaining the TAPAS web site and services should not be hold responsible for any inconvenient that may result in the use of TAPAS. 
     4Most of the discrepancies between actual observations and the predictions of the simulated transmission noted during the validation period can be assigned to 4 main causes : 
     5- highly saturated regions of absorption, where the transmission is actually 0 or very small.<br> 
     6- an instrument PSF which differs from the user-defined Gaussian, either because of an incorrect choice of PFS width, or because the true PSF is not Gaussian. The actual PSF of an instrument may evolve along the spectrum.<br> 
     7- an incorrect wavelength calibration of the instrument.<br> 
     8- a difference of H2O content between the meteorological estimate and the reality.<br> 
     9 
     10 
    411<BR/> 
    512<a href="project?methodName=downloadFileDataProtocolEn"> 
  • tapas/web/resources/jsp/dataProtocol_fr.jsp

    r423 r767  
    11<div class="title1">TAPAS Protocole de données</div> 
    22<BR/> 
    3 qsdkmqldksfsdjfkl 
     3En utilisant TAPAS, l'utilisateur assume l'entiÚre responsabilité de tout ce qui peut se produire en raison de son utilisation. Les organisations qui maintiennent le site Web TAPAS et les services associés ne pourront pas être tenus responsable pour tout inconvénient qui pourrait résulter de l'utilisation de TAPAS. 
     4La plupart des écarts entre les observations réelles et les prévisions de la transmission simulée notée au cours de la période de validation provient de 4 causes principales :<br> 
     5- Les régions fortement saturéesen absorption, où la transmission est en fait 0 ou trÚs faible <br> 
     6- Un instrument qui diffÚre de la fonction gaussienne définie par l'utilisateur, soit en raison d'un mauvais choix de largeur PFS, soit parce que le vrai PSF n'est pas gaussien. Le PSF réelle d'un instrument est susceptible d'évoluer le long du spectre. <br> 
     7- Un étalonnage de longueur d'ondes incorrect de l'instrument. <br> 
     8- Une différence de teneur en H2O entre l'estimation météorologique et la réalité. 
    49<BR/> 
    510<a href="project?methodName=downloadFileDataProtocolFr"> 
  • tapas/web/resources/templates/templateBackoffice.jsp

    r444 r767  
    8585    <%-- ****************** BOTTOM ****************** --%> 
    8686    <div id="containerBottom" class="containerTapas containerBottom" align="right"> 
    87         &copy; 2012 <a href="http://ether.ipsl.jussieu.fr" target="help">ETHER&nbsp;</a>/ CNRS 
     87        &copy; 2013 <a href="http://ether.ipsl.jussieu.fr" target="help">ETHER&nbsp;</a>/ CNRS 
    8888    </div> 
    8989 
  • tapas/web/resources/templates/templateBackoffice_script.jsp

    r433 r767  
    2929            this.createLogin(); 
    3030 
    31             var interfaceButton = new Button( {value:templateTexts["bo.site"], parent:this.containerTools, id:"button_interface", className: "gray_button", classNameText:"blue_button_text", onClick:this.onClickMegapoli} ); 
     31            var interfaceButton = new Button( {value:templateTexts["bo.site"], parent:this.containerTools, id:"button_interface", className: "gray_button", classNameText:"blue_button_text", onClick:this.onClickTapas} ); 
    3232            var homeButton = new Button( {value:templateTexts["app.home"], parent:this.containerTools, id:"button_home", className: "gray_button", classNameText:"blue_button_text", onClick:this.onClickHome} ); 
    3333        }, 
     
    5151        }, 
    5252 
    53         onClickMegapoli: function() 
     53        onClickTapas: function() 
    5454        { 
    5555            document.location.href = "index.jsp"; 
  • tapas/web/resources/templates/templateEther.jsp

    r529 r767  
    3939    <tiles:insert attribute="insertCss"/> 
    4040    <tiles:insert attribute="insertJsOrJsp"/> 
     41 
     42 
    4143</HEAD> 
    4244 
     
    7476            <li><a href="http://ether.ipsl.jussieu.fr" class="parent" target="_blank"><img width=50 height="50" src="resources/images/logo_ether.jpg"></a></li> 
    7577 
    76             <li><a href="project?methodName=home" class="parent"><span><spring:message code="title.home"/></span></a> 
     78            <li><a href="#" onClick="openHome();" class="parent"><span><spring:message code="title.home"/></span></a> 
    7779 
    7880            </li> 
     
    8183 
    8284            </li> 
    83             <li><a href="#"><span><spring:message code="title.legals"/></span></a></li> 
     85            <li><a href="#" onclick="openLegals();"><span><spring:message code="title.legals"/></span></a></li> 
    8486 
    8587        </ul> 
     
    98100    <%-- ****************** BOTTOM ****************** --%> 
    99101    <div id="containerBottom" class="containerTapas containerBottom" align="right"> 
    100         &copy; 2012 <a href="http://ether.ipsl.jussieu.fr" target="help">ETHER&nbsp;</a>/ CNRS 
     102        &copy; 2013 <a href="http://ether.ipsl.jussieu.fr" target="help">ETHER&nbsp;</a>/ CNRS 
    101103    </div> 
    102104</div> 
     
    129131 
    130132    var interfaceTemplate = new InterfaceTemplate(); 
     133 
     134    function openLegals() { 
     135        location.href="project?methodName=mentionsl_"+interfaceTemplate.language; 
     136    } 
     137 
     138    function openHome() { 
     139            location.href="project?methodName=home_"+interfaceTemplate.language; 
     140    } 
     141 
    131142</script> 
    132143 
  • tapas/web/resources/templates/templateEther_old.jsp

    r481 r767  
    123123    <%-- ****************** BOTTOM ****************** --%> 
    124124    <div id="containerBottom" class="containerTapas containerBottom" align="right"> 
    125         &copy; 2012 <a href="http://ether.ipsl.jussieu.fr" target="help">ETHER&nbsp;</a>/ CNRS 
     125        &copy; 2013 <a href="http://ether.ipsl.jussieu.fr" target="help">ETHER&nbsp;</a>/ CNRS 
    126126    </div> 
    127127</div> 
  • tapas/web/resources/templates/templateEther_script.jsp

    r508 r767  
    1414            /** *********** VARIABLES *********** **/ 
    1515            this.language = '<spring:message code="language"/>'; 
     16            this.languagetoswitch='<spring:message code="label.language.value.to.switch"/>'; 
    1617            this.webmaster = "<%=WebHelper.getProperty(request, "mail.webmaster")%>"; 
    1718            this.jSONUser = <%=WebHelper.getJSONUser( request )%> ? <%=WebHelper.getJSONUser( request )%> : false; 
     
    4950            $.ajax( { 
    5051                url: "project?methodName=setLocale&language=<spring:message code="label.language.value.to.switch"/>", 
    51                 success:function() 
     52 
     53                success:jQuery.proxy(function() 
    5254                { 
    53                     location.reload(); 
    54                 } 
     55                    location.href = "project?methodName=home_"+this.languagetoswitch; 
     56 
     57                    //location.reload(); 
     58                },this) 
     59 
     60                /*success:function() 
     61                { 
     62                    location.href = "project?methodName=home_"+this.language; 
     63                    //location.reload(); 
     64                }*/ 
     65 
    5566            } ); 
    5667        }, 
     
    5970 
    6071        // EVENTS ******************************************************** 
     72        ttt: function() 
     73        { 
     74             alert("ok"); 
     75            //document.location.href = "project?methodName=mentionsl_fr"; 
     76        }, 
     77 
    6178        onClickBO: function() 
    6279        { 
     
    6582 
    6683        onClickHome: function() 
     84        { 
     85            document.location.href = "index.jsp"; 
     86        }, 
     87 
     88 
     89        onClickLegals: function() 
    6790        { 
    6891            document.location.href = "index.jsp"; 
     
    100123            //alert("toto"); 
    101124            //$("#liamenu").addClass("hover"); 
     125        }, 
     126 
     127        getLanguage: function() { 
     128            return this.language; 
     129 
    102130        } 
    103131 
  • tapas/web/src/com/ether/ControllerEponge.java

    r423 r767  
    3838     * @throws WebException 
    3939     */ 
    40     @ControllerMethod(view = VIEW_INIT) 
     40 
     41    /*@ControllerMethod(view = VIEW_INIT_EN) 
    4142    public Map<String, Object> home() 
    42             throws WebException 
    43     { 
     43        throws WebException 
     44    { 
     45 
     46        return new HashMap<String, Object>(); 
     47    } */ 
     48 
     49     @ControllerMethod(view = VIEW_INIT_EN) 
     50    public Map<String, Object> home_en() 
     51        throws WebException 
     52    { 
     53 
     54        return new HashMap<String, Object>(); 
     55    } 
     56 
     57    @ControllerMethod(view = VIEW_INIT_FR) 
     58    public Map<String, Object> home_fr() 
     59        throws WebException 
     60    { 
     61 
     62        return new HashMap<String, Object>(); 
     63    } 
     64 
     65    @ControllerMethod(view = VIEW_MENTIONSL_EN) 
     66    public Map<String, Object> mentionsl_en() 
     67        throws WebException 
     68    { 
     69 
     70        return new HashMap<String, Object>(); 
     71    } 
     72 
     73    @ControllerMethod(view = VIEW_MENTIONSL_FR) 
     74    public Map<String, Object> mentionsl_fr() 
     75        throws WebException 
     76    { 
     77 
    4478        return new HashMap<String, Object>(); 
    4579    } 
     
    153187     * @throws WebException 
    154188     */ 
     189 
    155190    private void sendEmailToAdministratorAndUser( @NotNull final User user ) 
    156191            throws WebException 
     
    211246 
    212247    private static final String VIEW_INIT = "init"; 
     248    private static final String VIEW_INIT_FR = "init_fr"; 
     249    private static final String VIEW_INIT_EN = "init_en"; 
     250    private static final String  VIEW_MENTIONSL_FR = "mentionsl_fr"; 
     251    private static final String  VIEW_MENTIONSL_EN = "mentionsl_en"; 
    213252    private static final String VIEW_DATA_PROTOCOL_EN = "project/home_dataProtocol_en"; 
    214253    // TODO : mettre les bons fichiers de Dataprotocol 
    215     private static final String DOWNLOAD_DATA_PROTOCOL_EN = "bib.txt"; 
    216     private static final String DOWNLOAD_DATA_PROTOCOL_FR = "bib.txt"; 
     254    private static final String DOWNLOAD_DATA_PROTOCOL_EN = "data_protocol_e.txt"; 
     255    private static final String DOWNLOAD_DATA_PROTOCOL_FR = "data_protocol_f.txt"; 
    217256} 
  • tapas/web/src/com/ether/WebHelper.java

    r449 r767  
    3333    { 
    3434        String parameterValue; 
     35 
    3536        if( null == parameterName ) 
    3637            parameterValue = defaultParameterValue; 
  • tapas/web/src/json/json-context.xml

    r466 r767  
    2727                        <entry key="o2Extinction" value="com.ether.Pair"/> 
    2828                        <entry key="co2Extinction" value="com.ether.Pair"/> 
     29                        <entry key="bervCorrection" value="com.ether.Pair"/> 
    2930                    </map> 
    3031                </entry> 
  • tapas/web/src/messages_en.properties

    r529 r767  
    1010label.spectralUnit=Spectral unit 
    1111label.spectralRange=Spectral range 
     12label.spectralorange=Intervalle spectral 
    1213label.to=to 
    1314label.or=or 
     
    1920label.climato=Atmospheric Model 
    2021label.datemesure=Date measurement 
     22label.berv=BERV Correction 
    2123 
    2224label.format=File format 
  • tapas/web/src/messages_fr.properties

    r529 r767  
    1010label.spectralUnit=Unité spectrale 
    1111label.spectralRange=Intervalle spectral 
     12label.spectralorange=Intervalle spectral 
    1213label.to= à 
    1314label.or=ou 
     
    1718label.climato=ModÚle atmosphérique 
    1819label.datemesure=Date de mesure 
     20label.berv=Correction BERV 
     21 
    1922 
    2023label.format=Format fichier 
Note: See TracChangeset for help on using the changeset viewer.