Changeset 779 for tapas


Ignore:
Timestamp:
04/01/14 16:56:38 (10 years ago)
Author:
rboipsl
Message:

Dernière version rboipsl

Location:
tapas
Files:
1 added
18 edited

Legend:

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

    r767 r779  
    7777 
    7878    @NotNull 
     79    public Pair<String, String> getCh4Extinction() 
     80    { 
     81        return _ch4Extinction; 
     82    } 
     83 
     84    public void setCh4Extinction( @NotNull final Pair<String, String> ch4Extinction ) 
     85    { 
     86        _ch4Extinction = ch4Extinction; 
     87    } 
     88 
     89    @NotNull 
     90    public Pair<String, String> getN2oExtinction() 
     91    { 
     92        return _n2oExtinction; 
     93    } 
     94 
     95    public void setN2oExtinction( @NotNull final Pair<String, String> n2oExtinction ) 
     96    { 
     97        _n2oExtinction = n2oExtinction; 
     98    } 
     99 
     100    @NotNull 
    79101    public Pair<String, String> getBervCorrection() 
    80102    { 
     
    100122    private Pair<String, String> _co2Extinction; 
    101123    @NotNull 
     124    private Pair<String, String> _ch4Extinction; 
     125    @NotNull 
     126    private Pair<String, String> _n2oExtinction; 
     127    @NotNull 
    102128    private Pair<String, String> _bervCorrection; 
    103129} 
  • tapas/persistence/implementation/com/ether/dao/Observatory.hbm.xml

    r504 r779  
    44<hibernate-mapping default-cascade="save-update" auto-import="false"> 
    55 
    6         <class name="com.ether.tapas.Observatory" table="observatory"> 
     6        <!--<class name="com.ether.tapas.Observatory" table="observatory_complet">--> 
     7    <class name="com.ether.tapas.Observatory" table="observatory_intermediaire"> 
    78 
    89                <id name="id"> 
  • tapas/persistence/implementation/com/ether/dao/ObservatoryDAOImpl.java

    r467 r779  
    33import com.ether.PersistenceException; 
    44import com.ether.tapas.Observatory; 
     5import org.hibernate.criterion.Criterion; 
    56import org.hibernate.criterion.DetachedCriteria; 
    67import org.hibernate.criterion.MatchMode; 
     8import org.hibernate.criterion.Order; 
    79import org.hibernate.criterion.Restrictions; 
    810import org.jetbrains.annotations.NotNull; 
     
    4042            throws PersistenceException 
    4143    { 
    42         final DetachedCriteria criteria = DetachedCriteria.forClass( Observatory.class ); 
     44        final DetachedCriteria criteria = DetachedCriteria.forClass( Observatory.class ) 
     45            //.add( (Criterion) Order.asc( "name" ) ); 
     46            .addOrder( Order.asc( "name" ) ); 
    4347        return selectAllByCriteria( Observatory.class, criteria ); 
    4448    } 
     
    5256        return selectByCriteria( Observatory.class, criteria ); 
    5357    } 
     58 
     59    @Nullable 
     60    public Observatory getObservatoryByName( @NotNull final String name) 
     61            throws PersistenceException 
     62    { 
     63        final DetachedCriteria criteria = DetachedCriteria.forClass( Observatory.class ) 
     64                    .add( Restrictions.eq( "name", name )); 
     65        return selectByCriteria( Observatory.class, criteria ); 
     66    } 
    5467} 
  • tapas/persistence/interface/com/ether/dao/ObservatoryDAO.java

    r467 r779  
    2222    @Nullable 
    2323    Observatory getObservatoryById(@NotNull final long id) throws PersistenceException; 
     24 
     25    @Nullable 
     26    Observatory getObservatoryByName(@NotNull final String name) throws PersistenceException; 
     27 
    2428} 
  • tapas/service/implementation/com/ether/TapasServiceImpl.java

    r767 r779  
    4444    public void createXMLRequest( @NotNull final Tapas fTapas, @NotNull final Properties prop ) 
    4545            throws ServiceException 
    46     { 
     46   { 
    4747 
    4848        final String servicePath = prop.getProperty( "service_path" ); 
     
    125125            preferences.addContent( co2e ); 
    126126 
    127             //berv correction 
    128             final Element bervCorr = new Element( "berv_correction" ); 
     127            //ch4 
     128            final Element ch4e = new Element( "ch4_extinction" ); 
    129129            validR = new Attribute( "valid", "YES,NO" ); 
    130             bervCorr.setAttribute( validR ); 
    131             bervCorr.setText( iRequest.getPreference().getBervCorrection().getSecondValue() ); 
    132             preferences.addContent( bervCorr ); 
     130            ch4e.setAttribute( validR ); 
     131            ch4e.setText( iRequest.getPreference().getCh4Extinction().getSecondValue() ); 
     132            preferences.addContent( ch4e ); 
     133 
     134            //no2 
     135            final Element n2oe = new Element( "n2o_extinction" ); 
     136            validR = new Attribute( "valid", "YES,NO" ); 
     137            n2oe.setAttribute( validR ); 
     138            n2oe.setText( iRequest.getPreference().getN2oExtinction().getSecondValue() ); 
     139            preferences.addContent( n2oe ); 
    133140 
    134141 
     
    158165            try 
    159166            { 
    160                 obs = _observatoryDAO.selectByPrimaryKey( iRequest.getObservation().getObservatory().getId() ); 
     167                //obs = _observatoryDAO.selectByPrimaryKey( iRequest.getObservation().getObservatory().getId() ); 
     168                obs = _observatoryDAO.getObservatoryByName( iRequest.getObservation().getObservatory().getName() ); 
    161169            } 
    162170            catch( PersistenceException e ) 
     
    280288            instrument.addContent( samplingRatio ); 
    281289 
     290            //berv correction 
     291            //final Element bervCorr = new Element( "berv_correction" ); 
     292            final Element bervCorr = new Element( "appli_berv" ); 
     293            validR = new Attribute( "valid", "YES,NO" ); 
     294            bervCorr.setAttribute( validR ); 
     295            bervCorr.setText( iRequest.getPreference().getBervCorrection().getSecondValue() ); 
     296            instrument.addContent( bervCorr ); 
     297 
     298 
    282299            request.addContent( observation ); 
    283300 
     
    629646 
    630647 
     648    // recuperation infos observatoire avec le nom 
     649    @Nullable 
     650    @Transactional(readOnly = true) 
     651    public Observatory getObservatoryByName( @NotNull final String name ) 
     652            throws ServiceException 
     653    { 
     654        try 
     655        { 
     656            return _observatoryDAO.getObservatoryByName( name ); 
     657        } 
     658        catch( PersistenceException e ) 
     659        { 
     660            throw new ServiceException( ServiceException.ServiceCode.OBSERVATORY_NOT_FOUND, e ); 
     661        } 
     662    } 
     663 
     664 
    631665    @Required 
    632666    public void setObservatoryDAO( final ObservatoryDAO observatoryDAO ) 
  • tapas/service/interface/com/ether/TapasService.java

    r507 r779  
    3232    public Observatory getObservatoryById(@NotNull final long id) throws ServiceException; 
    3333 
     34    public Observatory getObservatoryByName(@NotNull final String name) throws ServiceException; 
     35 
    3436    public Long getNumRequest() throws ServiceException; 
    3537 
  • tapas/web/init_en.jsp

    r767 r779  
    7070<br><br> 
    7171<u>Selection of atmospheric constituents:</u><br> 
    72 The user may select the transmission computation within the following list: 
     72The user may select the transmission computation within the following list:<br> 
    7373- Rayleigh extinction, O2, Ozone, H2O. In the future, NO2 and NO3 from a climatology established from GOMOS /ENVISAT measurements may also be available. 
    7474 
    75 The 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. 
     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, T<SUP>x</SUP>(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 ILSF spectral profile ILSF. However, for weak lines (say, less than 30% absorption at resolution 40,000), applying the formula T<SUP>x</SUP> to the convoluted spectrum gives a reasonable approximation. 
    7676<br> 
    7777<br> 
     
    113113 
    114114<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. 
     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. We acknowledge useful discussions with Iouli Gordon and Larry Rothman. 
    116116 
    117117 
    118                             <br> 
    119          <table cellpadding=4 cellspacing=6 align="center"> 
     118                            <br><br> 
     119         <table cellpadding=4 cellspacing=6 align="center" bgcolor="white" width="700" height="60"> 
    120120 
    121121         <tr> 
    122122            <td><a target="_blank" href="http://www.cnes.fr"><img border="1" width=70 src="resources/images/logo_cnes.png"></a></td> 
     123            <td><a target="_blank" href="http://www.cnrs.fr"><img border="1" width=70 src="resources/images/logo_cnrs.jpg"></a></td> 
     124            <td><a target="_blank" href="http://www.ipsl.fr"><img width=100 src="resources/images/logo_ipsl.png"></a></td> 
    123125            <td><a target="_blank" href="http://www.latmos.ipsl.fr"><img border="1" width=100 src="resources/images/logo_latmos.png"></a></td> 
    124             <td><a target="_blank" href="http://www.ipsl.fr"><img width=100 src="resources/images/logo_ipsl.png"></a></td> 
    125             <td><a target="_blank" href="http://www.cnrs.fr"><img border="1" width=70 src="resources/images/logo_cnrs.jpg"></a></td> 
    126126            <td><a target="_blank" href="http://gepi.obspm.fr"><img border="1" width=140 src="resources/images/logo_gepi.jpg"></a></td> 
     127            <td><a target="_blank" href="http://www.acri-st.fr"><img border="0" width=100 src="resources/images/logo_acri.jpg"></a></td> 
    127128         </tr> 
    128129             </table> 
  • tapas/web/init_fr.jsp

    r767 r779  
    7171<br><br> 
    7272<u>Choix des composants atmosphériques:</u><br> 
    73 L'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. 
    74 L'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. 
     73L'utilisateur peut sélectionner le calcul de la transmission par la liste suivante :<br>- 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, T<SUP>x</SUP> (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  ILSF spectrale ILSF de profil. Cependant, pour les lignes faibles (disons, moins de 30% d'absorption à une résolution de 40.000), en appliquant la formule T<SUP>x</SUP> au spectre donne une approximation raisonnable. 
    7575<br> 
    7676<br> 
     
    113113<br><br> 
    114114         <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. 
     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. Nous remercions Iouli Gordon et Larry Rothman pour nos discussions enrichissantes. 
    116116 
    117117 
    118118                            <br> 
    119          <table cellpadding=4 cellspacing=6 align="center"> 
     119         <table cellpadding=4 cellspacing=6 align="center" bgcolor="white" width="700" height="60"> 
    120120 
    121121         <tr> 
    122122            <td><a target="_blank" href="http://www.cnes.fr"><img border="1" width=70 src="resources/images/logo_cnes.png"></a></td> 
     123            <td><a target="_blank" href="http://www.cnrs.fr"><img border="1" width=70 src="resources/images/logo_cnrs.jpg"></a></td> 
     124            <td><a target="_blank" href="http://www.ipsl.fr"><img width=100 src="resources/images/logo_ipsl.png"></a></td> 
    123125            <td><a target="_blank" href="http://www.latmos.ipsl.fr"><img border="1" width=100 src="resources/images/logo_latmos.png"></a></td> 
    124             <td><a target="_blank" href="http://www.ipsl.fr"><img width=100 src="resources/images/logo_ipsl.png"></a></td> 
    125             <td><a target="_blank" href="http://www.cnrs.fr"><img border="1" width=70 src="resources/images/logo_cnrs.jpg"></a></td> 
    126126            <td><a target="_blank" href="http://gepi.obspm.fr"><img border="1" width=140 src="resources/images/logo_gepi.jpg"></a></td> 
     127            <td><a target="_blank" href="http://www.acri-st.fr"><img border="0" width=100 src="resources/images/logo_acri.jpg"></a></td> 
    127128         </tr> 
    128129             </table> 
  • tapas/web/project/formTapas.jsp

    r767 r779  
    1616        <ether:htmlCss cssFile="calendar/anytime"/> 
    1717        <ether:htmlCss cssFile="jquery-ui-1.8.16.custom/jquery-ui-1.8.16.custom"/> 
     18 
    1819    </tiles:put> 
    1920 
    2021    <tiles:put name="insertJsOrJsp" type="string"> 
    2122        <ether:htmlJs jsFile="library/jquery.json-2.3"/> 
     23        <ether:htmlJs jsFile="library/js/jquery-ui-1.8.16.custom.min.js"/> 
     24        <!--<script src="js/library/jquery-ui-1.8.16.custom/js/jquery-ui-1.8.16.custom.min.js"></script>--> 
    2225        <ether:htmlJs jsFile="classesForJQuery/Select"/> 
    2326        <ether:htmlJs jsFile="classesForJQuery/Loading"/> 
     
    9396            tapasTexts["label.eco2"] = "<spring:message code="label.eco2"/>"; 
    9497            tapasTexts["label.eo3"] = "<spring:message code="label.eo3"/>"; 
     98            tapasTexts["label.ech4"] = "<spring:message code="label.ech4"/>"; 
     99            tapasTexts["label.en2o"] = "<spring:message code="label.en2o"/>"; 
    95100            tapasTexts["text.select"] = "<spring:message code="text.select"/>"; 
    96101            tapasTexts["text.toselect"] = "<spring:message code="text.toselect"/>"; 
  • tapas/web/project/formTapas_script.jsp

    r767 r779  
    1  
     1<script src="js/library/jquery-ui-1.8.16.custom/js/jquery-ui-1.8.16.custom.min.js"></script> 
    22<script type="text/javascript"> 
    33 
     
    2222        this.select_io3eList = new Object(); 
    2323        this.select_ico2eList = new Object(); 
     24        this.select_ich4eList = new Object(); 
     25        this.select_in2oeList = new Object(); 
    2426        this.select_irextinctionList = new Object(); 
    2527        this.select_ibervCList = new Object(); 
     
    188190        if (event.length > 0) input.bind( event, [this, champ], this.angleChoice ); 
    189191 
    190         td1.html( texte ); 
     192 
    191193        td1.attr( {class:"containerLabel"} ); 
    192194 
     
    204206 
    205207        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             } 
    217208 
    218209            var img = $( document.createElement( "img" ) ); 
     
    226217            a.append(img); 
    227218            div.append(a); 
    228             div.attr( "style","margin-left:"+ml+";margin-top:"+mt); 
    229  
     219 
     220 
     221            td1.append( a ); 
     222            td1.append( texte ); 
    230223            tr.append( div ); 
    231224 
    232             /*td2.attr( {colspan:3} ); 
    233             tr.append( td2 ); 
    234             tr.append( div );*/ 
    235225        } 
    236226        else if (info) { 
     
    242232            img.bind("click",[inputId,450,100,this],this.onClickInfos); 
    243233            a.append(img); 
    244             td3.append(a); 
     234            td1.append(a); 
     235            td1.append( texte ); 
    245236 
    246237        } 
     
    280271        input2.attr( {id: inputId2,class:"containerText",size:11} ); 
    281272 
    282         td1.html( texte1 ); 
     273 
    283274        td3.html( texte2 ); 
    284275        td5.html( textesup ); 
     
    290281        img.bind("click",["spectral_range",450,100,this],this.onClickInfos); 
    291282        a.append(img); 
    292         td5.append(a); 
     283        td1.append(a); 
     284         td1.append( texte1 ); 
    293285 
    294286        //img.onclick(this.onClickInfos("spectral_range",1200,440)); 
     
    318310        var td1 = $( document.createElement( "td" ) ); 
    319311        var td2 = $( document.createElement( "td" ) ); 
     312        var td3 = $( document.createElement( "td" ) ); 
    320313        var input = $( document.createElement( "input" ) ); 
    321         var champ="", ml="", mt="-4px"; 
     314        var champ=""; 
    322315 
    323316        var div = $( document.createElement( "div" ) ); 
    324317 
     318 
    325319        input.attr( {id: inputId} ); 
    326320 
    327         td1.html( texte ); 
    328         td1.attr( {class:"containerLabel"} ); 
    329         tr.append( td1 ); 
    330  
    331  
    332                  // alert(inputId); 
     321        // alert(inputId); 
    333322        if( 'format' == type ) { 
    334323            this.displaySelect( td2, inputId, index, this.jSonFileFormats, this.selectFileFormatsList, false, null ); 
    335324            info = true; 
    336325            champ = "iformat_"; 
    337             ml="-2px"; 
    338             mt="-4px"; 
    339         } 
    340  
     326 
     327        } 
    341328        else 
    342329        if( 'yesno' == type ) 
     
    350337            else if( (/^(ico2e_[1-9]+)$/.test( inputId )  ) ) 
    351338                this.displaySelect( td2, inputId, index, this.jSonYesNos, this.select_ico2eList, false, "yesNos" ); 
     339            else if( (/^(ich4e_[1-9]+)$/.test( inputId )  ) ) 
     340                this.displaySelect( td2, inputId, index, this.jSonYesNos, this.select_ich4eList, false, "yesNos" ); 
     341            else if( (/^(in2oe_[1-9]+)$/.test( inputId )  ) ) 
     342                this.displaySelect( td2, inputId, index, this.jSonYesNos, this.select_in2oeList, false, "yesNos" ); 
    352343            else if( (/^(irextinction_[1-9]+)$/.test( inputId )  ) ) { 
    353344 
     
    355346                info = true; 
    356347                champ=inputId; 
    357                 if (this.language == "en") ml="-11px"; 
    358                 else ml="-13px"; 
    359  
    360348            } 
    361349            else if( (/^(ibervC_[1-9]+)$/.test( inputId )  ) ) { 
     
    363351                info = true; 
    364352                champ=inputId; 
    365                 if (this.language == "en") ml="-11px"; 
    366                 else ml="-13px"; 
    367353            } 
    368354        } 
    369355        else if( 'observatories' == type ) { 
    370             this.displaySelect( td2, inputId, index, this.jSonObservatories, this.selectObservatoriesList, true, "observatories" ); 
    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             } 
     356 
     357            this.displaySelect1( td2, inputId, index, this.jSonObservatories, this.selectObservatoriesList, true, "observatories" ); 
     358            //this.displaySelect( td2, inputId, index, this.jSonObservatories, this.selectObservatoriesList, true, "observatories" ); 
    380359 
    381360            champ="iobservatory_"; 
     
    386365 
    387366            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  
    398367        } 
    399368        else if( 'ilsf' == type ) { 
     
    401370            info = true; 
    402371            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  
    415372        } 
    416373        else if( 'climatoReference' == type ) { 
     
    418375            info = true; 
    419376            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  
     377        } 
     378 
     379        td1.attr( {class:"containerLabel"} ); 
     380        tr.append( td1 ); 
    432381 
    433382 
     
    442391            a.append(img); 
    443392            div.append(a); 
    444             div.attr( "style","margin-left:"+ml+";margin-top:"+mt); 
    445  
    446             td2.attr( {colspan:3} ); 
     393 
     394 
     395            td2.attr( {colspan:5} ); 
     396            td1.append( a ); 
     397            td1.append( texte ); 
     398 
    447399            tr.append( td2 ); 
    448             tr.append( div ); 
     400 
    449401        } 
    450402        else { 
     403            td1.append( texte ); 
    451404            td2.attr( {colspan:3} ); 
    452405            tr.append( td2 ); 
     
    760713                    //$( "#tab_request" + i ).html( "toto"); 
    761714                    $( "#tab_request" + i ).attr( {name:z} ); 
    762                     $( "#tab_request" + i ).attr( {id:"tab_request" + z} );       this.angleChoice 
     715                    $( "#tab_request" + i ).attr( {id:"tab_request" + z} );       //this.angleChoice 
    763716                    $( "#tabObservation_" + i ).attr( {id:"tabObservation_" + z} ); 
    764717//                    $( "#select_iobservatory_" + i ).attr( {id:"select_iobservatory_" + z} ); 
     
    801754                    this.select_ico2eList[i] = null; 
    802755 
     756                    this.select_ich4eList[z] = this.select_ich4eList[i]; 
     757                    this.select_ich4eList[i] = null; 
     758 
     759                    this.select_in2oeList[z] = this.select_in2oeList[i]; 
     760                    this.select_in2oeList[i] = null; 
     761 
    803762                    this.select_ibervCList[z] = this.select_ibervCList[i]; 
    804763                    this.select_ibervCList[i] = null; 
     
    895854    }, 
    896855 
     856    createAutoCompleteMenuForRegions: function() 
     857    { 
     858 
     859        $( "#select_iobservatory_"+this.nbRequest ).autocomplete( { 
     860            source: this.listObs, 
     861            appendTo: "#regionContent"+this.nbRequest, 
     862            minLength: 0, 
     863            autoFocus: true, 
     864            autoSelect: true, 
     865            select: jQuery.proxy( function( event, ui ) 
     866            { 
     867                this.regionLabel = ui.item.value; 
     868            }, this ) 
     869        } ).focus( function( event ) 
     870        { 
     871            $( this ).autocomplete( "search", "" ); 
     872        } ); 
     873 
     874        //$( "#regionTags" ).focus(); 
     875    }, 
     876 
     877 
     878// OTHERS ******************************************************** 
     879    // General method to display select 
     880    displaySelect1: function( container, id, index, jsonList, selectList, nullValueIsNeeded, contentManage ) 
     881    { 
     882        //alert("ok"); 
     883        var iselect = $( document.createElement( "select" ) ); 
     884        var option = document.createElement("option"); 
     885 
     886        var paramSelect = new Object(); 
     887        paramSelect.id = "select_" + id; 
     888        paramSelect.parent = container; 
     889 
     890        var observatoryArray=new Array(); 
     891        this.listObs=new Array(); 
     892 
     893 
     894        //var bob =$('<div id="region" class="containerField"><div class="containerTitle"><div class="containerTitleText">Region</div><div class="containerTitleClose"><img src="img/close.png"></div></div><div class="containerRegion"><input id="regionTags" size="23"/></div><div id="regionContent"></div></div> '); 
     895        var bob =$('<div class="containerField"><input id="select_'+id+'" size="42"/></div><div id="regionContent'+this.nbRequest+'" class="regionContent"></div> '); 
     896 
     897        //alert('<div class=containerField><input id=select_'+id+' size=23/></div><div id=regionContent></div> '); 
     898 
     899        //var select = new Select( paramSelect ); 
     900        //iselect.options.add("1","1"); 
     901        //if( nullValueIsNeeded )                          Select1 
     902 
     903        var option = new Option(); 
     904        option.text = "-- " + tapasTexts["text.select"] + " --"; 
     905        option.value = "-1"; 
     906        iselect.append( option ); 
     907 
     908        jQuery.each( jsonList, jQuery.proxy( function ( i, jsonElement ) 
     909        { 
     910                //ajouter fonction 
     911 
     912                /*var option = new Option(); 
     913                option.text = jsonElement.name; 
     914                option.value = jsonElement.id;*/ 
     915                //observatoryArray.push(jsonElement.name); 
     916                this.listObs.push(jsonElement.name); 
     917                //console.log(option.value+"-"+option.text); 
     918                //iselect.append(option); 
     919 
     920 
     921        }, this ) ); 
     922        //iselect.selectFirst( false ); 
     923        /*selectList[index] = select;*/ 
     924        //container.append(iselect); 
     925        container.append(bob); 
     926        selectList[index]="select_"+id; 
     927 
     928    }, 
     929 
     930 
    897931    showErrors: function( result ) 
    898932    { 
     
    9671001        this.createTrList( tapasTexts["label.eo2"], "io2e_" + this.nbRequest, this.nbRequest, tabPreference, 'yesno' ); 
    9681002        this.createTrList( tapasTexts["label.eco2"], "ico2e_" + this.nbRequest, this.nbRequest, tabPreference, 'yesno' ); 
     1003        this.createTrList( tapasTexts["label.ech4"], "ich4e_" + this.nbRequest, this.nbRequest, tabPreference, 'yesno' ); 
     1004        this.createTrList( tapasTexts["label.en2o"], "in2oe_" + this.nbRequest, this.nbRequest, tabPreference, 'yesno' ); 
    9691005        this.createTrList( tapasTexts["label.berv"], "ibervC_" + this.nbRequest, this.nbRequest, tabPreference, 'yesno' ); 
    9701006 
     
    9931029        this.createTr( tapasTexts["label.iza"], "iza_" + this.nbRequest, tabObservation, "[0,90] &deg;","keypress","za","2",true ); 
    9941030 
     1031        this.createAutoCompleteMenuForRegions(); 
    9951032 
    9961033        this.initRequestFields(); 
     
    10361073            preference.co2Extinction.secondValue = this.select_ico2eList[i].getValue(); 
    10371074 
     1075            preference.ch4Extinction = new Object(); 
     1076            preference.ch4Extinction.firstValue = this.select_ich4eList[i].getValuesInString(); 
     1077            preference.ch4Extinction.secondValue = this.select_ich4eList[i].getValue(); 
     1078 
     1079            preference.n2oExtinction = new Object(); 
     1080            preference.n2oExtinction.firstValue = this.select_in2oeList[i].getValuesInString(); 
     1081            preference.n2oExtinction.secondValue = this.select_in2oeList[i].getValue(); 
     1082 
    10381083            preference.bervCorrection = new Object(); 
    10391084            preference.bervCorrection.firstValue = this.select_ibervCList[i].getValuesInString(); 
     
    10431088            // OBSERVATION 
    10441089            var observatory = new Object(); 
    1045             observatory.id = this.selectObservatoriesList[i].getValue(); 
     1090            //observatory.id = "European Southern Obs R La Serena Cerro La Silla";//this.selectObservatoriesList[i].getValue(); 
     1091            //observatory.id = this.selectObservatoriesList[i].getValue(); 
     1092            //observatory.id = 2; 
     1093            observatory.name = $("#select_iobservatory_"+i).val(); 
    10461094 
    10471095            // Los 
     
    11241172            var testOk2=false; 
    11251173            var testOk3=false; 
    1126             var testOk = isSup( this.selectObservatoriesList[i].getValue(), 0 ); 
    1127             if( !testOk ) 
     1174            //var testOk = isSup( this.selectObservatoriesList[i].getValue(), 0 ); 
     1175            var testOk = isEmpty($( "#select_iobservatory_" + i ).val()) || this.listObs.indexOf($( "#select_iobservatory_" + i ).val())<0; 
     1176            //alert(testOk); 
     1177            if( testOk ) 
    11281178            { 
    11291179                this.divE.html( chaine + tapasTexts["label.observatory"] + " : " + tapasTexts["text.toselect"] ); 
     
    13051355            this.select_io2eList[indice].select(this.select_io2eList[indice-1].getValue(),false); 
    13061356            this.select_ico2eList[indice].select(this.select_ico2eList[indice-1].getValue(),false); 
     1357            this.select_ich4eList[indice].select(this.select_ich4eList[indice-1].getValue(),false); 
     1358            this.select_in2oeList[indice].select(this.select_in2oeList[indice-1].getValue(),false); 
    13071359            this.select_ibervCList[indice].select(this.select_ibervCList[indice-1].getValue(),false); 
    13081360 
  • tapas/web/resources/css/tapas.css

    r529 r779  
    5858    padding-left: 30px; 
    5959    margin-left: -10px; 
    60     padding-bottom: 30px; 
     60    padding-bottom: 11px; 
    6161    width:650px; 
    6262} 
     
    314314} 
    315315 
     316.containerFieldO { 
     317    font-size: 32px; 
     318        color: #999999; 
     319        padding-left: 0px; 
     320        font-weight: bold; 
     321 
     322} 
     323 
    316324.containerCenter { 
    317325    -moz-border-radius-topright: 0; 
     
    532540 
    533541} 
     542 
     543.regionContent ul { 
     544    height: 150px; 
     545    overflow-x: hidden; 
     546    overflow-y: auto; 
     547} 
     548 
     549.regionContent ul li a { 
     550    color: #778899; 
     551    text-align:left; 
     552    font-size:10px; 
     553 
     554} 
  • tapas/web/resources/js/calendar/anytime.js

    r409 r779  
    213213//      ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] 
    214214//      Note that if the firstDOW option is passed to AnyTime.picker() (see 
    215 //      AnyTime.picker()), this array should nonetheless begin with the  
     215//      AnyTime.picker()), this array should nonetheless begin with the 
    216216//      desired abbreviation for Sunday. 
    217217// 
     
    279279//        %: - the timezone offset, with a sign, in hours and minutes, in 
    280280//          four-digit, 24-hour format with a colon delimiter (for example, 
    281 //          +05:30).  This is similar to the %z format used by Java.   
     281//          +05:30).  This is similar to the %z format used by Java. 
    282282//          To remember the difference between %: and %;, it might be helpful 
    283283//          to remember that a colon (:) has a period (.) on the bottom and 
     
    286286//          %: might be a longer string than %; (I know it's a stretch, but 
    287287//          it's easier than looking it up every time)! 
    288 //       
     288// 
    289289//        %- - the timezone offset, with a sign, in hours and minutes, in 
    290290//          three-or-four-digit, 24-hour format with no delimiter (for 
     
    296296// 
    297297//        %@ - the timezone offset label.  By default, this will be the 
    298 //          string "UTC" followed by the offset, with a sign, in hours and   
     298//          string "UTC" followed by the offset, with a sign, in hours and 
    299299//          minutes, in four-digit, 24-hour format with a colon delimiter 
    300300//          (for example, UTC+05:30).  However, if Any+Time(TM) has been 
     
    355355//    utcParseOffsetCapture - if true, any parsed string is always treated as 
    356356//      though it represents local time, and any offset specified by the string 
    357 //      (or utcParseOffsetAssume) is captured for return by the  
     357//      (or utcParseOffsetAssume) is captured for return by the 
    358358//      getUtcParseOffsetCaptured() method.  If the %@ format specifier is 
    359359//      used, the sub-index of any matched label is also captured for return 
     
    361361//      AnyTime.picker can edit the time as specified (without conversion to 
    362362//      local time) and then convert the edited time to a different time zone 
    363 //      (as selected using the picker).  
     363//      (as selected using the picker). 
    364364//============================================================================= 
    365365 
     
    10311031 
    10321032        //------------------------------------------------------------------------- 
    1033         //  AnyTime.Converter.setUtcFormatOffsetAlleged()  sets the offset from  
     1033        //  AnyTime.Converter.setUtcFormatOffsetAlleged()  sets the offset from 
    10341034        //  UTC, in minutes, to claim that a Date object represents during 
    10351035        //  formatting, even though it is formatted using local time.  This merely 
     
    11411141        })( this ); // AnyTime.Converter construction 
    11421142 
    1143     }; // AnyTime.Converter =  
     1143    }; // AnyTime.Converter = 
    11441144 
    11451145//============================================================================= 
     
    12371237//      value for Sunday. 
    12381238// 
    1239 //    hideInput - if true, the <input> is "hidden" (the picker appears in  
     1239//    hideInput - if true, the <input> is "hidden" (the picker appears in 
    12401240//      its place). This actually sets the border, height, margin, padding 
    12411241//      and width of the field as small as possivle, so it can still get focus. 
     
    20122012                        oH = oHmax; 
    20132013                        this.oBody.height( oH - (title.AnyTime_height( true ) + oBHS) ); 
    2014                         this.oBody.width( this.oBody.width() + 20 ); // add nominal px for scrollbar  
     2014                        this.oBody.width( this.oBody.width() + 20 ); // add nominal px for scrollbar 
    20152015                        this.oDiv.width( this.oDiv.width() + 20 ); 
    20162016                        if( __msie6 || __msie7 ) // IE bugs! 
     
    21692169            //  the div is clicked (shorter delays don't always work!)  To prevent 
    21702170            //  problems cause by scrollbar focus (except in FF), focus is 
    2171             //  force-restored if the offset div is visible.  
     2171            //  force-restored if the offset div is visible. 
    21722172            //--------------------------------------------------------------------- 
    21732173 
     
    23362336            //  * Ctrl+Home moves focus to the first day of the year. 
    23372337            //  * Ctrl+End moves focus to the last day of the year. 
    2338             //  * Esc closes a DatePicker that is opened as a Popup.   
     2338            //  * Esc closes a DatePicker that is opened as a Popup. 
    23392339            // 
    23402340            //  The following actions (for multiple-date selection) are NOT 
    23412341            //  supported: 
    2342             //  * Shift+Arrow performs continous selection.   
     2342            //  * Shift+Arrow performs continous selection. 
    23432343            //  * Ctrl+Space multiple selection of certain days. 
    23442344            // 
     
    23502350            //  * RightArrow moves focus right or down to next value or field. 
    23512351            //  * UpArrow moves focus up or left to previous value or field. 
    2352             //  * DownArrow moves focus down or right to next value or field  
     2352            //  * DownArrow moves focus down or right to next value or field 
    23532353            //  * PageUp moves focus to the current value in the previous units 
    23542354            //    (for example, from ten-minutes to hours or one-minutes to 
    23552355            //    ten-minutes or months to years). 
    23562356            //  * PageDown moves focus to the current value in the next units 
    2357             //    (for example, from hours to ten-minutes or ten-minutes to  
     2357            //    (for example, from hours to ten-minutes or ten-minutes to 
    23582358            //    one-minutes or years to months). 
    23592359            //  * Home moves the focus to the first unit button. 
  • tapas/web/resources/js/classesForJQuery/LoginButton.js

    r767 r779  
    228228    { 
    229229        this.errors = jQuery.parseJSON( result ).errors; 
    230         this.setJSONUser( null != jQuery.parseJSOetherN( result ).jSONUser ? jQuery.parseJSON( result ).jSONUser : false ); 
     230        this.setJSONUser( null != jQuery.parseJSON( result ).jSONUser ? jQuery.parseJSON( result ).jSONUser : false ); 
    231231        if( null == this.errors ) 
    232232            this.updateLoginOrLogout(); 
     
    252252            this.anotherOnClickLogout(); 
    253253 
    254         document.location.href = "project?methodName=home"; 
     254        document.location.href = "project?methodName=home_en"; 
    255255 
    256256    }, 
  • tapas/web/resources/jsp/dataProtocol_en.jsp

    r767 r779  
    22<BR/> 
    33By 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. 
    4 Most 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 : 
     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 :<br> 
    55- highly saturated regions of absorption, where the transmission is actually 0 or very small.<br> 
    66- 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> 
    77- an incorrect wavelength calibration of the instrument.<br> 
    88- a difference of H2O content between the meteorological estimate and the reality.<br> 
     9- the continuum absorption of O2 (collision induced absorption), which is now available in the HITRAN data base, is not yet implemented in TAPAS. 
    910 
    1011 
  • tapas/web/resources/jsp/dataProtocol_fr.jsp

    r767 r779  
    11<div class="title1">TAPAS Protocole de données</div> 
    2 <BR/> 
     2<br/> 
    33En 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. 
    44La 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> 
     5- Les régions fortement saturées en absorption, où la transmission est en fait 0 ou trÚs faible <br> 
    66- 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> 
    77- 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é. 
    9 <BR/> 
     8- Une différence de teneur en H2O entre l'estimation météorologique et la réalité.<br> 
     9- L'absorption continue de O2 (absorption induite par collision), qui est maintenant disponible dans la base de données HITRAN, n'est pas encore implémentée dans TAPAS. 
     10<br/> 
    1011<a href="project?methodName=downloadFileDataProtocolFr"> 
    1112    <button class="dataProtocolDownloadButton">Télécharger</button> 
  • tapas/web/src/com/ether/Controller.java

    r512 r779  
    234234    private static final Log LOGGER = LogFactory.getLog( Controller.class ); 
    235235 
    236     private static final String VIEW_INDEX = "init"; 
     236    private static final String VIEW_INDEX = "init_en"; 
    237237    private static final String VIEW_FORM_TAPAS = "project/formTapas"; 
    238238} 
  • tapas/web/src/messages_en.properties

    r767 r779  
    2828label.eco2=CO2 extinction 
    2929label.eo3=O3 extinction 
     30label.ech4=CH4 extinction 
     31label.en2o=N2O extinction 
    3032 
    3133text.validnum=shoud be numeric 
  • tapas/web/src/messages_fr.properties

    r767 r779  
    2727label.eco2=Extinction CO2 
    2828label.eo3=Extinction O3 
     29label.ech4=CH4 extinction 
     30label.en2o=N2O extinction 
    2931 
    3032label.observatory=Observatoire 
Note: See TracChangeset for help on using the changeset viewer.