Commit 6441f31558c5cd6c8788d7bb32bf2296307ca758

Authored by Thibaud Ajas
1 parent de013b4c

Bugfixes, améliorations visuelles du site et réadaptation de la fonctionnalité d…

…'envoi de mails, beaucoup plus simple à utiliser
database/labinvent_2.1_12-05-16.sql
@@ -346,7 +346,7 @@ CREATE TABLE IF NOT EXISTS `configurations` ( @@ -346,7 +346,7 @@ CREATE TABLE IF NOT EXISTS `configurations` (
346 `hasPrinter` tinyint(1) DEFAULT NULL, 346 `hasPrinter` tinyint(1) DEFAULT NULL,
347 `nom_groupe_thematique` varchar(50) DEFAULT 'Groupe thematique', 347 `nom_groupe_thematique` varchar(50) DEFAULT 'Groupe thematique',
348 `nom_groupe_metier` varchar(50) DEFAULT 'Groupe metier', 348 `nom_groupe_metier` varchar(50) DEFAULT 'Groupe metier',
349 - `envoi_mail_management_dev` tinyint(1) NOT NULL DEFAULT 1, 349 + `envoi_mail` tinyint(1) NOT NULL DEFAULT 0,
350 `sender_mail` varchar(500) DEFAULT 'labinvent@irap.omp.eu', 350 `sender_mail` varchar(500) DEFAULT 'labinvent@irap.omp.eu',
351 `emailGuest1` varchar(45) DEFAULT NULL, 351 `emailGuest1` varchar(45) DEFAULT NULL,
352 `emailGuest2` varchar(45) DEFAULT NULL, 352 `emailGuest2` varchar(45) DEFAULT NULL,
@@ -448,44 +448,8 @@ Insert into type_documents(nom) values ('Certificat de conformité'); @@ -448,44 +448,8 @@ Insert into type_documents(nom) values ('Certificat de conformité');
448 Insert into type_documents(nom) values ('Manuel d\'utilisation'); 448 Insert into type_documents(nom) values ('Manuel d\'utilisation');
449 449
450 -- Insertion par défaut pour la table configuration 450 -- Insertion par défaut pour la table configuration
451 -Insert into `configurations`(  
452 -`nom`,  
453 -`mode_install`,  
454 -`mode_debug`,  
455 -`use_ldap`,  
456 -`host_ldap`,  
457 -`port_ldap`,  
458 -`authentificationType_ldap`,  
459 -`baseDn_ldap`,  
460 -`filter_ldap`,  
461 -`labName`,  
462 -`labNameShort`,  
463 -`labPresent`,  
464 -`labUmr`,  
465 -`hasPrinter`,  
466 -`envoi_mail_management_dev`  
467 -`emailGuest1`,  
468 -`emailGuest2`,  
469 -`emailGuest3`)  
470 -values (  
471 -'default',  
472 -'1',  
473 -'0',  
474 -'0',  
475 -'',  
476 -'',  
477 -'xxx',  
478 -'',  
479 -'',  
480 -'LABONAME',  
481 -'LABO',  
482 -'du ',  
483 -'',  
484 -'0',  
485 -'0',  
486 -'',  
487 -'',  
488 -''); 451 +Insert into `configurations`(`nom`, `mode_install`, `mode_debug`, `use_ldap`, `host_ldap`, `port_ldap`, `authentificationType_ldap`, `baseDn_ldap`, `filter_ldap`, `labName`, `labNameShort`, `labPresent`, `labUmr`, `hasPrinter`, `emailGuest1`, `emailGuest2`, `emailGuest3`)
  452 +values ('default', '1', '0', '0', '', '', 'xxx', '', '', 'LABONAME', 'LABO', 'du ', '', '0', '', '', '');
489 453
490 454
491 455
database/update/db-update-2017-05-18.sh 0 → 100644
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
  1 +#!/bin/bash
  2 +
  3 +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
  4 +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur
  5 +# Pour cela, il suffit d'executer ces 2 lignes :
  6 +# cp ce_script.sh ce_script_macosx.sh
  7 +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh
  8 +
  9 +if [ ! -f ../../config/app.php ] ; then
  10 +echo "Vous devez executer ce script depuis le dossier database/update/"
  11 +exit 1
  12 +fi
  13 +
  14 +
  15 +# Get login, pass, dbname, and hostname
  16 +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4)
  17 +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4)
  18 +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4)
  19 +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4)
  20 +
  21 +
  22 +cp -p ./script_sql/db-update-2017-05-18.sql ./script_sql/db-update-2017-05-18-build.sql
  23 +
  24 +# Execute sql update script
  25 +sed -e "s/database/$database/" -i ./script_sql/db-update-2017-05-18-build.sql
  26 +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2017-05-18-build.sql
  27 +
  28 +# Delete cakephp cache
  29 +sudo rm ../../tmp/cache/models/*
  30 +sudo rm ../../tmp/cache/persistent/*
  31 +
  32 +sudo chmod -R 777 ../../tmp
  33 +sudo chmod -R 777 ../../vendor
  34 +sudo chmod -R 777 ../../webroot
database/update/script_sql/db-update-2017-05-18.sql 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +use database;
  2 +
  3 +ALTER TABLE `configurations` CHANGE `envoi_mail_management_dev` `envoi_mail` TINYINT( 1 ) NOT NULL DEFAULT '0';
src/Controller/AppController.php
@@ -31,6 +31,7 @@ use PhpParser\Node\Expr\Include_; @@ -31,6 +31,7 @@ use PhpParser\Node\Expr\Include_;
31 */ 31 */
32 class AppController extends Controller 32 class AppController extends Controller
33 { 33 {
  34 + public $confLabinvent;
34 35
35 /** 36 /**
36 * Initialization hook method. 37 * Initialization hook method.
@@ -58,6 +59,7 @@ class AppController extends Controller @@ -58,6 +59,7 @@ class AppController extends Controller
58 'action' => 'home', 59 'action' => 'home',
59 ] 60 ]
60 ]); 61 ]);
  62 + $this->confLabinvent = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
61 } 63 }
62 64
63 65
@@ -70,7 +72,7 @@ class AppController extends Controller @@ -70,7 +72,7 @@ class AppController extends Controller
70 */ 72 */
71 public function isAuthorized($user) 73 public function isAuthorized($user)
72 { 74 {
73 - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); 75 + $configuration = $this->confLabinvent;
74 $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; 76 $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
75 77
76 $action = $this->request->params['action']; 78 $action = $this->request->params['action'];
@@ -201,194 +203,194 @@ class AppController extends Controller @@ -201,194 +203,194 @@ class AppController extends Controller
201 * @param string $message 203 * @param string $message
202 * @param string[] $to 204 * @param string[] $to
203 */ 205 */
204 - public function sendEmailTo($subject, $message, $to = null) { 206 +// public function sendEmailTo($subject, $message, $to = null) {
205 207
206 - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); 208 +// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
207 209
208 - if ($to != null && !$configuration->test) { 210 +// if ($to != null && !$configuration->test) {
209 211
210 - for($i = 0; $i < sizeof($to); $i++) { 212 +// for($i = 0; $i < sizeof($to); $i++) {
211 213
212 214
213 - if (filter_var($to[$i], FILTER_VALIDATE_EMAIL)) {  
214 - $email = new Email(); 215 +// if (filter_var($to[$i], FILTER_VALIDATE_EMAIL)) {
  216 +// $email = new Email();
215 217
216 - $etiquetteFrom = explode("@", $configuration->sender_mail); 218 +// $etiquetteFrom = explode("@", $configuration->sender_mail);
217 219
218 - if($configuration->envoi_mail_management_dev) {  
219 - $email->transport('dev')  
220 - ->from([$configuration->sender_mail => $etiquetteFrom[0]])  
221 - ->to($to[$i])  
222 - ->subject("[LabInvent] ".$subject)  
223 - ->send($message);  
224 - } else {  
225 - $email->transport('default')  
226 - ->from([$configuration->sender_mail => $etiquetteFrom[0]])  
227 - ->to($to[$i])  
228 - ->subject("[LabInvent] ".$subject)  
229 - ->send($message);  
230 - }  
231 - } 220 +// if($configuration->envoi_mail_management_dev) {
  221 +// $email->transport('dev')
  222 +// ->from([$configuration->sender_mail => $etiquetteFrom[0]])
  223 +// ->to($to[$i])
  224 +// ->subject("[LabInvent] ".$subject)
  225 +// ->send($message);
  226 +// } else {
  227 +// $email->transport('default')
  228 +// ->from([$configuration->sender_mail => $etiquetteFrom[0]])
  229 +// ->to($to[$i])
  230 +// ->subject("[LabInvent] ".$subject)
  231 +// ->send($message);
  232 +// }
  233 +// }
232 234
233 - }  
234 - } 235 +// }
  236 +// }
235 237
236 - } 238 +// }
237 239
238 - /**  
239 - * Envoi d'un email à la gestion (et aux devs) pour prévenir qu'un matériel a été créé ou modifié  
240 - * (cf howto dans http://book.cakephp.org/2.0/fr/core-utility-libraries/email.html)  
241 - * @param string $subject  
242 - * @param string $message  
243 - */  
244 - public function sendEmailToManagementWith($subject, $message) { 240 +// /**
  241 +// * Envoi d'un email à la gestion (et aux devs) pour prévenir qu'un matériel a été créé ou modifié
  242 +// * (cf howto dans http://book.cakephp.org/2.0/fr/core-utility-libraries/email.html)
  243 +// * @param string $subject
  244 +// * @param string $message
  245 +// */
  246 +// public function sendEmailToManagementWith($subject, $message) {
245 247
246 - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); 248 +// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
247 249
248 - for($i = 1; $i < 11; $i++) {  
249 - $t = 'emailGuest'.$i;  
250 - $to = $configuration->$t; 250 +// for($i = 1; $i < 11; $i++) {
  251 +// $t = 'emailGuest'.$i;
  252 +// $to = $configuration->$t;
251 253
252 - if ($to != null && !$configuration->test) {  
253 - if (filter_var($to, FILTER_VALIDATE_EMAIL)) {  
254 - $email = new Email(); 254 +// if ($to != null && !$configuration->test) {
  255 +// if (filter_var($to, FILTER_VALIDATE_EMAIL)) {
  256 +// $email = new Email();
255 257
256 - $etiquetteFrom = explode("@", $configuration->sender_mail); 258 +// $etiquetteFrom = explode("@", $configuration->sender_mail);
257 259
258 - if($configuration->envoi_mail_management_dev) {  
259 - $email->transport('dev')  
260 - ->from([$configuration->sender_mail => $etiquetteFrom[0]])  
261 - ->to($to)  
262 - ->subject("[LabInvent] ".$subject)  
263 - ->send($message);  
264 - } else {  
265 - $email->transport('default')  
266 - ->from([$configuration->sender_mail => $etiquetteFrom[0]])  
267 - ->to($to)  
268 - ->subject("[LabInvent] ".$subject)  
269 - ->send($message);  
270 - }  
271 - } 260 +// if($configuration->envoi_mail_management_dev) {
  261 +// $email->transport('dev')
  262 +// ->from([$configuration->sender_mail => $etiquetteFrom[0]])
  263 +// ->to($to)
  264 +// ->subject("[LabInvent] ".$subject)
  265 +// ->send($message);
  266 +// } else {
  267 +// $email->transport('default')
  268 +// ->from([$configuration->sender_mail => $etiquetteFrom[0]])
  269 +// ->to($to)
  270 +// ->subject("[LabInvent] ".$subject)
  271 +// ->send($message);
  272 +// }
  273 +// }
272 274
273 - }  
274 - } 275 +// }
  276 +// }
275 277
276 - } 278 +// }
277 279
278 - public function sendEmailToManagement($idObj = null) { 280 +// public function sendEmailToManagement($idObj = null) {
279 281
280 - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); 282 +// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
281 283
282 - $userAuth = $this->LdapAuth->user($configuration->authentificationType_ldap)[0];  
283 - $controller = substr($this->request->params['controller'], 0, -1); // materiel  
284 - $action = $this->request->params['action']; // add or edit or delete or ...  
285 - $userName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0];  
286 - $userEmail = $this->LdapAuth->user('mail')[0];  
287 - $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role'];  
288 - if($role == null) $role = 'Utilisateur'; 284 +// $userAuth = $this->LdapAuth->user($configuration->authentificationType_ldap)[0];
  285 +// $controller = substr($this->request->params['controller'], 0, -1); // materiel
  286 +// $action = $this->request->params['action']; // add or edit or delete or ...
  287 +// $userName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0];
  288 +// $userEmail = $this->LdapAuth->user('mail')[0];
  289 +// $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role'];
  290 +// if($role == null) $role = 'Utilisateur';
289 291
290 - $modelName = $this->modelClass; // 'Materiels'  
291 - $id = $idObj; 292 +// $modelName = $this->modelClass; // 'Materiels'
  293 +// $id = $idObj;
292 294
293 - switch ($action) {  
294 - case 'add':  
295 - $actionFrench = ['Création d\'un ', 'été créé'];  
296 - break;  
297 - case 'edit':  
298 - $actionFrench = ['Modification d\'un ', 'été modifié'];  
299 - break;  
300 - case 'delete':  
301 - $actionFrench = ['Suppression d\'un ', 'été supprimé'];  
302 - break;  
303 - case 'statusValidated':  
304 - $actionFrench = ['Validation d\'un ', 'été validé'];  
305 - break;  
306 - case 'statusToBeArchived':  
307 - $actionFrench = ['Demande Archivage d\'un ', 'été demandé pour archivage'];  
308 - break;  
309 - case 'statusArchived':  
310 - $actionFrench = ['Archivage d\'un ', 'été archivé'];  
311 - break;  
312 - case 'setLabelIsPlaced':  
313 - $actionFrench = ['Etiquette posé sur un ', 'reçu une étiquette'];  
314 - break;  
315 - default:  
316 - $actionFrench = [$action.' d\'un ', 'été '.$action];  
317 - break;  
318 - }  
319 - $doneBy = $userName." (".$userEmail.", login=".$userAuth.", profil=".$role.")."; 295 +// switch ($action) {
  296 +// case 'add':
  297 +// $actionFrench = ['Création d\'un ', 'été créé'];
  298 +// break;
  299 +// case 'edit':
  300 +// $actionFrench = ['Modification d\'un ', 'été modifié'];
  301 +// break;
  302 +// case 'delete':
  303 +// $actionFrench = ['Suppression d\'un ', 'été supprimé'];
  304 +// break;
  305 +// case 'statusValidated':
  306 +// $actionFrench = ['Validation d\'un ', 'été validé'];
  307 +// break;
  308 +// case 'statusToBeArchived':
  309 +// $actionFrench = ['Demande Archivage d\'un ', 'été demandé pour archivage'];
  310 +// break;
  311 +// case 'statusArchived':
  312 +// $actionFrench = ['Archivage d\'un ', 'été archivé'];
  313 +// break;
  314 +// case 'setLabelIsPlaced':
  315 +// $actionFrench = ['Etiquette posé sur un ', 'reçu une étiquette'];
  316 +// break;
  317 +// default:
  318 +// $actionFrench = [$action.' d\'un ', 'été '.$action];
  319 +// break;
  320 +// }
  321 +// $doneBy = $userName." (".$userEmail.", login=".$userAuth.", profil=".$role.").";
320 322
321 - $subject = $actionFrench[0].$controller; 323 +// $subject = $actionFrench[0].$controller;
322 324
323 - if($id != null) {  
324 - $entityName = TableRegistry::get($modelName)->find('all')->where(['id =' => $id])->first(); 325 +// if($id != null) {
  326 +// $entityName = TableRegistry::get($modelName)->find('all')->where(['id =' => $id])->first();
325 327
326 - if($modelName == 'Materiels') {  
327 - $entityName = $entityName['designation'];  
328 - }  
329 - else if ($modelName == 'Suivis' || $modelName == 'Emprunts') {  
330 - $entityName = $entityName['id'];  
331 - }  
332 - else {  
333 - $entityName = $entityName['nom'];  
334 - }  
335 - }  
336 - else {  
337 - $entityName = NULL;  
338 - } 328 +// if($modelName == 'Materiels') {
  329 +// $entityName = $entityName['designation'];
  330 +// }
  331 +// else if ($modelName == 'Suivis' || $modelName == 'Emprunts') {
  332 +// $entityName = $entityName['id'];
  333 +// }
  334 +// else {
  335 +// $entityName = $entityName['nom'];
  336 +// }
  337 +// }
  338 +// else {
  339 +// $entityName = NULL;
  340 +// }
339 341
340 - $message = $this->getArticle().$controller." ".$entityName." (id=".$id.") a ".$actionFrench[1]." par ".$doneBy; 342 +// $message = $this->getArticle().$controller." ".$entityName." (id=".$id.") a ".$actionFrench[1]." par ".$doneBy;
341 343
342 - $this->sendEmailToManagementWith($subject, $message); 344 +// $this->sendEmailToManagementWith($subject, $message);
343 345
344 - } 346 +// }
345 347
346 - /**  
347 - * Envoi d'un email au propriétaire pour prévenir qu'un matériel a été créé  
348 - * @param string $subject  
349 - * @param string $message  
350 - */  
351 - public function sendEmailToCreate($idObj = null) { 348 +// /**
  349 +// * Envoi d'un email au propriétaire pour prévenir qu'un matériel a été créé
  350 +// * @param string $subject
  351 +// * @param string $message
  352 +// */
  353 +// public function sendEmailToCreate($idObj = null) {
352 354
353 - $id = $idObj; 355 +// $id = $idObj;
354 356
355 - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();  
356 - $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $id])->first(); 357 +// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
  358 +// $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $id])->first();
357 359
358 - $createurName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0];  
359 - $createurEmail = $this->LdapAuth->user('mail')[0];  
360 - $toEmail = $materiel->email_responsable; 360 +// $createurName = $this->LdapAuth->user('sn')[0].' '.$this->LdapAuth->user('givenname')[0];
  361 +// $createurEmail = $this->LdapAuth->user('mail')[0];
  362 +// $toEmail = $materiel->email_responsable;
361 363
362 - $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role'];  
363 - if($role == null) $role = 'Utilisateur'; 364 +// $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role'];
  365 +// if($role == null) $role = 'Utilisateur';
364 366
365 - $subject = 'Ajout d\'un matériel';  
366 - $message = $createurName.' (email = '.$createurEmail.', role = '.$role.') a ajouté le matériel "'.$materiel->designation.'" ('.$materiel->numero_laboratoire.') et vous a nommé propriétaire de ce matériel.'; 367 +// $subject = 'Ajout d\'un matériel';
  368 +// $message = $createurName.' (email = '.$createurEmail.', role = '.$role.') a ajouté le matériel "'.$materiel->designation.'" ('.$materiel->numero_laboratoire.') et vous a nommé propriétaire de ce matériel.';
367 369
368 - if ($toEmail != null && !$configuration->test) {  
369 - if (filter_var($toEmail, FILTER_VALIDATE_EMAIL)) {  
370 - $email = new Email(); 370 +// if ($toEmail != null && !$configuration->test) {
  371 +// if (filter_var($toEmail, FILTER_VALIDATE_EMAIL)) {
  372 +// $email = new Email();
371 373
372 - $etiquetteFrom = explode("@", $configuration->sender_mail); 374 +// $etiquetteFrom = explode("@", $configuration->sender_mail);
373 375
374 - if($configuration->envoi_mail_management_dev) {  
375 - $email->transport('dev')  
376 - ->from([$configuration->sender_mail => $etiquetteFrom[0]])  
377 - ->to($toEmail)  
378 - ->subject("[LabInvent] ".$subject)  
379 - ->send($message);  
380 - } else {  
381 - $email->transport('default')  
382 - ->from([$configuration->sender_mail => $etiquetteFrom[0]])  
383 - ->to($toEmail)  
384 - ->subject("[LabInvent] ".$subject)  
385 - ->send($message);  
386 - }  
387 - } 376 +// if($configuration->envoi_mail_management_dev) {
  377 +// $email->transport('dev')
  378 +// ->from([$configuration->sender_mail => $etiquetteFrom[0]])
  379 +// ->to($toEmail)
  380 +// ->subject("[LabInvent] ".$subject)
  381 +// ->send($message);
  382 +// } else {
  383 +// $email->transport('default')
  384 +// ->from([$configuration->sender_mail => $etiquetteFrom[0]])
  385 +// ->to($toEmail)
  386 +// ->subject("[LabInvent] ".$subject)
  387 +// ->send($message);
  388 +// }
  389 +// }
388 390
389 - } 391 +// }
390 392
391 - } 393 +// }
392 394
393 395
394 static function isLabinventDebugMode() { 396 static function isLabinventDebugMode() {
@@ -405,129 +407,161 @@ class AppController extends Controller @@ -405,129 +407,161 @@ class AppController extends Controller
405 // Les fonctions suivantes sont en cours de developpement 407 // Les fonctions suivantes sont en cours de developpement
406 /** 408 /**
407 * Envoi un mail avec un sujet, contenant un message à destination d'une liste de mails, selon l'action effectuée. 409 * Envoi un mail avec un sujet, contenant un message à destination d'une liste de mails, selon l'action effectuée.
408 - * @param idObj -> ID du matériel concerné  
409 - * @param nomObj -> A utiliser uniquement dans le cadre d'un supression de matériel 410 + *
  411 + * @param $idObj : ID du matériel concerné
  412 + * @param $nomObj : A utiliser uniquement dans le cadre d'une supression de matériel, et mettre idObj à null
  413 + * @param $mailOwner : Idem
  414 + * @param $groupesMetier : Idem
  415 + * @param $groupesThematique : Idem
410 */ 416 */
411 -// public function sendEmail($idObj = null, $nomObj = null) {  
412 -// /*  
413 -// * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) :  
414 -// * nom[sn]  
415 -// * prennom[givenname]  
416 -// * mail[mail]  
417 -// * login[xxx]  
418 -// * mdp[userpassword]  
419 -// */ 417 + public function sendEmail($idObj, $nomObj = null, $mailOwner = null, $groupesMetier = null, $groupesThematique = null) {
  418 + /*
  419 + * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) :
  420 + * nom['sn'][0]
  421 + * prenom['givenname'][0]
  422 + * mail['mail'][0]
  423 + * login['xxx'][0] /!\ Ce champ est suceptible de changer de nom, dans les tests ce champ est ['cn'][0]
  424 + * mdp['userpassword'][0]
  425 + */
  426 +
  427 + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
  428 + $action = $this->request->params['action']; // add or edit or delete or ...
420 429
421 -// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();  
422 -// $action = $this->request->params['action']; // add or edit or delete or ... 430 + if(!$configuration->envoi_mail) return null;
423 431
424 -// if($idObj != null || $nomObj != null) { 432 + // On détermine le message et le sujet du mail en fonction de l'action effectuee
  433 + if($idObj != null || $nomObj != null) {
425 434
426 -// if($idObj != null) $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $idObj])->first();  
427 -  
428 -// Switch ($action) {  
429 -// case 'add':  
430 -// $subject = "Ajout d'un matériel";  
431 -// $actionneur = $materiel->nom_createur;  
432 -// $nom_materiel = $materiel->designation;  
433 -// $msg = "$actionneur a ajouté le matériel $nom_materiel";  
434 -// break;  
435 -// case 'edit':  
436 -// $subject = "Modification d'un matériel";  
437 -// $actionneur= $materiel->nom_modificateur;  
438 -// $nom_materiel = $materiel->designation;  
439 -// $msg = "$actionneur a modifié le matériel $nom_materiel";  
440 -// break;  
441 -// case 'delete':  
442 -// $subject = "Suppression d'un matériel";  
443 -// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn'];  
444 -// $nom_materiel = $nomObj;  
445 -// $msg = "$actionneur a supprimé le matériel $nom_materiel";  
446 -// break;  
447 -// case 'statusValidated':  
448 -// $subject = "Validation d'un matériel";  
449 -// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn'];  
450 -// $nom_materiel = $materiel->designation;  
451 -// $msg = "$actionneur a validé le matériel $nom_materiel";  
452 -// break;  
453 -// case 'statusToBeArchived':  
454 -// $subject = "Demande d'archivage d'un matériel";  
455 -// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn'];  
456 -// $nom_materiel = $materiel->designation;  
457 -// $msg = "$actionneur a demandé l'archivage du matériel $nom_materiel";  
458 -// break;  
459 -// case 'statusArchived':  
460 -// $subject = "Archivage d'un matériel";  
461 -// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn'];  
462 -// $nom_materiel = $materiel->designation;  
463 -// $msg = "$actionneur a archivé le matériel $nom_materiel";  
464 -// break;  
465 -// case 'setLabelIsPlaced':  
466 -// $subject = "Etiquette posée sur un matériel";  
467 -// $msg = "Etiquette posée sur le matériel $nom_materiel";  
468 -// break;  
469 -// default:  
470 -// $subject = "Action \"$action\" sur un matériel";  
471 -// $actionneur= $_SESSION['Auth']['User']['givenname'].' '.$_SESSION['Auth']['User']['sn'];  
472 -// $nom_materiel = $materiel->designation;  
473 -// $msg = "$actionneur a effectué l'action \"$action\" sur le matériel $nom_materiel";  
474 -// break;  
475 -// } 435 + if($idObj != null) $materiel = TableRegistry::get('Materiels')->find()->where(['id =' => $idObj])->first();
  436 + $actionneur= $_SESSION['Auth']['User']['givenname'][0].' '.$_SESSION['Auth']['User']['sn'][0];
  437 + Switch ($action) {
  438 + case 'add':
  439 + $subject = "Ajout d'un matériel";
  440 + $actionneur = $materiel->nom_createur;
  441 + $nom_materiel = $materiel->designation;
  442 + $msg = "$actionneur a ajouté le matériel $nom_materiel";
  443 + break;
  444 + case 'edit':
  445 + $subject = "Modification d'un matériel";
  446 + $actionneur= $materiel->nom_modificateur;
  447 + $nom_materiel = $materiel->designation;
  448 + $msg = "$actionneur a modifié le matériel $nom_materiel";
  449 + break;
  450 + case 'delete':
  451 + $subject = "Suppression d'un matériel";
  452 + $nom_materiel = $nomObj;
  453 + $msg = "$actionneur a supprimé le matériel $nom_materiel";
  454 + break;
  455 + case 'statusValidated':
  456 + $subject = "Validation d'un matériel";
  457 + $nom_materiel = $materiel->designation;
  458 + $msg = "$actionneur a validé le matériel $nom_materiel";
  459 + break;
  460 + case 'statusToBeArchived':
  461 + $subject = "Demande d'archivage d'un matériel";
  462 + $nom_materiel = $materiel->designation;
  463 + $msg = "$actionneur a demandé l'archivage du matériel $nom_materiel";
  464 + break;
  465 + case 'statusArchived':
  466 + $subject = "Archivage d'un matériel";
  467 + $nom_materiel = $materiel->designation;
  468 + $msg = "$actionneur a archivé le matériel $nom_materiel";
  469 + break;
  470 + case 'setLabelIsPlaced':
  471 + $subject = "Etiquette posée sur un matériel";
  472 + $nom_materiel = $materiel->designation;
  473 + $msg = "Etiquette posée sur le matériel $nom_materiel";
  474 + break;
  475 + default:
  476 + $subject = "Action \"$action\" sur un matériel";
  477 + $nom_materiel = $materiel->designation;
  478 + $msg = "$actionneur a effectué l'action \"$action\" sur le matériel $nom_materiel";
  479 + break;
  480 + }
  481 +
  482 + // Et maintenant on construit la liste de mails ...
  483 + $mailList = array();
  484 +
  485 + //mail owner
  486 + if($idObj != null) $mailList[0] = $materiel->email_responsable;
  487 + else $mailList[0] = $mailOwner;
476 488
477 -// $mailList = array(); 489 + //mail resp
  490 + $mailsRespMetier = null;
  491 + $mailsRespMetier = null;
478 492
479 -// //Envoi mail responsable  
480 -// $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->groupes_metier_id])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->groupes_thematique_id])->toArray();  
481 -// for($i = 0; $i < sizeof($mailsResp); $i++) {  
482 -// $mailList[$i] = $mailsResp[$i]['email'];  
483 -// } 493 + if ($idObj != null){
  494 + if ($materiel->groupes_metier_id != null && $materiel->groupes_metier_id != 1) $mailsRespMetier = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->groupes_metier_id])->toArray();
  495 + if ($materiel->groupes_thematique_id != null && $materiel->groupes_thematique_id != 1) $mailRespThematique = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->groupes_thematique_id])->toArray();
  496 + } else {
  497 + if ($groupesMetier != null) $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $groupesMetier])->toArray();
  498 + if ($groupesThematique != null) $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $groupesThematique])->toArray();
  499 + }
  500 + // Le ..!= 1 c'est parce que le groupe métier/thématique d'id 1 correspond au groupe N/A, soit aucun groupe
  501 +
  502 + if ($mailsRespMetier != null && $mailsRespMetier != null) {
  503 + $mailResp = array_unique(array_merge($mailsRespMetier, $mailRespThematique));
  504 + for($i = 0; $i < sizeof($mailsResp); $i++) {
  505 + $mailList[sizeof($mailList)]= $mailsResp[$i]['email'];
  506 + }
  507 + }
484 508
485 -// //Envoi mail administratif  
486 -// $mailsAdmin = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration'])->toArray();  
487 -// $size = sizeof($mailList);  
488 -// $sizeMax = sizeof($mailList) + sizeof($mailsAdmin);  
489 -// $taille = "$size | $sizeMax";  
490 -// for($i = $size; $i < $sizeMax; $i++) {  
491 -// $mailList[$i] = $mailsAdmin[$i]['email'];  
492 -// } 509 + //mail admin de reference (ici appele gestionnaire)
  510 + if ($action != 'statusValidated' && $action != 'statusArchived') {
  511 + $mailsAdmin = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration'])->toArray();
  512 + for($i = 0; $i < sizeof($mailsAdmin); $i++) {
  513 + $mailList[sizeof($mailList)]= $mailsAdmin[$i]['email'];
  514 + }
  515 + }
493 516
494 -// // envoi de mail aux adresses spécifiés dans la config  
495 -// for($i = 0; $i < 11; $i++) {  
496 -// $mailList[$i + sizeof($mailList) + sizeof($mailsAdmin)] = 'emailGuest'.$i;  
497 -// }  
498 -  
499 -// $j = 0;  
500 -// foreach($mailList as $mail) {  
501 -// $j += 1;  
502 -// $this->sendEmailTo($subject, $msg, $mail, $configuration);  
503 -// }  
504 -// }  
505 -// } 517 + //de mail aux adresses specifiees dans la config
  518 + for($i = 0; $i < 11; $i++) {
  519 + if ($configuration['emailGuest'.$i]) $mailList[sizeof($mailList)] = $configuration['emailGuest'.$i];
  520 + // Le if vérifie que la ligne soit pas null
  521 + }
  522 +
  523 + //On dedoublonne la liste des mails, c'pas tres cool de se faire spam 2-3 fois pour la meme action sur le meme materiel, non mais !
  524 + $List = array_unique($mailList);
  525 +
  526 + // ... Pour envoyer les mails aux personnes concernees
  527 + foreach($List as $mail) {
  528 + //On envoi des mails à toute la liste, sauf pour "l'acteur", il sait ce qu'il a fait, pas besion de le spam non plus hein
  529 + if ($mail != $_SESSION['Auth']['User']['mail'][0]) {
  530 + $role = TableRegistry::get('Users')->find()->select('role')->where(['email =' => $mail])->first()['role'];
  531 + if ($role) $role = 'en tant que '.$role;
  532 + else $role = 'car vous avez demandé à le recevoir. Pour faire retirer votre mail de la liste, veuillez contacter un SuperAdmin';
  533 + $message =$msg."\n\n".'Vous recevez ce message '.$role;
  534 + $this->sendEmailTo("$subject", $message, $mail, $configuration);
  535 + }
  536 + }
  537 + }
  538 + return $List;
  539 + }
506 540
507 -// private function sendEmailTo($subject, $msg, $mail, $config) { 541 + // Fonction d'envoi de mails
  542 + private function sendEmailTo($subject, $msg, $mail, $config) {
508 543
509 -// if ($mail != null && !$config->test) {  
510 -// if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {  
511 -// $email = new Email(); 544 + if ($mail != null && !$config->test) {
  545 + if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {
  546 + $email = new Email();
512 547
513 -// $etiquetteFrom = explode("@", $config->sender_mail); 548 + $etiquetteFrom = explode("@", $config->sender_mail);
514 549
515 -// if($config->envoi_mail_management_dev) { // <-- Si la case est cochée 550 +// if($config->envoi_mail) { // <-- Si la case "Envoi des mails de management en local " est cochée
516 // $email->transport('dev') 551 // $email->transport('dev')
517 // ->from([$config->sender_mail => $etiquetteFrom[0]]) 552 // ->from([$config->sender_mail => $etiquetteFrom[0]])
518 // ->to($mail) 553 // ->to($mail)
519 // ->subject("[LabInvent] ".$subject) 554 // ->subject("[LabInvent] ".$subject)
520 // ->send($msg); 555 // ->send($msg);
521 // } else { // <-- Si la case n'est pas cochée 556 // } else { // <-- Si la case n'est pas cochée
522 -// $email->transport('default')  
523 -// ->from([$config->sender_mail => $etiquetteFrom[0]])  
524 -// ->to($mail)  
525 -// ->subject("[LabInvent] ".$subject)  
526 -// ->send($msg); 557 + $email->transport('default')
  558 + ->from([$config->sender_mail => $etiquetteFrom[0]])
  559 + ->to($mail)
  560 + ->subject("[LabInvent] ".$subject)
  561 + ->send($msg);
527 // } 562 // }
528 -// } 563 + }
529 564
530 -// }  
531 -// }  
532 -  
533 -} 565 + }
  566 + }
  567 +}
534 \ No newline at end of file 568 \ No newline at end of file
src/Controller/ConfigurationsController.php
@@ -3,6 +3,7 @@ namespace App\Controller; @@ -3,6 +3,7 @@ namespace App\Controller;
3 3
4 use App\Controller\AppController; 4 use App\Controller\AppController;
5 use Cake\ORM\TableRegistry; 5 use Cake\ORM\TableRegistry;
  6 +use Migrations\Table;
6 7
7 /** 8 /**
8 * Configurations Controller 9 * Configurations Controller
@@ -79,14 +80,15 @@ class ConfigurationsController extends AppController @@ -79,14 +80,15 @@ class ConfigurationsController extends AppController
79 if ($this->request->is(['patch', 'post', 'put'])) { 80 if ($this->request->is(['patch', 'post', 'put'])) {
80 $configurationObj = $this->Configurations->patchEntity($configurationObj, $this->request->data); 81 $configurationObj = $this->Configurations->patchEntity($configurationObj, $this->request->data);
81 if ($this->Configurations->save($configurationObj)) { 82 if ($this->Configurations->save($configurationObj)) {
82 - $this->Flash->success(__('La configuration a bien été sauvegardé.')); 83 + $this->Flash->success(__('La configuration a bien été sauvegardée.'));
  84 + $this->confLabinvent = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
83 if($configurationObj->get('mode_install')) { 85 if($configurationObj->get('mode_install')) {
84 return $this->redirect(['controller' => 'pages', 'action' => 'home']); 86 return $this->redirect(['controller' => 'pages', 'action' => 'home']);
85 } else { 87 } else {
86 return $this->redirect(['action' => 'view', $id]); 88 return $this->redirect(['action' => 'view', $id]);
87 } 89 }
88 } else { 90 } else {
89 - $this->Flash->error(__('La configuration n\'a pas pu être sauvegardé.')); 91 + $this->Flash->error(__('La configuration n\'a pas pu être sauvegardée.'));
90 } 92 }
91 } 93 }
92 94
src/Controller/MaterielsController.php
@@ -171,7 +171,7 @@ class MaterielsController extends AppController @@ -171,7 +171,7 @@ class MaterielsController extends AppController
171 * @return \Cake\Network\Response|null 171 * @return \Cake\Network\Response|null
172 */ 172 */
173 public function index() 173 public function index()
174 - { 174 + {
175 // Remplacement de $this->passedArgs[0] (deprecated) 175 // Remplacement de $this->passedArgs[0] (deprecated)
176 // Par $this->request->params['pass'][0] 176 // Par $this->request->params['pass'][0]
177 $condition = ''; 177 $condition = '';
@@ -278,51 +278,51 @@ class MaterielsController extends AppController @@ -278,51 +278,51 @@ class MaterielsController extends AppController
278 * 278 *
279 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. 279 * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
280 */ 280 */
281 - public function add() {  
282 - 281 + public function add() {
  282 +
283 $materiel = $this->Materiels->newEntity(); 283 $materiel = $this->Materiels->newEntity();
284 if ($this->request->is('post')) { 284 if ($this->request->is('post')) {
285 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); 285 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data);
286 if ($this->Materiels->save($materiel)) { 286 if ($this->Materiels->save($materiel)) {
287 $this->Flash->success(__('Le matériel a bien été ajouté.')); 287 $this->Flash->success(__('Le matériel a bien été ajouté.'));
288 288
289 - $this->sendEmailToManagement($materiel->id); 289 +// $this->sendEmailToManagement($materiel->id);
290 290
291 - if($materiel->nom_createur != $materiel->nom_responsable) {  
292 - $this->sendEmailToCreate($materiel->id);  
293 - } 291 +// if($materiel->nom_createur != $materiel->nom_responsable) {
  292 +// $this->sendEmailToCreate($materiel->id);
  293 +// }
294 294
295 - $message = $materiel->get('nom_createur').' à ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')';  
296 - $subject = 'Ajout de matériel';  
297 - $listMails = []; 295 +// $message = $materiel->get('nom_createur').' à ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')';
  296 +// $subject = 'Ajout de matériel';
  297 +// $listMails = [];
298 298
299 - //Envoi mail responsable  
300 - $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->get('groupes_metier_id')])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->get('groupes_thematique_id')])->toArray();  
301 - $mails = [];  
302 - for($i = 0; $i < sizeof($mailsResp); $i++) {  
303 - $mails[$i] = $mailsResp[$i]['email'];  
304 - }  
305 - $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); 299 +// //Envoi mail responsable
  300 +// $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->get('groupes_metier_id')])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->get('groupes_thematique_id')])->toArray();
  301 +// $mails = [];
  302 +// for($i = 0; $i < sizeof($mailsResp); $i++) {
  303 +// $mails[$i] = $mailsResp[$i]['email'];
  304 +// }
  305 +// $this->sendEmailTo('Ajout d\'un matériel', $message, $mails);
306 306
307 - //Envoi mail administratif  
308 - //$mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->orWhere(['role =' => 'Administration'])->toArray();  
309 - $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->toArray();  
310 - $mails = [];  
311 - for($i = 0; $i < sizeof($mailsResp); $i++) {  
312 - $mails[$i] = $mailsResp[$i]['email'];  
313 - } 307 +// //Envoi mail administratif
  308 +// //$mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->orWhere(['role =' => 'Administration'])->toArray();
  309 +// $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->toArray();
  310 +// $mails = [];
  311 +// for($i = 0; $i < sizeof($mailsResp); $i++) {
  312 +// $mails[$i] = $mailsResp[$i]['email'];
  313 +// }
314 314
315 315
316 - // Rajout condition d'envoi de mail ou pas  
317 - $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); 316 +// // Rajout condition d'envoi de mail ou pas
  317 +// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
318 318
319 - if(!$configuration['envoi_mail_management_dev']){ // Si false, on envoie les mails, sinon on les envoie pas  
320 - $this->sendEmailTo('Ajout d\'un matériel', $message, $mails);  
321 - }  
322 -  
323 -// $this->sendEmail($materiel->id); 319 +// if(!$configuration['envoi_mail_management_dev']){ // Si false, on envoie les mails, sinon on les envoie pas
  320 +// $this->sendEmailTo('Ajout d\'un matériel', $message, $mails);
  321 +// }
  322 +
  323 + $this->sendEmail($materiel->id);
324 324
325 - return $this->redirect(['action' => 'view', $materiel->id]); 325 +// return $this->redirect(['action' => 'view', $materiel->id]);
326 } else { 326 } else {
327 $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.')); 327 $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.'));
328 } 328 }
@@ -344,6 +344,7 @@ class MaterielsController extends AppController @@ -344,6 +344,7 @@ class MaterielsController extends AppController
344 $utilisateurs[$users[$i]] = $users[$i]; 344 $utilisateurs[$users[$i]] = $users[$i];
345 } 345 }
346 346
  347 + // Ne pas commenter la ligne suivante, on en a besoin dans add.cpt
347 $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email']; 348 $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email'];
348 349
349 if(isset($this->request->params['pass'][0])) { 350 if(isset($this->request->params['pass'][0])) {
@@ -372,11 +373,12 @@ class MaterielsController extends AppController @@ -372,11 +373,12 @@ class MaterielsController extends AppController
372 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); 373 $materiel = $this->Materiels->patchEntity($materiel, $this->request->data);
373 if ($this->Materiels->save($materiel)) { 374 if ($this->Materiels->save($materiel)) {
374 $this->Flash->success(__('Le matériel a bien été édité.')); 375 $this->Flash->success(__('Le matériel a bien été édité.'));
375 - $this->sendEmailToManagement($id);  
376 - if($materiel->nom_modificateur != $materiel->nom_responsable) {  
377 - $message = $materiel->get('nom_modificateur').' a édité le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')';  
378 - $this->sendEmailTo('Modification d\'un matériel', $message, [$materiel->get('email_responsable')]);  
379 - } 376 +// $this->sendEmailToManagement($id);
  377 +// if($materiel->nom_modificateur != $materiel->nom_responsable) {
  378 +// $message = $materiel->get('nom_modificateur').' a édité le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')';
  379 +// $this->sendEmailTo('Modification d\'un matériel', $message, [$materiel->get('email_responsable')]);
  380 +// }
  381 + $this->sendEmail($id);
380 return $this->redirect(['action' => 'view', $id]); 382 return $this->redirect(['action' => 'view', $id]);
381 } else { 383 } else {
382 $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); 384 $this->Flash->error(__('Le matériel n\'a pas pu être édité.'));
@@ -491,9 +493,16 @@ class MaterielsController extends AppController @@ -491,9 +493,16 @@ class MaterielsController extends AppController
491 { 493 {
492 //$this->request->allowMethod(['post', 'delete']); 494 //$this->request->allowMethod(['post', 'delete']);
493 $materiel = $this->Materiels->get($id); 495 $materiel = $this->Materiels->get($id);
  496 + // On récupère les infos dont on a besoin pour l'envoi de mails AVANT la supression, on s'appelle pas Chuck Norris
  497 + $nom = $materiel->designation;
  498 + $grpMetier = $materiel->groupes_metier_id;
  499 + $mailOwner = $materiel->email_responsable;
  500 + $grpThematique = $materiel->groupes_thematique_id;
  501 +
494 if ($this->Materiels->delete($materiel)) { 502 if ($this->Materiels->delete($materiel)) {
495 $this->Flash->success(__('Le matériel a bien été supprimé.')); 503 $this->Flash->success(__('Le matériel a bien été supprimé.'));
496 - $this->sendEmailToManagement($id); 504 +// $this->sendEmailToManagement($id);
  505 + $this->sendEmail(null, $nom, $mailOwner, $grpMetier, $grpThematique);
497 } else { 506 } else {
498 $this->Flash->error(__('Le matériel n\'a pas pu être supprimé.')); 507 $this->Flash->error(__('Le matériel n\'a pas pu être supprimé.'));
499 } 508 }
@@ -521,13 +530,18 @@ class MaterielsController extends AppController @@ -521,13 +530,18 @@ class MaterielsController extends AppController
521 $this->Flash->error('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception'); 530 $this->Flash->error('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception');
522 return $this->redirect(['action' => 'edit', $id]); 531 return $this->redirect(['action' => 'edit', $id]);
523 } 532 }
524 - $message = 'Le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') a été validé.';  
525 - $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]); 533 + $role_session = TableRegistry::get('Users')->find()->select('id')->where(['email' => $_SESSION['Auth']['User']['mail'][0], 'role' => 'Administration'])->first();
  534 + if ($role_session) {
  535 + $nom_gest = $_SESSION['Auth']['User']['givenname'][0].' '.$_SESSION['Auth']['User']['sn'][0];
  536 + $materiel->set('nom_gestionnaire', $nom_gest );
  537 + }
  538 +// $message = 'Le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') a été validé.';
  539 +// $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]);
526 } 540 }
527 541
528 if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { 542 if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) {
529 $this->Flash->success(__($message)); 543 $this->Flash->success(__($message));
530 - $this->sendEmailToManagement($id); 544 +// $this->sendEmailToManagement($id);
531 } 545 }
532 else { 546 else {
533 $this->Flash->error(__('Le statut n\'a pas pu être édité.')); 547 $this->Flash->error(__('Le statut n\'a pas pu être édité.'));
@@ -545,6 +559,7 @@ class MaterielsController extends AppController @@ -545,6 +559,7 @@ class MaterielsController extends AppController
545 */ 559 */
546 public function statusValidated($id = null, $from = 'index') { 560 public function statusValidated($id = null, $from = 'index') {
547 $this->statusSetTo('VALIDATED', 'Le matériel a bien été validé', $id, $from); 561 $this->statusSetTo('VALIDATED', 'Le matériel a bien été validé', $id, $from);
  562 + $this->sendEmail($id);
548 } 563 }
549 564
550 /** 565 /**
@@ -555,6 +570,7 @@ class MaterielsController extends AppController @@ -555,6 +570,7 @@ class MaterielsController extends AppController
555 */ 570 */
556 public function statusToBeArchived($id = null, $from = 'index') { 571 public function statusToBeArchived($id = null, $from = 'index') {
557 $this->statusSetTo('TOBEARCHIVED', 'La sortie d\'inventaire a bien été demandée', $id, $from); 572 $this->statusSetTo('TOBEARCHIVED', 'La sortie d\'inventaire a bien été demandée', $id, $from);
  573 + $this->sendEmail($id);
558 } 574 }
559 575
560 /** 576 /**
@@ -565,6 +581,7 @@ class MaterielsController extends AppController @@ -565,6 +581,7 @@ class MaterielsController extends AppController
565 */ 581 */
566 public function statusArchived($id = null, $from = 'index') { 582 public function statusArchived($id = null, $from = 'index') {
567 $this->statusSetTo('ARCHIVED', 'Le matériel a bien été sorti de l\'inventaire', $id, $from); 583 $this->statusSetTo('ARCHIVED', 'Le matériel a bien été sorti de l\'inventaire', $id, $from);
  584 + $this->sendEmail($id);
568 } 585 }
569 586
570 /** 587 /**
@@ -1042,14 +1059,15 @@ class MaterielsController extends AppController @@ -1042,14 +1059,15 @@ class MaterielsController extends AppController
1042 $materiel = $this->Materiels->get($id)->set('etiquette', $printed); 1059 $materiel = $this->Materiels->get($id)->set('etiquette', $printed);
1043 1060
1044 if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { 1061 if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) {
1045 - $this->Flash->success(__('L\'étiquette a bien été éditer.')); 1062 + $this->Flash->success(__('L\'étiquette a bien été éditée.'));
1046 // Envoi email seulement si etiquette posée 1063 // Envoi email seulement si etiquette posée
1047 if ($printed) { 1064 if ($printed) {
1048 // $this->sendEmailToManagement($id); 1065 // $this->sendEmailToManagement($id);
  1066 + $this->sendEmail($id);
1049 } 1067 }
1050 } 1068 }
1051 else { 1069 else {
1052 - $this->Flash->error(__('L\'étiquette n\'a pas pu être édité.')); 1070 + $this->Flash->error(__('L\'étiquette n\'a pas pu être éditée.'));
1053 } 1071 }
1054 1072
1055 return $this->redirect($this->referer()); 1073 return $this->redirect($this->referer());
src/Template/Configurations/edit.ctp
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 echo '<span style="text-decoration: underline;">Emails</span>'; 52 echo '<span style="text-decoration: underline;">Emails</span>';
53 echo '</h3>'; 53 echo '</h3>';
54 echo '<div id="emprunts" style="margin-bottom: 20px;">'; 54 echo '<div id="emprunts" style="margin-bottom: 20px;">';
55 - echo $this->Form->input('envoi_mail_management_dev', ['label' => 'Ne pas envoyer les mails de management']); 55 + echo $this->Form->input('envoi_mail', ['label' => 'Activer l\'envoi des mails']);
56 echo $this->Form->input('sender_mail', ['label' => 'Attribut "sender" (mail)']); 56 echo $this->Form->input('sender_mail', ['label' => 'Attribut "sender" (mail)']);
57 echo $this->Form->input('emailGuest1', ['label' => 'Mail guest 1']); 57 echo $this->Form->input('emailGuest1', ['label' => 'Mail guest 1']);
58 echo $this->Form->input('emailGuest2', ['label' => 'Mail guest 2']); 58 echo $this->Form->input('emailGuest2', ['label' => 'Mail guest 2']);
src/Template/Configurations/view.ctp
@@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
32 }else { 32 }else {
33 $ldap="Non"; 33 $ldap="Non";
34 } 34 }
35 - if(h($configurationObj->envoi_mail_management_dev) == 1) { 35 + if(h($configurationObj->envoi_mail) == 0) {
36 $local="Non"; 36 $local="Non";
37 }else { 37 }else {
38 $local="Oui"; 38 $local="Oui";
@@ -102,7 +102,7 @@ @@ -102,7 +102,7 @@
102 echo '<div id="emprunts" style="margin-bottom: 20px;">'; 102 echo '<div id="emprunts" style="margin-bottom: 20px;">';
103 echo '<table>'; 103 echo '<table>';
104 echo '<tr><th style="width: 250px;"></th><th></th></tr>'; 104 echo '<tr><th style="width: 250px;"></th><th></th></tr>';
105 - $displayElement(__('Envoi des mails de management en local'), $local); 105 + $displayElement(__('Activer l\'envoi des mails'), $local);
106 $displayElement(__('Attribut "sender" (mail)'), h($configurationObj->sender_mail)); 106 $displayElement(__('Attribut "sender" (mail)'), h($configurationObj->sender_mail));
107 $displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1)); 107 $displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1));
108 $displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2)); 108 $displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2));
src/Template/Layout/default.ctp
@@ -33,6 +33,9 @@ $cakeDescription = &#39;Labinvent 2&#39;; @@ -33,6 +33,9 @@ $cakeDescription = &#39;Labinvent 2&#39;;
33 <?= $this->fetch('meta')?> 33 <?= $this->fetch('meta')?>
34 <?= $this->fetch('css')?> 34 <?= $this->fetch('css')?>
35 <?= $this->fetch('script')?> 35 <?= $this->fetch('script')?>
  36 + <style>
  37 + #footer a, #footer p, #footer font { font-size: x-small; }
  38 + </style>
36 </head> 39 </head>
37 <body> 40 <body>
38 41
@@ -95,6 +98,8 @@ $cakeDescription = &#39;Labinvent 2&#39;; @@ -95,6 +98,8 @@ $cakeDescription = &#39;Labinvent 2&#39;;
95 <td id="version"> 98 <td id="version">
96 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> 99 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
97 <font color="black">VERSION 2.6.2 (12/05/2017)</font> 100 <font color="black">VERSION 2.6.2 (12/05/2017)</font>
  101 + <br/>
  102 + <font color="black"><a href="<?php echo $this->request->webroot ?>webroot/doc/userguide/labinvent2_userguide.pdf" onclick="window.open(this.href); return false;">Documentation utilisateurs</a> | <a href="https://projects.irap.omp.eu/projects/inventirap/wiki/Installation" onclick="window.open(this.href); return false;">Wiki installation</a></font>
98 </td> 103 </td>
99 </tr> 104 </tr>
100 </table> 105 </table>
src/Template/Materiels/add.ctp
@@ -137,11 +137,14 @@ else { @@ -137,11 +137,14 @@ else {
137 137
138 // Modif BD : 138 // Modif BD :
139 // ALTER TABLE `materiels` ADD `nom_gestionnaire` VARCHAR( 45 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL AFTER `email_responsable` ; 139 // ALTER TABLE `materiels` ADD `nom_gestionnaire` VARCHAR( 45 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL AFTER `email_responsable` ;
  140 + // Condition pour vérifier que se soit un admin qui est connecté : (!is_null($res)) ?
  141 + $res = TableRegistry::get('Users')->find()->where(['username' => $username, 'role' => 'Administration'])->first();
  142 + $administrateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom'])->where(['role =' => 'Administration'])->toArray();
140 echo $this->Form->input('nom_gestionnaire', [ 143 echo $this->Form->input('nom_gestionnaire', [
141 - 'label' => 'Nom du gestionnaire de référence du matériel',  
142 - 'empty' => 'Choisir un utilisateur',  
143 - 'default' => $username,  
144 - 'options' => TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom'])->where(['role =' => 'Administration']) 144 + 'label' => 'Nom du gestionnaire de référence du matériel',
  145 + 'empty' => 'Choisir un gestionnaire',
  146 + 'default' => $_SESSION['Auth']['User']['sn'][0],
  147 + 'options' => $administrateurs
145 ]); 148 ]);
146 149
147 echo $this->Form->input('fournisseur', ['label' => 'Fournisseur', 'default' => $Fournisseur]); 150 echo $this->Form->input('fournisseur', ['label' => 'Fournisseur', 'default' => $Fournisseur]);
@@ -214,7 +217,7 @@ $(document).ready(function () { @@ -214,7 +217,7 @@ $(document).ready(function () {
214 updateSelectOptionsFromAnother("#categorie-id", "#sur-categorie-id", "Categories/getAll", "Choisir une catégorie"); 217 updateSelectOptionsFromAnother("#categorie-id", "#sur-categorie-id", "Categories/getAll", "Choisir une catégorie");
215 else 218 else
216 updateSelectOptionsFromAnother("#categorie-id", "#sur-categorie-id", "Categories/getBySurCategorie", "Choisir une catégorie"); 219 updateSelectOptionsFromAnother("#categorie-id", "#sur-categorie-id", "Categories/getBySurCategorie", "Choisir une catégorie");
217 - emptySelectOptions("#sous-categorie-id","Choisir une sous-catégorie"); 220 + emptySelectOptions("#sous-categorie-id","Choisir une sous-catégorie");
218 return false; 221 return false;
219 }); 222 });
220 }); 223 });
src/Template/Materiels/edit.ctp
@@ -226,18 +226,15 @@ if ($IS_VALIDATED) @@ -226,18 +226,15 @@ if ($IS_VALIDATED)
226 'readonly' => true, 226 'readonly' => true,
227 'default' => $mail_responsable 227 'default' => $mail_responsable
228 ]); 228 ]);
229 - 229 +
230 $res = TableRegistry::get('Users')->find()->where(['username' => $username, 'role' => 'Administration'])->first(); 230 $res = TableRegistry::get('Users')->find()->where(['username' => $username, 'role' => 'Administration'])->first();
231 - $administrateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom'])->where(['role =' => 'Administration']);  
232 - // Condition pour vérifier que se soit un admin qui est connecté : (!is_null($res)) ?  
233 - echo $this->Form->input('nom_gestionnaire', [  
234 - 'label' => 'Nom du gestionnaire de référence du matériel',  
235 - 'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields),  
236 - 'empty' => 'Choisir un gestionnaire', 231 + $administrateurs = TableRegistry::get('Users')->find('list', [ 'keyField' => 'nom', 'valueField' => 'nom'])->where(['role =' => 'Administration'])->toArray();
  232 + echo $this->Form->input('nom_gestionnaire', [
  233 + 'label' => 'Nom du gestionnaire de référence du matériel',
  234 + 'empty' => 'Choisir un gestionnaire',
  235 + 'default' => $_SESSION['Auth']['User']['sn'][0],
237 'options' => $administrateurs 236 'options' => $administrateurs
238 ]); 237 ]);
239 -  
240 -  
241 238
242 echo $this->Form->input('fournisseur', [ 239 echo $this->Form->input('fournisseur', [
243 'label' => 'Fournisseur', 240 'label' => 'Fournisseur',
@@ -324,7 +321,14 @@ if ($IS_VALIDATED) @@ -324,7 +321,14 @@ if ($IS_VALIDATED)
324 ?> 321 ?>
325 322
326 <script type="text/javascript"> 323 <script type="text/javascript">
327 - 324 +
  325 +// Mettre un gestionnaire par défaut si c'est un admin qui modifie la fiche. Sinon l'utilisateur aura a le rentrer à la mano
  326 +$(document).ready(function () {
  327 + if ( <?php echo (!is_null($res)) ? true : false ?>) $("#nom-gestionnaire").val("<?php echo $_SESSION['Auth']['User']['sn'][0]?>");
  328 + // Oui, c'est un bâtard entre du JavaScript et du PHP ... Mais au moins ca fonctionne en une seule ligne !
  329 +});
  330 +
  331 +
328 /** 332 /**
329 * Event DOMAINE change 333 * Event DOMAINE change
330 * 334 *
src/Template/Materiels/index.ctp
1 <?php 1 <?php
2 use Cake\I18n\Time; 2 use Cake\I18n\Time;
3 use Cake\I18n\Date; 3 use Cake\I18n\Date;
  4 +use Cake\ORM\TableRegistry;
4 ?> 5 ?>
5 6
6 7
@@ -82,9 +83,9 @@ if (isset ( $STATUS )) { @@ -82,9 +83,9 @@ if (isset ( $STATUS )) {
82 83
83 // Rajouté par Thibault Ajas, 20/04/2017 84 // Rajouté par Thibault Ajas, 20/04/2017
84 echo $this->Form->create(); 85 echo $this->Form->create();
85 - echo $this->Form->input('Afficher', [  
86 - 'options' => ['20'=> 20, '30'=>30, '50'=>50, '100'=>100, '150'=>150, '200'=>200],  
87 - 'onChange' => "changeNbrMateriels(document.getElementById('afficher').options[selectedIndex].value)" 86 + echo $this->Form->input('aff_par_defaut', [
  87 + 'label' => 'Afficher',
  88 + 'options' => ['20'=> 20, '30'=>30, '50'=>50, '100'=>100, '150'=>150, '200'=>200],
88 ]); 89 ]);
89 $this->Form->end(); 90 $this->Form->end();
90 // Fin ajout 91 // Fin ajout
@@ -183,7 +184,7 @@ if (isset ( $STATUS )) { @@ -183,7 +184,7 @@ if (isset ( $STATUS )) {
183 echo $this->Html->link('<i class="icon-ok-sign"></i>', 184 echo $this->Html->link('<i class="icon-ok-sign"></i>',
184 ['action' => 'statusValidated', $materiel->id], 185 ['action' => 'statusValidated', $materiel->id],
185 ['title' => 'Valider', 'style' => 'margin: 0 2px', 'escape' => false, 186 ['title' => 'Valider', 'style' => 'margin: 0 2px', 'escape' => false,
186 - 'confirm' => 'Êtes-vous sur de vouloir validé '.$materiel->designation.' ?']); 187 + 'confirm' => 'Êtes-vous sur de vouloir valider '.$materiel->designation.' ?']);
187 } 188 }
188 else if (h($materiel->status) == 'VALIDATED') { 189 else if (h($materiel->status) == 'VALIDATED') {
189 echo $this->Html->link('<i class="icon-inbox"></i>', 190 echo $this->Html->link('<i class="icon-inbox"></i>',
@@ -323,67 +324,74 @@ if (isset ( $STATUS )) { @@ -323,67 +324,74 @@ if (isset ( $STATUS )) {
323 324
324 325
325 <script type="text/javascript"> 326 <script type="text/javascript">
326 -function changeNbrMateriels(nbr) {  
327 - var urlDeBase = window.location.href.split("?");  
328 - var urlDecoupee = window.location.search.split("&"), i, j; // On sépare la chaine des paramètres en fonction du &  
329 - var urlDecoupeeBis = new Array();  
330 - var param = 0;  
331 - var bool = false;  
332 -  
333 - for(i=0; i<urlDecoupee.length; ++i) {  
334 - urlDecoupeeBis[i] = urlDecoupee[i].split("="); // On sépare les parametres de leurs valeurs  
335 - for(j=0; j<urlDecoupeeBis[i].length; ++j){  
336 - if(urlDecoupeeBis[i][0] == "aff" || urlDecoupeeBis[i][0] == "?aff") {  
337 - bool = true;  
338 - param = i; // Si le parametre "aff" est trouvé, on le récupère  
339 - break; 327 +
  328 +// Pour changer l'url lorsque le nombre d'éléments souhaités est modifié
  329 +$(document).ready(function () {
  330 + $("#aff-par-defaut").bind("change", function (event) {
  331 + var nbr=$("#aff-par-defaut :selected").val();
  332 + var urlDeBase = window.location.href.split("?");
  333 + var urlDecoupee = window.location.search.split("&"), i, j; // On sépare la chaine des paramètres en fonction du &
  334 + var urlDecoupeeBis = new Array();
  335 + var param = 0;
  336 + var bool = false;
  337 +
  338 + for(i=0; i<urlDecoupee.length; ++i) {
  339 + urlDecoupeeBis[i] = urlDecoupee[i].split("="); // On sépare les parametres de leurs valeurs
  340 + for(j=0; j<urlDecoupeeBis[i].length; ++j){
  341 + if(urlDecoupeeBis[i][0] == "aff" || urlDecoupeeBis[i][0] == "?aff") {
  342 + bool = true;
  343 + param = i; // Si le parametre "aff" est trouvé, on le récupère
  344 + break;
  345 + }
340 } 346 }
341 } 347 }
342 - }  
343 -  
344 - if(bool) { // Si le parametre recherche a ete trouve, ...  
345 - urlDecoupeeBis[param][1] = nbr; //urlDecoupeeBis[i][0] c'est le nom du parametre, et urlDecoupeeBis[i][1] c'est la vaeur associée  
346 - var url = "";  
347 - for(i=0; i<urlDecoupee.length; ++i) { //... on reconstruit une url propre ...  
348 - if(/^\?[a-zA-A0-9]*/.test(urlDecoupeeBis[0][0])) {  
349 - if(i!=0) url += "&";  
350 - // Sauf pour le 1er parametre, qui lui commence par un "?"  
351 - } else url += "&";  
352 - url += urlDecoupeeBis[i][0]+"="+urlDecoupeeBis[i][1];  
353 - // On reforme les parametres "&nom=valeur" en les concatenant  
354 - }  
355 - window.location.href = urlDeBase[0]+url; // ... et on fait la redirection  
356 - } else if(urlDecoupee[0]=="") window.location.href = window.location.href + '?aff=' + nbr; // Sinon on joute juste le parametre en fin d'url  
357 - else window.location.href = window.location.href + '&aff=' + nbr; 348 +
  349 + if(bool) { // Si le parametre recherche a ete trouve, ...
  350 + urlDecoupeeBis[param][1] = nbr; //urlDecoupeeBis[i][0] c'est le nom du parametre, et urlDecoupeeBis[i][1] c'est la valeur associée
  351 + var url = "";
  352 + for(i=0; i<urlDecoupee.length; ++i) { //... on reconstruit une url propre ...
  353 + if(/^\?[a-zA-A0-9]*/.test(urlDecoupeeBis[0][0])) {
  354 + if(i!=0) url += "&";
  355 + // Sauf pour le 1er parametre, qui lui commence par un "?"
  356 + } else url += "&";
  357 + url += urlDecoupeeBis[i][0]+"="+urlDecoupeeBis[i][1];
  358 + // On reforme les parametres "&nom=valeur" en les concatenant
  359 + }
  360 + window.location.href = urlDeBase[0]+url; // ... et on fait la redirection
  361 + } else if(urlDecoupee[0]=="") window.location.href = window.location.href + '?aff=' + nbr; // Sinon on joute juste le parametre en fin d'url
  362 + else window.location.href = window.location.href + '&aff=' + nbr;
358 363
359 -} 364 + });
  365 +});
360 366
361 -function demarrage(){ 367 +// Pour lire l'url et actualiser l'option sélectionnée
  368 +$(document).ready(function () {
362 var affichage = parseInt($_GET('aff')); 369 var affichage = parseInt($_GET('aff'));
363 switch(affichage) { 370 switch(affichage) {
364 case 20 : 371 case 20 :
365 - document.getElementById('afficher').selectedIndex = 0; 372 + document.getElementById('aff-par-defaut').selectedIndex = 0;
366 break; 373 break;
367 case 30 : 374 case 30 :
368 - document.getElementById('afficher').selectedIndex = 1; 375 + document.getElementById('aff-par-defaut').selectedIndex = 1;
369 break; 376 break;
370 case 50 : 377 case 50 :
371 - document.getElementById('afficher').selectedIndex = 2; 378 + document.getElementById('aff-par-defaut').selectedIndex = 2;
372 break; 379 break;
373 case 100 : 380 case 100 :
374 - document.getElementById('afficher').selectedIndex = 3; 381 + document.getElementById('aff-par-defaut').selectedIndex = 3;
375 break; 382 break;
376 case 150 : 383 case 150 :
377 - document.getElementById('afficher').selectedIndex = 4; 384 + document.getElementById('aff-par-defaut').selectedIndex = 4;
378 break; 385 break;
379 case 200 : 386 case 200 :
380 - document.getElementById('afficher').selectedIndex = 5; 387 + document.getElementById('aff-par-defaut').selectedIndex = 5;
381 break; 388 break;
382 - default :  
383 - document.getElementById('afficher').selectedIndex = 0; 389 + default : // Par défaut, lorsque le parametre "aff" n'existe pas, au premier affichage
  390 + $("#aff-par-defaut").val(<?php echo $configuration->aff_par_defaut ?>);
  391 + // On récupère la valeur dans la BD directement, mais en PHP, faut pas déconner
384 break; 392 break;
385 } 393 }
386 -} 394 +});
387 395
388 // La fonction suivante permet de recuperer les parametres d’une URL 396 // La fonction suivante permet de recuperer les parametres d’une URL
389 function $_GET(param) { 397 function $_GET(param) {
@@ -394,14 +402,12 @@ function $_GET(param) { @@ -394,14 +402,12 @@ function $_GET(param) {
394 vars[key] = value !== undefined ? value : ''; 402 vars[key] = value !== undefined ? value : '';
395 } 403 }
396 ); 404 );
397 - 405 +
398 if ( param ) { 406 if ( param ) {
399 return vars[param] ? vars[param] : null; 407 return vars[param] ? vars[param] : null;
400 } 408 }
401 return vars; 409 return vars;
402 } 410 }
403 411
404 -window.onload = demarrage();  
405 -  
406 </script> 412 </script>
407 413
408 \ No newline at end of file 414 \ No newline at end of file
src/Template/Pages/acls.ctp
@@ -140,7 +140,7 @@ @@ -140,7 +140,7 @@
140 <p class="P46">ACL (Access Control List)</p> 140 <p class="P46">ACL (Access Control List)</p>
141 <p class="P11">(Etienne Pallier – 24/<span class="T22">06</span>/201<span class="T23">6</span>)</p> 141 <p class="P11">(Etienne Pallier – 24/<span class="T22">06</span>/201<span class="T23">6</span>)</p>
142 <p class="P1"> </p> 142 <p class="P1"> </p>
143 - <p class="P1"> </p> 143 + <p class="P4">Cette page n'est plus à jour, se référer à <a href="https://docs.google.com/document/d/1-OhEeoi96j6ueUl5NQCQ9ZsTfbJTFw3ZVaWU2iYly_o/edit" onclick="window.open(this.href); return false;">ce document</a> </p>
144 <p class="P1"> </p> 144 <p class="P1"> </p>
145 <p class="P1">I – Cycle de vie du statut du matériel</p> 145 <p class="P1">I – Cycle de vie du statut du matériel</p>
146 <p class="P1"> </p> 146 <p class="P1"> </p>
src/Template/Pages/home_app.ctp
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 12
13 echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; 13 echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">';
14 echo '<tr><th></th></tr>'; 14 echo '<tr><th></th></tr>';
15 - echo '<tr><td> '.$this->Html->link('Voir mes matériels', [ 15 + echo '<tr><td> '.$this->Html->link('Voir les matériels à mon nom', [
16 'controller' => 'materiels', 'action' => 'index', 'MY' => $username]).' </td></tr>'; 16 'controller' => 'materiels', 'action' => 'index', 'MY' => $username]).' </td></tr>';
17 echo '</table>'; 17 echo '</table>';
18 18
@@ -20,9 +20,9 @@ @@ -20,9 +20,9 @@
20 if (in_array($role, ['Administration', 'Administration Plus'])) { 20 if (in_array($role, ['Administration', 'Administration Plus'])) {
21 echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; 21 echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">';
22 echo '<tr><th></th></tr>'; 22 echo '<tr><th></th></tr>';
23 - echo '<tr><td> '.$this->Html->link('Voir les matériels à valider', [ 23 + echo '<tr><td> '.$this->Html->link('Voir les matériels à valider dont je suis gestionnaire', [
24 'controller' => 'materiels', 'action' => 'index', 'CREATED']).' </td></tr>'; 24 'controller' => 'materiels', 'action' => 'index', 'CREATED']).' </td></tr>';
25 - echo '<tr><td> '.$this->Html->link('Voir les matériels à sortir de l\'inventaire', [ 25 + echo '<tr><td> '.$this->Html->link('Voir les matériels à sortir de l\'inventaire dont je suis gestionnaire', [
26 'controller' => 'materiels', 'action' => 'index', 'TOBEARCHIVED']).' </td></tr>'; 26 'controller' => 'materiels', 'action' => 'index', 'TOBEARCHIVED']).' </td></tr>';
27 echo '</table>'; 27 echo '</table>';
28 } 28 }
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 echo '<tr><th></th></tr>'; 33 echo '<tr><th></th></tr>';
34 echo '<tr><td> '.$this->Html->link('Voir les matériels dont je suis responsable', [ 34 echo '<tr><td> '.$this->Html->link('Voir les matériels dont je suis responsable', [
35 'controller' => 'materiels', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id, 'GT' => $userConnected->groupe_thematique_id]).' </td></tr>'; 35 'controller' => 'materiels', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id, 'GT' => $userConnected->groupe_thematique_id]).' </td></tr>';
36 - echo '<tr><td> '.$this->Html->link('Voir les matériels à valider dont je suis responsable', [ 36 + echo '<tr><td> '.$this->Html->link('Voir les matériels à valider dont je suis responsable', [
37 'controller' => 'materiels', 'action' => 'index', 'GMV' => $userConnected->groupes_metier_id, 'GTV' => $userConnected->groupe_thematique_id]).' </td></tr>'; 37 'controller' => 'materiels', 'action' => 'index', 'GMV' => $userConnected->groupes_metier_id, 'GTV' => $userConnected->groupe_thematique_id]).' </td></tr>';
38 echo '<tr><td> '.$this->Html->link('Voir les suivis des materiels dont je suis responsable', [ 38 echo '<tr><td> '.$this->Html->link('Voir les suivis des materiels dont je suis responsable', [
39 'controller' => 'suivis', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id, 'GT' => $userConnected->groupe_thematique_id]).' </td></tr>'; 39 'controller' => 'suivis', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id, 'GT' => $userConnected->groupe_thematique_id]).' </td></tr>';