Commit eba0192d2095698e9e0ea9b6abf614e40aafd7f0
1 parent
4cf3322f
Exists in
master
and in
1 other branch
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...)
Showing
7 changed files
with
264 additions
and
638 deletions
Show diff stats
README.md
... | ... | @@ -53,14 +53,14 @@ Logiciel testé et validé sur les configurations suivantes : |
53 | 53 | |
54 | 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 | 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 | 66 | IMPORTANT : |
... | ... | @@ -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 | 106 | 23/03/2020 Version 3.7.9.7 (EP) |
100 | 107 | Amélioration de la gestion des docs attachés (3) |
101 | 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 | 260 | |
261 | 261 | $this->myDebug("step 3: DocumentsController.add_or_edit()"); |
262 | 262 | |
263 | - // add | |
264 | - | |
265 | 263 | $document = $IS_ADD ? $this->Documents->newEntity() : $this->Documents->get($id, ['contain' => []]); |
266 | 264 | |
267 | 265 | // POST (on vient de soumettre un nouveau doc) | ... | ... |
src/Controller/SuivisController.php
... | ... | @@ -22,7 +22,7 @@ class SuivisController extends AppController |
22 | 22 | { |
23 | 23 | // $configuration = $this->confLabinvent; |
24 | 24 | /* |
25 | - * $role = TableRegistry::get('Users')->find() | |
25 | + * $role = TableRegistry::getTableLocator()->get('Users')->find() | |
26 | 26 | * ->where([ |
27 | 27 | * 'username' => $user[$configuration->authentificationType_ldap][0] |
28 | 28 | * ]) |
... | ... | @@ -61,12 +61,12 @@ class SuivisController extends AppController |
61 | 61 | |
62 | 62 | public function isRespGroup($id, $loginResponsable) |
63 | 63 | { |
64 | - $u = TableRegistry::get('Users')->find() | |
64 | + $u = TableRegistry::getTableLocator()->get('Users')->find() | |
65 | 65 | ->where([ |
66 | 66 | 'username' => $loginResponsable |
67 | 67 | ]) |
68 | 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 | 70 | ->where([ |
71 | 71 | 'nom =' => 'N/A' |
72 | 72 | ]) |
... | ... | @@ -75,7 +75,7 @@ class SuivisController extends AppController |
75 | 75 | 'id' => $id, |
76 | 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 | 79 | ->where([ |
80 | 80 | 'nom =' => 'N/A' |
81 | 81 | ]) |
... | ... | @@ -100,7 +100,7 @@ class SuivisController extends AppController |
100 | 100 | $GM = $this->request->getQuery('GM'); |
101 | 101 | $GT = $this->request->getQuery('GT'); |
102 | 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 | 104 | ->where([ |
105 | 105 | 'nom =' => 'N/A' |
106 | 106 | ]) |
... | ... | @@ -108,7 +108,7 @@ class SuivisController extends AppController |
108 | 108 | $condition = [ |
109 | 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 | 112 | ->where([ |
113 | 113 | 'nom =' => 'N/A' |
114 | 114 | ]) |
... | ... | @@ -164,8 +164,8 @@ class SuivisController extends AppController |
164 | 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 | 169 | 'conditions' => [ |
170 | 170 | 'suivi_id' => $this->request->getAttribute('params')['pass'][0] |
171 | 171 | ], |
... | ... | @@ -208,12 +208,214 @@ class SuivisController extends AppController |
208 | 208 | $this->set(compact('typeDocuments', 'suivi', 'fiche', 'CAN_EDIT_DELETE_LINK')); |
209 | 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 | 410 | * Add method |
213 | 411 | * |
214 | 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 | 420 | $suivi = $this->Suivis->newEntity(); |
219 | 421 | if ($this->request->is('post')) { |
... | ... | @@ -238,29 +440,29 @@ class SuivisController extends AppController |
238 | 440 | } |
239 | 441 | } |
240 | 442 | $materiels = $this->Suivis->Materiels->find('list'); |
241 | - $unite = TableRegistry::get('Unites')->find('list', [ | |
443 | + $unite = TableRegistry::getTableLocator()->get('Unites')->find('list', [ | |
242 | 444 | 'keyfield' => 'id', |
243 | 445 | 'valueField' => 'nom' |
244 | 446 | ]); |
245 | - $formule = TableRegistry::get('Formules')->find('list', [ | |
447 | + $formule = TableRegistry::getTableLocator()->get('Formules')->find('list', [ | |
246 | 448 | 'keyfield' => 'id', |
247 | 449 | 'valueField' => 'formule' |
248 | 450 | ]); |
249 | - $formules = TableRegistry::get('Formules')->find('all'); | |
451 | + $formules = TableRegistry::getTableLocator()->get('Formules')->find('all'); | |
250 | 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 | 454 | ->select('metrologie') |
253 | 455 | ->where([ |
254 | 456 | 'id =' => $this->request->getAttribute('params')['pass'][0] |
255 | 457 | ]) |
256 | 458 | ->first()['metrologie']; |
257 | - $variables = TableRegistry::get('Variables')->find('list')->toArray(); | |
459 | + $variables = TableRegistry::getTableLocator()->get('Variables')->find('list')->toArray(); | |
258 | 460 | $materiel = $this->Suivis->Materiels->find() |
259 | 461 | ->where([ |
260 | 462 | 'id =' => $this->request->getAttribute('params')['pass'][0] |
261 | 463 | ]) |
262 | 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 | 466 | if ($metro == 1) { |
265 | 467 | $typeSuivis = $this->Suivis->TypeSuivis->find('list', [ |
266 | 468 | 'keyField' => 'id', |
... | ... | @@ -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 | 483 | ->select('sur_categorie_id') |
282 | 484 | ->where([ |
283 | 485 | 'id =' => $materiel->id |
284 | 486 | ]) |
285 | 487 | ->first()['sur_categorie_id']; |
286 | - $domaines = TableRegistry::get('Users')->find() | |
488 | + $domaines = TableRegistry::getTableLocator()->get('Users')->find() | |
287 | 489 | ->select('sur_categorie_id') |
288 | 490 | ->where([ |
289 | 491 | 'username =' => $this->LdapAuth->user($this->request->getSession() |
... | ... | @@ -308,7 +510,7 @@ class SuivisController extends AppController |
308 | 510 | $this->set('_serialize', [ |
309 | 511 | 'suivi' |
310 | 512 | ]); |
311 | - } | |
513 | + } // add() | |
312 | 514 | |
313 | 515 | /** |
314 | 516 | * Edit method |
... | ... | @@ -318,13 +520,17 @@ class SuivisController extends AppController |
318 | 520 | * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. |
319 | 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 | 528 | // cf https://book.cakephp.org/3/fr/orm/retrieving-data-and-resultsets.html#eager-loading-associations |
324 | 529 | // Ceci permettra des accès du type $suivi->type_suivi->nom depuis la vue |
325 | 530 | $suivi = $this->Suivis->get($id, [ |
326 | 531 | 'contain' => ['TypeSuivis'] |
327 | 532 | ]); |
533 | + // POST | |
328 | 534 | if ($this->request->is([ |
329 | 535 | 'patch', |
330 | 536 | 'post', |
... | ... | @@ -341,42 +547,49 @@ class SuivisController extends AppController |
341 | 547 | $this->Flash->error(__('Le suivi n\'a pas pu être édité.')); |
342 | 548 | } |
343 | 549 | } |
550 | + | |
551 | + // START | |
344 | 552 | $materiels = $this->Suivis->Materiels->find('list'); |
345 | 553 | $materiel = $this->Suivis->Materiels->find() |
346 | 554 | ->where([ |
347 | 555 | 'id =' => $suivi->materiel_id |
348 | 556 | ]) |
349 | 557 | ->first(); |
350 | - $unite = TableRegistry::get('Unites')->find('list', [ | |
558 | + $unite = TableRegistry::getTableLocator()->get('Unites')->find('list', [ | |
351 | 559 | 'keyfield' => 'id', |
352 | 560 | 'valueField' => 'nom' |
353 | 561 | ]); |
562 | + | |
354 | 563 | $numMateriel = $this->Suivis->Materiels->find() |
355 | 564 | ->select('numero_laboratoire') |
356 | 565 | ->where([ |
357 | 566 | 'id =' => $suivi->get('materiel_id') |
358 | 567 | ]) |
359 | 568 | ->first()['numero_laboratoire']; |
360 | - $metro = TableRegistry::get('Materiels')->find() | |
569 | + | |
570 | + $metro = TableRegistry::getTableLocator()->get('Materiels')->find() | |
361 | 571 | ->select('metrologie') |
362 | 572 | ->where([ |
363 | 573 | 'id =' => $suivi->materiel_id |
364 | 574 | ]) |
365 | 575 | ->first()['metrologie']; |
366 | - $typeSuivis = $this->Suivis->TypeSuivis->find('list', [ | |
367 | - 'keyField' => 'id', | |
368 | - 'valueField' => 'nom' | |
369 | - ]); | |
576 | + | |
370 | 577 | $groupesThematiques = $this->Suivis->GroupesThematiques->find('list', [ |
371 | 578 | 'keyField' => 'id', |
372 | 579 | 'valueField' => 'nom', |
373 | 580 | 'order' => 'GroupesThematiques.nom' |
374 | 581 | ]); |
582 | + | |
375 | 583 | $groupesMetiers = $this->Suivis->GroupesMetiers->find('list', [ |
376 | 584 | 'keyField' => 'id', |
377 | 585 | 'valueField' => 'nom', |
378 | 586 | 'order' => 'GroupesMetiers.nom' |
379 | 587 | ]); |
588 | + | |
589 | + $typeSuivis = $this->Suivis->TypeSuivis->find('list', [ | |
590 | + 'keyField' => 'id', | |
591 | + 'valueField' => 'nom' | |
592 | + ]); | |
380 | 593 | if ($metro == 1) { |
381 | 594 | $typeSuivis = $this->Suivis->TypeSuivis->find('list', [ |
382 | 595 | 'keyField' => 'id', |
... | ... | @@ -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 | 618 | ->select('sur_categorie_id') |
406 | 619 | ->where([ |
407 | 620 | 'id =' => $suivi->materiel_id |
408 | 621 | ]) |
409 | 622 | ->first()['sur_categorie_id']; |
410 | - $domaines = TableRegistry::get('Users')->find() | |
623 | + $domaines = TableRegistry::getTableLocator()->get('Users')->find() | |
411 | 624 | ->select('sur_categorie_id') |
412 | 625 | ->where([ |
413 | 626 | 'username =' => $this->LdapAuth->user($this->request->getSession() |
... | ... | @@ -415,6 +628,7 @@ class SuivisController extends AppController |
415 | 628 | ]) |
416 | 629 | ->first()['sur_categorie_id']; |
417 | 630 | $domaineresp = ($dom == $domaines); |
631 | + | |
418 | 632 | $parent = $materiel; |
419 | 633 | $this->set(compact('unite', 'metro', 'domaineresp', 'suivi', 'parent', 'materiel', 'materiels', 'typeSuivis', 'numMateriel', 'groupesThematiques', 'groupesMetiers')); |
420 | 634 | /* (EP inutile) | ... | ... |
src/Template/Documents/add_edit.ctp
1 | 1 | <?php |
2 | 2 | // Variables passées à cette vue par le controleur |
3 | +// add or edit mode ? true=add ; false=edit | |
4 | +$IS_ADD = $IS_ADD; | |
3 | 5 | // objet document : si ADD : vide ; si EDIT : plein |
4 | 6 | $document = $document; |
5 | 7 | // - Liste des types de doc |
... | ... | @@ -9,8 +11,6 @@ $parent = $parent; |
9 | 11 | $parent_type = $parent_type; |
10 | 12 | $parent_controller = $parent_controller; |
11 | 13 | $parent_name = $parent_name; |
12 | -// add or edit mode ? true=add ; false=edit | |
13 | -$IS_ADD = $IS_ADD; | |
14 | 14 | |
15 | 15 | // optionnel |
16 | 16 | $doc = 'un document'; | ... | ... |
src/Template/Element/menu_responsive.ctp
... | ... | @@ -39,7 +39,7 @@ |
39 | 39 | <li class="nav-item dropdown"> |
40 | 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 | 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 | 43 | <?=$this->Html->link('<i class="dropdown-item">Rechercher</i>', ['controller' => 'suivis','action' => 'find'], ['escape' => false]);?> |
44 | 44 | </div> |
45 | 45 | </li> |
... | ... | @@ -48,7 +48,7 @@ |
48 | 48 | <li class="nav-item dropdown"> |
49 | 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 | 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 | 52 | <?=$this->Html->link('<i class="dropdown-item">Rechercher</i>', ['controller' => 'emprunts','action' => 'find'], ['escape' => false])?> |
53 | 53 | </div> |
54 | 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 | 4 | \ No newline at end of file | ... | ... |
src/Template/Suivis/edit.ctp
1 | 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 | 2 | \ No newline at end of file |
3 | +$this->extend('/Suivis/add_edit'); | |
4 | +?> | |
358 | 5 | \ No newline at end of file | ... | ... |