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

Last change on this file since 59103 was 59103, checked in by m.dulondel@…, 8 years ago
File size: 9.7 KB
Line 
1[<div class='hyd_formulaire_erreur '><span>(#ENV*{message_erreur})</span></div>]
2
3<script>       
4// Variables globales contenant le choix fait pour chaque ligne 
5var glob = {
6        'Q':'#ENV{choix_champs_Q}',
7        'D':'#ENV{choix_champs_D}',
8        'J':'#ENV{choix_champs_J}'
9}
10
11// Mise a jour des variables globales
12function setVarGlob(){
13        glob['Q'] = getRadioValue('choix_champs_Q');
14        glob['D'] = getRadioValue('choix_champs_D');   
15        glob['J'] = getRadioValue('choix_champs_J');   
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
35// Gére le comportement des boutons radios
36function gestion_radios(nom,valeur){
37       
38        // Tableau contenant tous les champs moins ceux passés en paramètre
39        var tabPartiel = {'Q': glob['Q'],'D': glob['D'],'J': glob['J']};
40        delete(tabPartiel[nom]);
41       
42        // Tableau des indices
43        var tabIndice = ['Q', 'D', 'J'];
44       
45        // Si on appuis sur un bouton de type "calcul_val"
46        if(valeur.substr(0,3) == 'cal'){
47                /*
48                 * Pour toutes les lignes autres que celle passée en paramètre,
49                 * on contrôle  si il y a déjà une valeur à calculer.
50                 * Si oui, alors on fais les modifications adéquates sur les champs:
51                 * sélection, visibilité       
52                 */
53                for(var cle in tabPartiel){
54                        if(document.getElementById('calcul_val_'+cle).checked){
55                                document.getElementById('val_fixe_'+cle).checked=true;
56                                document.getElementById('caract_'+cle).disabled=false; 
57                                document.getElementById('caract_'+nom).disabled=true;
58                                setVarGlob();
59                        }       
60                }
61        }
62
63        // Si on appuis sur un bouton de type "varier_val" ou "val_fixe"
64        else if(valeur.substr(0,3) == 'var' || valeur.substr(0,3)=='val'){
65                for(var cle in tabPartiel){
66                        if(document.getElementById('varier_val_'+cle).checked && (glob[nom] != "calcul_val_"+nom)){
67                                document.getElementById('val_fixe_'+cle).checked=true;
68                                setVarGlob();
69                        }
70                        else if(document.getElementById('varier_val_'+cle).checked && (glob[nom] == "calcul_val_"+nom) && valeur.substr(0,3) == 'var'){
71                       
72                                document.getElementById('calcul_val_'+cle).checked=true;
73                                document.getElementById('caract_'+cle).disabled=true;
74                                document.getElementById('caract_'+nom).disabled=false;
75                                setVarGlob();
76                        }
77                }
78               
79                // Compte le nombre de calcul_val NON checké
80                var cptValCal = 0;
81                for(var cle in glob){
82                        if(document.getElementById('calcul_val_'+cle).checked){
83                                cptValCal++;
84                        }
85                }
86                // Si aucune calcul_val n'est checké
87                if(cptValCal == 0){
88                       
89                        indice = '';
90                        for(var i = 0; i < tabIndice.length; i++){
91                                if(tabIndice[i] == nom){
92                                        // Si on est pas arrivé au dernier élément
93                                        if(i+1 <= 2){
94                                                indice = tabIndice[i+1];
95                                        }
96                                        else{
97                                                indice = tabIndice[0];
98                                        }
99                                }
100                               
101                        }
102                        document.getElementById('calcul_val_'+indice).checked=true;
103                        document.getElementById('caract_'+nom).disabled=false;
104                        document.getElementById('caract_'+indice).disabled=true;
105                        setVarGlob();
106                }
107        }
108
109        if(valeur.substr(0,3) == 'var'){
110                setVarGlob();
111                document.getElementById('caract_'+nom).disabled=true;
112                for(var cle in glob){
113                        if(glob[cle].substr(0,3) == 'val'){
114                                document.getElementById('caract_'+cle).disabled=false;
115                        }       
116                }
117               
118                var afficher = document.getElementsByClassName('champs_var_'+nom);
119                for(var i in afficher){
120                        afficher[i].style.display='table-row';
121                }
122               
123                for(var cle in tabPartiel){     
124                        var cacher = document.getElementsByClassName('champs_var_'+cle);
125                        for(var i in cacher){
126                                cacher[i].style.display='none';
127                        }
128                }
129               
130                setVarGlob();
131        }
132
133        // Compte le nombre de varier_val checké
134        var cptVarVal = 0;
135        for(var cle in glob){
136                if(document.getElementById('varier_val_'+cle).checked){
137                        cptVarVal++;
138                }
139        }
140       
141        if(cptVarVal == 0){
142                for(var cle in glob){
143                        if(glob[cle].substr(0,3) != 'cal'){
144                                document.getElementById('caract_'+cle).disabled=false;
145                        }       
146                }
147                var cacher = document.getElementsByClassName('champs_var_'+nom);
148                for(var i in cacher){
149                        cacher[i].style.display='none';
150                }
151        }
152       
153        setVarGlob();
154}
155</script>
156<form method="post" action="#ENV{action}" id="form_lechapt_calmon">
157   #ACTION_FORMULAIRE{#ENV{action}}
158   <table class="hyd_formulaire">
159      <tbody>
160                        <tr id="type_materiau_field">
161                                <td colspan="8"><div class="hyd_formulaire_chapitre">Type du matériau</div></td>
162                        </tr>
163
164                        <tr id="type_materiau_choix">
165                                <td align="right">
166                                        Choix du matériau :
167                                </td>
168                                               
169                                <td width="1px">
170                                        <select name="typeMateriau" id="choix_materiau" onChange="change_valeur();">
171                                                <option value="1" [(#ENV{typeMateriau}|=={'1'}|?{'selected',''})]>Fonte ou acier non revêtus - Béton grossier (eau corrosive)</option>
172                                                <option value="2" [(#ENV{typeMateriau}|=={'2'}|?{'selected',''})]>Fonte ou acier non revêtus - Béton grossier (eau peu corrosive)</option>
173                                                <option value="3" [(#ENV{typeMateriau}|=={'3'}|?{'selected',''})]>Fonte ou acier revêtement ciment</option>
174                                                <option value="4" [(#ENV{typeMateriau}|=={'4'}|?{'selected',''})]>Fonte ou acier revêtement bitume - Béton centrifugé</option>
175                                                <option value="5" [(#ENV{typeMateriau}|=={'5'}|?{'selected',''})]>Acier laminé - Béton lisse</option>
176                                                <option value="6" [(#ENV{typeMateriau}|=={'6'}|?{'selected',''})]>Fonte ou acier revêtement centrifugé</option>
177                                                <option value="7" [(#ENV{typeMateriau}|=={'7'}|?{'selected',''})]>PVC - Polyéthylène</option>
178                                                <option value="8" [(#ENV{typeMateriau}|=={'8'}|?{'selected',''})]>Tuyau hydrauliquement lisse - 0.05 ≤ D ≤ 0.2</option>
179                                                <option value="9" [(#ENV{typeMateriau}|=={'9'}|?{'selected',''})]>Tuyau hydrauliquement lisse - 0.25 ≤ D ≤ 1</option>
180                                        </select>
181                                       
182                                        [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{[(#VALEUR|table_valeur{0})]})</div>]
183
184                                </td>
185                        </tr>
186                       
187                    #SET{tableau_coeff,#ARRAY{1,L,2,M,3,N}}
188                       
189                        <BOUCLE_coeff(POUR) {tableau #GET{tableau_coeff}}>
190                                <tr id="materiau_coeff_#VALEUR">
191                                        <td align="right"> 
192                                                #VALEUR :                       
193                                        </td>
194                                                               
195                                        <td>
196                                                <input id="champs_#VALEUR" type="text" value="#ENV{#VALEUR}" maxlength="30" name="#VALEUR"/>
197                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{#VALEUR})</div>]
198                                        </td>   
199                                </tr>
200                        </BOUCLE_coeff>
201                       
202
203                        <tr id="caract_lechapt_calmon">
204                                <td colspan="8"><div class="hyd_formulaire_chapitre">Caractéristiques</div></td>
205                        </tr>
206
207                        <tr>
208                                <td colspan="2"></td>
209                                <td width="75px" colspan="2" align="center">Calculer valeur</td>
210                                <td width="75px" colspan="2" align="center">Varier valeur</td>
211                                <td width="75px" colspan="2" align="center">Fixer valeur</td>
212                        </tr>
213                       
214                        #SET{tableau_caract,#ARRAY{1,Q,2,D,3,J}}       
215                        <BOUCLE_caract(POUR) {tableau #GET{tableau_caract}}>
216               
217                                <tr id="type_materiau_caract_#VALEUR">
218                                        <td align="right" width="120px"> 
219                                                #VALEUR :       
220                                        </td>
221                                       
222                                        <td>
223                                                <input id="caract_#VALEUR" type="text" value="[(#ENV{choix_champs}|=={#VALEUR}|?{'',#ENV{#VALEUR}})]" maxlength="30" name="#VALEUR" [(#ENV{choix_champs_#VALEUR}|match{^((calcul_val_#VALEUR)|(varier_val_#VALEUR))$}|?{'disabled="true"',''})]/>
224                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{#VALEUR})</div>]
225                                        </td>   
226
227                                        <td colspan="2" align="center">
228                                                <input type="radio" id="calcul_val_#VALEUR" name="choix_champs_#VALEUR" value="calcul_val_#VALEUR" onclick="gestion_radios('#VALEUR', 'calcul_val_#VALEUR')" [(#ENV{choix_champs_#VALEUR}|=={calcul_val_#VALEUR}?{'checked',''})]/>
229                                        </td>   
230                                       
231                                        <td colspan="2" align="center">
232                                                <input type="radio" id="varier_val_#VALEUR" name="choix_champs_#VALEUR" value="varier_val_#VALEUR" onclick="gestion_radios('#VALEUR', 'varier_val_#VALEUR')" [(#ENV{choix_champs_#VALEUR}|=={varier_val_#VALEUR}?{'checked',''})]/>
233                                        </td>
234                                                                               
235                                        <td colspan="2" align="center">
236                                                <input type="radio" id="val_fixe_#VALEUR" name="choix_champs_#VALEUR" value="val_fixe_#VALEUR" onclick="gestion_radios('#VALEUR', 'val_fixe_#VALEUR')" [(#ENV{choix_champs_#VALEUR}|=={val_fixe_#VALEUR}?{'checked',''})]/>
237                                        </td>
238                                </tr>
239
240
241                                <tr class="champs_var_#VALEUR" style="display:[(#ENV{choix_champs_#VALEUR}|=={varier_val_#VALEUR}|?{'table-row','none'})];">
242                                        <td></td>
243                                        <td align="right">Valeur minimum de #VALEUR :
244                                                <input name="val_min_#VALEUR" type="text" value="#ENV{val_min_#VALEUR}"/>
245                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{val_min_#VALEUR})</div>]
246                                        </td>
247                                        <td colspan="6"></td>
248                                </tr>
249                                       
250                                <tr class="champs_var_#VALEUR" style="display:[(#ENV{choix_champs_#VALEUR}|=={varier_val_#VALEUR}|?{'table-row','none'})];">
251                                        <td></td>
252                                        <td align="right">Valeur maximum de #VALEUR :
253                                                <input name="val_max_#VALEUR" type="text" value="#ENV{val_max_#VALEUR}"/>
254                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{val_max_#VALEUR})</div>]
255                                        </td>
256                                        <td colspan="6"></td>
257                                </tr>
258                                       
259                                <tr class="champs_var_#VALEUR" style="display:[(#ENV{choix_champs_#VALEUR}|=={varier_val_#VALEUR}|?{'table-row','none'})];">
260                                        <td></td>
261                                        <td align="right">Pas de variation de #VALEUR :
262                                                <input name="pas_var_#VALEUR" type="text" value="#ENV{pas_var_#VALEUR}"/>
263                                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{pas_var_#VALEUR})</div>]
264                                        </td>
265                                        <td colspan="6"></td>
266                                </tr>
267                               
268                        </BOUCLE_caract>               
269                       
270                        <tr>           
271                                <td colspan="8" class="hyd_bouton_submit">
272                                   <input type="submit" value="Calcul Lechapt et Calmon">
273                                </td>
274                        </tr>
275                       
276      </tbody>
277   </table>
278</form>
279
280[<div class='hydraulic_resultat'>(#ENV*{message_ok})</div>]
Note: See TracBrowser for help on using the repository browser.