Commit 4cf3322fbededfda923cf19c3ce33f73a71f4ea3

Authored by Etienne Pallier
1 parent b5bb5258
Exists in master and in 1 other branch dev

Suivis : Amélioration et nombreux Bugfixes !!! (1) (v3.7.9.8)

- pb javascript si métrologie
- ajout intitulé comme titre
- vue édition : champs trop larges, champs éditables, champs inutiles...
- ...
@@ -53,13 +53,16 @@ Logiciel testé et validé sur les configurations suivantes : @@ -53,13 +53,16 @@ Logiciel testé et validé sur les configurations suivantes :
53 53
54 VERSION ACTUELLE 54 VERSION ACTUELLE
55 55
56 -Date: 23/03/2020  
57 -Version: 3.7.9.7 56 +Date: 24/03/2020
  57 +Version: 3.7.9.8
58 Author: EP 58 Author: EP
59 -Commentaire: Amélioration de la gestion des docs attachés (3)  
60 - - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables  
61 - - TODO : faire la meme chose pour toutes les vues add et edit des différents objets (materiel, suivi, emprunt...)  
62 - 59 +Commentaire: Suivis : Amélioration et nombreux Bugfixes !!! (1)
  60 + - pb javascript si métrologie
  61 + - ajout intitulé comme titre
  62 + - vue édition : champs trop larges, champs éditables, champs inutiles...
  63 + - ...
  64 +
  65 +
63 IMPORTANT : 66 IMPORTANT :
64 - Pour connaitre la version actuelle, taper "./VERSION" 67 - Pour connaitre la version actuelle, taper "./VERSION"
65 - Pour mettre à jour le code, utiliser ./UPDATE depuis la racine du projet (ne plus se contenter de faire "git pull") 68 - Pour mettre à jour le code, utiliser ./UPDATE depuis la racine du projet (ne plus se contenter de faire "git pull")
@@ -93,6 +96,10 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https @@ -93,6 +96,10 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https
93 96
94 ----------------------------------------------------------------------------------------------------------- 97 -----------------------------------------------------------------------------------------------------------
95 98
  99 +23/03/2020 Version 3.7.9.7 (EP)
  100 + Amélioration de la gestion des docs attachés (3)
  101 + - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables
  102 + - TODO : faire la meme chose pour toutes les vues add et edit des différents objets (materiel, suivi, emprunt...)
96 103
97 20/03/2020 Version 3.7.9.6 (EP) 104 20/03/2020 Version 3.7.9.6 (EP)
98 Amélioration et nombreux bugfixes de la gestion des docs attachés (2) 105 Amélioration et nombreux bugfixes de la gestion des docs attachés (2)
src/Controller/AppController.php
@@ -902,6 +902,9 @@ class AppController extends Controller @@ -902,6 +902,9 @@ class AppController extends Controller
902 //if ($valeur != "") echo '<tr><td><strong>' . $nom . ' </strong></td>' . $balise . $valeur . '</td></tr>'; 902 //if ($valeur != "") echo '<tr><td><strong>' . $nom . ' </strong></td>' . $balise . $valeur . '</td></tr>';
903 if ($valeur!="") echo "<TR> <TD><strong>$nom</strong></TD> <$TD>$valeur</TD> </TR>"; 903 if ($valeur!="") echo "<TR> <TD><strong>$nom</strong></TD> <$TD>$valeur</TD> </TR>";
904 }; 904 };
  905 + $printTableRow = $displayElement;
  906 + $this->set(compact('printTableRow'));
  907 + //@deprecated
905 $this->set('displayElement', $displayElement); 908 $this->set('displayElement', $displayElement);
906 909
907 // Pass this function to all views 910 // Pass this function to all views
src/Controller/DocumentsController.php
@@ -197,19 +197,23 @@ class DocumentsController extends AppController @@ -197,19 +197,23 @@ class DocumentsController extends AppController
197 */ 197 */
198 public function view($id = null) 198 public function view($id = null)
199 { 199 {
  200 + // cf https://book.cakephp.org/3/fr/orm/retrieving-data-and-resultsets.html#eager-loading-associations
  201 + // Ceci permettra des accès du type $document->type_document->nom depuis la vue
200 $document = $this->Documents->get($id, [ 202 $document = $this->Documents->get($id, [
201 - 'contain' => [  
202 - 'TypeDocuments'  
203 - ] 203 + 'contain' => ['TypeDocuments']
204 ]); 204 ]);
205 - 205 +
  206 + /*
206 $materiel = $this->Documents->Materiels->find() 207 $materiel = $this->Documents->Materiels->find()
207 ->where([ 208 ->where([
208 'id =' => $document->materiel_id 209 'id =' => $document->materiel_id
209 ])->first(); 210 ])->first();
210 - 211 + */
  212 + // $materiel
  213 + $materiel = $this->Documents->Materiels->get($document->materiel_id);
211 if ($materiel != null) { 214 if ($materiel != null) {
212 $this->set('materiel', $materiel); 215 $this->set('materiel', $materiel);
  216 + // $suivi
213 } else { 217 } else {
214 $suivi = $this->Documents->Suivis->find() 218 $suivi = $this->Documents->Suivis->find()
215 ->where([ 219 ->where([
@@ -300,13 +304,13 @@ class DocumentsController extends AppController @@ -300,13 +304,13 @@ class DocumentsController extends AppController
300 $parent_id = $document->materiel_id; 304 $parent_id = $document->materiel_id;
301 305
302 if (!empty($parent_id)) { 306 if (!empty($parent_id)) {
303 - $doc_type = 'matériel'; 307 + $parent_type = 'matériel';
304 //$parent_name = $parent->designation." (id = $parent->id)"; 308 //$parent_name = $parent->designation." (id = $parent->id)";
305 $parent_controller = 'materiels'; 309 $parent_controller = 'materiels';
306 } 310 }
307 else { 311 else {
308 $parent_id = $document->suivi_id; 312 $parent_id = $document->suivi_id;
309 - $doc_type = 'suivi'; 313 + $parent_type = 'suivi';
310 //$parent_name = 'Suivi#'.$document->suivi_id; 314 //$parent_name = 'Suivi#'.$document->suivi_id;
311 $parent_controller = 'suivis'; 315 $parent_controller = 'suivis';
312 } 316 }
@@ -345,13 +349,13 @@ class DocumentsController extends AppController @@ -345,13 +349,13 @@ class DocumentsController extends AppController
345 /* 349 /*
346 //$id = $document->materiel_id; 350 //$id = $document->materiel_id;
347 if (!empty($parent_id)) { 351 if (!empty($parent_id)) {
348 - $doc_type = 'matériel'; 352 + $parent_type = 'matériel';
349 $parent_name = $parent->designation." (id = $parent->id)"; 353 $parent_name = $parent->designation." (id = $parent->id)";
350 //$parent_controller = 'materiels'; 354 //$parent_controller = 'materiels';
351 } 355 }
352 else { 356 else {
353 $parent_id = $document->suivi_id; 357 $parent_id = $document->suivi_id;
354 - $doc_type = 'suivi'; 358 + $parent_type = 'suivi';
355 $parent_name = 'Suivi#'.$document->suivi_id; 359 $parent_name = 'Suivi#'.$document->suivi_id;
356 //$parent_controller = 'suivis'; 360 //$parent_controller = 'suivis';
357 } 361 }
@@ -359,8 +363,9 @@ class DocumentsController extends AppController @@ -359,8 +363,9 @@ class DocumentsController extends AppController
359 $parent_name = $parent_controller=='materiels' ? 363 $parent_name = $parent_controller=='materiels' ?
360 $parent->designation." (id = $parent->id)" 364 $parent->designation." (id = $parent->id)"
361 : 365 :
362 - 'Suivi#'.$document->suivi_id;  
363 - $this->sendEmail($document, "[LabInvent] Ajout d'un document : $userName a ajouté un document de type '$nomType' au $doc_type $parent_name"); 366 + 'Suivi#'.$parent->id;
  367 + //'Suivi#'.$document->suivi_id;
  368 + $this->sendEmail($document, "[LabInvent] Ajout d'un document : $userName a ajouté un document de type '$nomType' au $parent_type $parent_name");
364 } // ADD 369 } // ADD
365 //$parent_controller = empty($parent_id) ? 'suivis' : 'materiels'; 370 //$parent_controller = empty($parent_id) ? 'suivis' : 'materiels';
366 return $this->redirect([ 371 return $this->redirect([
@@ -391,11 +396,11 @@ class DocumentsController extends AppController @@ -391,11 +396,11 @@ class DocumentsController extends AppController
391 396
392 // Set some variables for the view 397 // Set some variables for the view
393 $this->set(compact('parent')); 398 $this->set(compact('parent'));
394 - $doc_type = $PARENT_IS_MATOS ? 'matériel' : 'suivi';  
395 - $this->set(compact('doc_type'));  
396 - $this->set(compact('parent_controller'));  
397 - $parent_name = $PARENT_IS_MATOS ? $parent->designation." (id = $parent->id)" : 'Suivi#'.$document->suivi_id;  
398 - $this->set(compact('parent_name')); 399 + $parent_type = $PARENT_IS_MATOS ? 'matériel' : 'suivi';
  400 + //$parent_name = $PARENT_IS_MATOS ? $parent->designation." (id = $parent->id)" : 'Suivi#'.$document->suivi_id;
  401 + //$parent_name = $PARENT_IS_MATOS ? $parent->designation." (id = $parent->id)" : 'Suivi#'.$parent->id;
  402 + $parent_name = $PARENT_IS_MATOS ? $parent->designation." (id = $parent->id)" : "$parent->intitule (suivi#$parent->id)";
  403 + $this->set(compact('parent_type','parent_controller','parent_name'));
399 404
400 $IS_PHOTO = $IS_ADD ? 405 $IS_PHOTO = $IS_ADD ?
401 (isset($this->request->getAttribute('params')['pass'][2]) && $this->request->getAttribute('params')['pass'][2] == 'photo') 406 (isset($this->request->getAttribute('params')['pass'][2]) && $this->request->getAttribute('params')['pass'][2] == 'photo')
src/Controller/SuivisController.php
@@ -139,7 +139,7 @@ class SuivisController extends AppController @@ -139,7 +139,7 @@ class SuivisController extends AppController
139 $this->set('_serialize', [ 139 $this->set('_serialize', [
140 'suivis' 140 'suivis'
141 ]); 141 ]);
142 - } 142 + } // index
143 143
144 /** 144 /**
145 * View method 145 * View method
@@ -151,6 +151,8 @@ class SuivisController extends AppController @@ -151,6 +151,8 @@ class SuivisController extends AppController
151 */ 151 */
152 public function view($id = null) 152 public function view($id = null)
153 { 153 {
  154 + // cf https://book.cakephp.org/3/fr/orm/retrieving-data-and-resultsets.html#eager-loading-associations
  155 + // Ceci permettra des accès du type $suivi->type_suivi->nom, $suivi->materiel->nom... depuis la vue
154 $suivi = $this->Suivis->get($id, [ 156 $suivi = $this->Suivis->get($id, [
155 'contain' => [ 157 'contain' => [
156 'Materiels', 158 'Materiels',
@@ -169,17 +171,42 @@ class SuivisController extends AppController @@ -169,17 +171,42 @@ class SuivisController extends AppController
169 ], 171 ],
170 'order' => ('id DESC') 172 'order' => ('id DESC')
171 ]); 173 ]);
172 - if ($fichemet === null)  
173 - $fiche = $fichemet->first();  
174 - else  
175 - $fiche = null; 174 + $fiche = is_null($fichemet) ? null : $fichemet->first();
  175 + /*
176 $this->set('typeDocuments', $typeDocuments); 176 $this->set('typeDocuments', $typeDocuments);
177 $this->set('suivi', $suivi); 177 $this->set('suivi', $suivi);
178 $this->set('fiche', $fiche); 178 $this->set('fiche', $fiche);
  179 + */
  180 + /* (EP inutile)
179 $this->set('_serialize', [ 181 $this->set('_serialize', [
180 'suivi' 182 'suivi'
181 ]); 183 ]);
182 - } 184 + */
  185 + $IS_OWNER = $this->userName == $suivi->nom_createur;
  186 + //debug($this->priviledgedUser);
  187 + $CAN_EDIT_DELETE_LINK = (
  188 + $IS_OWNER || in_array($this->userRole, ['Administration','Administration Plus','Super Administrateur'])
  189 + //|| ($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur]))
  190 + //|| ($role == 'Responsable' && in_array($username, [$suivi->nom_createur]))
  191 + || (
  192 + $this->userRole == 'Responsable'
  193 + && (
  194 + (
  195 + isset($this->priviledgedUser->groupes_metier_id)
  196 + && $this->priviledgedUser->groupes_metier_id != $idGmNa
  197 + && $suivi->groupes_metier_id == $this->priviledgedUser->groupes_metier_id
  198 + )
  199 + ||
  200 + (
  201 + isset($this->priviledgedUser->groupe_thematique_id)
  202 + && $this->priviledgedUser->groupe_thematique_id != $idGtNa
  203 + && $suivi->groupes_thematique_id == $this->priviledgedUser->groupe_thematique_id
  204 + )
  205 + )
  206 + )
  207 + );
  208 + $this->set(compact('typeDocuments', 'suivi', 'fiche', 'CAN_EDIT_DELETE_LINK'));
  209 + } // view
183 210
184 /** 211 /**
185 * Add method 212 * Add method
@@ -293,8 +320,10 @@ class SuivisController extends AppController @@ -293,8 +320,10 @@ class SuivisController extends AppController
293 */ 320 */
294 public function edit($id = null) 321 public function edit($id = null)
295 { 322 {
  323 + // cf https://book.cakephp.org/3/fr/orm/retrieving-data-and-resultsets.html#eager-loading-associations
  324 + // Ceci permettra des accès du type $suivi->type_suivi->nom depuis la vue
296 $suivi = $this->Suivis->get($id, [ 325 $suivi = $this->Suivis->get($id, [
297 - 'contain' => [] 326 + 'contain' => ['TypeSuivis']
298 ]); 327 ]);
299 if ($this->request->is([ 328 if ($this->request->is([
300 'patch', 329 'patch',
@@ -385,15 +414,15 @@ class SuivisController extends AppController @@ -385,15 +414,15 @@ class SuivisController extends AppController
385 ->read('authType'))[0] 414 ->read('authType'))[0]
386 ]) 415 ])
387 ->first()['sur_categorie_id']; 416 ->first()['sur_categorie_id'];
388 - if ($dom == $domaines)  
389 - $domaineresp = true;  
390 - else  
391 - $domaineresp = false;  
392 - $this->set(compact('unite', 'metro', 'domaineresp', 'suivi', 'materiel', 'materiels', 'typeSuivis', 'numMateriel', 'groupesThematiques', 'groupesMetiers')); 417 + $domaineresp = ($dom == $domaines);
  418 + $parent = $materiel;
  419 + $this->set(compact('unite', 'metro', 'domaineresp', 'suivi', 'parent', 'materiel', 'materiels', 'typeSuivis', 'numMateriel', 'groupesThematiques', 'groupesMetiers'));
  420 + /* (EP inutile)
393 $this->set('_serialize', [ 421 $this->set('_serialize', [
394 'suivi' 422 'suivi'
395 ]); 423 ]);
396 - } 424 + */
  425 + } // edit()
397 426
398 /** 427 /**
399 * Delete method 428 * Delete method
src/Model/Table/SuivisTable.php
@@ -141,7 +141,7 @@ class SuivisTable extends AppTable @@ -141,7 +141,7 @@ class SuivisTable extends AppTable
141 141
142 $rules->add($checkNextDateControlIsAfterDateControl, [ 142 $rules->add($checkNextDateControlIsAfterDateControl, [
143 'errorField' => 'date_prochain_controle', 143 'errorField' => 'date_prochain_controle',
144 - 'message' => 'La date de la prochaine intervention dois être postérieure à la date de l\'intervention précédente.' 144 + 'message' => "La date de la prochaine intervention doit être postérieure à la date de l'intervention précédente"
145 ]); 145 ]);
146 146
147 $rules->add($rules->existsIn([ 147 $rules->add($rules->existsIn([
src/Template/Documents/add_edit.ctp
@@ -6,7 +6,7 @@ $document = $document; @@ -6,7 +6,7 @@ $document = $document;
6 $typesD = $typesD; 6 $typesD = $typesD;
7 $configuration = $configuration; 7 $configuration = $configuration;
8 $parent = $parent; 8 $parent = $parent;
9 -$doc_type = $doc_type; 9 +$parent_type = $parent_type;
10 $parent_controller = $parent_controller; 10 $parent_controller = $parent_controller;
11 $parent_name = $parent_name; 11 $parent_name = $parent_name;
12 // add or edit mode ? true=add ; false=edit 12 // add or edit mode ? true=add ; false=edit
@@ -24,13 +24,13 @@ if (isset($photo)) { @@ -24,13 +24,13 @@ if (isset($photo)) {
24 /* 24 /*
25 if (isset($materiel)) { 25 if (isset($materiel)) {
26 $materiel = $materiel; 26 $materiel = $materiel;
27 - $doc_type = 'matériel'; 27 + $parent_type = 'matériel';
28 $parent = $materiel; 28 $parent = $materiel;
29 $parent_controller = 'Materiels'; 29 $parent_controller = 'Materiels';
30 } 30 }
31 if (isset($suivi)) { 31 if (isset($suivi)) {
32 $suivi = $suivi; 32 $suivi = $suivi;
33 - $doc_type = 'suivi'; 33 + $parent_type = 'suivi';
34 $parent = $suivi; 34 $parent = $suivi;
35 $parent_controller = 'Suivis'; 35 $parent_controller = 'Suivis';
36 } 36 }
@@ -55,7 +55,7 @@ if (isset($photo)) { @@ -55,7 +55,7 @@ if (isset($photo)) {
55 55
56 // Ce doc est lié à ... 56 // Ce doc est lié à ...
57 //$link = isset($materiel) ? $materiel->designation : 'Suivi '.$suivi->id; 57 //$link = isset($materiel) ? $materiel->designation : 'Suivi '.$suivi->id;
58 - $displayElement(__("Ce document est lié au $doc_type"), $this->Html->link($parent_name, [ 58 + $displayElement(__("Ce document est lié au $parent_type"), $this->Html->link($parent_name, [
59 'controller' => $parent_controller, 59 'controller' => $parent_controller,
60 'action' => 'view', 60 'action' => 'view',
61 $parent->id 61 $parent->id
@@ -101,7 +101,7 @@ if (isset($photo)) { @@ -101,7 +101,7 @@ if (isset($photo)) {
101 echo $this->Form->control('nom', ['readonly' => !$IS_ADD]); 101 echo $this->Form->control('nom', ['readonly' => !$IS_ADD]);
102 102
103 // - Type (hidden si photo) 103 // - Type (hidden si photo)
104 - echo "<i>(Si vous choisissez le type 'Photo', ce document sera affiché en tête de la fiche du $doc_type associé)</i>"; 104 + echo "<i>(Si vous choisissez le type 'Photo', ce document sera affiché en tête de la fiche du $parent_type associé)</i>";
105 $f = 'control'; 105 $f = 'control';
106 $default = 1; 106 $default = 1;
107 if (isset($photo)) { 107 if (isset($photo)) {
src/Template/Documents/view.ctp
@@ -70,6 +70,7 @@ $photo_formats = [&#39;png&#39;,&#39;jpg&#39;,&#39;jpeg&#39;]; @@ -70,6 +70,7 @@ $photo_formats = [&#39;png&#39;,&#39;jpg&#39;,&#39;jpeg&#39;];
70 $displayElement(__('Nom'), h($document->nom)); 70 $displayElement(__('Nom'), h($document->nom));
71 71
72 // - Type 72 // - Type
  73 + debug($document);
73 $displayElement(__('Type'), $document->has('type_document') ? h($document->type_document->nom) : ''); 74 $displayElement(__('Type'), $document->has('type_document') ? h($document->type_document->nom) : '');
74 75
75 /* 76 /*
src/Template/Suivis/edit.ctp
  1 +<?php
  2 +// Variables passées à cette vue par le controleur
  3 +$suivi = $suivi;
1 4
2 -<div class="suivis form col-lg-12 col-md-12 col-sm-12">  
3 - <?=$this->Form->create($suivi)?>  
4 - <fieldset> 5 +$parent = $parent;
  6 +//@deprecated
  7 +$materiel = $materiel;
5 8
6 - <h2>  
7 - <i class="icon-edit"></i> Editer un suivi  
8 - </h2> 9 +$materiels = $materiels;
  10 +$unite = $unite;
  11 +$metro = $metro;
  12 +$domaineresp = $domaineresp;
  13 +$typeSuivis = $typeSuivis;
  14 +$numMateriel = $numMateriel;
  15 +$groupesThematiques = $groupesThematiques;
  16 +$groupesMetiers = $groupesMetiers;
  17 +?>
9 18
10 - <?php  
11 - echo $this->Form->hidden('materiel_id', [  
12 - 'options' => $materiels,  
13 - 'default' => $suivi->get('materiel_id')  
14 - ]);  
15 - echo $this->Form->control('materiel_numero_laboratoire', [  
16 - 'label' => 'N° materiel labo',  
17 - 'default' => $materiel['numero_laboratoire'],  
18 - 'disabled' => TRUE  
19 - ]);  
20 - echo $this->Form->control('type_suivi_id', [  
21 - 'label' => 'Type d\'intervention',  
22 - 'options' => $typeSuivis,  
23 - 'disabled' => TRUE  
24 - ]);  
25 -  
26 - //Affiche les bonnes informations en fonction du type de suivi  
27 - //Améliorable avec une requete pour fonctionner avec el nom de suivi et pas l'id  
28 - //Améliorable avec un switch  
29 -  
30 - if ($suivi->type_suivi_id == 2 ) {  
31 - echo $this->Form->control('date_controle', [  
32 - 'type' => 'text',  
33 - 'id' => 'date_deb',  
34 - 'label' => 'Date de la prise en charge',  
35 - 'class' => 'datepicker',  
36 - 'placeholder' => 'Cliquez pour sélectionner une date',  
37 - 'disabled' => true  
38 - ]);  
39 - echo $this->Form->control('date_prochain_controle', [  
40 - 'type' => 'text',  
41 - 'id' => 'date_fin',  
42 - 'label' => 'Date estimee de fin',  
43 - 'class' => 'datepicker',  
44 - 'placeholder' => 'Cliquez pour sélectionner une date'  
45 - ]);  
46 -  
47 - }else{  
48 - echo '<table id="tableAlignementFrequence"><tr><td>';  
49 - echo $this->Form->control('frequence', [  
50 - 'type' => 'text',  
51 - 'id' => 'SuiviFrequence',  
52 - 'label' => 'Fréquence',  
53 - 'disabled' => true,  
54 - 'templates' => [  
55 - 'inputContainer' => '<div class="A">{{content}}</div>'  
56 - ],  
57 - 'placeholder' => ''  
58 - ]);  
59 - echo '</td><td>';  
60 - echo $this->Form->control('type_frequence', [  
61 - 'label' => false,  
62 - 'disabled' => true,  
63 - 'templates' => [  
64 - 'inputContainer' => '<div class="typeFrequence">{{content}}</div>'  
65 - ],  
66 - 'options' => [  
67 - '/ Jours' => '/ Jours',  
68 - '/ Semaines' => '/ Semaines',  
69 - '/ Mois' => '/ Mois',  
70 - '/ Ans' => '/ Ans'  
71 - ],  
72 - 'default' => '/ Mois'  
73 - ]);  
74 - echo '</td></tr></table>';  
75 - } 19 +<!--
  20 +<div class="suivis form col-lg-12 col-md-12 col-sm-12">
  21 +-->
  22 +<div class="suivis form col-lg-5 col-md-7 col-sm-9">
76 23
77 - echo $this->Form->control('statut', [  
78 - 'options' => [  
79 - 'En cours' => 'En cours',  
80 - 'Terminé' => 'Terminé'  
81 - ]  
82 - ]);  
83 - echo $this->Form->control('organisme', [  
84 - 'label' => 'Prestataire'  
85 - ]);  
86 - echo $this->Form->control('groupes_thematique_id', [  
87 - 'label' => $configuration->nom_groupe_thematique,  
88 - 'options' => $groupesThematiques,  
89 - 'default' => $materiel['groupes_thematique_id']  
90 - ]);  
91 - echo $this->Form->control('groupes_metier_id', [  
92 - 'label' => $configuration->nom_groupe_metier,  
93 - 'options' => $groupesMetiers,  
94 - 'default' => $materiel['groupes_metier_id']  
95 - ]);  
96 - echo $this->Form->control('intitule', [  
97 - 'label' => 'Intitulé'  
98 - ]);  
99 - echo '<div id="typedemesure" style="display:none">';  
100 - // echo '<div class="input select required"><label for="typemesure">Type de mesure</label><select name="typemesure" id="typemesure"><option value="1">Direct</option><option value="2">Indirect</option></select></div>';  
101 - // La ligne du dessus est l'équivalent en pas propre de l'input juste en dessous !  
102 - echo $this->Form->control('typemesure', [  
103 - 'label' => 'Type de mesure',  
104 - 'options' => [  
105 - '1' => 'Direct',  
106 - '2' => 'Indirect'  
107 - ]  
108 - // 'required' => 'required'  
109 - ]);  
110 - echo '</div>';  
111 - echo '<div id="metro" style="display:none">';  
112 - echo $this->Form->control('nommesure', [  
113 - 'label' => 'Nom de la mesure'  
114 - // 'required' => 'required'  
115 - ]);  
116 - echo $this->Form->control('symbole', [  
117 - 'label' => 'Symbole'  
118 - // 'required' => 'required'  
119 - ]);  
120 - echo $this->Form->control('unite_id', [  
121 - 'options' => $unite,  
122 - 'label' => 'Unité',  
123 - 'empty' => 'choisir une unité'  
124 - // 'required' => 'required'  
125 - ]);  
126 - echo $this->Form->control('valeurRef', [  
127 - 'label' => 'Valeur de référence'  
128 - // 'required' => 'required'  
129 - ]);  
130 - echo $this->Form->control('plage_debut', [  
131 - 'label' => 'Plage de mesure (debut)'  
132 - ]);  
133 - echo $this->Form->control('plage_fin', [  
134 - 'label' => 'Plage de mesure (fin)'  
135 - ]);  
136 - echo $this->Form->control('resolution', [  
137 - 'label' => 'Resolution'  
138 - // 'required' => 'required'  
139 - ]);  
140 - echo $this->Form->control('tolerance', [  
141 - 'label' => 'Tolerance'  
142 - // 'required' => 'required'  
143 - ]);  
144 - echo $this->Form->control('sensibilite', [  
145 - 'label' => 'Sensibilité'  
146 - ]);  
147 - echo $this->Form->control('justesse', [  
148 - 'label' => 'Justesse'  
149 - ]);  
150 - echo $this->Form->control('fidelite', [  
151 - 'label' => 'Fidelite'  
152 - ]);  
153 - echo $this->Form->control('emtstandart', [  
154 - 'label' => 'EMT standart'  
155 - // 'required' => 'required'  
156 - ]);  
157 - echo '</div>';  
158 - echo $this->Form->control('commentaire', [  
159 - 'type' => 'textarea'  
160 - ]);  
161 - echo $this->Form->hidden('nom_modificateur', [  
162 - 'value' => $username  
163 - ]);  
164 - ?> 24 + <h2>
  25 + <i class="icon-edit"></i> Editer un suivi
  26 + </h2>
  27 +
  28 + <?php
  29 +
  30 + // Ce suivi concerne le materiel...
  31 + //$link = isset($materiel) ? $materiel->designation : 'Suivi '.$suivi->id;
  32 + $displayElement(__("Matériel concerné :"), $this->Html->link($parent->designation, [
  33 + 'controller' => 'materiels',
  34 + 'action' => 'view',
  35 + $parent->id
  36 + ]));
  37 +
  38 + echo $this->Form->create($suivi);
  39 + ?>
  40 +
  41 + <fieldset>
  42 +
  43 + <?php
  44 +
  45 + // - intitulé
  46 + echo $this->Form->control('intitule', ['label' => 'Intitulé']);
  47 +
  48 + // - matériel suivi (hidden)
  49 + echo $this->Form->hidden('materiel_id', [
  50 + 'options' => $materiels,
  51 + 'default' => $suivi->get('materiel_id')
  52 + ]);
  53 +
  54 + // - num labo
  55 + /* (EP inutile)
  56 + echo $this->Form->control('materiel_numero_laboratoire', [
  57 + 'label' => 'N° materiel labo',
  58 + 'default' => $materiel['numero_laboratoire'],
  59 + 'disabled' => TRUE
  60 + ]);
  61 + */
  62 +
  63 + // - type suivi
  64 + echo $this->Form->control('type_suivi_id', [
  65 + 'label' => "Type d'intervention",
  66 + 'options' => $typeSuivis,
  67 + 'disabled' => false
  68 + //'disabled' => TRUE
  69 + ]);
  70 +
  71 + // Affichage des bonnes informations en fonction du type de suivi
  72 +
  73 + // type = maintenance ? => cas spécifique
  74 + //if ($suivi->type_suivi_id == 2 ) {
  75 + //debug($suivi->type_suivi->nom);
  76 + if ($suivi->type_suivi->nom == 'Maintenance' ) {
  77 + // - date controle
  78 + echo $this->Form->control('date_controle', [
  79 + 'type' => 'text',
  80 + 'id' => 'date_deb',
  81 + 'label' => 'Date de la prise en charge',
  82 + 'class' => 'datepicker',
  83 + 'placeholder' => 'Cliquez pour sélectionner une date',
  84 + //'disabled' => true
  85 + ]);
  86 + // - date prochain controle
  87 + echo $this->Form->control('date_prochain_controle', [
  88 + 'type' => 'text',
  89 + 'id' => 'date_fin',
  90 + 'label' => 'Date de fin estimée',
  91 + 'class' => 'datepicker',
  92 + 'placeholder' => 'Cliquez pour sélectionner une date'
  93 + ]);
  94 + } // maintenance
  95 +
  96 + // autre type que maintenance ? => cas général
  97 + else {
  98 + //echo '<table id="tableAlignementFrequence" border=1><tr>';
  99 + echo '<table id="tableAlignementFrequence" border=0><tr>';
  100 + // - fréquence
  101 + echo '<td>';
  102 + echo $this->Form->control('frequence', [
  103 + 'type' => 'text',
  104 + 'id' => 'SuiviFrequence',
  105 + 'label' => 'Fréquence',
  106 + //'disabled' => true,
  107 + 'templates' => [
  108 + 'inputContainer' => '<div class="A">{{content}}</div>'
  109 + ],
  110 + 'placeholder' => ''
  111 + ]);
  112 + echo '</td>';
  113 + // - type fréquence
  114 + echo '<td>';
  115 + echo $this->Form->control('type_frequence', [
  116 + //'label' => false,
  117 + 'label' => 'Intervalle',
  118 + //'disabled' => true,
  119 + 'templates' => [
  120 + 'inputContainer' => '<div class="typeFrequence">{{content}}</div>'
  121 + ],
  122 + 'options' => [
  123 + '/ Jours' => '/ Jours',
  124 + '/ Semaines' => '/ Semaines',
  125 + '/ Mois' => '/ Mois',
  126 + '/ Ans' => '/ Ans'
  127 + ],
  128 + 'default' => '/ Mois'
  129 + ]);
  130 + echo '</td>';
  131 + echo '</tr></table>';
  132 + } // autre type que maintenance
  133 +
  134 + // statut
  135 + echo $this->Form->control('statut', [
  136 + 'options' => [
  137 + 'En cours' => 'En cours',
  138 + 'Terminé' => 'Terminé'
  139 + ]
  140 + ]);
  141 +
  142 + // prestataire
  143 + echo $this->Form->control('organisme', [
  144 + 'label' => 'Prestataire'
  145 + ]);
  146 +
  147 + // groupe thématique
  148 + echo $this->Form->control('groupes_thematique_id', [
  149 + 'label' => $configuration->nom_groupe_thematique,
  150 + 'options' => $groupesThematiques,
  151 + 'default' => $materiel['groupes_thematique_id']
  152 + ]);
  153 +
  154 + // groupe métier
  155 + echo $this->Form->control('groupes_metier_id', [
  156 + 'label' => $configuration->nom_groupe_metier,
  157 + 'options' => $groupesMetiers,
  158 + 'default' => $materiel['groupes_metier_id']
  159 + ]);
  160 +
  161 + // (metro) type mesure (hidden)
  162 + echo '<div id="typedemesure" style="display:none">';
  163 + // echo '<div class="input select required"><label for="typemesure">Type de mesure</label><select name="typemesure" id="typemesure"><option value="1">Direct</option><option value="2">Indirect</option></select></div>';
  164 + // La ligne du dessus est l'équivalent en pas propre de l'input juste en dessous !
  165 + echo $this->Form->control('typemesure', [
  166 + 'label' => 'Type de mesure',
  167 + 'options' => [
  168 + '1' => 'Direct',
  169 + '2' => 'Indirect'
  170 + ]
  171 + // 'required' => 'required'
  172 + ]);
  173 + echo '</div>';
  174 +
  175 + // Section métrologie (hidden)
  176 + echo '<div id="metro" style="display:none">';
  177 + // (metro) nom mesure (hidden)
  178 + echo $this->Form->control('nommesure', [
  179 + 'label' => 'Nom de la mesure'
  180 + // 'required' => 'required'
  181 + ]);
  182 + echo $this->Form->control('symbole', [
  183 + 'label' => 'Symbole'
  184 + // 'required' => 'required'
  185 + ]);
  186 + echo $this->Form->control('unite_id', [
  187 + 'options' => $unite,
  188 + 'label' => 'Unité',
  189 + 'empty' => 'choisir une unité'
  190 + // 'required' => 'required'
  191 + ]);
  192 + echo $this->Form->control('valeurRef', [
  193 + 'label' => 'Valeur de référence'
  194 + // 'required' => 'required'
  195 + ]);
  196 + echo $this->Form->control('plage_debut', [
  197 + 'label' => 'Plage de mesure (debut)'
  198 + ]);
  199 + echo $this->Form->control('plage_fin', [
  200 + 'label' => 'Plage de mesure (fin)'
  201 + ]);
  202 + echo $this->Form->control('resolution', [
  203 + 'label' => 'Resolution'
  204 + // 'required' => 'required'
  205 + ]);
  206 + echo $this->Form->control('tolerance', [
  207 + 'label' => 'Tolerance'
  208 + // 'required' => 'required'
  209 + ]);
  210 + echo $this->Form->control('sensibilite', [
  211 + 'label' => 'Sensibilité'
  212 + ]);
  213 + echo $this->Form->control('justesse', [
  214 + 'label' => 'Justesse'
  215 + ]);
  216 + echo $this->Form->control('fidelite', [
  217 + 'label' => 'Fidelite'
  218 + ]);
  219 + echo $this->Form->control('emtstandart', [
  220 + 'label' => 'EMT standart'
  221 + // 'required' => 'required'
  222 + ]);
  223 + echo '</div>'; // Section métrologie (hidden)
  224 +
  225 + // commentaire
  226 + echo $this->Form->control('commentaire', [
  227 + 'type' => 'textarea'
  228 + ]);
  229 +
  230 + // nom modificateur (hidden)
  231 + echo $this->Form->hidden('nom_modificateur', [
  232 + 'value' => $username
  233 + ]);
  234 + ?>
  235 +
165 </fieldset> 236 </fieldset>
  237 +
  238 + <!-- Bouton enregistrer -->
166 <?=$this->Form->submit(__('Enregistrer'))?> 239 <?=$this->Form->submit(__('Enregistrer'))?>
  240 +
167 <?=$this->Form->end()?> 241 <?=$this->Form->end()?>
  242 +
168 </div> 243 </div>
169 244
170 <!-- 245 <!--
@@ -178,12 +253,27 @@ echo $this-&gt;element(&#39;menu_form&#39;, [ @@ -178,12 +253,27 @@ echo $this-&gt;element(&#39;menu_form&#39;, [
178 </div> 253 </div>
179 --> 254 -->
180 255
  256 +
  257 +
  258 +
  259 +
  260 +
  261 +<!--
  262 +********************************************************************************
  263 + JAVASCRIPT functions
  264 +********************************************************************************
  265 +-->
  266 +
181 <script type="text/javascript"> 267 <script type="text/javascript">
182 268
183 $(document).ready(function () { 269 $(document).ready(function () {
184 270
185 - var domaineId=$("#type-suivi-id :selected").text(); 271 + var domaineId = $("#type-suivi-id :selected").text();
  272 + var ismetro = "<?=$materiel['metrologie']?>";
186 273
  274 + //$("#metro").show();
  275 + //$("#metro").hide();
  276 + //if (domaineId != "Vérification métrologique") {
187 if (domaineId == "Vérification métrologique") { 277 if (domaineId == "Vérification métrologique") {
188 $("#metro").show(); 278 $("#metro").show();
189 $("#nommesure").attr('required',true); 279 $("#nommesure").attr('required',true);
@@ -195,7 +285,7 @@ $(document).ready(function () { @@ -195,7 +285,7 @@ $(document).ready(function () {
195 $("#emtstandart").attr('required',true); 285 $("#emtstandart").attr('required',true);
196 $("#typedemesure").show(); 286 $("#typedemesure").show();
197 $("#typedemesure").attr('required',true); 287 $("#typedemesure").attr('required',true);
198 - } else if (<?=$materiel['metrologie']?> == 1) { 288 + } else if (ismetro == 1) {
199 $("#metro").hide(); 289 $("#metro").hide();
200 $("#nommesure").attr('required',false); 290 $("#nommesure").attr('required',false);
201 $("#symbole").attr('required',false); 291 $("#symbole").attr('required',false);
@@ -219,7 +309,7 @@ $(document).ready(function () { @@ -219,7 +309,7 @@ $(document).ready(function () {
219 */ 309 */
220 310
221 311
222 - $(document).ready(function () { 312 +$(document).ready(function () {
223 d1 = toDate($("#date_deb")[0].value); /* Date de la prise en charge de la panne */ 313 d1 = toDate($("#date_deb")[0].value); /* Date de la prise en charge de la panne */
224 d2 = toDate($("#date_fin")[0].value); /* Date estimee de fin de la panne */ 314 d2 = toDate($("#date_fin")[0].value); /* Date estimee de fin de la panne */
225 315
src/Template/Suivis/view.ctp
  1 +<?php
  2 +// Variables passées à cette vue par le controleur
  3 +$suivi = $suivi;
  4 +$CAN_EDIT_DELETE_LINK = $CAN_EDIT_DELETE_LINK;
  5 +$typeDocuments = $typeDocuments;
  6 +$fiche = $fiche;
  7 +// from AppController::beforeFilter
  8 +$username = $username;
  9 +$role = $role;
  10 +$priviledgedUser = $priviledgedUser;
  11 +// functions
  12 +$printTableRow = $printTableRow;
  13 +/*
  14 +debug($suivi->nom_createur);
  15 +debug($suivi);
  16 +debug($username);
  17 +*/
  18 +?>
1 19
2 <div class="suivis view col-lg-12 col-md-12 col-sm-12"> 20 <div class="suivis view col-lg-12 col-md-12 col-sm-12">
3 21
@@ -5,190 +23,256 @@ @@ -5,190 +23,256 @@
5 23
6 <table style="margin-bottom: 30px;"> 24 <table style="margin-bottom: 30px;">
7 25
8 - <div class="actions"  
9 - style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">  
10 - <?php  
11 - if (($role == 'Utilisateur' && in_array($username, [  
12 - $suivi->nom_createur  
13 - ])) || ($role == 'Responsable' && in_array($username, [$suivi->nom_createur]))  
14 - || (in_array($role, [  
15 - 'Administration',  
16 - 'Administration Plus',  
17 - 'Super Administrateur'  
18 - ])) || ($role == 'Responsable' && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $suivi->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id != $idGtNa && $suivi->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)))) {  
19 - echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce suivi'), [  
20 - 'action' => 'edit',  
21 - $suivi->id  
22 - ], [  
23 - 'escape' => false,  
24 - 'onclick' => 'return true;'  
25 - ]);  
26 - echo $this->Form->postLink(__('<i class="icon-trash"></i> Supprimer ce suivi'), [  
27 - 'action' => 'delete',  
28 - $suivi->id  
29 - ], [  
30 - 'style' => 'margin-left: 10px',  
31 - 'escape' => false,  
32 - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivi->id)  
33 - ]);  
34 -  
35 - echo $this->Html->link('<i class="icon-file"></i> Lier un Doc.', [  
36 - 'controller' => 'documents',  
37 - 'action' => 'add',  
38 - $suivi->id  
39 - ], [  
40 - 'style' => 'margin-left: 10px',  
41 - 'title' => 'Attacher un Doc. à ce suivi',  
42 - 'escape' => false  
43 - ]);  
44 - }  
45 - ?>  
46 - </div> 26 + <!-- 3 Boutons : Editer, Supprimer, Lier un doc -->
  27 + <div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">
  28 + <?php
  29 + /* (EP) cette variable est maintenant définie par le controleur, c'est mieux, ça simplifie la vue !
  30 + //$IS_OWNER = in_array($username, [$suivi->nom_createur]);
  31 + $IS_OWNER = $username == $suivi->nom_createur;
  32 + $CAN_EDIT_DELETE_LINK = (
  33 + $IS_OWNER || in_array($role, ['Administration','Administration Plus','Super Administrateur'])
  34 + //|| ($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur]))
  35 + //|| ($role == 'Responsable' && in_array($username, [$suivi->nom_createur]))
  36 + || (
  37 + $role == 'Responsable'
  38 + && (
  39 + (
  40 + isset($priviledgedUser->groupes_metier_id)
  41 + && $priviledgedUser->groupes_metier_id != $idGmNa
  42 + && $suivi->groupes_metier_id == $priviledgedUser->groupes_metier_id
  43 + )
  44 + ||
  45 + (
  46 + isset($priviledgedUser->groupe_thematique_id)
  47 + && $priviledgedUser->groupe_thematique_id != $idGtNa
  48 + && $suivi->groupes_thematique_id == $priviledgedUser->groupe_thematique_id
  49 + )
  50 + )
  51 + )
  52 + );
  53 + */
  54 + if ($CAN_EDIT_DELETE_LINK) {
  55 + echo $this->Html->link(__('<i class="icon-pencil"></i> Editer'), [
  56 + 'action' => 'edit',
  57 + $suivi->id
  58 + ], [
  59 + 'escape' => false,
  60 + 'onclick' => 'return true;'
  61 + ]);
  62 + echo $this->Form->postLink(__('<i class="icon-trash"></i> Supprimer'), [
  63 + 'action' => 'delete',
  64 + $suivi->id
  65 + ], [
  66 + 'style' => 'margin-left: 10px',
  67 + 'escape' => false,
  68 + 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivi->id)
  69 + ]);
  70 +
  71 + //$bStyle = 'margin-right: 10px';
  72 + $bStyle = 'margin-left: 10px';
  73 + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Lier doc. (ou photo)', 'documents', 'add', $suivi->id, [''], 'Attacher un Doc. à ce suivi');
  74 + /*
  75 + echo $this->Html->link('<i class="icon-file"></i> Lier un Doc.', [
  76 + 'controller' => 'documents',
  77 + 'action' => 'add',
  78 + $suivi->id
  79 + ], [
  80 + 'style' => 'margin-left: 10px',
  81 + 'title' => 'Attacher un Doc. à ce suivi',
  82 + 'escape' => false
  83 + ]);
  84 + */
  85 + } // if CAN_EDIT_DELETE_LINK
  86 + ?>
  87 + </div> <!-- 3 Boutons : Editer, Supprimer, Lier un doc -->
  88 +
47 89
  90 + <!-- Affichage des champs du suivi (dans un tableau 2 col) -->
  91 +
48 <tr> 92 <tr>
49 <th style="width: 250px;"></th> 93 <th style="width: 250px;"></th>
50 <th></th> 94 <th></th>
51 </tr> 95 </tr>
52 - <?php 96 +
  97 + <?php
  98 + if ($dateProchainControleVerif($suivi->date_prochain_controle) < 0)
  99 + $style = '"color: red"';
  100 + elseif ($dateProchainControleVerif($suivi->date_prochain_controle) <= 15)
  101 + $style = '"color: orange"';
  102 + else
  103 + $style = '"color: green"';
  104 +
  105 + // - Intitulé
  106 + $printTableRow(__('Intitulé'), h($suivi->intitule));
53 107
54 - if ($dateProchainControleVerif($suivi->date_prochain_controle) < 0)  
55 - $style = '"color: red"';  
56 - elseif ($dateProchainControleVerif($suivi->date_prochain_controle) <= 15)  
57 - $style = '"color: orange"';  
58 - else  
59 - $style = '"color: green"'; 108 + // - Materiel
  109 + $printTableRow(__('Materiel suivi'), $suivi->has('materiel') ?
  110 + $this->Html->link($suivi->materiel->designation, [
  111 + 'controller' => 'Materiels',
  112 + 'action' => 'view',
  113 + $suivi->materiel->id
  114 + ])
  115 + :
  116 + ''
  117 + );
  118 +
  119 + // - N° interne
  120 + //$printTableRow(__('Numéro interne (labo)'), $suivi->has('materiel') ? h($suivi->materiel->numero_laboratoire) : '');
  121 +
  122 + // - Statut
  123 + $printTableRow(__('Statut'), h($suivi->statut));
  124 +
  125 + // - Prestataire
  126 + $printTableRow(__('Prestataire'), h($suivi->organisme));
  127 +
  128 + // - Type d'intervention
  129 + $printTableRow(__("Type d'intervention"), $suivi->has('type_suivi') ? h($suivi->type_suivi->nom) : '');
  130 +
  131 + // - Dates interv (si données)
  132 + if ($suivi->type_suivi_id == "1") {
  133 + $printTableRow(__('Date Derniere Intervention'), h($suivi->date_controle));
  134 + $printTableRow(__('Date Prochaine Intervention'), h($suivi->date_prochain_controle), $style);
  135 + $printTableRow(__('Fréquence'), h($suivi->frequence) . ' ' . h($suivi->type_frequence));
  136 + }
  137 + else {
  138 + $printTableRow(__('Date Début Prise en Charge'), h($suivi->date_controle));
  139 + $printTableRow(__('Date Fin de Panne estimée'), h($suivi->date_prochain_controle), $style);
  140 + }
60 141
61 - $displayElement(__('Materiel'), $suivi->has('materiel') ?  
62 - $this->Html->link($suivi->materiel->designation, [  
63 - 'controller' => 'Materiels', 142 + // - Groupe thématique
  143 + $printTableRow(__($configuration->nom_groupe_thematique),
  144 + $suivi->has('groupes_thematique') ?
  145 + $this->Html->link($suivi->groupes_thematique->nom, [
  146 + 'controller' => 'GroupesThematiques',
  147 + 'action' => 'view',
  148 + $suivi->groupes_thematique->id
  149 + ])
  150 + :
  151 + ''
  152 + );
  153 +
  154 + // - Groupe métier
  155 + $printTableRow(__($configuration->nom_groupe_metier), $suivi->has('groupes_metier') ? $this->Html->link($suivi->groupes_metier->nom, [
  156 + 'controller' => 'GroupesMetiers',
64 'action' => 'view', 157 'action' => 'view',
65 - $suivi->materiel->id  
66 - ])  
67 - :  
68 - ''  
69 - );  
70 - $displayElement(__('Numéro interne (labo)'), $suivi->has('materiel') ? h($suivi->materiel->numero_laboratoire) : '');  
71 - $displayElement(__('Statut'), h($suivi->statut));  
72 - $displayElement(__('Prestataire'), h($suivi->organisme));  
73 - $displayElement(__('Type d\'intervention'), $suivi->has('type_suivi') ? h($suivi->type_suivi->nom) : '');  
74 -  
75 - if ($suivi->type_suivi_id == "1") {  
76 - $displayElement(__('Date Derniere Intervention'), h($suivi->date_controle));  
77 - $displayElement(__('Date Prochaine Intervention'), h($suivi->date_prochain_controle), $style);  
78 - $displayElement(__('Fréquence'), h($suivi->frequence) . ' ' . h($suivi->type_frequence));  
79 -  
80 - }else {  
81 - $displayElement(__('Date Debut Prise en Charge'), h($suivi->date_controle));  
82 - $displayElement(__('Date Estimee de Fin de Panne'), h($suivi->date_prochain_controle), $style);  
83 - }  
84 -  
85 -  
86 - $displayElement(__($configuration->nom_groupe_thematique), $suivi->has('groupes_thematique') ? $this->Html->link($suivi->groupes_thematique->nom, [  
87 - 'controller' => 'GroupesThematiques',  
88 - 'action' => 'view',  
89 - $suivi->groupes_thematique->id  
90 - ]) : '');  
91 - $displayElement(__($configuration->nom_groupe_metier), $suivi->has('groupes_metier') ? $this->Html->link($suivi->groupes_metier->nom, [  
92 - 'controller' => 'GroupesMetiers',  
93 - 'action' => 'view',  
94 - $suivi->groupes_metier->id  
95 - ]) : '');  
96 -  
97 - $displayElement(__('Intitulé'), h($suivi->intitule));  
98 - $displayElement(__('Date création'), h($suivi->created));  
99 - $displayElement(__('Nom du créateur'), h($suivi->nom_createur));  
100 - $displayElement(__('Date modification'), h($suivi->modified));  
101 - $displayElement(__('Nom du modificateur'), h($suivi->nom_modificateur));  
102 - $displayElement(__('Commentaire'), h($suivi->commentaire));  
103 - ?> 158 + $suivi->groupes_metier->id
  159 + ]) : '');
  160 +
  161 + // - Date création
  162 + $printTableRow(__('Date création'), h($suivi->created));
  163 +
  164 + // - Nom créateur
  165 + $printTableRow(__('Nom du créateur'), h($suivi->nom_createur));
  166 +
  167 + // - Date modif
  168 + $printTableRow(__('Date modification'), h($suivi->modified));
  169 +
  170 + // - Nom modificateur
  171 + $printTableRow(__('Nom du modificateur'), h($suivi->nom_modificateur));
  172 +
  173 + // - Commentaire
  174 + $printTableRow(__('Commentaire'), h($suivi->commentaire));
  175 + ?>
104 176
105 - </table> 177 + </table> <!-- champs du suivi -->
  178 +
106 179
  180 + <!-- Partie metrologie -->
107 <?php 181 <?php
108 -// Partie metrologie  
109 -if ($suivi->type_suivi->nom == "Vérification métrologique") {  
110 - echo '<h3 id="t_informations_metrologie" style="cursor: pointer;">';  
111 - echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_metrologie"></i>';  
112 - echo '<span style="text-decoration: underline;">Informations Métrologique</span>';  
113 - echo '</h3>';  
114 - echo '<div id="informations_metro" style="margin-bottom: 20px;">';  
115 - echo '<table>';  
116 - echo '<tr><th style="width: 200px;"></th><th></th><th></th><th></th></tr>';  
117 -  
118 - echo '<tr><td><strong>' . __('Unite') . ' </strong></td><td>' . ($suivi->has('unite') ? h($suivi->unite->nom) : '') . '</td><td></td><td></td></tr>';  
119 - echo '<tr><td><strong>' . __('Plage de mesure (debut)') . ' </strong></td><td>' . h($suivi->plage_debut) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td></td><td></td></tr>';  
120 - echo '<tr><td><strong>' . __('Plage de mesure (fin)') . ' </strong></td><td>' . h($suivi->plage_fin) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td></td><td></td></tr>';  
121 - echo '<tr><td><strong>' . __('Resolution') . ' </strong></td><td>' . h($suivi->resolution) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td></td><td></td></tr>';  
122 - echo '<tr><td><strong>' . __('Tolerance') . ' </strong></td><td>' . h($suivi->tolerance) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere Tolerance') . ' </strong></td><td>' . (isset($fiche) ? h($fiche->u) : '') . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';  
123 - echo '<tr><td><strong>' . __('Sensibilité') . ' </strong></td><td>' . h($suivi->sensibilite) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere sensibilite') . ' </strong></td><td>' . h($suivi->sensibilite) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';  
124 - echo '<tr><td><strong>' . __('Justesse') . ' </strong></td><td>' . h($suivi->justesse) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere justesse') . ' </strong></td><td>' . (isset($fiche) ? h($fiche->justesse) : '') . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';  
125 - echo '<tr><td><strong>' . __('Fidelite') . ' </strong></td><td>' . h($suivi->fidelite) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere fidelite') . ' </strong></td><td>' . (isset($fiche) ? h($fiche->uf) : '') . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';  
126 - echo '<tr><td><strong>' . __('EMT standart') . ' </strong></td><td>' . h($suivi->emtstandart) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere emt standart') . ' </strong></td><td>' . h($suivi->emtstandart) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';  
127 - echo '<tr><td><strong>' . __('Derniere etat metrologique') . ' </strong></td><td>' . h($suivi->conforme) . '</td><td></td><td></td></tr>';  
128 - echo '<tr></tr>';  
129 -  
130 - echo '<tr><td><strong>' . __('Valeur de référence') . ' </strong></td><td>' . h($suivi->valeurRef) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td></td><td></td></tr>';  
131 -  
132 - if ($suivi->typemesure == "1") {  
133 - echo '<tr><td><strong>' . __('Type de mesure') . ' </strong></td><td>' . h("Direct") . '</td><td></td><td></td></tr>';  
134 - } else {  
135 - echo '<tr><td><strong>' . __('Type de mesure') . ' </strong></td><td>' . h("Indirect") . '</td><td></td><td></td></tr>'; 182 + if ($suivi->type_suivi->nom == "Vérification métrologique") {
  183 + echo '<h3 id="t_informations_metrologie" style="cursor: pointer;">';
  184 + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_metrologie"></i>';
  185 + echo '<span style="text-decoration: underline;">Informations Métrologique</span>';
  186 + echo '</h3>';
  187 + echo '<div id="informations_metro" style="margin-bottom: 20px;">';
  188 + echo '<table>';
  189 + echo '<tr><th style="width: 200px;"></th><th></th><th></th><th></th></tr>';
  190 +
  191 + echo '<tr><td><strong>' . __('Unite') . ' </strong></td><td>' . ($suivi->has('unite') ? h($suivi->unite->nom) : '') . '</td><td></td><td></td></tr>';
  192 + echo '<tr><td><strong>' . __('Plage de mesure (debut)') . ' </strong></td><td>' . h($suivi->plage_debut) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td></td><td></td></tr>';
  193 + echo '<tr><td><strong>' . __('Plage de mesure (fin)') . ' </strong></td><td>' . h($suivi->plage_fin) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td></td><td></td></tr>';
  194 + echo '<tr><td><strong>' . __('Resolution') . ' </strong></td><td>' . h($suivi->resolution) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td></td><td></td></tr>';
  195 + echo '<tr><td><strong>' . __('Tolerance') . ' </strong></td><td>' . h($suivi->tolerance) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere Tolerance') . ' </strong></td><td>' . (isset($fiche) ? h($fiche->u) : '') . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';
  196 + echo '<tr><td><strong>' . __('Sensibilité') . ' </strong></td><td>' . h($suivi->sensibilite) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere sensibilite') . ' </strong></td><td>' . h($suivi->sensibilite) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';
  197 + echo '<tr><td><strong>' . __('Justesse') . ' </strong></td><td>' . h($suivi->justesse) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere justesse') . ' </strong></td><td>' . (isset($fiche) ? h($fiche->justesse) : '') . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';
  198 + echo '<tr><td><strong>' . __('Fidelite') . ' </strong></td><td>' . h($suivi->fidelite) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere fidelite') . ' </strong></td><td>' . (isset($fiche) ? h($fiche->uf) : '') . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';
  199 + echo '<tr><td><strong>' . __('EMT standart') . ' </strong></td><td>' . h($suivi->emtstandart) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td><strong>' . __('Derniere emt standart') . ' </strong></td><td>' . h($suivi->emtstandart) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td></tr>';
  200 + echo '<tr><td><strong>' . __('Derniere etat metrologique') . ' </strong></td><td>' . h($suivi->conforme) . '</td><td></td><td></td></tr>';
  201 + echo '<tr></tr>';
  202 +
  203 + echo '<tr><td><strong>' . __('Valeur de référence') . ' </strong></td><td>' . h($suivi->valeurRef) . ' ' . ($suivi->has('unite') ? h($suivi->unite->symbole) : '') . '</td><td></td><td></td></tr>';
  204 +
  205 + if ($suivi->typemesure == "1") {
  206 + echo '<tr><td><strong>' . __('Type de mesure') . ' </strong></td><td>' . h("Direct") . '</td><td></td><td></td></tr>';
  207 + } else {
  208 + echo '<tr><td><strong>' . __('Type de mesure') . ' </strong></td><td>' . h("Indirect") . '</td><td></td><td></td></tr>';
  209 + }
  210 +
  211 + echo '</table>';
  212 + echo '</div>';
136 } 213 }
137 -  
138 - echo '</table>';  
139 - echo '</div>';  
140 -} 214 + ?> <!-- Partie metrologie -->
141 215
142 -?>  
143 216
  217 + <!-- Docs liés au suivi -->
144 <div id="fichiers" style="margin-bottom: 20px;"> 218 <div id="fichiers" style="margin-bottom: 20px;">
145 219
146 <h3 id="t_fichiers" style="cursor: pointer;"> 220 <h3 id="t_fichiers" style="cursor: pointer;">
147 <i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i> 221 <i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>
148 - <span style="text-decoration: underline;">Fichier(s) lié(s) au suivi (<?= count($suivi->documents) ?>)</span> 222 + <span style="text-decoration: underline;">Document(s) lié(s) au suivi (<?= count($suivi->documents) ?>)</span>
149 </h3> 223 </h3>
150 - <?php if (!empty($suivi->documents) || $suivi->type_suivi->nom == "Vérification métrologique") { ?>  
151 - <table>  
152 - <tr>  
153 - <th class="actions"><?= __('') ?></th>  
154 - <th><?= __('N°') ?></th>  
155 - <th><?= __('Liens/fichiers') ?></th>  
156 - </tr>  
157 - <?php $i=1; ?>  
158 - <?php if ($configuration->metrologie) { ?>  
159 - <td class="actions" style="padding: 6px 0; text-align: left;"></td>  
160 - <td><?php echo $i; $i++; ?></td>  
161 - <td><?= $this->Html->link('Lien 1: Fiche métrologique', ['controller' => 'Fichemetrologiques', 'action' => 'add', $suivi->id]) ?></td>  
162 - <?php } ?>  
163 - <?php foreach ($suivi->documents as $documents): ?>  
164 - <tr>  
165 - <td class="actions" style="padding: 6px 0; text-align: left;">  
166 - <?= $this->Html->link(__('<i class="icon-download-alt"></i>'),'/webroot/files/'.$documents->suivi_id.'_'.$documents->nom.'_'.$documents->id.'.'.$documents->type_doc, ['title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]) ?>  
167 - <?php  
168 - if (($role == 'Utilisateur' && in_array($username, [  
169 - $suivi->nom_createur  
170 - ])) || ($role == 'Responsable' && in_array($username, [  
171 - $suivi->nom_createur]))  
172 - || (in_array($role, [  
173 - 'Administration',  
174 - 'Administration Plus',  
175 - 'Super Administrateur'  
176 - ])) || ($role == 'Responsable' && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $suivi->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id != $idGtNa && $suivi->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)))) {  
177 - ?>  
178 - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Documents', 'action' => 'edit', $documents->id], ['escape' => false, 'style' => 'margin:0'])?>  
179 - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer le document nommé {0}?', $documents->nom)]) ?>  
180 - <?= $this->Form->postLink(__('<i class="icon-envelope"></i>'), ['controller' => 'Documents','action' => __('mailDevis' ,$documents->id),$documents->id], ['escape' => false,'style' => 'margin:0','confirm' => __(' Voulez vous envoyer le document par mail ? ')])?>  
181 - </td>  
182 - <?php } ?>  
183 - <td><?= $i ?></td>  
184 - <td><?= $this->Html->link($documents->nom, ['controller' => 'documents', 'action' => 'view', $documents->id]) ?></td>  
185 - <?php $i++; ?>  
186 - </tr>  
187 - <?php endforeach; ?>  
188 - </table>  
189 - <?php } else { echo 'Aucun fichier pour ce matériel.'; } ?>  
190 - </div> 224 + <?php
  225 + if (!empty($suivi->documents) || $suivi->type_suivi->nom == "Vérification métrologique") { ?>
  226 + <table>
  227 + <tr>
  228 + <th class="actions"><?= __('') ?></th>
  229 + <th><?= __('N°') ?></th>
  230 + <th><?= __('Liens/fichiers') ?></th>
  231 + </tr>
  232 + <?php
  233 + $i=1;
  234 + if ($configuration->metrologie) { ?>
  235 + <td class="actions" style="padding: 6px 0; text-align: left;"></td>
  236 + <td><?php echo $i; $i++; ?></td>
  237 + <td><?= $this->Html->link('Lien 1: Fiche métrologique', ['controller' => 'Fichemetrologiques', 'action' => 'add', $suivi->id]) ?></td>
  238 + <?php
  239 + }
  240 + foreach ($suivi->documents as $documents): ?>
  241 + <tr>
  242 + <td class="actions" style="padding: 6px 0; text-align: left;">
  243 + <?php
  244 + echo $this->Html->link(__('<i class="icon-download-alt"></i>'),'/webroot/files/'.$documents->suivi_id.'_'.$documents->nom.'_'.$documents->id.'.'.$documents->type_doc, ['title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]);
  245 + if (($role == 'Utilisateur' && in_array($username, [
  246 + $suivi->nom_createur
  247 + ])) || ($role == 'Responsable' && in_array($username, [
  248 + $suivi->nom_createur]))
  249 + || (in_array($role, [
  250 + 'Administration',
  251 + 'Administration Plus',
  252 + 'Super Administrateur'
  253 + ])) || ($role == 'Responsable' && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $suivi->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id != $idGtNa && $suivi->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)
  254 + ))) {
  255 + echo $this->Html->link(__('<i class="icon-pencil"></i>'), ['controller' => 'Documents', 'action' => 'edit', $documents->id], ['escape' => false, 'style' => 'margin:0']);
  256 + echo $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer le document nommé {0}?', $documents->nom)]);
  257 + echo $this->Form->postLink(__('<i class="icon-envelope"></i>'), ['controller' => 'Documents','action' => __('mailDevis' ,$documents->id),$documents->id], ['escape' => false,'style' => 'margin:0','confirm' => __(' Voulez vous envoyer le document par mail ? ')]);
  258 + }
  259 + ?>
  260 + </td>
  261 + <td><?= $i ?></td>
  262 + <td><?= $this->Html->link($documents->nom, ['controller' => 'documents', 'action' => 'view', $documents->id]) ?></td>
  263 + <?php $i++; ?>
  264 + </tr>
  265 + <?php
  266 + endforeach; ?>
  267 + </table>
  268 + <?php
  269 + } // il y a des docs
  270 + else echo 'Aucun fichier pour ce matériel.';
  271 + ?>
  272 + </div> <!-- Docs liés au suivi -->
  273 +
191 274
  275 + <!-- Archives du suivi métrologique -->
192 <div id="archives"> 276 <div id="archives">
193 <?php if ( $configuration->metrologie && ( isset($suivi->fichemetrologiques) || $suivi->fichemetrologiques != "" ) ) { ?> 277 <?php if ( $configuration->metrologie && ( isset($suivi->fichemetrologiques) || $suivi->fichemetrologiques != "" ) ) { ?>
194 <h3 id="t_fichemetrologiques" style="cursor: pointer;"> 278 <h3 id="t_fichemetrologiques" style="cursor: pointer;">
@@ -224,11 +308,14 @@ if ($suivi-&gt;type_suivi-&gt;nom == &quot;Vérification métrologique&quot;) { @@ -224,11 +308,14 @@ if ($suivi-&gt;type_suivi-&gt;nom == &quot;Vérification métrologique&quot;) {
224 </tr> 308 </tr>
225 <?php endforeach; ?> 309 <?php endforeach; ?>
226 </table> 310 </table>
227 - <?php }else { echo 'Aucune fiche metrologique pour ce matériel.'; } ?> 311 + <?php
  312 + }
  313 + else echo 'Aucune fiche metrologique pour ce matériel.';
  314 + ?>
228 </div> 315 </div>
229 316
230 <?php } ?> 317 <?php } ?>
231 - </div> 318 + </div> <!-- Archives du suivi métrologique -->
232 319
233 </div> 320 </div>
234 321
webroot/css/inventirap.css
@@ -946,8 +946,9 @@ textarea { @@ -946,8 +946,9 @@ textarea {
946 } 946 }
947 #tableAlignementFrequence{ 947 #tableAlignementFrequence{
948 border-bottom: white; 948 border-bottom: white;
949 - width:510px;  
950 - margin-left: -10px; 949 + width : 20%;
  950 + /*width : 510px;*/
  951 + margin-left: -5px;
951 margin-bottom: -10px; 952 margin-bottom: -10px;
952 margin-top: -10px; 953 margin-top: -10px;
953 } 954 }