Commit f63eabb232f4ea12e5ac987606477ee62ded11b4
1 parent
f18c8ee2
Exists in
master
and in
1 other branch
Gestion plus simple des catégories, domaines, et sous-catégories...
Mais aussi : - chaque utilisateur peut voir sa fiche profil - liste utilisateurs triée par le nom-pnom (par défaut) - doc attaché "nom" => "nom du doc" (plus explicite) v5.2.22-3.7.9
Showing
21 changed files
with
262 additions
and
109 deletions
Show diff stats
CHANGELOG
... | ... | @@ -353,10 +353,17 @@ Commencer à implémenter le nouveau workflow v5 : |
353 | 353 | ======= TODO ======= |
354 | 354 | |
355 | 355 | PRIO : |
356 | - - vincent (changer nom doc) | |
357 | 356 | - config via page web !!! |
358 | 357 | - tests ok |
359 | 358 | |
359 | + *) Stats de connexion | |
360 | + - le tri des autres colonnes ne marche plus | |
361 | + | |
362 | + *) | |
363 | + Rendre modifiable la config via page web "Gérer les champs obligatoires" | |
364 | + - OFF_nom_du_champ : 'libellé' | |
365 | + - Restaurer la config par défaut | |
366 | + - Réactiver une variable : OFF_nom_du_champ => nom_du_champ | |
360 | 367 | |
361 | 368 | *) SUPERADMIN |
362 | 369 | => par défaut, au minimum, mêmes droits que ADMIN |
... | ... | @@ -370,27 +377,23 @@ Commencer à implémenter le nouveau workflow v5 : |
370 | 377 | - numéro inventaire (hidden par défaut pour l'édition) |
371 | 378 | - ... |
372 | 379 | |
380 | + *) Terminer la vue index générique : | |
381 | + - AppController->index_generic() | |
382 | + - Template/Common/indexgen.ctp | |
383 | + | |
373 | 384 | |
374 | 385 | *) => update matos lifecycle diag |
375 | 386 | |
376 | 387 | *) Vincent : |
377 | - - (admin) supprimer photo d'un matos validé | |
378 | - - j'ai lié un mauvaise photo à un matériel déjà validé. | |
379 | - Je souhaiterais la supprimer mais le matériel étant validé, je n'ai pas l'autorisation. | |
380 | 388 | - email pas trouvé (ancienne fiche de vincent) |
381 | - - photos : | |
382 | - - "nom" => "nom du doc" | |
383 | - - et doit être modifiable ! | |
384 | - | |
385 | - *) Gérer categ/s-categ plus facilement | |
389 | + - doc attaché : nom doit être modifiable | |
386 | 390 | |
387 | - *) (b) Users list : tri alpha par défaut | |
388 | - | |
389 | 391 | *) Resp : |
390 | 392 | - voir menus Outils & Autres (ou pas) ? |
391 | 393 | - respb de qqch !!! |
392 | 394 | |
393 | 395 | *) qqsoit user : doit pouvoir voir sa fiche user (no modif) |
396 | + => mais pas celle des autres... | |
394 | 397 | |
395 | 398 | *) TESTS !!!! |
396 | 399 | *) Les tests doivent se faire avec la config par défaut (et non pas celle spécifique du labo) |
... | ... | @@ -402,10 +405,6 @@ Commencer à implémenter le nouveau workflow v5 : |
402 | 405 | (quelle diff avec "[LabInvent] Ajout d'un matériel" ??) |
403 | 406 | |
404 | 407 | |
405 | - | |
406 | - *) Stats de connexion | |
407 | - - le tri des autres colonnes ne marche plus | |
408 | - | |
409 | 408 | *) |
410 | 409 | TBO ou ARCHIVED (= validated) : ne pas autoriser edit ou delete des docs attachés |
411 | 410 | Autoriser certaines choses pour TBO : |
... | ... | @@ -423,18 +422,8 @@ Commencer à implémenter le nouveau workflow v5 : |
423 | 422 | Facture jointe (si > 10K) |
424 | 423 | Détail lieu stockage + S/N demandé ssi > 10K€ |
425 | 424 | |
426 | - | |
427 | - | |
428 | - | |
429 | 425 | |
430 | 426 | *) |
431 | - Rendre modifiable la config via page web "Gérer les champs obligatoires" | |
432 | - - OFF_nom_du_champ : 'libellé' | |
433 | - - Restaurer la config par défaut | |
434 | - - Réactiver une variable : OFF_nom_du_champ => nom_du_champ | |
435 | - | |
436 | - | |
437 | - *) | |
438 | 427 | Procédures pour les utilisateurs et les gestionnaires désormais configurable via le fichier de conf |
439 | 428 | |
440 | 429 | |
... | ... | @@ -465,6 +454,13 @@ Commencer à implémenter le nouveau workflow v5 : |
465 | 454 | ======= CHANGES ======= |
466 | 455 | |
467 | 456 | ------- |
457 | +02/11/2021 v5.2.22-3.7.9 | |
458 | + - (e) gestion plus simple des catégories, domaines, et sous-catégories | |
459 | + - (e) chaque utilisateur peut voir sa fiche profil | |
460 | + - (e) liste utilisateurs triée par le nom-pnom (par défaut) | |
461 | + - (e) doc attaché "nom" => "nom du doc" (plus explicite) | |
462 | + | |
463 | +------- | |
468 | 464 | 27/10/2021 v5.2.21-3.7.9 |
469 | 465 | - (i) Amélioration du fichier de config des champs matériels (généralisation pour les docs attachés et champs recommandés) |
470 | 466 | => on peut maintenant préciser, à chaque étape, TOUT type important de doc attaché (devis, BC, BL, facture) comme étant obligatoire ou non modifiable ni supprimable | ... | ... |
README.md
... | ... | @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes : |
52 | 52 | |
53 | 53 | -------------------------------------------------------------------------------------------- |
54 | 54 | |
55 | -Date: 27/10/2021 | |
56 | -Version: v5.2.21-3.7.9 | |
55 | +Date: 02/11/2021 | |
56 | +Version: v5.2.22-3.7.9 | |
57 | 57 | |
58 | 58 | |
59 | 59 | HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) | ... | ... |
src/Controller/AppController.php
... | ... | @@ -2082,8 +2082,36 @@ class AppController extends Controller |
2082 | 2082 | |
2083 | 2083 | } // beforeFilter() |
2084 | 2084 | |
2085 | + | |
2086 | + /** | |
2087 | + * Index method | |
2088 | + * | |
2089 | + * @return \Cake\Network\Response|null | |
2090 | + * TODO: à terminer... | |
2091 | + */ | |
2092 | + public function index_generic($entity_plural, $fields_names) | |
2093 | + { | |
2094 | + $controller_name = $this->getName(); | |
2095 | + //debug($controller_name); | |
2096 | + | |
2097 | + $this->paginate = [ | |
2098 | + 'contain' => [ | |
2099 | + 'SurCategories' | |
2100 | + ] | |
2101 | + ]; | |
2102 | + //$categories = $this->paginate($this->Categories); | |
2103 | + $entities = $this->paginate($this->$controller_name); | |
2104 | + | |
2105 | + $this->set(compact('entities', 'entity_plural', 'fields_names')); | |
2106 | + | |
2107 | + /* (EP) Pas nécessaire | |
2108 | + $this->set('_serialize', [ | |
2109 | + 'categories' | |
2110 | + ]); | |
2111 | + */ | |
2112 | + } | |
2085 | 2113 | |
2086 | - public function index_generic($group_type1, $group_type2, $lab_website_url=null) { | |
2114 | + public function index_groups($group_type1, $group_type2, $lab_website_url=null) { | |
2087 | 2115 | |
2088 | 2116 | // https://book.cakephp.org/3/fr/controllers/components/pagination.html |
2089 | 2117 | $groups = $this->paginate(); |
... | ... | @@ -2108,7 +2136,7 @@ class AppController extends Controller |
2108 | 2136 | |
2109 | 2137 | //public function view_generic($id, $associated_entity_types, $parent_entity_controller_name=[]) { |
2110 | 2138 | //public function view_generic($id, $associated_entity_types, $containavirer=[]) { |
2111 | - public function view_generic($id, $child_entity_types=[]) { | |
2139 | + public function view_generic($id, $child_entity_types=[], $sub_controller=null, $sub_controller_singular=null) { | |
2112 | 2140 | |
2113 | 2141 | //debug($contain_children); |
2114 | 2142 | // ex: SurCategories |
... | ... | @@ -2374,6 +2402,8 @@ class AppController extends Controller |
2374 | 2402 | $entity_name = $entity->$entity_name_field_label; |
2375 | 2403 | $this->set(compact( |
2376 | 2404 | |
2405 | + 'id', | |
2406 | + | |
2377 | 2407 | 'fields_label', |
2378 | 2408 | |
2379 | 2409 | // Infos sur l'entité courante |
... | ... | @@ -2388,7 +2418,11 @@ class AppController extends Controller |
2388 | 2418 | //'parent_entity_name','parent_entity_id', |
2389 | 2419 | |
2390 | 2420 | // Infos sur les entités associées |
2391 | - 'child_entities_list' | |
2421 | + 'child_entities_list', | |
2422 | + | |
2423 | + // Optionnel : sous-controleur pour pouvoir ajouter une sous-entité (ex: ajouter une sous-catégorie à une catégorie) | |
2424 | + 'sub_controller', | |
2425 | + 'sub_controller_singular' | |
2392 | 2426 | |
2393 | 2427 | )); |
2394 | 2428 | //debug($this->viewVars);exit; |
... | ... | @@ -2405,6 +2439,7 @@ class AppController extends Controller |
2405 | 2439 | */ |
2406 | 2440 | } // view_generic() |
2407 | 2441 | |
2442 | + | |
2408 | 2443 | /** |
2409 | 2444 | * Add or Edit generic method (do either add() or edit()) |
2410 | 2445 | * => Factorisation de add() et edit() |
... | ... | @@ -2907,7 +2942,10 @@ class AppController extends Controller |
2907 | 2942 | // Pass this function to all views |
2908 | 2943 | //function echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) { |
2909 | 2944 | //$echoActionButton = function($html, $icon_class, $buttonStyle='', $title, $controller='', $action, $id, $other_args=[], $tip='', $confirmMessage='') { |
2910 | - $getActionButton = function($html, $icon_class, $buttonStyle, $title, $controller, $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='') { | |
2945 | + $getActionButton = function( | |
2946 | + $html, $icon_class, $buttonStyle, | |
2947 | + $title, $controller, $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='' | |
2948 | + ) { | |
2911 | 2949 | if ($controller=='') $controller='materiels'; |
2912 | 2950 | $controllerArgs = []; |
2913 | 2951 | $controllerArgs['controller'] = $controller; | ... | ... |
src/Controller/CategoriesController.php
... | ... | @@ -101,6 +101,16 @@ class CategoriesController extends AppController |
101 | 101 | */ |
102 | 102 | public function index() |
103 | 103 | { |
104 | + | |
105 | + $this->index_generic( | |
106 | + 'catégories', | |
107 | + [ | |
108 | + 'nom'=>'Nom', | |
109 | + 'sur_categorie_id' => 'Domaine', | |
110 | + ] | |
111 | + ); | |
112 | + | |
113 | + /* | |
104 | 114 | $this->paginate = [ |
105 | 115 | 'contain' => [ |
106 | 116 | 'SurCategories' |
... | ... | @@ -112,6 +122,7 @@ class CategoriesController extends AppController |
112 | 122 | $this->set('_serialize', [ |
113 | 123 | 'categories' |
114 | 124 | ]); |
125 | + */ | |
115 | 126 | } |
116 | 127 | |
117 | 128 | /** |
... | ... | @@ -130,7 +141,7 @@ class CategoriesController extends AppController |
130 | 141 | //return parent::view($id, $associated_entity_types); |
131 | 142 | //return $this->view_generic($id, $associated_entity_types, 'SurCategories'); |
132 | 143 | //return $this->view_generic($id, $child_entity_types, ['SurCategories']); |
133 | - return $this->view_generic($id, $child_entity_types); | |
144 | + return $this->view_generic($id, $child_entity_types, 'sous-categories', ' une sous-catégorie'); | |
134 | 145 | |
135 | 146 | /* |
136 | 147 | $category = $this->Categories->get($id, [ |
... | ... | @@ -160,8 +171,10 @@ class CategoriesController extends AppController |
160 | 171 | * |
161 | 172 | * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. |
162 | 173 | */ |
163 | - public function add() | |
174 | + //public function add() | |
175 | + public function add($parent_id=null) | |
164 | 176 | { |
177 | + //debug($parent_id); | |
165 | 178 | $category = $this->Categories->newEntity(); |
166 | 179 | if ($this->request->is('post')) { |
167 | 180 | $category = $this->Categories->patchEntity($category, $this->request->getData()); | ... | ... |
src/Controller/GroupesMetiersController.php
src/Controller/GroupesThematiquesController.php
... | ... | @@ -71,7 +71,7 @@ class GroupesThematiquesController extends AppController |
71 | 71 | */ |
72 | 72 | public function index() { |
73 | 73 | |
74 | - $this->index_generic( | |
74 | + $this->index_groups( | |
75 | 75 | 'thematique', 'thématique', |
76 | 76 | "https://www.irap.omp.eu/homepage/organisation/groupes-thematiques" |
77 | 77 | ); | ... | ... |
src/Controller/SousCategoriesController.php
... | ... | @@ -146,7 +146,7 @@ class SousCategoriesController extends AppController |
146 | 146 | * |
147 | 147 | * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. |
148 | 148 | */ |
149 | - public function add() | |
149 | + public function add($parent_id=null) | |
150 | 150 | { |
151 | 151 | $sousCategory = $this->SousCategories->newEntity(); |
152 | 152 | if ($this->request->is('post')) { | ... | ... |
src/Controller/SurCategoriesController.php
... | ... | @@ -195,7 +195,8 @@ class SurCategoriesController extends AppController |
195 | 195 | 'Materiels' |
196 | 196 | ]; |
197 | 197 | //return parent::view($id, $associated_entity_types); |
198 | - return $this->view_generic($id, $child_entity_types); | |
198 | + return $this->view_generic($id, $child_entity_types, 'categories', ' une catégorie'); | |
199 | + | |
199 | 200 | } |
200 | 201 | |
201 | 202 | ... | ... |
src/Template/Categories/add.ctp
1 | +<?php | |
2 | +// add/id pour préciser d'ajouter cette catégorie dans le domaine numéro id | |
3 | +$parent_id = isset($this->request->getParam('pass')[0]) ? $this->request->getParam('pass')[0] : null; | |
4 | +?> | |
1 | 5 | |
2 | 6 | <div class="categories form col-lg-5 col-md-7 col-sm-9"> |
3 | 7 | <?= $this->Form->create($category) ?> |
... | ... | @@ -9,7 +13,8 @@ |
9 | 13 | echo $this->Form->control('nom'); |
10 | 14 | echo $this->Form->control('sur_categorie_id', [ |
11 | 15 | 'label' => 'Domaine', |
12 | - 'options' => $surCategories | |
16 | + 'options' => $surCategories, | |
17 | + 'default' => $parent_id, | |
13 | 18 | ]); |
14 | 19 | ?> |
15 | 20 | </fieldset> | ... | ... |
src/Template/Categories/index.ctp
1 | - | |
2 | -<div class="categories index"> | |
3 | - | |
4 | - <?php echo '<h2><i class="icon-list"></i> Liste des catégories</h2>'; ?> | |
5 | - | |
6 | - <?=$this->element('button_add'); ?> | |
7 | - | |
8 | - <table style="border-collapse: separate; border-spacing: 0;width: 270px;"> | |
9 | - <thead> | |
10 | - <tr> | |
11 | - <th class="actions"><?= __('') ?></th> | |
12 | - <th><?= $this->Paginator->sort('nom', 'Nom') ?></th> | |
13 | - <th><?= $this->Paginator->sort('sur_categorie_id', 'Domaine') ?></th> | |
14 | - | |
15 | - </tr> | |
16 | - </thead> | |
17 | - <tbody> | |
18 | - <?php foreach ($categories as $category): ?> | |
19 | - <tr> | |
20 | - <td class="actions" style="padding: 6px 0; text-align: left;"> | |
21 | - <?php if (in_array($role, ['Administration Plus', 'Super Administrateur'])) { ?> | |
22 | - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $category->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> | |
23 | - <?php } ?> | |
24 | - | |
25 | - <?php if (in_array($role, ['Super Administrateur'])) { ?> | |
26 | - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $category->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $category->id)]) ?> | |
27 | - <?php } ?> | |
28 | - </td> | |
29 | - | |
30 | - <td class="smallText"><?= $this->Html->link($category->nom, ['action' => 'view', $category->id]) ?></td> | |
31 | - <td class="smallText"><?= $category->has('sur_category') ? $this->Html->link($category->sur_category->nom, ['controller' => 'SurCategories', 'action' => 'view', $category->sur_category->id]) : '' ?></td> | |
32 | - | |
33 | - | |
34 | - | |
35 | - </tr> | |
36 | - <?php endforeach; ?> | |
37 | - </tbody> | |
38 | - </table> | |
39 | - | |
40 | - <?php echo $this->element('pagination_with_first_and_last'); ?> | |
41 | - | |
42 | - | |
43 | -</div> | |
44 | - | |
45 | -<!-- | |
46 | -<div class="actions"> | |
47 | - <php echo $this->element('menu') ?> | |
48 | - <php | |
49 | - | |
50 | -echo $this->element('menu_index', [ | |
51 | - 'pluralHumanName' => 'Catégories', | |
52 | - 'singularHumanName' => 'Catégorie' | |
53 | -])?> | |
54 | - </div> | |
55 | ---> | |
56 | - | |
1 | +<?php | |
2 | +$this->extend('/Common/index_gen'); | |
57 | 3 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,87 @@ |
1 | +<?php | |
2 | + | |
3 | +$DEBUG=false; | |
4 | +//$DEBUG=true; | |
5 | + | |
6 | +// Variables passées par le contrôleur | |
7 | +$role = $role; | |
8 | +$entities = $entities; | |
9 | +$entity_plural = $entity_plural; | |
10 | +$fields_names = $fields_names; | |
11 | + | |
12 | +?> | |
13 | + | |
14 | +<div class="entities index"> | |
15 | + | |
16 | + <?php echo "<h2><i class='icon-list'></i> Liste des $entity_plural</h2>"; ?> | |
17 | + | |
18 | + <?=$this->element('button_add'); ?> | |
19 | + | |
20 | + <table style="border-collapse: separate; border-spacing: 0;width: 270px;"> | |
21 | + | |
22 | + <thead> | |
23 | + <tr> | |
24 | + <th class="actions"><?= __('') ?></th> | |
25 | + <!-- | |
26 | + <th><?= $this->Paginator->sort('sur_categorie_id', 'Domaine') ?></th> | |
27 | + --> | |
28 | + <?php | |
29 | + foreach ($fields_names as $fname=>$fnicename) | |
30 | + echo "<th>".$this->Paginator->sort($fname, $fnicename)."</th>"; | |
31 | + ?> | |
32 | + </tr> | |
33 | + </thead> | |
34 | + | |
35 | + <tbody> | |
36 | + <?php foreach ($entities as $e): ?> | |
37 | + <tr> | |
38 | + | |
39 | + <!-- | |
40 | + Actions edit / delete | |
41 | + --> | |
42 | + <td class="actions" style="padding: 6px 0; text-align: left;"> | |
43 | + <?php if (in_array($role, ['Administration Plus', 'Super Administrateur'])) { ?> | |
44 | + <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $e->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> | |
45 | + <?php } ?> | |
46 | + | |
47 | + <?php if (in_array($role, ['Super Administrateur'])) { ?> | |
48 | + <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $e->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $e->id)]) ?> | |
49 | + <?php } ?> | |
50 | + </td> | |
51 | + | |
52 | + <!-- | |
53 | + Data | |
54 | + --> | |
55 | + <td class="smallText"><?= $this->Html->link($e->nom, ['action' => 'view', $e->id]) ?></td> | |
56 | + <td class="smallText"><?= $e->has('sur_category') ? $this->Html->link($e->sur_category->nom, ['controller' => 'SurCategories', 'action' => 'view', $e->sur_category->id]) : '' ?></td> | |
57 | + <?php | |
58 | + /* | |
59 | + //TODO: | |
60 | + foreach ($e->toArray() as $fname=>$fval) { | |
61 | + } | |
62 | + */ | |
63 | + ?> | |
64 | + | |
65 | + </tr> | |
66 | + <?php endforeach; ?> | |
67 | + </tbody> | |
68 | + | |
69 | + </table> | |
70 | + | |
71 | + <?php echo $this->element('pagination_with_first_and_last'); ?> | |
72 | + | |
73 | + | |
74 | +</div> | |
75 | + | |
76 | +<!-- | |
77 | +<div class="actions"> | |
78 | + <php echo $this->element('menu') ?> | |
79 | + <php | |
80 | + | |
81 | +echo $this->element('menu_index', [ | |
82 | + 'pluralHumanName' => 'Catégories', | |
83 | + 'singularHumanName' => 'Catégorie' | |
84 | +])?> | |
85 | + </div> | |
86 | +--> | |
87 | + | ... | ... |
src/Template/Common/index.ctp renamed to src/Template/Common/index_groups.ctp
src/Template/Common/view.ctp
1 | -<?php | |
1 | +<?php | |
2 | +/* | |
2 | 3 | use App\Controller\SurCategoriesController; |
3 | -use App\Model\Entity\SurCategory; | |
4 | 4 | use Cake\ORM\Entity; |
5 | 5 | use App\Model\Entity\GroupesThematique; |
6 | 6 | use App\Model\Entity\GroupesMetier; |
7 | +*/ | |
7 | 8 | |
8 | 9 | $DEBUG=false; |
9 | 10 | //$DEBUG=true; |
10 | 11 | |
11 | -// Variables passées par le contrôleur | |
12 | +// Arguments passés par le contrôleur | |
12 | 13 | |
13 | 14 | $role = $role; |
14 | 15 | |
16 | +$id = $id; | |
17 | + | |
15 | 18 | $entity = $entity; |
16 | 19 | //debug($entity); |
17 | 20 | //$parent_entity_infos=$parent_entity_infos; |
... | ... | @@ -34,6 +37,12 @@ $entity_name = $entity_name; |
34 | 37 | // En général, par défaut : "Matériels associés" et "Utilisateurs associés" |
35 | 38 | $child_entities_list = $child_entities_list; |
36 | 39 | |
40 | +// OPTIONNELS | |
41 | +if (isset($sub_controller)) { | |
42 | + $sub_controller = $sub_controller; | |
43 | + $sub_controller_singular = $sub_controller_singular; | |
44 | +} | |
45 | + | |
37 | 46 | // Fonctions |
38 | 47 | //$displayElement = $displayElement; |
39 | 48 | |
... | ... | @@ -70,7 +79,8 @@ $child_entities_list = $child_entities_list; |
70 | 79 | |
71 | 80 | // Lien Editer |
72 | 81 | if (in_array($role, [ |
73 | - 'Administration Plus', | |
82 | + //'Administration Plus', | |
83 | + 'Administration', | |
74 | 84 | 'Super Administrateur' |
75 | 85 | ])) { |
76 | 86 | echo $this->Html->link(__('<i class="icon-pencil"></i> Editer'), [ |
... | ... | @@ -100,7 +110,7 @@ $child_entities_list = $child_entities_list; |
100 | 110 | } |
101 | 111 | |
102 | 112 | /* |
103 | - * I - Affichage des champs de l'entité (nom, description) | |
113 | + * I - Affichage des champs de l'entité (nom, description, ...) | |
104 | 114 | * |
105 | 115 | * avec les entités associées "PARENTES" (groupes metier/thema, projet, user, ...) |
106 | 116 | */ |
... | ... | @@ -197,6 +207,26 @@ $child_entities_list = $child_entities_list; |
197 | 207 | ?> |
198 | 208 | |
199 | 209 | |
210 | + <!-- Bouton "Ajouter" pour ajouter un nouvel élément (ssi autorisé) --> | |
211 | + <?php | |
212 | + if (isset($sub_controller)) { | |
213 | + echo $this->element('button_add', compact( | |
214 | + 'id', | |
215 | + 'sub_controller', | |
216 | + 'sub_controller_singular' | |
217 | + )); | |
218 | + /* | |
219 | + echo $this->element('button_add', [ | |
220 | + 'id' => $id, | |
221 | + 'sub_controller' => $sub_controller, | |
222 | + 'sub_controller_singular' => $sub_controller_singular | |
223 | + ]); | |
224 | + */ | |
225 | + //echo "<br />"; | |
226 | + } | |
227 | + ?> | |
228 | + | |
229 | + | |
200 | 230 | <!-- II - Affichage des entités associées "ENFANTS" (matériels, utilisateurs, ...) --> |
201 | 231 | |
202 | 232 | <?php | ... | ... |
src/Template/Documents/add_edit.ctp
... | ... | @@ -147,8 +147,12 @@ if (isset($photo)) { |
147 | 147 | // (Malik) |
148 | 148 | // EDIT only : On met le nom du doc en read only vu qu'il apparait dans le nom du fichier sur le serveur |
149 | 149 | // et une opération pour remodifier ces fichiers peut être complexe |
150 | - echo $this->Form->control('nom', ['readonly' => !$IS_ADD]); | |
151 | - | |
150 | + //echo $this->Form->control('nom', ['readonly' => !$IS_ADD]); | |
151 | + echo $this->Form->control('nom',[ | |
152 | + 'label' => 'Nom du doc attaché', | |
153 | + 'readonly' => !$IS_ADD | |
154 | + ]); | |
155 | + | |
152 | 156 | // - Type (hidden si photo) |
153 | 157 | echo "<i>(Si vous choisissez le type 'Photo', ce document sera affiché en tête de la fiche du $parent_type associé)</i>"; |
154 | 158 | $control = 'control'; | ... | ... |
src/Template/Element/button_add.ctp
1 | 1 | <!-- Bouton "Ajouter" pour ajouter un nouvel élément (ssi autorisé) --> |
2 | 2 | |
3 | +<?php | |
4 | +// Arguments passées à cet Element | |
5 | +$role = $role; | |
6 | +// optionnels : | |
7 | +$id = isset($id) ? $id : null; | |
8 | +if (isset($sub_controller)) { | |
9 | + $sub_controller = $sub_controller; | |
10 | + $sub_controller_singular = $sub_controller_singular; | |
11 | +} | |
12 | +?> | |
13 | + | |
3 | 14 | <div id="boutons" class="actions" style="margin-bottom:5px; width:100%; float:none; padding:5px 0;"> |
4 | 15 | <?php |
16 | + $controller = $this->request->controller; | |
17 | + $entities_name = ''; | |
18 | + if (isset($sub_controller)) { | |
19 | + $controller = $sub_controller; | |
20 | + $entities_name = $sub_controller_singular; | |
21 | + } | |
5 | 22 | //echo $this->request->controller; |
6 | 23 | //$entity = $this->request->controller; // controller name (Sites, Suivis, Organismes, ...) |
7 | 24 | $bStyle = 'margin-right: 10px'; |
... | ... | @@ -14,6 +31,6 @@ |
14 | 31 | //in_array($singularHumanName, ['Matériel','Suivi','Emprunt','Fournisseur']) |
15 | 32 | in_array($this->request->controller, ['Materiels','Suivis','Emprunts','Fournisseurs']) |
16 | 33 | ); |
17 | - if ($CAN_ADD) $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Ajouter', $this->request->controller, 'add', null); | |
34 | + if ($CAN_ADD) $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Ajouter'.$entities_name, $controller, 'add', $id); | |
18 | 35 | ?> |
19 | 36 | </div> | ... | ... |
src/Template/GroupesMetiers/index.ctp
src/Template/GroupesThematiques/index.ctp
src/Template/Layout/default.ctp
1 | 1 | <?php |
2 | 2 | |
3 | +// Voir toutes les variables passées à cette vue : | |
4 | +//debug($this->viewVars); | |
5 | + | |
3 | 6 | /** |
4 | 7 | |
5 | 8 | Logiciel LabInvent - Inventaire des matériels d'un laboratoire |
... | ... | @@ -203,8 +206,14 @@ $this->append('script', $this->Html->script(['script', 'DatepickerConfig', 'onTa |
203 | 206 | <div class="offset-lg-6 col-lg-4 user"> |
204 | 207 | <?php |
205 | 208 | if (isset($username) && $username != " ") { |
206 | - echo 'Bienvenue ' . $username . '<br/>'; | |
207 | - echo $role . '<br/>'; | |
209 | + //echo 'Bienvenue ' . $username . '<br/>'; | |
210 | + echo 'Bienvenue '.$this->Html->link($username, [ | |
211 | + 'controller' => 'Users', | |
212 | + 'action' => 'view', | |
213 | + $priviledgedUser->id | |
214 | + //$user->id, | |
215 | + ]).'<br/>'; | |
216 | + echo "<i>(profil $role)</i>" . '<br/>'; | |
208 | 217 | echo $this->Html->link('Se déconnecter', [ |
209 | 218 | 'controller' => 'Users', |
210 | 219 | 'action' => 'logout' | ... | ... |
src/Template/Pages/tools.ctp
... | ... | @@ -139,7 +139,7 @@ $no_limit_mode = $no_limit_mode; |
139 | 139 | //if ($role == 'Super Administrateur') : |
140 | 140 | if ($USER_IS_SUPERADMIN) : |
141 | 141 | |
142 | - $this->MyHelper->echoMenuItemWithIcon("user.jpg", "Gérer les utilisateurs", 'users'); | |
142 | + $this->MyHelper->echoMenuItemWithIcon("user.jpg", "Gérer les utilisateurs", 'users?sort=nom&direction=asc'); | |
143 | 143 | /* |
144 | 144 | echo '<tr><td>'; |
145 | 145 | //echo $this->Html->link('Gérer les utilisateurs privilégiés', [ | ... | ... |
src/Template/SousCategories/add.ctp
1 | +<?php | |
2 | +// add/id pour préciser d'ajouter cette sous-catégorie dans la catégorie numéro id | |
3 | +$parent_id = isset($this->request->getParam('pass')[0]) ? $this->request->getParam('pass')[0] : null; | |
4 | +?> | |
1 | 5 | |
2 | 6 | <div class="sousCategories form"> |
3 | 7 | <?= $this->Form->create($sousCategory) ?> |
... | ... | @@ -9,7 +13,8 @@ |
9 | 13 | echo $this->Form->control('nom'); |
10 | 14 | echo $this->Form->control('categorie_id', [ |
11 | 15 | 'label' => 'Catégorie', |
12 | - 'options' => $categories | |
16 | + 'options' => $categories, | |
17 | + 'default' => $parent_id, | |
13 | 18 | ]); |
14 | 19 | ?> |
15 | 20 | </fieldset> | ... | ... |
src/Template/Users/index.ctp
... | ... | @@ -30,7 +30,9 @@ $nbUsers = $this->Paginator->param('count'); |
30 | 30 | //'controller' => 'users', |
31 | 31 | //'action' => 'indexRecap', |
32 | 32 | //'sort' => 'sur_categorie_id', |
33 | - 'filtre' => $new_filtre | |
33 | + 'sort' => 'nom', | |
34 | + 'direction' => 'asc', | |
35 | + 'filtre' => $new_filtre, | |
34 | 36 | ]); |
35 | 37 | echo "<br/><br/>"; |
36 | 38 | ?> | ... | ... |