Commit eba0192d2095698e9e0ea9b6abf614e40aafd7f0

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

Suivis : Amélioration par refactorisation (2) (v3.7.9.9)

Comme pour les docs attachés (même principe) :
- refactorisation des actions add() et edit() en une seule add_or_edit()
(car très semblables)
- refactorisation des vues add et edit en une seule add_edit (car très
semblables)
- debugging javascript en cours (car ça marchait pas très bien tout
ça...)
@@ -53,14 +53,14 @@ Logiciel testé et validé sur les configurations suivantes : @@ -53,14 +53,14 @@ Logiciel testé et validé sur les configurations suivantes :
53 53
54 VERSION ACTUELLE 54 VERSION ACTUELLE
55 55
56 -Date: 24/03/2020  
57 -Version: 3.7.9.8 56 +Date: 25/03/2020
  57 +Version: 3.7.9.9
58 Author: EP 58 Author: EP
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 - - ... 59 +Commentaire: Suivis : Amélioration par refactorisation (2)
  60 + Comme pour les docs attachés (même principe) :
  61 + - refactorisation des actions add() et edit() en une seule add_or_edit() (car très semblables)
  62 + - refactorisation des vues add et edit en une seule add_edit (car très semblables)
  63 + - debugging javascript en cours (car ça marchait pas très bien tout ça...)
64 64
65 65
66 IMPORTANT : 66 IMPORTANT :
@@ -96,6 +96,13 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https @@ -96,6 +96,13 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https
96 96
97 ----------------------------------------------------------------------------------------------------------- 97 -----------------------------------------------------------------------------------------------------------
98 98
  99 +24/03/2020 Version 3.7.9.8 (EP)
  100 + Suivis : Amélioration et nombreux Bugfixes !!! (1)
  101 + - pb javascript si métrologie
  102 + - ajout intitulé comme titre
  103 + - vue édition : champs trop larges, champs éditables, champs inutiles...
  104 + - ...
  105 +
99 23/03/2020 Version 3.7.9.7 (EP) 106 23/03/2020 Version 3.7.9.7 (EP)
100 Amélioration de la gestion des docs attachés (3) 107 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 108 - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables
src/Controller/DocumentsController.php
@@ -260,8 +260,6 @@ class DocumentsController extends AppController @@ -260,8 +260,6 @@ class DocumentsController extends AppController
260 260
261 $this->myDebug("step 3: DocumentsController.add_or_edit()"); 261 $this->myDebug("step 3: DocumentsController.add_or_edit()");
262 262
263 - // add  
264 -  
265 $document = $IS_ADD ? $this->Documents->newEntity() : $this->Documents->get($id, ['contain' => []]); 263 $document = $IS_ADD ? $this->Documents->newEntity() : $this->Documents->get($id, ['contain' => []]);
266 264
267 // POST (on vient de soumettre un nouveau doc) 265 // POST (on vient de soumettre un nouveau doc)
src/Controller/SuivisController.php
@@ -22,7 +22,7 @@ class SuivisController extends AppController @@ -22,7 +22,7 @@ class SuivisController extends AppController
22 { 22 {
23 // $configuration = $this->confLabinvent; 23 // $configuration = $this->confLabinvent;
24 /* 24 /*
25 - * $role = TableRegistry::get('Users')->find() 25 + * $role = TableRegistry::getTableLocator()->get('Users')->find()
26 * ->where([ 26 * ->where([
27 * 'username' => $user[$configuration->authentificationType_ldap][0] 27 * 'username' => $user[$configuration->authentificationType_ldap][0]
28 * ]) 28 * ])
@@ -61,12 +61,12 @@ class SuivisController extends AppController @@ -61,12 +61,12 @@ class SuivisController extends AppController
61 61
62 public function isRespGroup($id, $loginResponsable) 62 public function isRespGroup($id, $loginResponsable)
63 { 63 {
64 - $u = TableRegistry::get('Users')->find() 64 + $u = TableRegistry::getTableLocator()->get('Users')->find()
65 ->where([ 65 ->where([
66 'username' => $loginResponsable 66 'username' => $loginResponsable
67 ]) 67 ])
68 ->first(); 68 ->first();
69 - if ($u['groupes_metier_id'] !== null && $u['groupes_metier_id'] != TableRegistry::get('GroupesMetiers')->find() 69 + if ($u['groupes_metier_id'] !== null && $u['groupes_metier_id'] != TableRegistry::getTableLocator()->get('GroupesMetiers')->find()
70 ->where([ 70 ->where([
71 'nom =' => 'N/A' 71 'nom =' => 'N/A'
72 ]) 72 ])
@@ -75,7 +75,7 @@ class SuivisController extends AppController @@ -75,7 +75,7 @@ class SuivisController extends AppController
75 'id' => $id, 75 'id' => $id,
76 'groupes_metier_id' => $u['groupes_metier_id'] 76 'groupes_metier_id' => $u['groupes_metier_id']
77 ])); 77 ]));
78 - } else if ($u['groupe_thematique_id'] !== null && $u['groupe_thematique_id'] != TableRegistry::get('GroupesThematiques')->find() 78 + } else if ($u['groupe_thematique_id'] !== null && $u['groupe_thematique_id'] != TableRegistry::getTableLocator()->get('GroupesThematiques')->find()
79 ->where([ 79 ->where([
80 'nom =' => 'N/A' 80 'nom =' => 'N/A'
81 ]) 81 ])
@@ -100,7 +100,7 @@ class SuivisController extends AppController @@ -100,7 +100,7 @@ class SuivisController extends AppController
100 $GM = $this->request->getQuery('GM'); 100 $GM = $this->request->getQuery('GM');
101 $GT = $this->request->getQuery('GT'); 101 $GT = $this->request->getQuery('GT');
102 if ($GM !== null || $GT !== null) { 102 if ($GM !== null || $GT !== null) {
103 - if ($GM !== null && $GM != TableRegistry::get('GroupesMetiers')->find() 103 + if ($GM !== null && $GM != TableRegistry::getTableLocator()->get('GroupesMetiers')->find()
104 ->where([ 104 ->where([
105 'nom =' => 'N/A' 105 'nom =' => 'N/A'
106 ]) 106 ])
@@ -108,7 +108,7 @@ class SuivisController extends AppController @@ -108,7 +108,7 @@ class SuivisController extends AppController
108 $condition = [ 108 $condition = [
109 'Suivis.groupes_metier_id =' => $GM 109 'Suivis.groupes_metier_id =' => $GM
110 ]; 110 ];
111 - } else if ($GT !== null && $GT != TableRegistry::get('GroupesThematiques')->find() 111 + } else if ($GT !== null && $GT != TableRegistry::getTableLocator()->get('GroupesThematiques')->find()
112 ->where([ 112 ->where([
113 'nom =' => 'N/A' 113 'nom =' => 'N/A'
114 ]) 114 ])
@@ -164,8 +164,8 @@ class SuivisController extends AppController @@ -164,8 +164,8 @@ class SuivisController extends AppController
164 'Fichemetrologiques' 164 'Fichemetrologiques'
165 ] 165 ]
166 ]); 166 ]);
167 - $typeDocuments = TableRegistry::get('TypeDocuments');  
168 - $fichemet = TableRegistry::get('Fichemetrologiques')->find('all', [ 167 + $typeDocuments = TableRegistry::getTableLocator()->get('TypeDocuments');
  168 + $fichemet = TableRegistry::getTableLocator()->get('Fichemetrologiques')->find('all', [
169 'conditions' => [ 169 'conditions' => [
170 'suivi_id' => $this->request->getAttribute('params')['pass'][0] 170 'suivi_id' => $this->request->getAttribute('params')['pass'][0]
171 ], 171 ],
@@ -208,12 +208,214 @@ class SuivisController extends AppController @@ -208,12 +208,214 @@ class SuivisController extends AppController
208 $this->set(compact('typeDocuments', 'suivi', 'fiche', 'CAN_EDIT_DELETE_LINK')); 208 $this->set(compact('typeDocuments', 'suivi', 'fiche', 'CAN_EDIT_DELETE_LINK'));
209 } // view 209 } // view
210 210
  211 +
  212 + /**
  213 + * Add or Edit method (do either add() or edit())
  214 + * => Factorisation de add() et edit()
  215 + * (voir aussi https://book.cakephp.org/3.0/en/orm.html)
  216 + *
  217 + * @param $IS_ADD: True = add ; False = edit
  218 + * @return \Cake\Network\Response|void Redirects on successful add/edit, renders view otherwise.
  219 + */
  220 + private function add_or_edit($IS_ADD, $id=null, $valeurs=null, $erreurs=null) {
  221 +
  222 + $this->myDebug("step 3: SuivisController.add_or_edit()");
  223 +
  224 + $IS_EDIT = !$IS_ADD;
  225 + // TODO: utiliser $entity au lieu de $suivi (car c'est plus générique)
  226 + $suivi = $IS_ADD ?
  227 + $this->Suivis->newEntity()
  228 + :
  229 + // cf https://book.cakephp.org/3/fr/orm/retrieving-data-and-resultsets.html#eager-loading-associations
  230 + // Ceci permettra des accès du type $suivi->type_suivi->nom depuis la vue
  231 + $this->Suivis->get($id, ['contain' => ['TypeSuivis']]);
  232 +
  233 + //debug($suivi);
  234 + // POST (on arrive ici après un SUBMIT)
  235 + // add
  236 + //if ($this->request->is('post')) {
  237 + if ($this->request->is(['patch','post','put'])) {
  238 + $suivi = $this->Suivis->patchEntity($suivi, $this->request->getData());
  239 + if ($IS_ADD) {
  240 + if ($this->request->getData('typemesure') !== null && $this->request->getData('typemesure') == "1")
  241 + $suivi->typemesure = "Indirect";
  242 + $suivi->panne_resolu = false;
  243 + }
  244 + // SAVED OK
  245 + if ($this->Suivis->save($suivi)) {
  246 + $verb = $IS_ADD ? 'ajouté' : 'modifié';
  247 + $this->Flash->success(__("Le suivi a bien été $verb"));
  248 + // ADD
  249 + if ($IS_ADD) return $this->redirect([
  250 + 'controller' => 'Materiels',
  251 + 'action' => 'view',
  252 + $this->request->getAttribute('params')['pass'][0]
  253 + ]);
  254 + // EDIT
  255 + else return $this->redirect([
  256 + 'action' => 'index',
  257 + $id
  258 + ]);
  259 + }
  260 + // SAVED KO
  261 + else {
  262 + $this->Flash->error(__("Le suivi n'a pas pu être $verb"));
  263 + if ($IS_ADD) return $this->redirect([
  264 + 'controller' => 'Materiels',
  265 + 'action' => 'view',
  266 + $this->request->getAttribute('params')['pass'][0]
  267 + ]);
  268 + }
  269 + } // POST
  270 +
  271 +
  272 + // START (on arrive ici la première fois qu'on ouvre la vue)
  273 + $unite = TableRegistry::getTableLocator()->get('Unites')->find('list', [
  274 + 'keyfield' => 'id',
  275 + 'valueField' => 'nom'
  276 + ]);
  277 + $materiels = $this->Suivis->Materiels->find('list');
  278 + $materiel_id = $IS_EDIT ? $suivi->materiel_id : $this->request->getAttribute('params')['pass'][0];
  279 + $materiel = $this->Suivis->Materiels->get($materiel_id);
  280 + /*
  281 + $materiel = $IS_EDIT ?
  282 + $this->Suivis->Materiels->get($suivi->materiel_id)
  283 + /S
  284 + $this->Suivis->Materiels->find()
  285 + ->where([
  286 + 'id =' => $suivi->materiel_id
  287 + ])
  288 + ->first();
  289 + S/
  290 + :
  291 + $this->Suivis->Materiels->find()
  292 + ->where([
  293 + 'id =' => $this->request->getAttribute('params')['pass'][0]
  294 + ])
  295 + ->first();
  296 + */
  297 + // ADD only
  298 + if ($IS_ADD) {
  299 + $formule = TableRegistry::getTableLocator()->get('Formules')->find('list', [
  300 + 'keyfield' => 'id',
  301 + 'valueField' => 'formule'
  302 + ]);
  303 + $formules = TableRegistry::getTableLocator()->get('Formules')->find('all');
  304 + $variables = TableRegistry::getTableLocator()->get('Variables')->find('list')->toArray();
  305 + }
  306 + // EDIT only
  307 + else {
  308 + $numMateriel = $this->Suivis->Materiels->find()
  309 + ->select('numero_laboratoire')
  310 + ->where([
  311 + 'id =' => $suivi->get('materiel_id')
  312 + ])
  313 + ->first()['numero_laboratoire'];
  314 + }
  315 +
  316 + // Le materiel est-il suivi en métrologie ou non ?
  317 + //$matos_id = $IS_ADD ? $this->request->getAttribute('params')['pass'][0] : $suivi->materiel_id;
  318 + $metro = TableRegistry::getTableLocator()->get('Materiels')->find()
  319 + ->select('metrologie')
  320 + ->where([
  321 + 'id =' => $materiel_id
  322 + ])
  323 + ->first()['metrologie'];
  324 +
  325 + if ($metro == 1)
  326 + $typeSuivis = $this->Suivis->TypeSuivis->find('list', [
  327 + 'keyField' => 'id',
  328 + 'valueField' => 'nom'
  329 + ]);
  330 + else {
  331 + $conditions = [
  332 + 'AND' => [
  333 + 'nom !=' => 'Vérification métrologique'
  334 + ]
  335 + ];
  336 + if ($IS_EDIT) $conditions = [
  337 + 'AND' => [
  338 + [
  339 + 'id !=' => '4'
  340 + ],
  341 + [
  342 + 'id !=' => '5'
  343 + ],
  344 + [
  345 + 'id !=' => '6'
  346 + ]
  347 + ]
  348 + ];
  349 + $typeSuivis = $this->Suivis->TypeSuivis->find('list', [
  350 + 'keyField' => 'id',
  351 + 'valueField' => 'nom',
  352 + 'conditions' => $conditions
  353 + ]);
  354 + }
  355 +
  356 + // $domaineresp= TableRegistry::getTableLocator()->get('Users')->find()->select('sur_categorie_id')->where(['username =' => $this->LdapAuth->user($this->request->getSession()->read('authType'))[0]])->first()['sur_categorie_id'];
  357 + $matos_id = $IS_ADD ? $materiel->id : $suivi->materiel_id;
  358 + $dom = TableRegistry::getTableLocator()->get('Materiels')->find()
  359 + ->select('sur_categorie_id')
  360 + ->where([
  361 + 'id =' => $matos_id
  362 + ])
  363 + ->first()['sur_categorie_id'];
  364 + $domaines = TableRegistry::getTableLocator()->get('Users')->find()
  365 + ->select('sur_categorie_id')
  366 + ->where([
  367 + 'username =' => $this->LdapAuth->user($this->request->getSession()
  368 + ->read('authType'))[0]
  369 + ])
  370 + ->first()['sur_categorie_id'];
  371 + $domaineresp = ($dom==$domaines);
  372 +
  373 + $groupesThematiques = $this->Suivis->GroupesThematiques->find('list', [
  374 + 'keyField' => 'id',
  375 + 'valueField' => 'nom',
  376 + 'order' => 'GroupesThematiques.nom'
  377 + ]);
  378 + $groupesMetiers = $this->Suivis->GroupesMetiers->find('list', [
  379 + 'keyField' => 'id',
  380 + 'valueField' => 'nom',
  381 + 'order' => 'GroupesMetiers.nom'
  382 + ]);
  383 +
  384 + $parent = $materiel;
  385 + // Utile ?
  386 + //$parent_id = $materiel_id;
  387 + $model = $suivi;
  388 + $this->set(compact(
  389 + 'IS_ADD', 'IS_EDIT',
  390 + 'unite', 'domaineresp',
  391 + 'suivi','model',
  392 + 'materiel','parent',
  393 + //'materiel_id', 'parent_id',
  394 + 'groupesThematiques', 'groupesMetiers',
  395 + 'materiels', 'typeSuivis'
  396 + ));
  397 + if ($IS_ADD)
  398 + $this->set(compact('variables', 'formule', 'formules'));
  399 + else
  400 + $this->set(compact('metro', 'numMateriel'));
  401 + /* (EP inutile)
  402 + $this->set('_serialize', [
  403 + 'suivi'
  404 + ]);
  405 + */
  406 +
  407 + } // add_or_edit()
  408 +
211 /** 409 /**
212 * Add method 410 * Add method
213 * 411 *
214 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. 412 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
215 */ 413 */
216 - public function add() 414 + //public function add()
  415 + public function add($valeurs = null, $erreurs = null) {
  416 + $this->add_or_edit(TRUE, null, $valeurs, $erreurs);
  417 + }
  418 + private function add_orig()
217 { 419 {
218 $suivi = $this->Suivis->newEntity(); 420 $suivi = $this->Suivis->newEntity();
219 if ($this->request->is('post')) { 421 if ($this->request->is('post')) {
@@ -238,29 +440,29 @@ class SuivisController extends AppController @@ -238,29 +440,29 @@ class SuivisController extends AppController
238 } 440 }
239 } 441 }
240 $materiels = $this->Suivis->Materiels->find('list'); 442 $materiels = $this->Suivis->Materiels->find('list');
241 - $unite = TableRegistry::get('Unites')->find('list', [ 443 + $unite = TableRegistry::getTableLocator()->get('Unites')->find('list', [
242 'keyfield' => 'id', 444 'keyfield' => 'id',
243 'valueField' => 'nom' 445 'valueField' => 'nom'
244 ]); 446 ]);
245 - $formule = TableRegistry::get('Formules')->find('list', [ 447 + $formule = TableRegistry::getTableLocator()->get('Formules')->find('list', [
246 'keyfield' => 'id', 448 'keyfield' => 'id',
247 'valueField' => 'formule' 449 'valueField' => 'formule'
248 ]); 450 ]);
249 - $formules = TableRegistry::get('Formules')->find('all'); 451 + $formules = TableRegistry::getTableLocator()->get('Formules')->find('all');
250 // Le materiel est-il suivi en métrologie ou non ? 452 // Le materiel est-il suivi en métrologie ou non ?
251 - $metro = TableRegistry::get('Materiels')->find() 453 + $metro = TableRegistry::getTableLocator()->get('Materiels')->find()
252 ->select('metrologie') 454 ->select('metrologie')
253 ->where([ 455 ->where([
254 'id =' => $this->request->getAttribute('params')['pass'][0] 456 'id =' => $this->request->getAttribute('params')['pass'][0]
255 ]) 457 ])
256 ->first()['metrologie']; 458 ->first()['metrologie'];
257 - $variables = TableRegistry::get('Variables')->find('list')->toArray(); 459 + $variables = TableRegistry::getTableLocator()->get('Variables')->find('list')->toArray();
258 $materiel = $this->Suivis->Materiels->find() 460 $materiel = $this->Suivis->Materiels->find()
259 ->where([ 461 ->where([
260 'id =' => $this->request->getAttribute('params')['pass'][0] 462 'id =' => $this->request->getAttribute('params')['pass'][0]
261 ]) 463 ])
262 ->first(); 464 ->first();
263 - // $domaineresp= TableRegistry::get('Users')->find()->select('sur_categorie_id')->where(['username =' => $this->LdapAuth->user($this->request->getSession()->read('authType'))[0]])->first()['sur_categorie_id']; 465 + // $domaineresp= TableRegistry::getTableLocator()->get('Users')->find()->select('sur_categorie_id')->where(['username =' => $this->LdapAuth->user($this->request->getSession()->read('authType'))[0]])->first()['sur_categorie_id'];
264 if ($metro == 1) { 466 if ($metro == 1) {
265 $typeSuivis = $this->Suivis->TypeSuivis->find('list', [ 467 $typeSuivis = $this->Suivis->TypeSuivis->find('list', [
266 'keyField' => 'id', 468 'keyField' => 'id',
@@ -277,13 +479,13 @@ class SuivisController extends AppController @@ -277,13 +479,13 @@ class SuivisController extends AppController
277 ] 479 ]
278 ]); 480 ]);
279 } 481 }
280 - $dom = TableRegistry::get('Materiels')->find() 482 + $dom = TableRegistry::getTableLocator()->get('Materiels')->find()
281 ->select('sur_categorie_id') 483 ->select('sur_categorie_id')
282 ->where([ 484 ->where([
283 'id =' => $materiel->id 485 'id =' => $materiel->id
284 ]) 486 ])
285 ->first()['sur_categorie_id']; 487 ->first()['sur_categorie_id'];
286 - $domaines = TableRegistry::get('Users')->find() 488 + $domaines = TableRegistry::getTableLocator()->get('Users')->find()
287 ->select('sur_categorie_id') 489 ->select('sur_categorie_id')
288 ->where([ 490 ->where([
289 'username =' => $this->LdapAuth->user($this->request->getSession() 491 'username =' => $this->LdapAuth->user($this->request->getSession()
@@ -308,7 +510,7 @@ class SuivisController extends AppController @@ -308,7 +510,7 @@ class SuivisController extends AppController
308 $this->set('_serialize', [ 510 $this->set('_serialize', [
309 'suivi' 511 'suivi'
310 ]); 512 ]);
311 - } 513 + } // add()
312 514
313 /** 515 /**
314 * Edit method 516 * Edit method
@@ -318,13 +520,17 @@ class SuivisController extends AppController @@ -318,13 +520,17 @@ class SuivisController extends AppController
318 * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. 520 * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise.
319 * @throws \Cake\Network\Exception\NotFoundException When record not found. 521 * @throws \Cake\Network\Exception\NotFoundException When record not found.
320 */ 522 */
321 - public function edit($id = null) 523 + public function edit($id = null) {
  524 + $this->add_or_edit(FALSE, $id);
  525 + }
  526 + private function edit_orig($id = null)
322 { 527 {
323 // cf https://book.cakephp.org/3/fr/orm/retrieving-data-and-resultsets.html#eager-loading-associations 528 // 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 529 // Ceci permettra des accès du type $suivi->type_suivi->nom depuis la vue
325 $suivi = $this->Suivis->get($id, [ 530 $suivi = $this->Suivis->get($id, [
326 'contain' => ['TypeSuivis'] 531 'contain' => ['TypeSuivis']
327 ]); 532 ]);
  533 + // POST
328 if ($this->request->is([ 534 if ($this->request->is([
329 'patch', 535 'patch',
330 'post', 536 'post',
@@ -341,42 +547,49 @@ class SuivisController extends AppController @@ -341,42 +547,49 @@ class SuivisController extends AppController
341 $this->Flash->error(__('Le suivi n\'a pas pu être édité.')); 547 $this->Flash->error(__('Le suivi n\'a pas pu être édité.'));
342 } 548 }
343 } 549 }
  550 +
  551 + // START
344 $materiels = $this->Suivis->Materiels->find('list'); 552 $materiels = $this->Suivis->Materiels->find('list');
345 $materiel = $this->Suivis->Materiels->find() 553 $materiel = $this->Suivis->Materiels->find()
346 ->where([ 554 ->where([
347 'id =' => $suivi->materiel_id 555 'id =' => $suivi->materiel_id
348 ]) 556 ])
349 ->first(); 557 ->first();
350 - $unite = TableRegistry::get('Unites')->find('list', [ 558 + $unite = TableRegistry::getTableLocator()->get('Unites')->find('list', [
351 'keyfield' => 'id', 559 'keyfield' => 'id',
352 'valueField' => 'nom' 560 'valueField' => 'nom'
353 ]); 561 ]);
  562 +
354 $numMateriel = $this->Suivis->Materiels->find() 563 $numMateriel = $this->Suivis->Materiels->find()
355 ->select('numero_laboratoire') 564 ->select('numero_laboratoire')
356 ->where([ 565 ->where([
357 'id =' => $suivi->get('materiel_id') 566 'id =' => $suivi->get('materiel_id')
358 ]) 567 ])
359 ->first()['numero_laboratoire']; 568 ->first()['numero_laboratoire'];
360 - $metro = TableRegistry::get('Materiels')->find() 569 +
  570 + $metro = TableRegistry::getTableLocator()->get('Materiels')->find()
361 ->select('metrologie') 571 ->select('metrologie')
362 ->where([ 572 ->where([
363 'id =' => $suivi->materiel_id 573 'id =' => $suivi->materiel_id
364 ]) 574 ])
365 ->first()['metrologie']; 575 ->first()['metrologie'];
366 - $typeSuivis = $this->Suivis->TypeSuivis->find('list', [  
367 - 'keyField' => 'id',  
368 - 'valueField' => 'nom'  
369 - ]); 576 +
370 $groupesThematiques = $this->Suivis->GroupesThematiques->find('list', [ 577 $groupesThematiques = $this->Suivis->GroupesThematiques->find('list', [
371 'keyField' => 'id', 578 'keyField' => 'id',
372 'valueField' => 'nom', 579 'valueField' => 'nom',
373 'order' => 'GroupesThematiques.nom' 580 'order' => 'GroupesThematiques.nom'
374 ]); 581 ]);
  582 +
375 $groupesMetiers = $this->Suivis->GroupesMetiers->find('list', [ 583 $groupesMetiers = $this->Suivis->GroupesMetiers->find('list', [
376 'keyField' => 'id', 584 'keyField' => 'id',
377 'valueField' => 'nom', 585 'valueField' => 'nom',
378 'order' => 'GroupesMetiers.nom' 586 'order' => 'GroupesMetiers.nom'
379 ]); 587 ]);
  588 +
  589 + $typeSuivis = $this->Suivis->TypeSuivis->find('list', [
  590 + 'keyField' => 'id',
  591 + 'valueField' => 'nom'
  592 + ]);
380 if ($metro == 1) { 593 if ($metro == 1) {
381 $typeSuivis = $this->Suivis->TypeSuivis->find('list', [ 594 $typeSuivis = $this->Suivis->TypeSuivis->find('list', [
382 'keyField' => 'id', 595 'keyField' => 'id',
@@ -401,13 +614,13 @@ class SuivisController extends AppController @@ -401,13 +614,13 @@ class SuivisController extends AppController
401 ] 614 ]
402 ]); 615 ]);
403 } 616 }
404 - $dom = TableRegistry::get('Materiels')->find() 617 + $dom = TableRegistry::getTableLocator()->get('Materiels')->find()
405 ->select('sur_categorie_id') 618 ->select('sur_categorie_id')
406 ->where([ 619 ->where([
407 'id =' => $suivi->materiel_id 620 'id =' => $suivi->materiel_id
408 ]) 621 ])
409 ->first()['sur_categorie_id']; 622 ->first()['sur_categorie_id'];
410 - $domaines = TableRegistry::get('Users')->find() 623 + $domaines = TableRegistry::getTableLocator()->get('Users')->find()
411 ->select('sur_categorie_id') 624 ->select('sur_categorie_id')
412 ->where([ 625 ->where([
413 'username =' => $this->LdapAuth->user($this->request->getSession() 626 'username =' => $this->LdapAuth->user($this->request->getSession()
@@ -415,6 +628,7 @@ class SuivisController extends AppController @@ -415,6 +628,7 @@ class SuivisController extends AppController
415 ]) 628 ])
416 ->first()['sur_categorie_id']; 629 ->first()['sur_categorie_id'];
417 $domaineresp = ($dom == $domaines); 630 $domaineresp = ($dom == $domaines);
  631 +
418 $parent = $materiel; 632 $parent = $materiel;
419 $this->set(compact('unite', 'metro', 'domaineresp', 'suivi', 'parent', 'materiel', 'materiels', 'typeSuivis', 'numMateriel', 'groupesThematiques', 'groupesMetiers')); 633 $this->set(compact('unite', 'metro', 'domaineresp', 'suivi', 'parent', 'materiel', 'materiels', 'typeSuivis', 'numMateriel', 'groupesThematiques', 'groupesMetiers'));
420 /* (EP inutile) 634 /* (EP inutile)
src/Template/Documents/add_edit.ctp
1 <?php 1 <?php
2 // Variables passées à cette vue par le controleur 2 // Variables passées à cette vue par le controleur
  3 +// add or edit mode ? true=add ; false=edit
  4 +$IS_ADD = $IS_ADD;
3 // objet document : si ADD : vide ; si EDIT : plein 5 // objet document : si ADD : vide ; si EDIT : plein
4 $document = $document; 6 $document = $document;
5 // - Liste des types de doc 7 // - Liste des types de doc
@@ -9,8 +11,6 @@ $parent = $parent; @@ -9,8 +11,6 @@ $parent = $parent;
9 $parent_type = $parent_type; 11 $parent_type = $parent_type;
10 $parent_controller = $parent_controller; 12 $parent_controller = $parent_controller;
11 $parent_name = $parent_name; 13 $parent_name = $parent_name;
12 -// add or edit mode ? true=add ; false=edit  
13 -$IS_ADD = $IS_ADD;  
14 14
15 // optionnel 15 // optionnel
16 $doc = 'un document'; 16 $doc = 'un document';
src/Template/Element/menu_responsive.ctp
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 <li class="nav-item dropdown"> 39 <li class="nav-item dropdown">
40 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="text-decoration-color: #17457F;">Suivi</a> 40 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="text-decoration-color: #17457F;">Suivi</a>
41 <div class="dropdown-menu" aria-labelledby="navbarDropdown"> 41 <div class="dropdown-menu" aria-labelledby="navbarDropdown">
42 - <?=$this->Html->link('<i class="dropdown-item">Liste</i>', ['controller' => 'Suivis','action' => 'index'], ['escape' => false])?> 42 + <?=$this->Html->link('<i class="dropdown-item">Tous</i>', ['controller' => 'Suivis','action' => 'index'], ['escape' => false])?>
43 <?=$this->Html->link('<i class="dropdown-item">Rechercher</i>', ['controller' => 'suivis','action' => 'find'], ['escape' => false]);?> 43 <?=$this->Html->link('<i class="dropdown-item">Rechercher</i>', ['controller' => 'suivis','action' => 'find'], ['escape' => false]);?>
44 </div> 44 </div>
45 </li> 45 </li>
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 <li class="nav-item dropdown"> 48 <li class="nav-item dropdown">
49 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="text-decoration-color: #17457F;">Emprunt</a> 49 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="text-decoration-color: #17457F;">Emprunt</a>
50 <div class="dropdown-menu" aria-labelledby="navbarDropdown"> 50 <div class="dropdown-menu" aria-labelledby="navbarDropdown">
51 - <?=$this->Html->link('<i class="dropdown-item">Liste</i>', ['controller' => 'Emprunts','action' => 'index'], ['escape' => false]);?> 51 + <?=$this->Html->link('<i class="dropdown-item">Tous</i>', ['controller' => 'Emprunts','action' => 'index'], ['escape' => false]);?>
52 <?=$this->Html->link('<i class="dropdown-item">Rechercher</i>', ['controller' => 'emprunts','action' => 'find'], ['escape' => false])?> 52 <?=$this->Html->link('<i class="dropdown-item">Rechercher</i>', ['controller' => 'emprunts','action' => 'find'], ['escape' => false])?>
53 </div> 53 </div>
54 </li> 54 </li>
src/Template/Suivis/add.ctp
1 -  
2 -<div class="suivis form col-lg-12 col-md-12 col-sm-12">  
3 - <?=$this->Form->create($suivi)?>  
4 - <fieldset>  
5 - <h2>  
6 - <i class="icon-plus"></i> Ajouter un suivi  
7 - </h2>  
8 - <?php  
9 - echo $this->Form->hidden('materiel_id', [  
10 - 'options' => $materiels,  
11 - 'default' => $this->request->getAttribute('params')['pass'][0]  
12 - ]);  
13 - echo $this->Form->control('materiel_numero_laboratoire', [  
14 - 'label' => 'N° materiel labo',  
15 - 'default' => $materiel['numero_laboratoire'],  
16 - 'disabled' => TRUE  
17 - ]);  
18 -  
19 - echo '<div id="listes" style="display:none">';  
20 - echo $this->Form->control('listeunite', [  
21 - 'options' => $unite  
22 - ]);  
23 - echo $this->Form->control('listeformule', [  
24 - 'options' => $formule  
25 - ]);  
26 - echo '</div>';  
27 -  
28 - echo $this->Form->control('type_suivi_id', [  
29 - 'label' => 'Type d\'intervention',  
30 - 'options' => $typeSuivis,  
31 - 'default' => 3,  
32 - 'empty' => "Choisir le type de suivi"  
33 - ]);  
34 -  
35 - echo '<div id="frequence" style="display:none">';  
36 - echo '</div>';  
37 -  
38 - echo '<div id="dates" style="display:none">';  
39 - echo $this->Form->control('date_controle', [  
40 - 'type' => 'text',  
41 - 'id' => 'date_deb',  
42 - 'label' => 'Date de la prise en charge',  
43 - 'class' => 'datepicker',  
44 - 'placeholder' => 'Cliquez pour sélectionner une date'  
45 - ]);  
46 - echo $this->Form->control('date_prochain_controle', [  
47 - 'type' => 'text',  
48 - 'id' => 'date_fin',  
49 - 'label' => 'Date estimee de fin',  
50 - 'class' => 'datepicker',  
51 - 'placeholder' => 'Cliquez pour sélectionner une date'  
52 - ]);  
53 -  
54 -  
55 - echo '</div>';  
56 -  
57 - echo $this->Form->control('organisme', [  
58 - 'label' => 'Prestataire'  
59 - ]);  
60 - echo $this->Form->control('groupes_thematique_id', [  
61 - 'label' => $configuration->nom_groupe_thematique,  
62 - 'options' => $groupesThematiques,  
63 - 'default' => $materiel['groupes_thematique_id']  
64 - ]);  
65 - echo $this->Form->control('groupes_metier_id', [  
66 - 'label' => $configuration->nom_groupe_metier,  
67 - 'options' => $groupesMetiers,  
68 - 'default' => $materiel['groupes_metier_id']  
69 - ]);  
70 - echo $this->Form->control('intitule', [  
71 - 'label' => 'Intitulé',  
72 - 'required' => 'required'  
73 - ]);  
74 -  
75 - echo '<div id="typedemesure">';  
76 - echo '</div>';  
77 -  
78 - echo '<div id="metro">';  
79 - echo '</div>';  
80 -  
81 - echo $this->Form->control('commentaire', [  
82 - 'type' => 'textarea'  
83 - ]);  
84 - echo $this->Form->hidden('nom_createur', [  
85 - 'value' => $username  
86 - ]);  
87 - ?>  
88 - </fieldset>  
89 - <?=$this->Form->submit(__('Valider'))?>  
90 - <?=$this->Form->end()?>  
91 -</div>  
92 -  
93 -<!--  
94 -<div class="actions">  
95 - <php  
96 -echo $this->element('menu');  
97 -echo $this->element('menu_form', [  
98 - 'pluralHumanName' => 'Suivis'  
99 -]);  
100 -?>  
101 -</div>  
102 --->  
103 -  
104 -<script type="text/javascript">  
105 -  
106 - $(document).ready(function () {  
107 -  
108 - // $('#metro').hide();  
109 - var cpt = 0;  
110 - $('#metro').children('.input').each(function(){  
111 - $(this).hide();  
112 - cpt ++;  
113 - var props="";  
114 - console.log('Yolo' + cpt + ' - ' + this.textContent + ' - ' + this.hidden);  
115 - for (prop in this){  
116 - props+= prop + " => " +this[prop] + "\n";  
117 - }  
118 - console.log(props);  
119 - });  
120 -  
121 -  
122 - console.log("Doc. chargé");  
123 -  
124 - $("#type-suivi-id").bind("change", function (event) {  
125 - var domaineId=$("#type-suivi-id :selected").text();  
126 -  
127 - if (domaineId== "Vérification métrologique") {  
128 - document.getElementById('typedemesure').innerHTML ="<div class=\"input select required\"><label for=\"typemesure\">Type de mesure</label><select name=\"typemesure\" onchange=\"typedemesure()\" id=\"typemesure\"><option value=\"1\">Direct</option><option value=\"2\">Indirect</option></select></div>";  
129 - $('#listes').show();  
130 - typedemesure();  
131 - } else {  
132 -// document.getElementById('metro').innerHTML ="";  
133 - document.getElementById('typedemesure').innerHTML = "";  
134 - $('#listes').hide();  
135 - }  
136 - //gère l'affichage dynamique après choix du type de suivi  
137 -  
138 - if( domaineId == "Panne"){  
139 - document.getElementById('frequence').innerHTML = "";  
140 - $("#frequence").hide();  
141 - $("#dates").show();  
142 -  
143 - } else {  
144 - $("#dates").hide();  
145 - $("#frequence").show();  
146 - document.getElementById('frequence').innerHTML = "<div class=\"input text required\" ><table id=\"tableAlignementFrequence\" ><tbody><tr><td><div class=\"A\"><label for=\"SuiviFrequence\">Fréquence</label><input type=\"text\" name=\"frequence\" id=\"SuiviFrequence\" placeholder=\"\" required=\"required\" maxlength=\"11\"></div></td><td><div class=\"typeFrequence\" ><select name=\"type_frequence\" id=\"type-frequence\"><option value=\"/ Jours\">/ Jours</option><option value=\"/ Semaines\">/ Semaines</option><option value=\"/ Mois\" selected=\"selected\">/ Mois</option><option value=\"/ Ans\">/ Ans</option></select></div></td></tr></tbody></table></div>";  
147 - }  
148 - });  
149 -  
150 -  
151 -  
152 -  
153 - /**  
154 - * Event calcul date prochain controle  
155 - */  
156 - $("#SuiviFrequence").bind("change", function (event) {  
157 - console.log("SuiviFrequence changed");  
158 - if($("#date-controle").val() != "" && $("#SuiviFrequence").val() != "") {  
159 - var url = document.URL;  
160 - var reg=new RegExp("(suivis).*$","g");  
161 - var dateUrl = url.replace(reg, "Suivis/getNextDate/");  
162 - $.ajax({  
163 - url: dateUrl + $("#date-controle").val() + "/" + $("#SuiviFrequence").val() + "/" + $("#type-frequence").val().substring(2)  
164 - }).done(function(data) {  
165 - $("#date-prochain-controle").val(data)  
166 - });  
167 - }  
168 - });  
169 -  
170 - $("#type-frequence").bind("change", function (event) {  
171 - console.log("type-frequence changed");  
172 - if($("#date-controle").val() != "" && $("#SuiviFrequence").val() != "") {  
173 - var url = document.URL;  
174 - var reg=new RegExp("(suivis).*$","g");  
175 - var dateUrl = url.replace(reg, "Suivis/getNextDate/");  
176 - $.ajax({  
177 - url: dateUrl + $("#date-controle").val() + "/" + $("#SuiviFrequence").val() + "/" + $("#type-frequence").val().substring(2)  
178 - }).done(function(data) {  
179 - $("#date-prochain-controle").val(data)  
180 - });  
181 - }  
182 - });  
183 -});  
184 -  
185 -function typedemesure(){  
186 - var domaineId=$("#type-suivi-id :selected").text();  
187 - var opts ="";  
188 - $('#listeunite option').each(function(){  
189 - if($(this).val()==10){  
190 - opts += "<option selected=\"selected\" value=\""+$(this).val()+"\">"+$(this).text()+"</option>";  
191 - } else {  
192 - opts += "<option value=\""+$(this).val()+"\">"+$(this).text()+"</option>";  
193 - }  
194 - });  
195 -  
196 - var listformule = "<option selected=\"selected\"></option>";  
197 - $('#listeformule option').each(function(){  
198 - listformule += "<option value=\""+$(this).val()+"\">"+$(this).text()+"</option>";  
199 - });  
200 -  
201 -  
202 - if($('#typemesure option:selected').val() == '1') {  
203 - document.getElementById('metro').innerHTML ="<div class=\"input text required\" ><label for=\"nommesure\">Nom de la mesure</label><input type=\"text\" name=\"nommesure\" maxlength=\"45\" id=\"nommesure\"></div><div class=\"input text required\" ><label for=\"symbole\">Symbole</label><input type=\"text\" name=\"symbole\" maxlength=\"45\" id=\"symbole\"></div>";  
204 - document.getElementById('metro').innerHTML +="<div class=\"input select required\" ><label for=\"unite-id\">Unité</label><select name=\"unite_id\" id=\"unite-id\" >"+opts+"</select></div>";  
205 - } else {  
206 - document.getElementById('metro').innerHTML ="<div class=\"input select required\" ><label for=\"formule_id\">Formule</label><select onchange=\"changeformule()\" name=\"formule_id\" id=\"formule-id\" >"+listformule+"</select></div>";  
207 - document.getElementById('metro').innerHTML +="<div class=\"input text required\" ><label for=\"nommesure\">Nom de la mesure</label><input type=\"text\" readonly name=\"nommesure\" maxlength=\"45\" id=\"nommesure\"></div>";  
208 - document.getElementById('metro').innerHTML +="<div class=\"input text required\" ><label for=\"symbole\">Symbole</label><input type=\"text\" readonly name=\"symbole\" maxlength=\"45\" id=\"symbole\"></div>";  
209 - document.getElementById('metro').innerHTML +="<div class=\"input text required\" ><label for=\"unite\">Unité</label><input type=\"text\" readonly name=\"unite\" id=\"unite\"></div>"  
210 - }  
211 - document.getElementById('metro').innerHTML +="<div class=\"input number required\" ><label for=\"valeurref\">Valeur de référence</label><input type=\"number\" name=\"valeurRef\" step=\"any\" id=\"valeurref\"></div><div class=\"input number\" ><label for=\"plage-debut\">Plage de mesure (debut)</label><input type=\"number\" name=\"plage_debut\" step=\"any\" id=\"plage-debut\"></div><div class=\"input number\" ><label for=\"plage-fin\">Plage de mesure (fin)</label><input type=\"number\" name=\"plage_fin\" step=\"any\" id=\"plage-fin\"></div>";  
212 - document.getElementById('metro').innerHTML +="<div class=\"input number required\" ><label for=\"resolution\">Resolution</label><input type=\"number\" name=\"resolution\" step=\"any\" id=\"resolution\"></div><div class=\"input number required\" ><label for=\"tolerance\">Tolerance</label><input type=\"number\" name=\"tolerance\" step=\"any\" id=\"tolerance\"></div><div class=\"input number\" ><label for=\"sensibilite\">Sensibilité</label><input type=\"number\" name=\"sensibilite\" step=\"any\" id=\"sensibilite\"></div>";  
213 - document.getElementById('metro').innerHTML +="<div class=\"input number \" ><label for=\"justesse\">Justesse</label><input type=\"number\" name=\"justesse\" step=\"any\" id=\"justesse\"></div><div class=\"input number \" ><label for=\"fidelite\">Fidelite</label><input type=\"number\" name=\"fidelite\" step=\"any\" id=\"fidelite\"></div><div class=\"input number required\" ><label for=\"emtstandart\">EMT standart</label><input type=\"number\" name=\"emtstandart\" step=\"any\" id=\"emtstandart\"></div>";  
214 -}  
215 -  
216 -function changeformule(){  
217 - var listeformules = $('#listeformules');  
218 - var formule_id=document.getElementById('formule-id').options[document.getElementById('formule-id').selectedIndex].value;  
219 - var re=new RegExp('.*\"id\": '+formule_id+',.*');  
220 - var formule;  
221 - var formule_array;  
222 - $('#listeformules option').each(function() {  
223 - if(re.test($(this).text())){  
224 - formule =$(this).text();  
225 - formule= formule.substring(2,formule.length-2);  
226 - var reg=new RegExp('[ ,:]+');  
227 - formule_array = formule.split(reg);  
228 - var regE=new RegExp('[ "]+');  
229 - for (var i=0; i< formule_array.length;i++){  
230 - if(regE.test(formule_array[i])){  
231 - formule_array[i]= formule_array[i].substring(1,formule_array[i].length-1);  
232 - }  
233 - }  
234 - }  
235 - });  
236 - document.getElementById("nommesure").value=formule_array[4];  
237 - document.getElementById("symbole").value=formule_array[8];  
238 - document.getElementById("unite").value=formule_array[10];  
239 - var var_array = new Array(<?php $variables?>);  
240 - alert(var_array);  
241 -}  
242 -  
243 -</script> 1 +<?php
  2 +$this->extend('/Suivis/add_edit');
  3 +?>
244 \ No newline at end of file 4 \ No newline at end of file
src/Template/Suivis/edit.ctp
1 <?php 1 <?php
2 -// Variables passées à cette vue par le controleur  
3 -$suivi = $suivi;  
4 -  
5 -$parent = $parent;  
6 -//@deprecated  
7 -$materiel = $materiel;  
8 -  
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 -?>  
18 -  
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">  
23 -  
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 -  
236 - </fieldset>  
237 -  
238 - <!-- Bouton enregistrer -->  
239 - <?=$this->Form->submit(__('Enregistrer'))?>  
240 -  
241 - <?=$this->Form->end()?>  
242 -  
243 -</div>  
244 -  
245 -<!--  
246 -<div class="actions">  
247 - <php  
248 -echo $this->element('menu');  
249 -echo $this->element('menu_form', [  
250 - 'pluralHumanName' => 'Suivis'  
251 -]);  
252 -?>  
253 -</div>  
254 --->  
255 -  
256 -  
257 -  
258 -  
259 -  
260 -  
261 -<!--  
262 -********************************************************************************  
263 - JAVASCRIPT functions  
264 -********************************************************************************  
265 --->  
266 -  
267 -<script type="text/javascript">  
268 -  
269 -$(document).ready(function () {  
270 -  
271 - var domaineId = $("#type-suivi-id :selected").text();  
272 - var ismetro = "<?=$materiel['metrologie']?>";  
273 -  
274 - //$("#metro").show();  
275 - //$("#metro").hide();  
276 - //if (domaineId != "Vérification métrologique") {  
277 - if (domaineId == "Vérification métrologique") {  
278 - $("#metro").show();  
279 - $("#nommesure").attr('required',true);  
280 - $("#symbole").attr('required',true);  
281 - $("#unite_id").attr('required',true);  
282 - $("#valeurRef").attr('required',true);  
283 - $("#resolution").attr('required',true);  
284 - $("#tolerance").attr('required',true);  
285 - $("#emtstandart").attr('required',true);  
286 - $("#typedemesure").show();  
287 - $("#typedemesure").attr('required',true);  
288 - } else if (ismetro == 1) {  
289 - $("#metro").hide();  
290 - $("#nommesure").attr('required',false);  
291 - $("#symbole").attr('required',false);  
292 - $("#unite_id").attr('required',false);  
293 - $("#valeurRef").attr('required',false);  
294 - $("#resolution").attr('required',false);  
295 - $("#tolerance").attr('required',false);  
296 - $("#emtstandart").attr('required',false);  
297 - $("#typedemesure").hide();  
298 - $("#typedemesure").attr('required',false);  
299 - }  
300 -  
301 - if(domaineId == "Réparation") $("#frequence").hide();  
302 - else $("#frequence").show();  
303 -  
304 -});  
305 -  
306 -  
307 -/*  
308 - * Vérification date début > date fin dans le cas d'une panne  
309 - */  
310 -  
311 -  
312 -$(document).ready(function () {  
313 -d1 = toDate($("#date_deb")[0].value); /* Date de la prise en charge de la panne */  
314 -d2 = toDate($("#date_fin")[0].value); /* Date estimee de fin de la panne */  
315 -  
316 -if($("#date_fin")[0].value != undefined){  
317 - if(d1 > d2) {  
318 - alert("Les dates ne correspondent pas, la date de début de prise en charge doit être antérieure à la date de fin.");  
319 - event.preventDefault();  
320 - }  
321 -}  
322 -  
323 - });  
324 -  
325 -  
326 -/**  
327 - * Event calcul date prochain controle  
328 - */  
329 - $(document).ready(function () {  
330 - $("#SuiviFrequence").bind("change", function (event) {  
331 - if($("#date-controle").val() != "" && $("#SuiviFrequence").val() != "") {  
332 - var url = document.URL;  
333 - var reg=new RegExp("(suivis).*$","g");  
334 - var dateUrl = url.replace(reg, "Suivis/getNextDate/");  
335 - $.ajax({  
336 - url: dateUrl + $("#date-controle").val() + "/" + $("#SuiviFrequence").val() + "/" + $("#type-frequence").val().substring(2)  
337 - }).done(function(data) {  
338 - $("#date-prochain-controle").val(data)  
339 - });  
340 - }  
341 - });  
342 - $("#type-frequence").bind("change", function (event) {  
343 - if($("#date-controle").val() != "" && $("#SuiviFrequence").val() != "") {  
344 - var url = document.URL;  
345 - var reg=new RegExp("(suivis).*$","g");  
346 - var dateUrl = url.replace(reg, "Suivis/getNextDate/");  
347 - $.ajax({  
348 - url: dateUrl + $("#date-controle").val() + "/" + $("#SuiviFrequence").val() + "/" + $("#type-frequence").val().substring(2)  
349 - }).done(function(data) {  
350 - $("#date-prochain-controle").val(data)  
351 - });  
352 - }  
353 - });  
354 - });  
355 -  
356 -</script>  
357 \ No newline at end of file 2 \ No newline at end of file
  3 +$this->extend('/Suivis/add_edit');
  4 +?>
358 \ No newline at end of file 5 \ No newline at end of file