Commit bbc46c5117b99175d31d6e6ce18b5f1e54cd4d77
1 parent
14c43aae
Exists in
master
and in
1 other branch
Nouveau filtre dans la liste des matériels (index) => par "projet"
Mais aussi : Enorme refactorisation de tous les filtres (nb lignes, age, domaine, projet) de la page index (liste des matériels) => une fonction unique v3.7.9.100
Showing
4 changed files
with
244 additions
and
51 deletions
Show diff stats
CHANGES.txt
... | ... | @@ -13,11 +13,13 @@ CHANGEMENTS |
13 | 13 | |
14 | 14 | |
15 | 15 | ------- |
16 | -10/09/2020 NEWS#3 : | |
16 | +11/09/2020 NEWS#3 : | |
17 | 17 | |
18 | 18 | - Nouvelle entité "Projet", à laquelle un matériel peut (ou pas) être associé |
19 | 19 | |
20 | -- Nouveau format étiquette 19mm avec QrCode pour la nouvelle étiqueteuse (Dymo MobileLabeler) | |
20 | +- Nouveau filtre de la liste des matériels (index) => par "Projet" | |
21 | + | |
22 | +- Nouveau format étiquette 19mm "avec le QrCode" pour la nouvelle étiqueteuse (Dymo MobileLabeler) | |
21 | 23 | |
22 | 24 | |
23 | 25 | ------- |
... | ... | @@ -85,6 +87,11 @@ Outre ces changements, voici d'autres changements importants : |
85 | 87 | ======= CHANGES ======= |
86 | 88 | |
87 | 89 | ------- |
90 | +11/09/2020 v3.7.9.100 (EP) | |
91 | + - (e) Nouveau filtre de la liste des matériels (index) => par "projet" | |
92 | + - (i) Enorme refactorisation de tous les filtres (nb lignes, age, domaine, projet) de la page index (liste des matériels) | |
93 | + | |
94 | +------- | |
88 | 95 | 10-11/09/2020 v3.7.9.97-99 (EP) |
89 | 96 | - (e) Ajout de l'entité (table) "Projet", à laquelle un matériel peut (ou pas) être associé |
90 | 97 | - (b) Enorme bugfix sur le numéro d'inventaire qui se régénérait à chaque modif du matériel !!! | ... | ... |
README.md
... | ... | @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes : |
43 | 43 | -------------------------------------------------------------------------------------------- |
44 | 44 | |
45 | 45 | Date: 11/09/2020 |
46 | -Version: 3.7.9.99 | |
46 | +Version: 3.7.9.100 | |
47 | 47 | |
48 | 48 | |
49 | 49 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -913,22 +913,28 @@ class MaterielsController extends AppController { |
913 | 913 | } |
914 | 914 | */ |
915 | 915 | |
916 | - | |
917 | 916 | // - FILTRE Domaine ? |
918 | - $domain_id = $this->request->getQuery('domain'); | |
917 | + $domaine_id = $this->request->getQuery('domaine'); | |
919 | 918 | // Par défaut, TOUS les domaines (id=0) |
920 | - if (is_null($domain_id)) $domain_id = 0; | |
919 | + if (is_null($domaine_id)) $domaine_id = 0; | |
921 | 920 | // Si $domain_id==0 on ne fait rien (car on prend TOUS les domaines) |
922 | - if ($domain_id > 0) | |
921 | + if ($domaine_id > 0) | |
923 | 922 | // OK |
924 | - $conditions['Materiels.sur_categorie_id'] = $domain_id; | |
923 | + $conditions['Materiels.sur_categorie_id'] = $domaine_id; | |
925 | 924 | // KO => Exception PDO ! |
926 | 925 | //$conditions['sur_categorie_id'] = $domain_id; |
927 | 926 | //debug($conditions); |
928 | - | |
929 | - | |
927 | + | |
928 | + // - FILTRE Projet ? | |
929 | + $projet_id = $this->request->getQuery('projet'); | |
930 | + // Par défaut, TOUS les domaines (id=0) | |
931 | + if (is_null($projet_id)) $projet_id = 0; | |
932 | + // Si $domain_id==0 on ne fait rien (car on prend TOUS les domaines) | |
933 | + if ($projet_id > 0) $conditions['Materiels.projet_id'] = $projet_id; | |
934 | + | |
930 | 935 | // - FILTRE Nb lignes par page ? |
931 | - $limit = $this->request->getQuery('aff'); | |
936 | + //$limit = $this->request->getQuery('aff'); | |
937 | + $limit = $this->request->getQuery('nblines'); | |
932 | 938 | // Par défaut, nb lignes demandées dans config |
933 | 939 | if ($limit===null) $limit = $config['aff_par_defaut']; |
934 | 940 | |
... | ... | @@ -1093,15 +1099,63 @@ class MaterielsController extends AppController { |
1093 | 1099 | |
1094 | 1100 | $this->set(compact('materiels')); |
1095 | 1101 | |
1102 | + // Liste des DOMAINES | |
1096 | 1103 | //$domain_options = $this->Materiels->SurCategories->find()->toArray(); |
1097 | - $domain_options = $this->Materiels->SurCategories->find('list', [ | |
1104 | + $domaine_options = $this->Materiels->SurCategories->find('list', [ | |
1098 | 1105 | 'keyField' => 'id', |
1099 | 1106 | 'valueField' => 'nom', |
1100 | 1107 | ])->toArray(); |
1101 | 1108 | // Ajoute l'élément 0 => 'TOUS' en tête de tableau |
1102 | 1109 | //$domain_options[0] = 'TOUS'; |
1103 | - array_unshift($domain_options, "Tous"); | |
1104 | - $this->set(compact('domain_options', 'searchfor')); | |
1110 | + //debug($domain_options); | |
1111 | + array_unshift($domaine_options, "Tous"); | |
1112 | + //debug($domain_options); | |
1113 | + | |
1114 | + // Liste des PROJETS | |
1115 | + $projet_options = $this->Materiels->Projets->find('list', [ | |
1116 | + 'keyField' => 'id', | |
1117 | + 'valueField' => 'nom', | |
1118 | + // implicite, pourquoi ??? | |
1119 | + //'order' => 'Projets.nom' | |
1120 | + ])->toArray(); | |
1121 | + //debug($projet_options); | |
1122 | + /* Ajoute l'élément 0 => 'TOUS' en tête de tableau | |
1123 | + * SANS changer les clés !!! | |
1124 | + */ | |
1125 | + // 1) on ajoute un élément vide à la clé "0", | |
1126 | + // et on trie le tableau sur les values (nom du projet) (en conservant les clés) | |
1127 | + // => l'élément vide se retrouve donc en tête | |
1128 | + $projet_options[0] = ''; | |
1129 | + asort($projet_options); | |
1130 | + // 2) on remplace l'élément vide (en tête) par 'Tous', qui est donc toujours en tête ! | |
1131 | + $projet_options[0] = 'Tous'; | |
1132 | + //debug($projet_options); | |
1133 | + | |
1134 | + // Liste des AGES (intervalles d'années) | |
1135 | + $age_options = [ | |
1136 | + '0' => 'Tous', | |
1137 | + '5' => 'Récents (5 ans max)', | |
1138 | + '10' => '5-10 ans', | |
1139 | + '15' => '10-15 ans', | |
1140 | + '20' => '15-20 ans', | |
1141 | + //'20plus' => '+ 20 ans', | |
1142 | + '21' => '+ 20 ans', | |
1143 | + //'unknown' => 'inconnu', | |
1144 | + '-1' => 'inconnu', | |
1145 | + ]; | |
1146 | + | |
1147 | + // Liste des NBLINES (Nb de matériels affichés par page) | |
1148 | + $nblines_options = [ | |
1149 | + '20' => 20, | |
1150 | + '30' => 30, | |
1151 | + '50' => 50, | |
1152 | + '100' => 100, | |
1153 | + '150' => 150, | |
1154 | + '200' => 200 | |
1155 | + ]; | |
1156 | + | |
1157 | + | |
1158 | + $this->set(compact('age_options', 'nblines_options', 'domaine_options', 'projet_options', 'searchfor')); | |
1105 | 1159 | |
1106 | 1160 | // Pas bien..., mais pratique : |
1107 | 1161 | // on passe le controleur de materiels à la vue index pour qu'elle | ... | ... |
src/Template/Materiels/index.ctp
... | ... | @@ -8,15 +8,23 @@ use App\Controller\MaterielsController; |
8 | 8 | // (EP 21/5/19) |
9 | 9 | // --- Elements set by Controller for this view --- |
10 | 10 | |
11 | -/*TODO: $materiels doit etre enrichi avec des nouveaux attributs tels que (pour chaque materiel de la liste) : | |
11 | +/* | |
12 | + TODO: $materiels doit etre enrichi avec des nouveaux attributs tels que (pour chaque materiel de la liste) : | |
12 | 13 | - CAN_EDIT |
13 | 14 | - CAN_DELETE |
14 | 15 | - CAN_VALIDATE |
15 | 16 | - CAN_TBA |
16 | 17 | - CAN_ARCHIVE |
17 | 18 | */ |
18 | -$domain_options = $domain_options; | |
19 | + | |
20 | +// Options des filtres | |
21 | +$nblines_options = $nblines_options; | |
22 | +$age_options = $age_options; | |
23 | +$domaine_options = $domaine_options; | |
24 | +$projet_options = $projet_options; | |
25 | + | |
19 | 26 | //debug($domain_options); |
27 | +//debug($projet_options); | |
20 | 28 | |
21 | 29 | $nbMateriels = $nbMateriels; |
22 | 30 | $controller=$controller; |
... | ... | @@ -119,7 +127,8 @@ $displaySearchField = function($params, $searchfor, $html, $form) { |
119 | 127 | ]); |
120 | 128 | // (EP 202007) Ajouter un champ caché pour chaque paramètre passé dans l'url |
121 | 129 | // afin de ne pas les perdre... |
122 | - $parameters = ['aff', 'age', 'domain', 'status']; | |
130 | + //$parameters = ['aff', 'age', 'domaine', 'status', 'projet']; | |
131 | + $parameters = ['nblines', 'age', 'domaine', 'status', 'projet']; | |
123 | 132 | foreach ($parameters as $param) |
124 | 133 | if (isset($params[$param])) |
125 | 134 | echo $this->Form->hidden($param, [ |
... | ... | @@ -295,28 +304,62 @@ $displayStatusButtons = function($SELECTED_STATUS, $params, $nbMateriels, $html) |
295 | 304 | |
296 | 305 | }; // displayStatusButtons() |
297 | 306 | |
298 | -$displaySelectors = function($form, $request, $displayNbLinesSelector, $displayAgeSelector, $displayDomaineSelector, $domain_options) { | |
307 | + | |
308 | +//$displaySelectors = function($form, $request, | |
309 | +$displayFilters = function($form, $request, | |
310 | + $df, | |
311 | + /* | |
312 | + $displayNbLinesSelector, | |
313 | + $displayAgeSelector, | |
314 | + */ | |
315 | + //$f1_func, | |
316 | + //$f1_func, | |
317 | + $f1_name, $f1_options, | |
318 | + //$f2_func, $f2_options, | |
319 | + $f2_name, $f2_options, | |
320 | + //$displayDomaineSelector, $domain_options, | |
321 | + //$displayProjetSelector, $projet_options | |
322 | + $f3_name, $f3_options, | |
323 | + $f4_name, $f4_options | |
324 | +) { | |
299 | 325 | //echo '<div>'; |
300 | 326 | echo '<div class="col-lg-2 col-md-3 col-sm-4">'; |
301 | 327 | echo '<table><tr>'; |
302 | 328 | |
329 | + // Filtre 1 | |
303 | 330 | echo '<td>'; |
304 | - $displayNbLinesSelector($form, $request); | |
331 | + //$displayNbLinesSelector($form, $request); | |
332 | + //$f1_func($form, $request); | |
333 | + $df($f1_name, $form, $request, $f1_options); | |
305 | 334 | echo '</td>'; |
306 | 335 | |
336 | + // Filtre 2 | |
307 | 337 | echo '<td>'; |
308 | - $displayAgeSelector($form, $request); | |
338 | + //$displayAgeSelector($form, $request); | |
339 | + //$f2_func($form, $request, $f2_options); | |
340 | + $df($f2_name, $form, $request, $f2_options); | |
309 | 341 | echo '</td>'; |
310 | 342 | |
343 | + // Filtre 3 | |
311 | 344 | echo '<td>'; |
312 | - $displayDomaineSelector($form, $request, $domain_options); | |
345 | + //$displayDomaineSelector($form, $request, $domain_options); | |
346 | + //$df('domain', $form, $request, $domain_options); | |
347 | + $df($f3_name, $form, $request, $f3_options); | |
348 | + echo '</td>'; | |
349 | + | |
350 | + // Filtre 4 | |
351 | + echo '<td>'; | |
352 | + //$displayProjetSelector('projet', $form, $request, $projet_options); | |
353 | + //$df('projet', $form, $request, $projet_options); | |
354 | + $df($f4_name, $form, $request, $f4_options); | |
313 | 355 | echo '</td>'; |
314 | 356 | |
315 | 357 | echo '</tr></table>'; |
316 | 358 | echo '</div>'; |
317 | 359 | }; |
318 | 360 | |
319 | -$displayNbLinesSelector = function($form, $request) { | |
361 | +/* | |
362 | +$displayNbLinesSelector = function($form, $request, $options) { | |
320 | 363 | //echo '<div class="col-lg-2 col-md-3 col-sm-4">'; |
321 | 364 | //echo $this->Form->create('materiels', [ |
322 | 365 | // echo $this->Form->create('materiels', ['url' => '/materiels/execActions?page=index']); |
... | ... | @@ -324,51 +367,101 @@ $displayNbLinesSelector = function($form, $request) { |
324 | 367 | echo $form->control('aff_par_defaut', [ |
325 | 368 | 'label' => 'Nombre lignes', |
326 | 369 | 'onchange' => "updateUrlWithSelectedValue('aff-par-defaut', 'aff')", |
327 | - 'options' => [ | |
328 | - '20' => 20, | |
329 | - '30' => 30, | |
330 | - '50' => 50, | |
331 | - '100' => 100, | |
332 | - '150' => 150, | |
333 | - '200' => 200 | |
334 | - ] | |
370 | + 'options' => $options, | |
335 | 371 | ]); |
336 | 372 | //echo '</div>'; |
337 | 373 | }; // displayNbLinesSelector() |
338 | 374 | |
339 | -$displayAgeSelector = function($form, $request) { | |
375 | +$age_options = [ | |
376 | + '0' => 'Tous', | |
377 | + '5' => 'Récents (5 ans max)', | |
378 | + '10' => '5-10 ans', | |
379 | + '15' => '10-15 ans', | |
380 | + '20' => '15-20 ans', | |
381 | + //'20plus' => '+ 20 ans', | |
382 | + '21' => '+ 20 ans', | |
383 | + //'unknown' => 'inconnu', | |
384 | + '-1' => 'inconnu', | |
385 | +]; | |
386 | + | |
387 | +$displayAgeSelector = function($form, $request, $options) { | |
340 | 388 | //echo '<div class="col-lg-2 col-md-3 col-sm-4">'; |
341 | 389 | echo $form->control('age_selector', [ |
342 | 390 | 'label' => 'Age', |
343 | 391 | 'onchange' => "updateUrlWithSelectedValue('age-selector', 'age')", |
344 | - 'options' => [ | |
345 | - '0' => 'Tous', | |
346 | - '5' => 'Récents (5 ans max)', | |
347 | - '10' => '5-10 ans', | |
348 | - '15' => '10-15 ans', | |
349 | - '20' => '15-20 ans', | |
350 | - //'20plus' => '+ 20 ans', | |
351 | - '21' => '+ 20 ans', | |
352 | - //'unknown' => 'inconnu', | |
353 | - '-1' => 'inconnu', | |
354 | - ], | |
392 | + 'options' => $options, | |
393 | + 'default' => '0', | |
355 | 394 | // Inutile car géré via javascript |
356 | 395 | //'default' => '5', |
357 | 396 | ]); |
358 | 397 | //echo '</div>'; |
359 | -}; // displayNbLinesSelector() | |
398 | +}; // $displayAgeSelector() | |
360 | 399 | |
361 | -$displayDomaineSelector = function($form, $request, $domain_options) { | |
400 | +$displayDomaineSelector = function($form, $request, $options) { | |
362 | 401 | //echo '<div class="col-lg-2 col-md-3 col-sm-4">'; |
363 | 402 | echo $form->control('domain_selector', [ |
364 | 403 | 'label' => 'Domaine', |
365 | 404 | 'onchange' => "updateUrlWithSelectedValue('domain-selector', 'domain')", |
366 | - 'options' => $domain_options, | |
405 | + 'options' => $options, | |
367 | 406 | // Inutile car géré via javascript |
368 | 407 | 'default' => 0, |
369 | 408 | ]); |
370 | 409 | //echo '</div>'; |
371 | -}; // displayNbLinesSelector() | |
410 | +}; | |
411 | + | |
412 | +$displayProjetSelector = function($form, $request, $options) { | |
413 | + //echo '<div class="col-lg-2 col-md-3 col-sm-4">'; | |
414 | + echo $form->control('projet_selector', [ | |
415 | + 'label' => 'Projet', | |
416 | + 'onchange' => "updateUrlWithSelectedValue('projet-selector', 'projet')", | |
417 | + 'options' => $options, | |
418 | + // Inutile car géré via javascript | |
419 | + 'default' => 0, | |
420 | + ]); | |
421 | + //echo '</div>'; | |
422 | +}; | |
423 | + | |
424 | +$displayProjetSelector = function($filter_name, // 'projet' | |
425 | + $form, $request, $options | |
426 | + ) { | |
427 | + //echo '<div class="col-lg-2 col-md-3 col-sm-4">'; | |
428 | + $html_filter_name = $filter_name.'-selector'; | |
429 | + //echo $form->control('projet_selector', [ | |
430 | + echo $form->control($filter_name.'_selector', [ // 'projet_selector' | |
431 | + //'label' => 'Projet', | |
432 | + 'label' => ucfirst($filter_name), // 'Projet' | |
433 | + //'onchange' => "updateUrlWithSelectedValue('projet-selector', 'projet')", | |
434 | + //'onchange' => "updateUrlWithSelectedValue($filter_name.'-selector', $filter_name)", // ('projet-selector', 'projet') | |
435 | + 'onchange' => "updateUrlWithSelectedValue('$html_filter_name', '$filter_name')", // ('projet-selector', 'projet') | |
436 | + 'options' => $options, | |
437 | + // Inutile car géré via javascript | |
438 | + 'default' => 0, | |
439 | + ]); | |
440 | + //echo '</div>'; | |
441 | +}; | |
442 | +*/ | |
443 | + | |
444 | +$displayFilter = function($filter_name, // 'projet' | |
445 | + $form, $request, $options | |
446 | + ) { | |
447 | + //echo '<div class="col-lg-2 col-md-3 col-sm-4">'; | |
448 | + $html_filter_name = $filter_name.'-selector'; | |
449 | + //echo $form->control('projet_selector', [ | |
450 | + echo $form->control($filter_name.'_selector', [ // 'projet_selector' | |
451 | + //'label' => 'Projet', | |
452 | + 'label' => ucfirst($filter_name), // 'Projet' | |
453 | + //'onchange' => "updateUrlWithSelectedValue('projet-selector', 'projet')", | |
454 | + //'onchange' => "updateUrlWithSelectedValue($filter_name.'-selector', $filter_name)", // ('projet-selector', 'projet') | |
455 | + 'onchange' => "updateUrlWithSelectedValue('$html_filter_name', '$filter_name')", // ('projet-selector', 'projet') | |
456 | + 'options' => $options, | |
457 | + // Inutile car géré via javascript | |
458 | + 'default' => 0, | |
459 | + ]); | |
460 | + //echo '</div>'; | |
461 | +}; | |
462 | + | |
463 | + | |
464 | + | |
372 | 465 | |
373 | 466 | |
374 | 467 | $displayActionButtonsForSelectedOrAllElements = function($form, $SELECTED_STATUS, $USER_IS_RESPONSABLE, $USER_IS_ADMIN_OR_MORE, $USER_IS_SUPERADMIN) { |
... | ... | @@ -639,7 +732,19 @@ if ($USER_IS_ADMIN_OR_MORE) $displayStatusButtons($SELECTED_STATUS, $params, $nb |
639 | 732 | |
640 | 733 | |
641 | 734 | // <!-- SELECTEURS : NOMBRE LIGNES PAR PAGE et AGE --> |
642 | -$displaySelectors($this->Form, $this->request, $displayNbLinesSelector, $displayAgeSelector, $displayDomaineSelector, $domain_options); | |
735 | +//$displaySelectors( | |
736 | +$displayFilters( | |
737 | + $this->Form, $this->request, | |
738 | + $displayFilter, | |
739 | + //$displayNbLinesSelector, | |
740 | + 'nblines', $nblines_options, | |
741 | + //$displayAgeSelector, $age_options, | |
742 | + 'age', $age_options, | |
743 | + //$displayDomaineSelector, $domain_options, | |
744 | + //$displayProjetSelector, $projet_options | |
745 | + 'domaine', $domaine_options, | |
746 | + 'projet', $projet_options | |
747 | +); | |
643 | 748 | //$displayNbLinesSelector($this->Form, $this->request); |
644 | 749 | |
645 | 750 | |
... | ... | @@ -989,7 +1094,12 @@ $(document).ready(function(){ |
989 | 1094 | selectNbLines(); |
990 | 1095 | // Actualiser le domaine sélectionné si passé en paramètre de l'url |
991 | 1096 | //$(document).ready(selectDomain); |
992 | - selectDomain(); | |
1097 | + //selectDomain(); | |
1098 | + selectFilterItem('domaine'); | |
1099 | + //selectProjet('projet'); | |
1100 | + selectFilterItem('projet'); | |
1101 | + | |
1102 | + | |
993 | 1103 | // Remplir le champ recherche général avec le texte de la dernière recherche effectuée |
994 | 1104 | //$(document).ready(setSearchField); |
995 | 1105 | //setSearchField(); |
... | ... | @@ -1006,6 +1116,7 @@ function setSearchField() { |
1006 | 1116 | } |
1007 | 1117 | */ |
1008 | 1118 | |
1119 | +/* | |
1009 | 1120 | function selectDomain() { |
1010 | 1121 | var domain_id = parseInt($_GET('domain')); |
1011 | 1122 | //console.log(domain_id); |
... | ... | @@ -1016,15 +1127,36 @@ function selectDomain() { |
1016 | 1127 | //$("#domain-selector").val(domain_id); |
1017 | 1128 | //document.getElementById('domain-selector').value = domain; |
1018 | 1129 | } |
1130 | +*/ | |
1131 | + | |
1132 | +//function selectProjet(filter_name) { | |
1133 | +function selectFilterItem(filter_name) { | |
1134 | + //var id = parseInt($_GET('projet')); | |
1135 | + var id = parseInt($_GET(filter_name)); | |
1136 | + var filter_selector_name = filter_name+'-selector'; | |
1137 | + //console.log(domain_id); | |
1138 | + // NotANumber | |
1139 | + if (!isNaN(id)) | |
1140 | + // PAS BON : sélectionne par l'INDEX | |
1141 | + //$("#projet-selector")[0].selectedIndex = id; | |
1142 | + // OK : sélectionne par la CLÉ | |
1143 | + $('#'+filter_selector_name).val(id); | |
1144 | + //$("#projet-selector").val(id); | |
1145 | + //document.getElementById('domain-selector').selectedIndex = domain_id; | |
1146 | + //$("#domain-selector").val(domain_id); | |
1147 | + //document.getElementById('domain-selector').value = domain; | |
1148 | +} | |
1019 | 1149 | |
1020 | 1150 | //$(document).ready(function () { |
1021 | 1151 | function selectNbLines() { |
1022 | - var nblines = parseInt($_GET('aff')); | |
1152 | + //var nblines = parseInt($_GET('aff')); | |
1153 | + var nblines = parseInt($_GET('nblines')); | |
1023 | 1154 | //document.getElementById('aff-par-defaut').value = affichage; |
1024 | 1155 | if ( [20,30,50,100,200].includes(nblines) ) |
1025 | - $("#aff-par-defaut").val(nblines); | |
1156 | + //$("#aff-par-defaut").val(nblines); | |
1157 | + $("#nblines-selector").val(nblines); | |
1026 | 1158 | else |
1027 | - $("#aff-par-defaut").val(<?=$configuration->aff_par_defaut?>); | |
1159 | + $("#nblines-selector").val(<?=$configuration->aff_par_defaut?>); | |
1028 | 1160 | /* |
1029 | 1161 | switch(affichage) { |
1030 | 1162 | case 20 : | ... | ... |