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,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 |