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,12 +70,19 @@ Outre ces changements, voici d'autres changements importants : | ||
70 | - Une VM linux (Ubuntu) est désormais disponible pour faciliter le déploiement | 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 | ======= CHANGES ======= | 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 | 30/07/2020 v3.7.9.78-82 (EP) | 86 | 30/07/2020 v3.7.9.78-82 (EP) |
80 | - (i) Meilleure résilience (reprise après crash) du script UPDATE avec fichier ftpf (install/files_to_process.txt file) | 87 | - (i) Meilleure résilience (reprise après crash) du script UPDATE avec fichier ftpf (install/files_to_process.txt file) |
81 | => permet de s'assurer que les script sql non exécutés (à cause crash ou stop script) le seront à l'itération suivante | 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,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 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) | 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,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 | <div class="actions" style="width: 100%; float: none; padding: 0 0;"> | 140 | <div class="actions" style="width: 100%; float: none; padding: 0 0;"> |
81 | <?php | 141 | <?php |
@@ -99,13 +159,19 @@ $displayStatusButtons = function($SELECTED_STATUS, $nbMateriels, $html) { | @@ -99,13 +159,19 @@ $displayStatusButtons = function($SELECTED_STATUS, $nbMateriels, $html) { | ||
99 | } else $b_all = $SELECTED; | 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 | //$args = explode('?',$_SERVER['REQUEST_URI']); | 169 | //$args = explode('?',$_SERVER['REQUEST_URI']); |
105 | //$args = count($args)==2 ? '?'.$args[1] : null; | 170 | //$args = count($args)==2 ? '?'.$args[1] : null; |
106 | $params = $this->request->getParam('?'); | 171 | $params = $this->request->getParam('?'); |
107 | // S'il y a des paramètres, supprimer le paramètre 'page' car inapproprié | 172 | // S'il y a des paramètres, supprimer le paramètre 'page' car inapproprié |
108 | if ($params) unset($params['page']); | 173 | if ($params) unset($params['page']); |
174 | + */ | ||
109 | 175 | ||
110 | //echo $this->Html->link($b_all . ' Tous', [ | 176 | //echo $this->Html->link($b_all . ' Tous', [ |
111 | echo $html->link($b_all . ' Tous', [ | 177 | echo $html->link($b_all . ' Tous', [ |
@@ -480,6 +546,18 @@ $displayActionButtonsForMateriel = function($materiel, $username, $USER_IS_RESPO | @@ -480,6 +546,18 @@ $displayActionButtonsForMateriel = function($materiel, $username, $USER_IS_RESPO | ||
480 | 546 | ||
481 | }; // displayActionButtonsForMateriel | 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,7 +589,7 @@ echo $this->Html->link('<i class="icon-plus"></i> Nouveau Matériel', [ | ||
511 | 'escape' => false | 589 | 'escape' => false |
512 | ]); | 590 | ]); |
513 | echo '</p>';*/ | 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 | //</div> | 593 | //</div> |
516 | 594 | ||
517 | 595 | ||
@@ -522,32 +600,12 @@ $displaySelectors($this->Form, $this->request, $displayNbLinesSelector, $display | @@ -522,32 +600,12 @@ $displaySelectors($this->Form, $this->request, $displayNbLinesSelector, $display | ||
522 | 600 | ||
523 | // Formulaire de RECHERCHE de materiels | 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 | // DEBUT FORMULAIRE | 610 | // DEBUT FORMULAIRE |
553 | 611 |