Commit 46defb4b3796787d73a78a57bd32d229671903db
1 parent
f0751bda
Exists in
master
and in
1 other branch
(materiels/index) bugfix champ recherche (v3.7.9.84)
Sur liste materiels, champ recherche perdait le contexte des autres paramètres (nb page, age, ...)
Showing
3 changed files
with
97 additions
and
32 deletions
Show diff stats
CHANGES.txt
... | ... | @@ -70,12 +70,19 @@ Outre ces changements, voici d'autres changements importants : |
70 | 70 | - Une VM linux (Ubuntu) est désormais disponible pour faciliter le déploiement |
71 | 71 | |
72 | 72 | |
73 | +======= TODO ======= | |
73 | 74 | |
75 | + - (materiels/index) bugfix champ recherche sur liste materiels qui perdait le contexte du statut (CREATED, VALIDATED, ...) | |
76 | + - (materiels/add_edit) bugfix champ fournisseur qui perdait son contenu en cas d'erreur de validation sur un autre champ | |
74 | 77 | |
75 | 78 | |
76 | 79 | ======= CHANGES ======= |
77 | 80 | |
78 | 81 | ------- |
82 | +31/07/2020 v3.7.9.84 (EP) | |
83 | + - (materiels/index) bugfix champ recherche sur liste materiels qui perdait le contexte des autres paramètres (nb page, age, ...) | |
84 | + | |
85 | +------- | |
79 | 86 | 30/07/2020 v3.7.9.78-82 (EP) |
80 | 87 | - (i) Meilleure résilience (reprise après crash) du script UPDATE avec fichier ftpf (install/files_to_process.txt file) |
81 | 88 | => permet de s'assurer que les script sql non exécutés (à cause crash ou stop script) le seront à l'itération suivante | ... | ... |
README.md
... | ... | @@ -42,8 +42,8 @@ Logiciel testé et validé sur les configurations suivantes : |
42 | 42 | |
43 | 43 | -------------------------------------------------------------------------------------------- |
44 | 44 | |
45 | -Date: 30/07/2020 | |
46 | -Version: 3.7.9.83 | |
45 | +Date: 31/07/2020 | |
46 | +Version: 3.7.9.84 | |
47 | 47 | |
48 | 48 | |
49 | 49 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) | ... | ... |
src/Template/Materiels/index.ctp
... | ... | @@ -75,7 +75,67 @@ $METRO=false; |
75 | 75 | --> |
76 | 76 | */ |
77 | 77 | |
78 | -$displayStatusButtons = function($SELECTED_STATUS, $nbMateriels, $html) { | |
78 | +$displaySearchField = function($params, $searchfor, $html, $form) { | |
79 | + /* | |
80 | + <div class="actions" style="width: 100%; float: none; padding: 0 0;"> | |
81 | + echo $html->link('Chercher', [ | |
82 | + 'action' => 'index', | |
83 | + '?' => $params | |
84 | + ], [ | |
85 | + 'title' => 'Tous', | |
86 | + 'style' => 'margin-right: 5px', | |
87 | + 'escape' => false | |
88 | + ]); | |
89 | + echo "</div>"; | |
90 | + */ | |
91 | + //echo $this->Form->create('Materiel', ['url' => '/materiels/find']); | |
92 | + /* | |
93 | + echo $this->Form->create('Materiel', ['action' => 'index', '?'=>$params]); | |
94 | + echo '<input name="searchfor" class="form-control mr-2 mr-sm-2 col-8 col-sm-6 col-md-6 col-lg-9" type="search" placeholder="Recherche (matériels)" aria-label="Search" id="MaterielSAll barre">'; | |
95 | + echo $this->Form->button('Chercher', [ 'class'=>'btn btn-outline-success', 'type'=>'submit', 'name' => 'MaterielSAll', 'id' => 'MaterielSAll', 'style' => 'margin: 0px;' ]); | |
96 | + echo $this->Form->end(); | |
97 | + */ | |
98 | + // Bien mais insuffisant car les autres paramètres (page, age, domain, sont perdus) | |
99 | + echo $this->Form->create('Materiel', [ | |
100 | + // OK mais renvoie sur la vue materiesl/find/ alors qu'on veut rester sur la liste des materiels | |
101 | + //'url' => '/materiels/find' | |
102 | + //'url' => '/materiels/index?searchfor='.$this->request->getQuery('searchfor'), | |
103 | + 'type' => 'get', | |
104 | + //'valueSources' => 'query' | |
105 | + 'url' => [ | |
106 | + 'action' => "index", | |
107 | + //'?' => $params | |
108 | + ] | |
109 | + ]); | |
110 | + //echo '<input name="s_all_2" class="search-input" type="text" id="MaterielSAll">'; | |
111 | + //echo $this->Form->control('s_all_2', [ | |
112 | + echo $this->Form->control('searchfor', [ | |
113 | + 'id' => 'MaterielSAll', | |
114 | + 'class' => 'search-input', | |
115 | + 'label' => 'Chercher', | |
116 | + //'type' => 'text', | |
117 | + 'placeholder' => "Entrez un ou plusieurs mots séparés par un espace", | |
118 | + 'default' => $searchfor, | |
119 | + ]); | |
120 | + $param = 'age'; | |
121 | + echo $this->Form->hidden($param, [ | |
122 | + 'value' => isset($params[$param]) ? $params[$param] : null | |
123 | + ]); | |
124 | + $param = 'domain'; | |
125 | + echo $this->Form->hidden($param, [ | |
126 | + 'value' => isset($params[$param]) ? $params[$param] : null | |
127 | + ]); | |
128 | + /* | |
129 | + echo $this->Form->submit('Chercher', [ | |
130 | + 'name' => 'MaterielSAll', | |
131 | + 'id' => 'MaterielSAll', | |
132 | + 'style' => 'margin: 0px;' | |
133 | + ]); | |
134 | + */ | |
135 | + echo $this->Form->end(); | |
136 | +}; | |
137 | + | |
138 | +$displayStatusButtons = function($SELECTED_STATUS, $params, $nbMateriels, $html) { | |
79 | 139 | ?> |
80 | 140 | <div class="actions" style="width: 100%; float: none; padding: 0 0;"> |
81 | 141 | <?php |
... | ... | @@ -99,13 +159,19 @@ $displayStatusButtons = function($SELECTED_STATUS, $nbMateriels, $html) { |
99 | 159 | } else $b_all = $SELECTED; |
100 | 160 | |
101 | 161 | |
102 | - // Affichage des boutons de filtrage par statut (en haut de la page) | |
103 | - | |
162 | + /* | |
163 | + * Affichage des boutons de filtrage par statut (en haut de la page) | |
164 | + */ | |
165 | + | |
166 | + /* | |
167 | + // On récupère les paramètres passés actuellement à l'URL (age, domain, searchfor...) | |
168 | + // afin de les rappeler quand on clique sur les boutons de filtrage | |
104 | 169 | //$args = explode('?',$_SERVER['REQUEST_URI']); |
105 | 170 | //$args = count($args)==2 ? '?'.$args[1] : null; |
106 | 171 | $params = $this->request->getParam('?'); |
107 | 172 | // S'il y a des paramètres, supprimer le paramètre 'page' car inapproprié |
108 | 173 | if ($params) unset($params['page']); |
174 | + */ | |
109 | 175 | |
110 | 176 | //echo $this->Html->link($b_all . ' Tous', [ |
111 | 177 | echo $html->link($b_all . ' Tous', [ |
... | ... | @@ -480,6 +546,18 @@ $displayActionButtonsForMateriel = function($materiel, $username, $USER_IS_RESPO |
480 | 546 | |
481 | 547 | }; // displayActionButtonsForMateriel |
482 | 548 | |
549 | + | |
550 | +/* | |
551 | + * On récupère les paramètres passés actuellement à l'URL (age, domain, searchfor...) | |
552 | + * afin de les rappeler quand on clique sur les boutons de filtrage | |
553 | + */ | |
554 | + //$args = explode('?',$_SERVER['REQUEST_URI']); | |
555 | + //$args = count($args)==2 ? '?'.$args[1] : null; | |
556 | + $params = $this->request->getParam('?'); | |
557 | + // S'il y a des paramètres, supprimer le paramètre 'page' car inapproprié | |
558 | + if ($params) unset($params['page']); | |
559 | + | |
560 | + | |
483 | 561 | ?> |
484 | 562 | |
485 | 563 | |
... | ... | @@ -511,7 +589,7 @@ echo $this->Html->link('<i class="icon-plus"></i> Nouveau Matériel', [ |
511 | 589 | 'escape' => false |
512 | 590 | ]); |
513 | 591 | echo '</p>';*/ |
514 | -if ($USER_IS_ADMIN_OR_MORE) $displayStatusButtons($SELECTED_STATUS, $nbMateriels, $this->Html); | |
592 | +if ($USER_IS_ADMIN_OR_MORE) $displayStatusButtons($SELECTED_STATUS, $params, $nbMateriels, $this->Html); | |
515 | 593 | //</div> |
516 | 594 | |
517 | 595 | |
... | ... | @@ -522,32 +600,12 @@ $displaySelectors($this->Form, $this->request, $displayNbLinesSelector, $display |
522 | 600 | |
523 | 601 | // Formulaire de RECHERCHE de materiels |
524 | 602 | |
525 | -// Search function | |
526 | -echo $this->Form->create('Materiel', [ | |
527 | - // OK mais renvoie sur la vue materiesl/find/ alors qu'on veut rester sur la liste des materiels | |
528 | - //'url' => '/materiels/find' | |
529 | - //'url' => '/materiels/index?searchfor='.$this->request->getQuery('searchfor'), | |
530 | - 'type' => 'get', | |
531 | - //'valueSources' => 'query' | |
532 | -]); | |
533 | - //echo '<input name="s_all_2" class="search-input" type="text" id="MaterielSAll">'; | |
534 | - //echo $this->Form->control('s_all_2', [ | |
535 | - echo $this->Form->control('searchfor', [ | |
536 | - 'id' => 'MaterielSAll', | |
537 | - 'class' => 'search-input', | |
538 | - 'label' => 'Chercher', | |
539 | - //'type' => 'text', | |
540 | - 'placeholder' => "Entrez un ou plusieurs mots séparés par un espace", | |
541 | - 'default' => $searchfor | |
542 | - ]); | |
543 | - /* | |
544 | - echo $this->Form->submit('Chercher', [ | |
545 | - 'name' => 'MaterielSAll', | |
546 | - 'id' => 'MaterielSAll', | |
547 | - 'style' => 'margin: 0px;' | |
548 | - ]); | |
549 | - */ | |
550 | -echo $this->Form->end(); | |
603 | +// Search field | |
604 | +echo "\n"; | |
605 | +echo "\n"; | |
606 | +$displaySearchField($params, $searchfor, $this->Html, $this->Form); | |
607 | +echo "\n"; | |
608 | +echo "\n"; | |
551 | 609 | |
552 | 610 | // DEBUT FORMULAIRE |
553 | 611 | ... | ... |