source: spip-zone/_plugins_/hydraulic/branches/v0.3/formulaires/lechapt_calmon.html @ 59231

Last change on this file since 59231 was 59231, checked in by m.dulondel@…, 8 years ago
File size: 10.3 KB
Line 
1[<div class='hyd_formulaire_erreur '><span>(#ENV*{message_erreur})</span></div>]
2
3<script>
4       
5var glob = [];
6// Variables globales contenant le choix fait pour chaque ligne 
7<BOUCLE_sans_coeff(POUR){tableau #ENV{tableau_caract}}>
8        glob['#CLE'] = '#ENV{choix_champs_#CLE}';
9</BOUCLE_sans_coeff>
10
11// Mise a jour des variables globales
12function setVarGlob(){
13        <BOUCLE_sans_coeff2(POUR){tableau #ENV{tableau_caract}}>
14                glob['#CLE'] = getRadioValue('choix_champs_#CLE');
15        </BOUCLE_sans_coeff2>
16}
17
18// Permet de switcher les valeur de L, M et N en fonction du matériau choisie
19function change_valeur() {
20        var choix_mat = getSelectValue('choix_materiau')-1;
21        var materiau = new Array();
22
23    <BOUCLE_mat1(POUR){tableau #ENV{mes_saisies_materiaux}}>
24                <BOUCLE_mat2(POUR){tableau #VALEUR}>
25                        materiau.push('#VALEUR');
26        </BOUCLE_mat2>
27    </BOUCLE_mat1>
28   
29   document.getElementById('champs_L').value=materiau[choix_mat*3];
30   document.getElementById('champs_M').value=materiau[(choix_mat*3)+1];
31   document.getElementById('champs_N').value=materiau[(choix_mat*3)+2];
32}       
33
34// Gére le comportement des boutons radios
35function gestion_radios(nom,valeur){
36       
37        var tabPartiel = {
38                <BOUCLE_sans_coeff3(POUR){tableau #ENV{tableau_caract}}>
39                        '#CLE' : glob['#CLE'],
40                </BOUCLE_sans_coeff3>
41        };
42       
43        delete(tabPartiel[nom]);
44       
45        // Tableau des indices
46
47        var tabIndice = [
48                <BOUCLE_sans_coeff4(POUR){tableau #ENV{tableau_caract}}>
49                        '#CLE',
50                </BOUCLE_sans_coeff4>
51        ];
52       
53        // Si on appuis sur un bouton de type "calcul_val"
54        if(valeur.substr(0,3) == 'cal'){
55                /*
56                 * Pour toutes les lignes autres que celle passée en paramètre,
57                 * on contrôle  si il y a déjà une valeur à calculer.
58                 * Si oui, alors on fais les modifications adéquates sur les champs:
59                 * sélection, visibilité       
60                 */
61                for(var cle in tabPartiel){
62                        if(document.getElementById('calcul_val_'+cle).checked){
63                                document.getElementById('val_fixe_'+cle).checked=true;
64                                document.getElementById('caract_'+cle).disabled=false; 
65                                document.getElementById('caract_'+nom).disabled=true;
66                                setVarGlob();
67                        }       
68                }
69        }
70
71        // Si on appuis sur un bouton de type "varier_val" ou "val_fixe"
72        else if(valeur.substr(0,3) == 'var' || valeur.substr(0,3)=='val'){
73                for(var cle in tabPartiel){
74                        if(document.getElementById('varier_val_'+cle).checked && (glob[nom] != "calcul_val_"+nom)){
75                                document.getElementById('val_fixe_'+cle).checked=true;
76                                setVarGlob();
77                        }
78                        else if(document.getElementById('varier_val_'+cle).checked && (glob[nom] == "calcul_val_"+nom) && valeur.substr(0,3) == 'var'){
79                       
80                                document.getElementById('calcul_val_'+cle).checked=true;
81                                document.getElementById('caract_'+cle).disabled=true;
82                                document.getElementById('caract_'+nom).disabled=false;
83                                setVarGlob();
84                        }
85                }
86               
87                // Compte le nombre de calcul_val checké
88                var cptValCal = 0;
89                for(var cle in glob){
90                        if(document.getElementById('calcul_val_'+cle).checked){
91                                cptValCal++;
92                        }
93                }
94                // Si aucune calcul_val n'est checké
95                if(cptValCal == 0){
96                       
97                        indice = '';
98                        for(var i = 0; i < tabIndice.length; i++){
99                                if(tabIndice[i] == nom){
100                                        // Si on est pas arrivé au dernier élément
101                                        if(i+1 <= tabIndice.length-1){
102                                                indice = tabIndice[i+1];
103                                        }
104                                        else{
105                                                indice = tabIndice[0];
106                                        }
107                                }
108                               
109                        }
110                        document.getElementById('calcul_val_'+indice).checked=true;
111                        document.getElementById('caract_'+nom).disabled=false;
112                        document.getElementById('caract_'+indice).disabled=true;
113                        var cacher = document.getElementsByClassName('champs_var_'+indice);
114                        for(var i in cacher){
115                                cacher[i].style.display='none';
116                        }
117                        setVarGlob();
118                }
119        }
120
121        if(valeur.substr(0,3) == 'var'){
122                setVarGlob();
123                document.getElementById('caract_'+nom).disabled=true;
124                for(var cle in glob){
125                        if(glob[cle].substr(0,3) == 'val'){
126                                document.getElementById('caract_'+cle).disabled=false;
127                        }       
128                }
129               
130                var afficher = document.getElementsByClassName('champs_var_'+nom);
131                for(var i in afficher){
132                        afficher[i].style.display='table-row';
133                }
134               
135                for(var cle in tabPartiel){     
136                        var cacher = document.getElementsByClassName('champs_var_'+cle);
137                        for(var i in cacher){
138                                cacher[i].style.display='none';
139                        }
140                }
141               
142                setVarGlob();
143        }
144
145        // Compte le nombre de varier_val checké
146        var cptVarVal = 0;
147        for(var cle in glob){
148                if(document.getElementById('varier_val_'+cle).checked){
149                        cptVarVal++;
150                }
151        }
152       
153        if(cptVarVal == 0){
154                for(var cle in glob){
155                        if(glob[cle].substr(0,3) != 'cal'){
156                                document.getElementById('caract_'+cle).disabled=false;
157                        }       
158                }
159                var cacher = document.getElementsByClassName('champs_var_'+nom);
160                for(var i in cacher){
161                        cacher[i].style.display='none';
162                }
163        }
164       
165        setVarGlob();
166}
167</script>
168<form method="post" action="#ENV{action}" id="form_lechapt_calmon">
169   #ACTION_FORMULAIRE{#ENV{action}}
170   <table class="hyd_formulaire">
171      <tbody>
172                        <tr id="type_materiau_field">
173                                <td colspan="8"><div class="hyd_formulaire_chapitre"><:hydraulic:type_materiau:></div></td>
174                        </tr>
175
176                        <tr id="type_materiau_choix">
177                                <td align="right">
178                                        <:hydraulic:choix_materiau:> :
179                                </td>
180                                               
181                                <td width="1px">
182                                        <select name="typeMateriau" id="choix_materiau" onChange="change_valeur();">
183                                                <option value="1" [(#ENV{typeMateriau}|=={'1'}|?{'selected',''})]><:hydraulic:fonte_beton_corrosive:></option>
184                                                <option value="2" [(#ENV{typeMateriau}|=={'2'}|?{'selected',''})]><:hydraulic:fonte_beton_ncorrosive:></option>
185                                                <option value="3" [(#ENV{typeMateriau}|=={'3'}|?{'selected',''})]><:hydraulic:fonte_revt_ciment:></option>
186                                                <option value="4" [(#ENV{typeMateriau}|=={'4'}|?{'selected',''})]><:hydraulic:fonte_revt_bitume:></option>
187                                                <option value="5" [(#ENV{typeMateriau}|=={'5'}|?{'selected',''})]><:hydraulic:acier_lamine:></option>
188                                                <option value="6" [(#ENV{typeMateriau}|=={'6'}|?{'selected',''})]><:hydraulic:fonte_revt_centrifuge:></option>
189                                                <option value="7" [(#ENV{typeMateriau}|=={'7'}|?{'selected',''})]><:hydraulic:pvc:></option>
190                                                <option value="8" [(#ENV{typeMateriau}|=={'8'}|?{'selected',''})]><:hydraulic:tuyau_lisse1:></option>
191                                                <option value="9" [(#ENV{typeMateriau}|=={'9'}|?{'selected',''})]><:hydraulic:tuyau_lisse2:></option>
192                                        </select>
193                                       
194                                        [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{[(#VALEUR|table_valeur{0})]})</div>]
195
196                                </td>
197                        </tr>
198                       
199                    #SET{tableau_coeff,#ARRAY{1,L,2,M,3,N}}
200                       
201                        <BOUCLE_coeff(POUR) {tableau #GET{tableau_coeff}}>
202                                <tr id="materiau_coeff_#VALEUR">
203                                        <td align="right"> 
204                                                #VALEUR :                       
205                                        </td>
206                                                               
207                                        <td>
208                                                <input id="champs_#VALEUR" type="text" value="#ENV{#VALEUR}" maxlength="30" name="#VALEUR"/>
209                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{#VALEUR})</div>]
210                                        </td>   
211                                </tr>
212                        </BOUCLE_coeff>
213                       
214
215                        <tr id="caract_lechapt_calmon">
216                                <td colspan="8"><div class="hyd_formulaire_chapitre"><:hydraulic:caract_lechapt_calmon:></div></td>
217                        </tr>
218
219                        <tr>
220                                <td colspan="2"></td>
221                                <td width="75px" colspan="2" align="center"><:hydraulic:calcul_val:></td>
222                                <td width="75px" colspan="2" align="center"><:hydraulic:varier_val:></td>
223                                <td width="75px" colspan="2" align="center"><:hydraulic:fixer_val:></td>
224                        </tr>
225                       
226                       
227                        <BOUCLE_caract(POUR) {tableau #ENV{tableau_caract}}>
228               
229                                <tr id="type_materiau_caract_#VALEUR">
230                                        <td align="right" width="150px"> 
231                                                #VALEUR :
232                                        </td>
233                                       
234                                        <td>
235                                                <input id="caract_#CLE" type="text" value="[(#ENV{choix_champs}|=={#CLE}|?{'',#ENV{#CLE}})]" maxlength="30" name="#CLE" [(#ENV{choix_champs_#CLE}|match{^((calcul_val_#CLE)|(varier_val_#CLE))$}|?{'disabled="true"',''})]/>
236                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{#CLE})</div>]
237                                        </td>   
238
239                                        <td colspan="2" align="center">
240                                                <input type="radio" id="calcul_val_#CLE" name="choix_champs_#CLE" value="calcul_val_#CLE" onclick="gestion_radios('#CLE', 'calcul_val_#CLE')" [(#ENV{choix_champs_#CLE}|=={calcul_val_#CLE}?{'checked',''})]/>
241                                        </td>   
242                                       
243                                        <td colspan="2" align="center">
244                                                <input type="radio" id="varier_val_#CLE" name="choix_champs_#CLE" value="varier_val_#CLE" onclick="gestion_radios('#CLE', 'varier_val_#CLE')" [(#ENV{choix_champs_#CLE}|=={varier_val_#CLE}?{'checked',''})]/>
245                                        </td>
246                                                                               
247                                        <td colspan="2" align="center">
248                                                <input type="radio" id="val_fixe_#CLE" name="choix_champs_#CLE" value="val_fixe_#CLE" onclick="gestion_radios('#CLE', 'val_fixe_#CLE')" [(#ENV{choix_champs_#CLE}|=={val_fixe_#CLE}?{'checked',''})]/>
249                                        </td>
250                                </tr>
251
252
253                                <tr class="champs_var_#CLE" style="display:[(#ENV{choix_champs_#CLE}|=={varier_val_#CLE}|?{'table-row','none'})];">
254                                        <td></td>
255                                        <td align="right"><:hydraulic:val_min:> #CLE :
256                                                <input name="val_min_#CLE" type="text" value="#ENV{val_min_#CLE}"/>
257                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{val_min_#CLE})</div>]
258                                        </td>
259                                        <td colspan="6"></td>
260                                </tr>
261                                       
262                                <tr class="champs_var_#CLE" style="display:[(#ENV{choix_champs_#CLE}|=={varier_val_#CLE}|?{'table-row','none'})];">
263                                        <td></td>
264                                        <td align="right"><:hydraulic:val_max:> #CLE :
265                                                <input name="val_max_#CLE" type="text" value="#ENV{val_max_#CLE}"/>
266                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{val_max_#CLE})</div>]
267                                        </td>
268                                        <td colspan="6"></td>
269                                </tr>
270                                       
271                                <tr class="champs_var_#CLE" style="display:[(#ENV{choix_champs_#CLE}|=={varier_val_#CLE}|?{'table-row','none'})];">
272                                        <td></td>
273                                        <td align="right"><:hydraulic:pas_var:> #CLE :
274                                                <input name="pas_var_#CLE" type="text" value="#ENV{pas_var_#CLE}"/>
275                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{pas_var_#CLE})</div>]
276                                        </td>
277                                        <td colspan="6"></td>
278                                </tr>
279                               
280                        </BOUCLE_caract>               
281                       
282                        <tr id="param_calc_lechapt_calmon">
283                                <td colspan="8"><div class="hyd_formulaire_chapitre"><:hydraulic:param_calc_lechapt_calmon:></div></td>
284                        </tr>
285                       
286                        <tr id="precision_lechapt_calmon">
287                                        <td align="right"> 
288                                                <:hydraulic:precision_lechapt_calmon:> :                       
289                                        </td>
290                                                               
291                                        <td>
292                                                <input id="champs_prec_lc" type="text" value="#ENV{prec_lc}" maxlength="30" name="prec_lc"/>
293                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{prec_lc})</div>]
294                                        </td>   
295                        </tr>
296                               
297                        <tr>           
298                                <td colspan="8" class="hyd_bouton_submit">
299                                   <input type="submit" value="<:hydraulic:calculer_lechapt_calmon:>">
300                                </td>
301                        </tr>
302                       
303      </tbody>
304   </table>
305</form>
306
307[<div class='hydraulic_resultat'>(#ENV*{message_ok})</div>]
Note: See TracBrowser for help on using the repository browser.