Commit bda90e01b5b405899e2e35af8adbc8afc72e7344
1 parent
84079767
Exists in
master
and in
1 other branch
Nouvelle page qui affiche les messages de log PAR niveau (v3.7.9.41)
- log level info, debug, et notice : disponible depuis la page Outils (tools) - Toules les actions importantes (add,edit,delete, changement statut...) sont désormais loggées et donc affichables via la page Outils ci-dessus - Accélération de la recherche du numéro de version dans le fichier README, affichée à CHAQUE page web du site !!!
Showing
4 changed files
with
58 additions
and
15 deletions
Show diff stats
README.md
... | ... | @@ -54,11 +54,12 @@ Logiciel testé et validé sur les configurations suivantes : |
54 | 54 | VERSION ACTUELLE |
55 | 55 | |
56 | 56 | Date: 22/06/2020 |
57 | -Version: 3.7.9.40 | |
57 | +Version: 3.7.9.41 | |
58 | 58 | Author: EP |
59 | 59 | Commentaire: |
60 | - - Nouvelle page qui affiche les messages de log (level info, debug, et notice) : disponible depuis la page Outils (tools) | |
61 | - | |
60 | + - Nouvelle page qui affiche les messages de log PAR niveau (level info, debug, et notice) : disponible depuis la page Outils (tools) | |
61 | + - Toules les actions importantes (add,edit,delete, changement statut...) sont désormais loggées et donc affichables via la page Outils ci-dessus | |
62 | + - Accélération de la recherche du numéro de version dans le fichier README, affichée à CHAQUE page web du site !!! | |
62 | 63 | |
63 | 64 | |
64 | 65 | |
... | ... | @@ -103,6 +104,11 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
103 | 104 | |
104 | 105 | ----------------------------------------------------------------------------------------------------------- |
105 | 106 | |
107 | +22/06/2020 v3.7.9.40-41 (EP) | |
108 | + - Nouvelle page qui affiche les messages de log PAR niveau (level info, debug, et notice) : disponible depuis la page Outils (tools) | |
109 | + - Toules les actions importantes (add,edit,delete, changement statut...) sont désormais loggées et donc affichables via la page Outils ci-dessus | |
110 | + - Accélération de la recherche du numéro de version dans le fichier README, affichée à CHAQUE page web du site !!! | |
111 | + | |
106 | 112 | 19/06/2020 v3.7.9.39 (EP) |
107 | 113 | - Tests génériques automatiques pour (presque) toutes les actions de (presque) tous les controleurs principaux (Materiels, Suivis, et Emprunts) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi !!!) |
108 | 114 | - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...) | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -2415,13 +2415,14 @@ class MaterielsController extends AppController { |
2415 | 2415 | * @param string $from |
2416 | 2416 | * @return \Cake\Network\Response|NULL |
2417 | 2417 | */ |
2418 | - private function statusSetTo($newStatus, $message, $id = null, $from = 'index', $onlyOneMateriel = True) | |
2419 | - { | |
2418 | + private function statusSetTo($newStatus, $message, $id = null, $from = 'index', $onlyOneMateriel = True) { | |
2420 | 2419 | $materiel = $this->Materiels->get($id)->set('status', $newStatus); |
2421 | 2420 | |
2421 | + // - ARCHIVED | |
2422 | 2422 | if ($newStatus == 'ARCHIVED') |
2423 | 2423 | $materiel->set('date_archivage', date('Y-m-d')); |
2424 | 2424 | |
2425 | + // - VALIDATED | |
2425 | 2426 | if ($newStatus == 'VALIDATED') { |
2426 | 2427 | $mandatoryFields = array( |
2427 | 2428 | $materiel->nom_responsable, |
... | ... | @@ -2456,28 +2457,27 @@ class MaterielsController extends AppController { |
2456 | 2457 | // (EP 2020 03) Si on ne veut pas de bouton de suppression du message : |
2457 | 2458 | //$this->Flash->set($msgError1, ['params' => ['class' => 'alert alert-dismissible in alert-danger']]); |
2458 | 2459 | //$this->Flash->set($msgError1, ['params' => ['class' => 'alert alert-dismissible fade in alert-danger']]); |
2459 | - return $this->redirect([ | |
2460 | - 'action' => 'edit', | |
2461 | - $id | |
2462 | - ]); | |
2460 | + return $this->redirect(['action'=>'edit',$id]); | |
2463 | 2461 | } else { |
2464 | 2462 | $this->Flash->error($msgError2); |
2465 | 2463 | return False; |
2466 | 2464 | } |
2467 | 2465 | } |
2468 | 2466 | } |
2469 | - } | |
2467 | + } // VALIDATED | |
2470 | 2468 | |
2471 | 2469 | $success = False; |
2470 | + // - SAVE KO | |
2472 | 2471 | if (! $this->Materiels->save($materiel, [ |
2473 | 2472 | 'checkRules' => false, |
2474 | 2473 | 'checkExisting' => false |
2475 | 2474 | ])) |
2476 | 2475 | $this->Flash->error(__($msgError2 . " (cannot be saved)")); |
2476 | + // - SAVE OK | |
2477 | 2477 | else { |
2478 | 2478 | $success = True; |
2479 | - if ($onlyOneMateriel) | |
2480 | - $this->Flash->success(__($message)); | |
2479 | + if ($onlyOneMateriel) $this->Flash->success(__($message)); | |
2480 | + $this->ilog("Changement de statut (passe à '$newStatus') du matériel '$materiel' (id=$id)"); | |
2481 | 2481 | // TODO: ce code ne peut pas marcher !!! il faut faire un SAVE |
2482 | 2482 | if ($newStatus == 'VALIDATED') |
2483 | 2483 | if (in_array($_SESSION['Auth']['User']['sn'][0], TableRegistry::get('Users')->find('list', [ |
... | ... | @@ -2502,7 +2502,7 @@ class MaterielsController extends AppController { |
2502 | 2502 | if ($newStatus == 'ARCHIVED' || $newStatus == 'TOBEARCHIVED') { |
2503 | 2503 | $this->sendmail($materiel,3); |
2504 | 2504 | } |
2505 | - } | |
2505 | + } // SAVE OK | |
2506 | 2506 | |
2507 | 2507 | if (! $onlyOneMateriel) |
2508 | 2508 | return $success; | ... | ... |
src/Controller/PagesController.php
... | ... | @@ -264,6 +264,19 @@ class PagesController extends AppController |
264 | 264 | // Finalement, on affiche la $page demandée (avec render()) |
265 | 265 | $this->set('page', $this->page); |
266 | 266 | $this->set(compact('subpage')); |
267 | + | |
268 | + // /pages/logs?level=info | |
269 | + if ($this->page=='logs') { | |
270 | + $available_levels = ['info','debug','notice']; | |
271 | + // Paar défaut, level = INFO | |
272 | + $level = 'Info'; | |
273 | + $level_arg = $this->request->getQuery('level'); | |
274 | + if ($level_arg!==null && in_array($level_arg, $available_levels)) $level=$level_arg; | |
275 | + //debug($level); | |
276 | + $this->set(compact('level', 'available_levels')); | |
277 | + } | |
278 | + | |
279 | + | |
267 | 280 | //debug(implode('/', $path)); |
268 | 281 | //debug(implode('/', array($page,$subpage))); |
269 | 282 | try { | ... | ... |
src/Template/Layout/default.ctp
... | ... | @@ -194,13 +194,16 @@ $this->append('script', $this->Html->script(['script', 'DatepickerConfig', 'onTa |
194 | 194 | |
195 | 195 | <div class="col-lg-3" id="version"> |
196 | 196 | <?php |
197 | - // pour "what's new" :   | |
197 | + // LECTURE DE LA VERSION DU LOGICIEL DANS LE FICHIER README | |
198 | 198 | // Set $version and $version_date |
199 | + // pour "what's new" :   | |
199 | 200 | // (cf https://book.cakephp.org/3.0/fr/core-libraries/file-folder.html#Cake\Filesystem) |
200 | 201 | //$version = '2.9.1.4'; |
201 | 202 | //$version_date = '21/12/2018'; |
202 | 203 | $wwwroot_dir = new Cake\Filesystem\Folder(WWW_ROOT); |
203 | - $readme_file = new Cake\Filesystem\File($wwwroot_dir->pwd() . DS . '..' . DS . 'README.md'); | |
204 | + $readme_file_path = $wwwroot_dir->pwd() . DS . '..' . DS . 'README.md'; | |
205 | + /* (OLD) VERSION PLUS LENTE CAR ON LISAIT TOUT LE FICHIER | |
206 | + $readme_file = new Cake\Filesystem\File($readme_file_path); | |
204 | 207 | //dump($file); |
205 | 208 | $contents = $readme_file->read(); |
206 | 209 | $lines = explode("\n", $contents); |
... | ... | @@ -216,6 +219,27 @@ $this->append('script', $this->Html->script(['script', 'DatepickerConfig', 'onTa |
216 | 219 | // $readme_file->append('J'ajoute à la fin de ce fichier.'); |
217 | 220 | // $readme_file->delete(); // Je supprime ce fichier |
218 | 221 | $readme_file->close(); // Assurez-vous de fermer le fichier quand c'est fini |
222 | + */ | |
223 | + // VERSION PLUS RAPIDE CAR ON LE LIT QUE JUSQU'A LA VERSION | |
224 | + try { | |
225 | + $f = new SplFileObject($readme_file_path, "r"); | |
226 | + } catch (Exception $e) { | |
227 | + die("Le fichier README $readme_file_path n'existe pas !"); | |
228 | + } | |
229 | + $version = 'XXX'; | |
230 | + $version_date = 'date?'; | |
231 | + while (!$f->eof()) { | |
232 | + $line = $f->fgets(); | |
233 | + if (substr($line, 0, strlen("Date:")) === "Date:") { | |
234 | + $version_date = ltrim( explode(":", $line)[1] ); | |
235 | + // ligne suivante | |
236 | + $line = $f->fgets(); | |
237 | + $version = explode(":", $line)[1]; | |
238 | + break; | |
239 | + } | |
240 | + } | |
241 | + // Close file | |
242 | + $f=null; | |
219 | 243 | ?> |
220 | 244 | <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> |
221 | 245 | <font color="black"> | ... | ... |