source: ether_statistics/web/resources/js/medias/ajax.js @ 569

Last change on this file since 569 was 569, checked in by vmipsl, 12 years ago

Nouveau projet

File size: 29.3 KB
Line 
1//Retourne l'objet permettant de faire de l'AJAX en fonction du browser
2function getXmlHttpObject(handler){
3   var objXMLHttp=null;
4   if (window.XMLHttpRequest){// Firefox et autres
5       objXMLHttp=new XMLHttpRequest();
6   }else if (window.ActiveXObject){// Internet Explorer
7       try{
8           objXMLHttp=new ActiveXObject("Msxml2.XMLHTTP") //For IE>=6
9       }catch(ex1){
10           try{
11               objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP") //For IE5.5
12           }catch(ex2){
13               objXMLHttp=null;
14           }
15       }
16   }
17   return objXMLHttp;
18}
19
20// Fonction permettant d'ajouter un contact au jeu cÎté serveur
21function addContact(chemin) {
22        var url = chemin+"/NewContact.do";
23        xmlHttp = getXmlHttpObject();
24        if (xmlHttp == null) {
25                alert ("Browser does not support HTTP Request");
26                return;
27        }
28        xmlHttp.onreadystatechange = new Function("addContactClient('"+chemin+"');");
29        xmlHttp.open("POST",url,true);
30        xmlHttp.send(url);
31}
32
33// Fonction permettant d'ajouter un contact au jeu cÎté client
34function addContactClient(chemin) {
35        if(xmlHttp.readyState==4 || xmlHttp.readyState=='complete') {
36                var tableCadre = document.getElementById('cadreContacts');
37                var lignes = tableCadre.getElementsByTagName('table');
38                var nbElem = lignes.length;
39                var table = document.createElement('table');
40                if (nbElem == 0 || lignes[nbElem-1].className == "impair")
41                        table.className = "pair";
42                else
43                        table.className = "impair";
44                table.innerHTML = 
45                        '<tbody>'+
46                                '<tr>'+
47                                        '<td rowspan="8" nowrap="nowrap">'+messContact+' '+nbElem+'</td>'+
48                                        '<td>'+messNom+' : </td>'+
49                                        '<td colspan="2"><input id="contactNom_'+nbElem+'" name="metadata.pres.contacts['+nbElem+'].nom" value="" type="text"></td>'+
50                                '</tr>'+
51                                '<tr>'+
52                                        '<td>'+messPrenom+' : </td>'+
53                                        '<td colspan="2"><input id="contactPrenom_'+nbElem+'" name="metadata.pres.contacts['+nbElem+'].prenom" value="" type="text"></td>'+
54                                '</tr>'+
55                                '<tr>'+
56                                        '<td>'+messOrg+' : </td>'+
57                                        '<td colspan="2"><input id="contactOrg_'+nbElem+'" name="metadata.pres.contacts['+nbElem+'].organisme" value="" type="text"></td>'+
58                                '</tr>'+
59                                '<tr>'+
60                                        '<td>'+messMail+' * : </td>'+
61                                        '<td colspan="2"><input id="contactMail_'+nbElem+'" name="metadata.pres.contacts['+nbElem+'].mail" value="" type="text"></td>'+
62                                '</tr>'+
63                                '<tr>'+
64                                        '<td>'+messMdp+' * : </td>'+
65                                        '<td colspan="2"><input id="contactMdp_'+nbElem+'" name="metadata.pres.contacts['+nbElem+'].mdp" value="" type="text"></td>'+
66                                '</tr>'+
67                                '<tr>'+
68                                        '<td rowspan="3">'+messRole+' * : </td>'+
69                                        '<td colspan="2"><input id="contactDef_'+nbElem+'" name="metadata.pres.contacts['+nbElem+'].role" value="default" type="radio" checked>'+messDef+'</td>'+
70                                '</tr>'+
71                                '<tr>'+
72                                        '<td colspan="2"><input id="contactPi_'+nbElem+'" name="metadata.pres.contacts['+nbElem+'].role" value="pi" type="radio">'+messPi+'</td>'+
73                                '</tr>'+
74                                '<tr>'+
75                                        '<td><input id="contactTech_'+nbElem+'" name="metadata.pres.contacts['+nbElem+'].role" value="tech" type="radio">'+messTech+'</td>'+
76                                        '<td><input onclick="removeContact(\''+chemin+'\','+nbElem+')" value="'+messDelPers+'" type="button"></td>'+
77                                '</tr>'+
78                        '</tbody>';
79                tableCadre.appendChild(table);
80        }
81}
82
83//Fonction permettant de supprimer un contact au jeu cÎté serveur
84function removeContact(chemin, indexContact) {
85        var url = chemin+"/RemoveContact.do?num="+indexContact;
86        xmlHttp = getXmlHttpObject();
87        if (xmlHttp == null) {
88                alert ("Browser does not support HTTP Request");
89                return;
90        }
91        xmlHttp.onreadystatechange = new Function("removeContactClient("+indexContact+");");
92        xmlHttp.open("POST",url,true);
93        xmlHttp.send(url);
94}
95
96// Fonction permettant de supprimer un contact au jeu cÎté client
97function removeContactClient(indexContact) {
98        if(xmlHttp.readyState==4 || xmlHttp.readyState=='complete') {
99                var tableCadre = document.getElementById('cadreContacts');
100                var lignes = tableCadre.getElementsByTagName('table');
101                var nbElem = lignes.length;
102                // On décale les valeurs intercalées
103                for (var num = indexContact ; num < nbElem - 1 ; num++) {
104                        document.getElementById('contactNom_'+num).value = document.getElementById('contactNom_'+(num+1)).value;
105                        document.getElementById('contactPrenom_'+num).value = document.getElementById('contactPrenom_'+(num+1)).value;
106                        document.getElementById('contactOrg_'+num).value = document.getElementById('contactOrg_'+(num+1)).value;
107                        document.getElementById('contactMail_'+num).value = document.getElementById('contactMail_'+(num+1)).value;
108                        document.getElementById('contactMdp_'+num).value = document.getElementById('contactMdp_'+(num+1)).value;
109                        document.getElementById('contactDef_'+num).checked = document.getElementById('contactDef_'+(num+1)).checked;
110                        document.getElementById('contactPi_'+num).checked = document.getElementById('contactPi_'+(num+1)).checked;
111                        document.getElementById('contactTech_'+num).checked = document.getElementById('contactTech_'+(num+1)).checked;
112                }
113                // On efface la ligne
114                tableCadre.removeChild(lignes[nbElem-1]);
115        }
116}
117
118//Fonction permettant d'ajouter une plateforme au jeu cÎté serveur
119function addPlat(chemin) {
120        var url = chemin+"/NewPlat.do";
121        xmlHttp = getXmlHttpObject();
122        if (xmlHttp == null) {
123                alert ("Browser does not support HTTP Request");
124                return;
125        }
126        xmlHttp.onreadystatechange = new Function("addPlatClient('"+chemin+"');");
127        xmlHttp.open("POST",url,true);
128        xmlHttp.send(url);
129}
130
131//Fonction permettant d'ajouter une plateforme au jeu cÎté client
132function addPlatClient(chemin) {
133        if(xmlHttp.readyState==4 || xmlHttp.readyState=='complete') {
134                var tableCadre = document.getElementById('cadrePlats');
135                var lignes = tableCadre.getElementsByTagName('table');
136                var nbElem = lignes.length/2;
137                var table = document.createElement('table');
138                if (nbElem == 0 || lignes[lignes.length-2].className == "impair")
139                        table.className = "pair";
140                else
141                        table.className = "impair";
142                var nomCat = document.getElementById('nomCateg').value;
143                var listePlats;
144                if (nomCat == "AVION") {
145                        listePlats = '<option value="ATR-42">ATR-42</option>'+
146                                                 '<option value="Piper-Aztec">Piper-Aztec</option>';
147                } else if (nomCat == "SURF_FIXE") {
148                        listePlats = '<option value="Ballon Air de Paris">Ballon Air de Paris</option>'+
149                                                 '<option value="Champs-sur-Marne">Champs-sur-Marne</option>'+
150                                                 '<option value="Créteil">Créteil</option>'+
151                                                 '<option value="Grignon">Grignon</option>'+
152                                                 '<option value="Jussieu">Jussieu</option>'+
153                                                 '<option value="LHVP">LHVP</option>'+
154                                                 '<option value="Livry-Gargan">Livry-Gargan</option>'+
155                                                 '<option value="Roissy">Roissy</option>'+
156                                                 '<option value="SIRTA">SIRTA</option>'+
157                                                 '<option value="Tour Eiffel">Tour Eiffel</option>';
158                } else {
159                        listePlats = '<option value="CEA-LIDAR">CEA-LIDAR</option>'+
160                                                 '<option value="MPI-DOAS">MPI-DOAS</option>'+
161                                                 '<option value="MPI-MOLA">MPI-MOLA</option>'+
162                                                 '<option value="PSI">PSI</option>';
163                }
164                table.innerHTML = 
165                        '<tbody>'+
166                                '<tr>'+
167                                        '<td rowspan="9" nowrap="nowrap">'+messPlat+' '+nbElem+'</td>'+
168                                        '<td>'+messPlatNom+' * : </td>'+
169                                        '<td colspan="2">'+
170                                                '<select id="platNom_'+nbElem+'" name="metadata.contenuPrevu.plateformes['+nbElem+'].nom" onchange="majListPlat('+nbElem+')">'+
171                                                        '<option value="-">-</option>'+
172                                                        listePlats+
173                                                '</select>'+
174                                                ' '+messOth+' '+
175                                                '<input id="platOth_'+nbElem+'" name="metadata.contenuPrevu.plateformes['+nbElem+'].nomOth" value="" type="text" size="10" onchange="majListPlat('+nbElem+')">'+
176                                        '</td>'+
177                                '</tr>'+
178                                '<tr>'+
179                                        '<td>'+messDesc+' : </td>'+
180                                        '<td colspan="2"><textarea id="platDesc_'+nbElem+'" name="metadata.contenuPrevu.plateformes['+nbElem+'].desc" cols="50"></textarea></td>'+
181                                '</tr>'+
182                                '<tr>'+
183                                        '<td>'+messPlatImg+' : </td>'+
184                                        '<td colspan="2"><table width="100%"><tbody><tr><td colspan="2">'+
185                                                '<img src="'+chemin+'/images/utils/uploadText.png">&nbsp;<input name="metadata.contenuPrevu.plateformes['+nbElem+'].newFile" value="" type="file"><input name="mess['+nbElem+']" value="Upload" type="submit">'+
186                                        '</td></tr></tbody></table></td>'+
187                                '</tr>'+
188                                '<tr>'+
189                                        '<td>'+messPlatLatMin+' : </td>'+
190                                        '<td><input id="platLatMin_'+nbElem+'" name=""metadata.contenuPrevu.plateformes['+nbElem+'].lat_min" value="" type="text"></td>'+
191                                        '<td>'+messPlatLatForm+'</td>'+
192                                '</tr>'+
193                                '<tr>'+
194                                        '<td>'+messPlatLatMax+' : </td>'+
195                                        '<td><input id="platLatMax_'+nbElem+'" name=""metadata.contenuPrevu.plateformes['+nbElem+'].lat_max" value="" type="text"></td>'+
196                                        '<td>'+messPlatLatForm+'</td>'+
197                                '</tr>'+
198                                '<tr>'+
199                                        '<td>'+messPlatLonMin+' : </td>'+
200                                        '<td><input id="platLonMin_'+nbElem+'" name=""metadata.contenuPrevu.plateformes['+nbElem+'].lon_min" value="" type="text"></td>'+
201                                        '<td>'+messPlatLonForm+'</td>'+
202                                '</tr>'+
203                                '<tr>'+
204                                        '<td>'+messPlatLonMax+' : </td>'+
205                                        '<td><input id="platLonMax_'+nbElem+'" name=""metadata.contenuPrevu.plateformes['+nbElem+'].lon_max" value="" type="text"></td>'+
206                                        '<td>'+messPlatLonForm+'</td>'+
207                                '</tr>'+
208                                '<tr>'+
209                                        '<td>'+messPlatAltMin+' : </td>'+
210                                        '<td colspan="2"><input id="platAltMin_'+nbElem+'" name=""metadata.contenuPrevu.plateformes['+nbElem+'].alt_min" value="" type="text"></td>'+
211                                '</tr>'+
212                                '<tr>'+
213                                        '<td>'+messPlatAltMax+' : </td>'+
214                                        '<td><input id="platAltMax_'+nbElem+'" name=""metadata.contenuPrevu.plateformes['+nbElem+'].alt_max" value="" type="text"></td>'+
215                                        '<td><input onclick="removePlat(\''+chemin+'\','+nbElem+')" value="'+messDelPlat+'" type="button"></td>'+
216                                '</tr>'+
217                        '</tbody>';
218                tableCadre.appendChild(table);
219                // On rajoute une ligne à la liste de plateformes associés aux capteurs
220                var tableCapts = document.getElementById('cadreCapts');
221                var selectPlats = tableCapts.getElementsByTagName('select');
222                for (var numsel = 0; numsel < selectPlats.length ; numsel++) {
223                        if (numsel % 2 != 0) {
224                                var opt = document.createElement('option');
225                                opt.text = '-';
226                                opt.value = '-';
227                                selectPlats[numsel].appendChild(opt);
228                        }
229                }
230        }
231}
232
233//Fonction permettant de supprimer une plateforme au jeu cÎté serveur
234function removePlat(chemin, indexPlat) {
235        var url = chemin+"/RemovePlat.do?num="+indexPlat;
236        xmlHttp = getXmlHttpObject();
237        if (xmlHttp == null) {
238                alert ("Browser does not support HTTP Request");
239                return;
240        }
241        xmlHttp.onreadystatechange = new Function("removePlatClient("+indexPlat+");");
242        xmlHttp.open("POST",url,true);
243        xmlHttp.send(url);
244}
245
246//Fonction permettant de supprimer une plateforme au jeu cÎté client
247function removePlatClient(indexPlat) {
248        if(xmlHttp.readyState==4 || xmlHttp.readyState=='complete') {
249                var tableCadre = document.getElementById('cadrePlats');
250                var lignes = tableCadre.getElementsByTagName('table');
251                var nbElem = lignes.length/2;
252                // On décale les valeurs intercalées
253                for (var num = indexPlat ; num < nbElem - 1 ; num++) {
254                        document.getElementById('platNom_'+num).value = document.getElementById('platNom_'+(num+1)).value;
255                        document.getElementById('platOth_'+num).value = document.getElementById('platOth_'+(num+1)).value;
256                        document.getElementById('platDesc_'+num).value = document.getElementById('platDesc_'+(num+1)).value;
257                        document.getElementById('platLatMin_'+num).value = document.getElementById('platLatMin_'+(num+1)).value;
258                        document.getElementById('platLatMax_'+num).value = document.getElementById('platLatMax_'+(num+1)).value;
259                        document.getElementById('platLonMin_'+num).value = document.getElementById('platLonMin_'+(num+1)).value;
260                        document.getElementById('platLonMax_'+num).value = document.getElementById('platLonMax_'+(num+1)).value;
261                        document.getElementById('platAltMin_'+num).value = document.getElementById('platAltMin_'+(num+1)).value;
262                        document.getElementById('platAltMax_'+num).value = document.getElementById('platAltMax_'+(num+1)).value;
263                }
264                // On efface la ligne
265                tableCadre.removeChild(lignes[lignes.length-2]);
266                // On efface une ligne à la liste de plateformes associés aux capteurs
267                var tableCapts = document.getElementById('cadreCapts');
268                var selectPlats = tableCapts.getElementsByTagName('select');
269                for (var numsel = 0; numsel < selectPlats.length ; numsel++) {
270                        if (numsel % 2 != 0) {
271                                var options = selectPlats[numsel].getElementsByTagName("option");
272                                selectPlats[numsel].removeChild(options[indexPlat]);
273                        }
274                }
275        }
276}
277
278//Fonction permettant d'ajouter un capteur au jeu cÎté serveur
279function addCapt(chemin) {
280        var url = chemin+"/NewCapt.do";
281        xmlHttp = getXmlHttpObject();
282        if (xmlHttp == null) {
283                alert ("Browser does not support HTTP Request");
284                return;
285        }
286        xmlHttp.onreadystatechange = new Function("addCaptClient('"+chemin+"');");
287        xmlHttp.open("POST",url,true);
288        xmlHttp.send(url);
289}
290
291//Fonction permettant d'ajouter un capteur au jeu cÎté client
292function addCaptClient(chemin) {
293        if(xmlHttp.readyState==4 || xmlHttp.readyState=='complete') {
294                var tableCadre = document.getElementById('cadreCapts');
295                var lignes = tableCadre.getElementsByTagName('table');
296                var nbElem = lignes.length;
297                var table = document.createElement('table');
298                if (nbElem == 0 || lignes[nbElem-1].className == "impair")
299                        table.className = "pair";
300                else
301                        table.className = "impair";
302                var listeCapts ='<option value="Aerosol Collector">Aerosol Collector</option>'+
303                                                '<option value="Aerosol Mass Spectrometer">Aerosol Mass Spectrometer</option>'+
304                                                '<option value="Aerosol/Cloud Particle Sizer">Aerosol/Cloud Particle Sizer</option>'+
305                                                '<option value="Aethalometer">Aethalometer</option>'+
306                                                '<option value="Airpointer">Airpointer</option>'+
307                                                '<option value="Anemometer">Anemometer</option>'+
308                                                '<option value="Autoanalyser">Autoanalyser</option>'+
309                                                '<option value="AWS (Automated Weather System)">AWS (Automated Weather System)</option>'+
310                                                '<option value="Backscatter LIDAR">Backscatter LIDAR</option>'+
311                                                '<option value="Balance">Balance</option>'+
312                                                '<option value="Camera">Camera</option>'+
313                                                '<option value="Carbon Analyser">Carbon Analyser</option>'+
314                                                '<option value="Ceilometer">Ceilometer</option>'+
315                                                '<option value="Chemiluminescence">Chemiluminescence</option>'+
316                                                '<option value="CHN Analyzer (Carbon, Hydrogen, Nitrogen)">CHN Analyzer (Carbon, Hydrogen, Nitrogen)</option>'+
317                                                '<option value="CIMS Mass Spectrometer">CIMS Mass Spectrometer</option>'+
318                                                '<option value="CO2 Analyser">CO2 Analyser</option>'+
319                                                '<option value="CPC (Condensation Particle Counter)">CPC (Condensation Particle Counter)</option>'+
320                                                '<option value="Disdrometer">Disdrometer</option>'+
321                                                '<option value="Dropsonde">Dropsonde</option>'+
322                                                '<option value="EAS (Electrical Aerosol Spectrometer)">EAS (Electrical Aerosol Spectrometer)</option>'+
323                                                '<option value="EC-OC">EC-OC</option>'+
324                                                '<option value="Eddy Correlation Device">Eddy Correlation Device</option>'+
325                                                '<option value="Gas Analyser">Gas Analyser</option>'+
326                                                '<option value="Gas Chromatograph">Gas Chromatograph</option>'+
327                                                '<option value="Gas Sampler">Gas Sampler</option>'+
328                                                '<option value="GPS Receiver">GPS Receiver</option>'+
329                                                '<option value="HTDMA (Hygroscopicity Tandem Differential Mobility Analyser)">HTDMA (Hygroscopicity Tandem Differential Mobility Analyser)</option>'+
330                                                '<option value="Humidity Sensor">Humidity Sensor</option>'+
331                                                '<option value="Interferometer">Interferometer</option>'+
332                                                '<option value="LIDAR (Light Detection and Ranging)">LIDAR (Light Detection and Ranging)</option>'+
333                                                '<option value="MAAP (Multi Angle Absorption Photometer)">MAAP (Multi Angle Absorption Photometer)</option>'+
334                                                '<option value="Magnetometer">Magnetometer</option>'+
335                                                '<option value="Meteo Station">Meteo Station</option>'+
336                                                '<option value="Microscope">Microscope</option>'+
337                                                '<option value="Nephelometer">Nephelometer</option>'+
338                                                '<option value="OPC (Optic Particle Counter)">OPC (Optic Particle Counter)</option>'+
339                                                '<option value="Oxygen Analyser">Oxygen Analyser</option>'+
340                                                '<option value="Ozone Analyser">Ozone Analyser</option>'+
341                                                '<option value="Particle Detector">Particle Detector</option>'+
342                                                '<option value="PH Meter">PH Meter</option>'+
343                                                '<option value="Photometer">Photometer</option>'+
344                                                '<option value="PILS-IC">PILS-IC</option>'+
345                                                '<option value="PILS-TOC">PILS-TOC</option>'+
346                                                '<option value="Pressure Sensor">Pressure Sensor</option>'+
347                                                '<option value="PSAP (Particle Soot Absorption Photometer)">PSAP (Particle Soot Absorption Photometer)</option>'+
348                                                '<option value="PTRMS">PTRMS</option>'+
349                                                '<option value="RADAR (Radio Detection and Ranging)">RADAR (Radio Detection and Ranging)</option>'+
350                                                '<option value="Radiometer">Radiometer</option>'+
351                                                '<option value="Radiosonde">Radiosonde</option>'+
352                                                '<option value="Rain gauge">Rain gauge</option>'+
353                                                '<option value="SMPS (Scanning Mobility Particle Sizer)">SMPS (Scanning Mobility Particle Sizer)</option>'+
354                                                '<option value="SODAR (Sound Detection and Ranging)">SODAR (Sound Detection and Ranging)</option>'+
355                                                '<option value="Spectrometer">Spectrometer</option>'+
356                                                '<option value="Spectroradiometer">Spectroradiometer</option>'+
357                                                '<option value="TDMPS">TDMPS</option>'+
358                                                '<option value="Temperature Sensor">Temperature Sensor</option>'+
359                                                '<option value="TEOM (Tapered Element Oscillating Microbalance)">TEOM (Tapered Element Oscillating Microbalance)</option>'+
360                                                '<option value="Tethersonde">Tethersonde</option>'+
361                                                '<option value="UVAPS (Ultraviolet Aerodynamic Particle Sizer)">UVAPS (Ultraviolet Aerodynamic Particle Sizer)</option>'+
362                                                '<option value="Video Camera">Video Camera</option>'+
363                                                '<option value="Visual Observations">Visual Observations</option>'+
364                                                '<option value="VSMPS (Volatility Scanning Mobility Particle Sizer)">VSMPS (Volatility Scanning Mobility Particle Sizer)</option>'+
365                                                '<option value="VTDMA (Volatility Tandem Differential Mobility Analyser)">VTDMA (Volatility Tandem Differential Mobility Analyser)</option>'+
366                                                '<option value="Wet Deposition Collector">Wet Deposition Collector</option>'+
367                                                '<option value="Wet/Dry Precipitation Sampler">Wet/Dry Precipitation Sampler</option>'+
368                                                '<option value="Wind Profiler">Wind Profiler</option>';
369                var tablePlats = document.getElementById('cadrePlats');
370                var selectPlats = tablePlats.getElementsByTagName('select');
371                var listePlats = "";
372                for (var num = 0 ; num < selectPlats.length ; num++) {
373                        listePlats += '<option value="'+selectPlats[num].value+'">'+selectPlats[num].value+'</option>';
374                }
375                table.innerHTML = 
376                        '<tbody>'+
377                                '<tr>'+
378                                        '<td rowspan="6" nowrap="nowrap">'+messCapt+' '+nbElem+'</td>'+
379                                        '<td>'+messCaptType+' * : </td>'+
380                                        '<td colspan="2">'+
381                                                '<select id="captType_'+nbElem+'" name="metadata.contenuPrevu.capteurs['+nbElem+'].type" onchange="majListCapt('+nbElem+')">'+
382                                                        '<option value="-">-</option>'+
383                                                        listeCapts+
384                                                '</select>'+
385                                                ' '+messOth+' '+
386                                                '<input id="captOth_'+nbElem+'" name="metadata.contenuPrevu.capteurs['+nbElem+'].typeOth" value="" type="text" onchange="majListCapt('+nbElem+')">'+
387                                        '</td>'+
388                                '</tr>'+
389                                '<tr>'+
390                                        '<td>'+messCaptFab+' : </td>'+
391                                        '<td colspan="2"><input id="captFab_'+nbElem+'" name="metadata.contenuPrevu.capteurs['+nbElem+'].fabriquant" value="" type="text" onchange="majListCapt('+nbElem+')"></td>'+
392                                '</tr>'+
393                                '<tr>'+
394                                        '<td>'+messCaptMod+' : </td>'+
395                                        '<td colspan="2"><input id="captMod_'+nbElem+'" name="metadata.contenuPrevu.capteurs['+nbElem+'].modele" value="" type="text" onchange="majListCapt('+nbElem+')"></td>'+
396                                '</tr>'+
397                                '<tr>'+
398                                        '<td>'+messCaptNum+' : </td>'+
399                                        '<td colspan="2"><input id="captNum_'+nbElem+'" name="metadata.contenuPrevu.capteurs['+nbElem+'].num" value="" type="text" onchange="majListCapt('+nbElem+')"></td>'+
400                                '</tr>'+
401                                '<tr>'+
402                                        '<td>'+messCaptEta+' : </td>'+
403                                        '<td colspan="2"><textarea id="captEta_'+nbElem+'" name="metadata.contenuPrevu.capteurs['+nbElem+'].etalon"></textarea></td>'+
404                                '</tr>'+
405                                '<tr>'+
406                                        '<td>'+messCaptPlat+' * : </td>'+
407                                        '<td>'+
408                                                '<select id="captPlat_'+nbElem+'" name="metadata.contenuPrevu.capteurs['+nbElem+'].nomPlateforme">'+
409                                                        listePlats+
410                                                '</select>'+
411                                        '</td>'+
412                                        '<td><input onclick="removeCapt(\''+chemin+'\','+nbElem+')" value="'+messDelCapt+'" type="button"></td>'+
413                                '</tr>'+
414                        '</tbody>';
415                tableCadre.appendChild(table);
416                // On rajoute une ligne à la liste de capteurs associés aux paramÚtres
417                var tableParams = document.getElementById('cadreParams');
418                var selectCapts = tableParams.getElementsByTagName('select');
419                for (var numsel = 0; numsel < selectCapts.length ; numsel++) {
420                        if (numsel % 4 == 3) {
421                                var opt = document.createElement('option');
422                                opt.text = '-';
423                                opt.value = '-';
424                                selectCapts[numsel].appendChild(opt);
425                        }
426                }
427        }
428}
429
430//Fonction permettant de supprimer un capteur au jeu cÎté serveur
431function removeCapt(chemin, indexCapt) {
432        var url = chemin+"/RemoveCapt.do?num="+indexCapt;
433        xmlHttp = getXmlHttpObject();
434        if (xmlHttp == null) {
435                alert ("Browser does not support HTTP Request");
436                return;
437        }
438        xmlHttp.onreadystatechange = new Function("removeCaptClient("+indexCapt+");");
439        xmlHttp.open("POST",url,true);
440        xmlHttp.send(url);
441}
442
443//Fonction permettant de supprimer un capteur au jeu cÎté client
444function removeCaptClient(indexCapt) {
445        if(xmlHttp.readyState==4 || xmlHttp.readyState=='complete') {
446                var tableCadre = document.getElementById('cadreCapts');
447                var lignes = tableCadre.getElementsByTagName('table');
448                var nbElem = lignes.length;
449                // On décale les valeurs intercalées
450                for (var num = indexCapt ; num < nbElem - 1 ; num++) {
451                        document.getElementById('captType_'+num).value = document.getElementById('captType_'+(num+1)).value;
452                        document.getElementById('captOth_'+num).value = document.getElementById('captOth_'+(num+1)).value;
453                        document.getElementById('captFab_'+num).value = document.getElementById('captFab_'+(num+1)).value;
454                        document.getElementById('captMod_'+num).value = document.getElementById('captMod_'+(num+1)).value;
455                        document.getElementById('captNum_'+num).value = document.getElementById('captNum_'+(num+1)).value;
456                        document.getElementById('captEta_'+num).value = document.getElementById('captEta_'+(num+1)).value;
457                        document.getElementById('captPlat_'+num).value = document.getElementById('captPlat_'+(num+1)).value;
458                }
459                // On efface la ligne
460                tableCadre.removeChild(lignes[lignes.length-1]);
461                // On efface une ligne à la liste de capteurs associés aux paramÚtres
462                var tableParams = document.getElementById('cadreParams');
463                var selectCapts = tableParams.getElementsByTagName('select');
464                for (var numsel = 0; numsel < selectCapts.length ; numsel++) {
465                        if (numsel % 4 == 3) {
466                                var options = selectCapts[numsel].getElementsByTagName("option");
467                                selectCapts[numsel].removeChild(options[indexCapt]);
468                        }
469                }
470        }
471}
472
473//Fonction permettant d'ajouter un paramÚtre au jeu cÎté serveur
474function addParam(chemin) {
475        var url = chemin+"/NewParam.do";
476        xmlHttp = getXmlHttpObject();
477        if (xmlHttp == null) {
478                alert ("Browser does not support HTTP Request");
479                return;
480        }
481        xmlHttp.onreadystatechange = new Function("addParamClient('"+chemin+"');");
482        xmlHttp.open("POST",url,true);
483        xmlHttp.send(url);
484}
485
486//Fonction permettant d'ajouter un paramÚtre au jeu cÎté client
487function addParamClient(chemin) {
488        if(xmlHttp.readyState==4 || xmlHttp.readyState=='complete') {
489                var tableCadre = document.getElementById('cadreParams');
490                var lignes = tableCadre.getElementsByTagName('table');
491                var nbElem = lignes.length;
492                var table = document.createElement('table');
493                if (nbElem == 0 || lignes[nbElem-1].className == "impair")
494                        table.className = "pair";
495                else
496                        table.className = "impair";
497                var listeUnits = '<option value="no unit">no unit</option>'+
498                                                 '<option value="deg">&deg;</option>'+
499                                                 '<option value="degC">&deg;C</option>'+
500                                                 '<option value="degK">&deg;K</option>'+
501                                                 '<option value="%">%</option>'+
502                                                 '<option value="cm-3">cm-3</option>'+
503                                                 '<option value="hPa">hPa</option>'+
504                                                 '<option value="m">m</option>'+
505                                                 '<option value="m-1">m-1</option>'+
506                                                 '<option value="mbar">mbar</option>'+
507                                                 '<option value="mm">mm</option>'+
508                                                 '<option value="mm-1">mm-1</option>'+
509                                                 '<option value="mm.h-1">mm.h-1</option>'+
510                                                 '<option value="m.s-1">m.s-1</option>'+
511                                                 '<option value="microg.m-3">&micro;g.m-3</option>'+
512                                                 '<option value="ng.m-3">ng.m-3</option>'+
513                                                 '<option value="ppbv">ppbv</option>'+
514                                                 '<option value="ppmv">ppmv</option>'+
515                                                 '<option value="pptv">pptv</option>'+
516                                                 '<option value="s">s</option>'+
517                                                 '<option value="s-1">s-1</option>'+
518                                                 '<option value="W.m-2">W.m-2</option>';
519                var listeCategs = '<option value="Gas Species">Gas Species</option>'+
520                                                  '<option value="Aerosol Chemical Composition/Mass">Aerosol Chemical Composition/Mass</option>'+
521                                                  '<option value="Aerosol Properties">Aerosol Properties</option>'+
522                                                  '<option value="Meteo/Radiation">Meteo/Radiation</option>'+
523                                                  '<option value="Aircraft Parameters">Aircraft Parameters</option>'+
524                                                  '<option value="VOC">VOC</option>'+
525                                                  '<option value="Sums of VOC from PTRMS">Sums of VOC from PTRMS</option>';
526                var cadreCapts = document.getElementById('cadreCapts');
527                var tableCapts = cadreCapts.getElementsByTagName('table');
528                var listeCapts = "";
529                for (var num = 0 ; num < tableCapts.length ; num++) {
530                        var type = document.getElementById('captType_'+num).value;
531                        var typeOth = document.getElementById('captOth_'+num).value;
532                        var fab = document.getElementById('captFab_'+num).value;
533                        var mod = document.getElementById('captMod_'+num).value;
534                        var nums = document.getElementById('captNum_'+num).value;
535                        if (type == "-")
536                                type = typeOth;
537                        if (fab != "")
538                                fab = " "+fab;
539                        if (mod != "")
540                                mod = " "+mod;
541                        if (nums != "")
542                                nums = " "+nums;
543                        var nomCapt = type+fab+mod+nums;
544                        listeCapts += '<option value="'+nomCapt+'">'+nomCapt+'</option>';
545                }
546                table.innerHTML = 
547                        '<tbody>'+
548                                '<tr>'+
549                                        '<td rowspan="4" nowrap="nowrap">'+messParam+' '+nbElem+'</td>'+
550                                        '<td>'+messParamCat+' * : </td>'+
551                                        '<td colspan="2">'+
552                                                '<select id="paramCat_'+nbElem+'" name="metadata.contenuPrevu.params['+nbElem+'].categorie" onchange="majListParam(this.selectedIndex,'+nbElem+')">'+
553                                                        '<option value="-">-</option>'+
554                                                        listeCategs+
555                                                '</select>'+
556                                                ' '+messOth+' '+
557                                                '<input id="catOth_'+nbElem+'" name="metadata.contenuPrevu.params['+nbElem+'].categOth" value="" type="text">'+
558                                        '</td>'+
559                                '</tr>'+
560                                '<tr>'+
561                                        '<td>'+messParamNom+' * : </td>'+
562                                        '<td colspan="2">'+
563                                                '<select id="paramNom_'+nbElem+'" name="metadata.contenuPrevu.params['+nbElem+'].nom" >'+
564                                                        '<option value="-">-</option>'+
565                                                '</select>'+
566                                                ' '+messOth+' '+
567                                                '<input id="paramNomOth_'+nbElem+'" name="metadata.contenuPrevu.params['+nbElem+'].nomOth" value="" type="text">'+
568                                        '</td>'+
569                                '</tr>'+
570//                              '<tr>'+
571//                                      '<td>'+messParamAb+' : </td>'+
572//                                      '<td colspan="2"><input id="paramAb_'+nbElem+'" name="metadata.contenuPrevu.params['+nbElem+'].abrev" value="" type="text"></td>'+
573//                              '</tr>'+
574                                '<tr>'+
575                                        '<td>'+messParamUnit+' * : </td>'+
576                                        '<td colspan="2">'+
577                                        '<select id="paramUnit_'+nbElem+'" name="metadata.contenuPrevu.params['+nbElem+'].unite">'+
578                                                '<option value="-">-</option>'+
579                                                listeUnits+
580                                        '</select>'+
581                                        ' '+messOth+' '+
582                                        '<input id="unitOth_'+nbElem+'" name="metadata.contenuPrevu.params['+nbElem+'].uniteOth" value="" type="text">'+
583                                        '</td>'+
584                                '</tr>'+
585                                '<tr>'+
586                                        '<td>'+messParamCapt+' * : </td>'+
587                                        '<td>'+
588                                                '<select id="paramCapt_'+nbElem+'" name="metadata.contenuPrevu.params['+nbElem+'].nomCapteur">'+
589                                                        listeCapts+
590                                                '</select>'+
591                                        '</td>'+
592                                        '<td><input onclick="removeParam(\''+chemin+'\','+nbElem+')" value="'+messDelParam+'" type="button"></td>'+
593                                '</tr>'+
594                        '</tbody>';
595                tableCadre.appendChild(table);
596        }
597}
598
599//Fonction permettant de supprimer un paramÚtre au jeu cÎté serveur
600function removeParam(chemin, indexParam) {
601        var url = chemin+"/RemoveParam.do?num="+indexParam;
602        xmlHttp = getXmlHttpObject();
603        if (xmlHttp == null) {
604                alert ("Browser does not support HTTP Request");
605                return;
606        }
607        xmlHttp.onreadystatechange = new Function("removeParamClient("+indexParam+");");
608        xmlHttp.open("POST",url,true);
609        xmlHttp.send(url);
610}
611
612//Fonction permettant de supprimer un paramÚtre au jeu cÎté client
613function removeParamClient(indexParam) {
614        if(xmlHttp.readyState==4 || xmlHttp.readyState=='complete') {
615                var tableCadre = document.getElementById('cadreParams');
616                var lignes = tableCadre.getElementsByTagName('table');
617                var nbElem = lignes.length;
618                // On décale les valeurs intercalées
619                for (var num = indexParam ; num < nbElem - 1 ; num++) {
620                        document.getElementById('paramNom_'+num).value = document.getElementById('paramNom_'+(num+1)).value;
621                        document.getElementById('paramNomOth_'+num).value = document.getElementById('paramNomOth_'+(num+1)).value;
622//                      document.getElementById('paramAb_'+num).value = document.getElementById('paramAb_'+(num+1)).value;
623                        document.getElementById('paramCat_'+num).value = document.getElementById('paramCat_'+(num+1)).value;
624                        document.getElementById('catOth_'+num).value = document.getElementById('catOth_'+(num+1)).value;
625                        document.getElementById('paramUnit_'+num).value = document.getElementById('paramUnit_'+(num+1)).value;
626                        document.getElementById('unitOth_'+num).value = document.getElementById('unitOth_'+(num+1)).value;
627                        document.getElementById('paramCapt_'+num).value = document.getElementById('paramCapt_'+(num+1)).value;
628                }
629                // On efface la ligne
630                tableCadre.removeChild(lignes[lignes.length-1]);
631        }
632}
Note: See TracBrowser for help on using the repository browser.