Commit 6c636592e38c00f0d90e7157b2cffa231895167f
1 parent
17930bca
Exists in
master
and in
1 other branch
new logo et utilisation de View/Helper/MyHelperHelper :
- Utilisation de View/Helper/MyHelperHelper pour les vues Template/Configurations/view et edit => fonctions echoSectionStart/Stop() et displayElement() - Nouveau logo du logiciel "LabInvent" (en haut à gauche) v4.108.3-3.7.9
Showing
7 changed files
with
150 additions
and
112 deletions
Show diff stats
CHANGELOG
@@ -316,10 +316,17 @@ Commencer à implémenter le nouveau workflow v5 : | @@ -316,10 +316,17 @@ Commencer à implémenter le nouveau workflow v5 : | ||
316 | 316 | ||
317 | 317 | ||
318 | ------- | 318 | ------- |
319 | +11/02/2021 v4.108.3-3.7.9 | ||
320 | + - Utilisation de View/Helper/MyHelperHelper pour les vues Template/Configurations/view et edit | ||
321 | + => fonctions echoSectionStart/Stop() et displayElement() | ||
322 | + - Nouveau logo du logiciel "LabInvent" (en haut à gauche) | ||
323 | + | ||
324 | + | ||
325 | +------- | ||
319 | 10/02/2021 v4.108.2-3.7.9 - Accès LDAP bugfixes | 326 | 10/02/2021 v4.108.2-3.7.9 - Accès LDAP bugfixes |
320 | - - Optimisation ldap => section indépendante du ldap car valable aussi pour fakeldap | 327 | + - (e) Optimisation ldap => section indépendante du ldap car valable aussi pour fakeldap |
321 | - Optimisation ldap = vrai par défaut | 328 | - Optimisation ldap = vrai par défaut |
322 | - - ldap bugfixes src/Model/Table/LdapConnectionsTable.php : | 329 | + - (b) ldap bugfixes src/Model/Table/LdapConnectionsTable.php : |
323 | => Séparation des parties "search" (fonction _ldapSearch()) et "connexion" (NEW fonction _ldapAuth()) | 330 | => Séparation des parties "search" (fonction _ldapSearch()) et "connexion" (NEW fonction _ldapAuth()) |
324 | 331 | ||
325 | ------- | 332 | ------- |
@@ -327,23 +334,23 @@ Commencer à implémenter le nouveau workflow v5 : | @@ -327,23 +334,23 @@ Commencer à implémenter le nouveau workflow v5 : | ||
327 | 334 | ||
328 | ------- | 335 | ------- |
329 | 05/02/2021 v4.108.0-3.7.9 - GROSSE AMÉLIORATION DE LA PHASE INSTALLATION (FROM SCRATCH) | 336 | 05/02/2021 v4.108.0-3.7.9 - GROSSE AMÉLIORATION DE LA PHASE INSTALLATION (FROM SCRATCH) |
330 | - - Documentation en ligne (install et technique) grandement mise à jour, pour une progression plus logique | ||
331 | - - Install from scratch OK ! | ||
332 | - - script d'installation plus simple, robuste, et cohérent : | 337 | + - (e) Documentation en ligne (install et technique) grandement mise à jour, pour une progression plus logique |
338 | + - (e) Install from scratch OK ! | ||
339 | + - (e) script d'installation plus simple, robuste, et cohérent : | ||
333 | suppression des sudo | 340 | suppression des sudo |
334 | création automatique de 4 utilisateurs de base (dont "superadmin"), qui vont permettre de démarrer confortablement avec l'application (en mode "sans ldap") | 341 | création automatique de 4 utilisateurs de base (dont "superadmin"), qui vont permettre de démarrer confortablement avec l'application (en mode "sans ldap") |
335 | BD créée et re-créée sans pb, avec accès root ou pas | 342 | BD créée et re-créée sans pb, avec accès root ou pas |
336 | réorganisation dossier database/, ... | 343 | réorganisation dossier database/, ... |
337 | - update du contenu de bin/ | 344 | - update du contenu de bin/ |
338 | - update des plugins (composer.json) | 345 | - update des plugins (composer.json) |
339 | - - stats de connexion ok dès le début | ||
340 | - - stats sur les matériels (pages/stats) s'affiche correctement même quand aucun matériel dans la BD | 346 | + - (b) stats de connexion ok dès le début |
347 | + - (b) stats sur les matériels (pages/stats) s'affiche correctement même quand aucun matériel dans la BD | ||
341 | - script ADD_NEW_SUPERADMIN_USER_LDAP pour ajouter un utilisateur ldap en tant que superadmin, afin de préparer le passage en mode "avec ldap" | 348 | - script ADD_NEW_SUPERADMIN_USER_LDAP pour ajouter un utilisateur ldap en tant que superadmin, afin de préparer le passage en mode "avec ldap" |
342 | - - l'appli devrait normalement bien fonctionner dans les 2 modes "avec LDAP" ou "sans ldap" | 349 | + - (b) l'appli devrait normalement bien fonctionner dans les 2 modes "avec LDAP" ou "sans ldap" |
343 | - Début de mise en conformité avec CakePhp 3.7 : | 350 | - Début de mise en conformité avec CakePhp 3.7 : |
344 | - fichier de configuration config/app.php et ajout de config/requirements.php notamment, | 351 | - fichier de configuration config/app.php et ajout de config/requirements.php notamment, |
345 | - ajout de src/Application.php, src/Controller/ErrorController.php, webroot/css/home.css et style.css, ... | 352 | - ajout de src/Application.php, src/Controller/ErrorController.php, webroot/css/home.css et style.css, ... |
346 | - - Bugfix plusieurs erreurs qui apparaissent quand il n'y a aucun matériel dans la BD... | 353 | + - (b) Bugfix plusieurs erreurs qui apparaissent quand il n'y a aucun matériel dans la BD... |
347 | - Suppression du role ADMINPLUS (y-compris dans les tests) | 354 | - Suppression du role ADMINPLUS (y-compris dans les tests) |
348 | - Mise en conformité de certaines Fixtures (Users, Materiels) | 355 | - Mise en conformité de certaines Fixtures (Users, Materiels) |
349 | - LOGOs par défaut (mais encore IRAP donc à changer...) | 356 | - LOGOs par défaut (mais encore IRAP donc à changer...) |
@@ -356,7 +363,7 @@ Commencer à implémenter le nouveau workflow v5 : | @@ -356,7 +363,7 @@ Commencer à implémenter le nouveau workflow v5 : | ||
356 | ------- | 363 | ------- |
357 | 21/01/2021 v4.107.30-3.7.9 | 364 | 21/01/2021 v4.107.30-3.7.9 |
358 | - mise à jour de composer.phar v1 => v2 | 365 | - mise à jour de composer.phar v1 => v2 |
359 | - - bugfix stats pour début nouvelle année (quand pas de donnée, division par 0) | 366 | + - (b) bugfix stats pour début nouvelle année (quand pas de donnée, division par 0) |
360 | - Début Autorisations niveau VUE (niveau 2) dans MaterielsController | 367 | - Début Autorisations niveau VUE (niveau 2) dans MaterielsController |
361 | 368 | ||
362 | ------- | 369 | ------- |
README.md
@@ -52,7 +52,7 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -52,7 +52,7 @@ Logiciel testé et validé sur les configurations suivantes : | ||
52 | 52 | ||
53 | -------------------------------------------------------------------------------------------- | 53 | -------------------------------------------------------------------------------------------- |
54 | 54 | ||
55 | -Date: 10/02/2021 | 55 | +Date: 11/02/2021 |
56 | Version: v4.108.2-3.7.9 | 56 | Version: v4.108.2-3.7.9 |
57 | 57 | ||
58 | 58 |
src/Template/Configurations/edit.ctp
@@ -5,16 +5,15 @@ | @@ -5,16 +5,15 @@ | ||
5 | // qui contient une fonction pour chaque section (avec le nom "t_<nom de la section>") | 5 | // qui contient une fonction pour chaque section (avec le nom "t_<nom de la section>") |
6 | // Ex pour la section "emprunts" : $('#t_emprunts').click(function()... | 6 | // Ex pour la section "emprunts" : $('#t_emprunts').click(function()... |
7 | /* | 7 | /* |
8 | -function echoSectionStart($title, $section) { | 8 | +function $this->MyHelper->echoSectionStart($title, $section) { |
9 | echo '<h3 id="t_'.$section.'" style="cursor: pointer;">'; | 9 | echo '<h3 id="t_'.$section.'" style="cursor: pointer;">'; |
10 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_'.$section.'"></i>'; | 10 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_'.$section.'"></i>'; |
11 | echo '<span style="text-decoration: underline;">'.$title.'</span>'; | 11 | echo '<span style="text-decoration: underline;">'.$title.'</span>'; |
12 | echo '</h3>'; | 12 | echo '</h3>'; |
13 | echo '<div id="'.$section.'" style="margin-bottom: 20px;">'; | 13 | echo '<div id="'.$section.'" style="margin-bottom: 20px;">'; |
14 | } | 14 | } |
15 | -*/ | ||
16 | 15 | ||
17 | -function echoSectionStart($title) { | 16 | +function $this->MyHelper->echoSectionStart($title) { |
18 | //echo '<h3 id="t_'.$section.'" style="cursor: pointer;">'; | 17 | //echo '<h3 id="t_'.$section.'" style="cursor: pointer;">'; |
19 | //echo "<h3 id='t_$section' class='toggle' style='cursor: pointer;'>"; | 18 | //echo "<h3 id='t_$section' class='toggle' style='cursor: pointer;'>"; |
20 | echo "<h3 id='t_$title' class='toggle' style='cursor: pointer;'>"; | 19 | echo "<h3 id='t_$title' class='toggle' style='cursor: pointer;'>"; |
@@ -24,15 +23,16 @@ function echoSectionStart($title) { | @@ -24,15 +23,16 @@ function echoSectionStart($title) { | ||
24 | echo '</h3>'; | 23 | echo '</h3>'; |
25 | //echo '<div id="'.$section.'" style="margin-bottom: 20px;">'; | 24 | //echo '<div id="'.$section.'" style="margin-bottom: 20px;">'; |
26 | echo '<div id="'.$title.'" style="margin-bottom: 20px;">'; | 25 | echo '<div id="'.$title.'" style="margin-bottom: 20px;">'; |
27 | - /* | 26 | + /S |
28 | echo '<table>'; | 27 | echo '<table>'; |
29 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | 28 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; |
30 | - */ | 29 | + S/ |
31 | } | 30 | } |
32 | -function echoSectionStop() { | 31 | +function $this->MyHelper->echoSectionStop() { |
33 | //echo '</table>'; | 32 | //echo '</table>'; |
34 | echo '</div>'; | 33 | echo '</div>'; |
35 | } | 34 | } |
35 | +*/ | ||
36 | 36 | ||
37 | ?> | 37 | ?> |
38 | 38 | ||
@@ -48,8 +48,8 @@ function echoSectionStop() { | @@ -48,8 +48,8 @@ function echoSectionStop() { | ||
48 | 48 | ||
49 | /* SECTION MODES */ | 49 | /* SECTION MODES */ |
50 | 50 | ||
51 | - //echoSectionStart("Modes", "informations"); | ||
52 | - echoSectionStart("Modes"); | 51 | + //$this->MyHelper->echoSectionStart("Modes", "informations"); |
52 | + $this->MyHelper->echoSectionStart("Modes"); | ||
53 | /* | 53 | /* |
54 | echo '<h3 id="t_informations" style="cursor: pointer;">'; | 54 | echo '<h3 id="t_informations" style="cursor: pointer;">'; |
55 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>'; | 55 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>'; |
@@ -62,13 +62,13 @@ function echoSectionStop() { | @@ -62,13 +62,13 @@ function echoSectionStop() { | ||
62 | echo $this->Form->control('mode_debug', [ | 62 | echo $this->Form->control('mode_debug', [ |
63 | 'label' => 'Mode DEBUG (via la table "configurations")' | 63 | 'label' => 'Mode DEBUG (via la table "configurations")' |
64 | ]); | 64 | ]); |
65 | - echoSectionStop(); | 65 | + $this->MyHelper->echoSectionStop(); |
66 | 66 | ||
67 | 67 | ||
68 | /* SECTION LABORATOIRE */ | 68 | /* SECTION LABORATOIRE */ |
69 | 69 | ||
70 | - //echoSectionStart("Laboratoire", "informations_admin"); | ||
71 | - echoSectionStart("Laboratoire"); | 70 | + //$this->MyHelper->echoSectionStart("Laboratoire", "informations_admin"); |
71 | + $this->MyHelper->echoSectionStart("Laboratoire"); | ||
72 | /* | 72 | /* |
73 | echo '<h3 id="t_informations_admin" style="cursor: pointer;">'; | 73 | echo '<h3 id="t_informations_admin" style="cursor: pointer;">'; |
74 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>'; | 74 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>'; |
@@ -97,13 +97,13 @@ function echoSectionStop() { | @@ -97,13 +97,13 @@ function echoSectionStop() { | ||
97 | echo $this->Form->control('labUmr', [ | 97 | echo $this->Form->control('labUmr', [ |
98 | 'label' => 'UMR du Labo' | 98 | 'label' => 'UMR du Labo' |
99 | ]); | 99 | ]); |
100 | - echoSectionStop(); | 100 | + $this->MyHelper->echoSectionStop(); |
101 | 101 | ||
102 | 102 | ||
103 | /* SECTION DIVERS */ | 103 | /* SECTION DIVERS */ |
104 | 104 | ||
105 | - //echoSectionStart("Divers", "suivis"); | ||
106 | - echoSectionStart("Divers"); | 105 | + //$this->MyHelper->echoSectionStart("Divers", "suivis"); |
106 | + $this->MyHelper->echoSectionStart("Divers"); | ||
107 | /* | 107 | /* |
108 | echo '<h3 id="t_suivis" style="cursor: pointer;">'; | 108 | echo '<h3 id="t_suivis" style="cursor: pointer;">'; |
109 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>'; | 109 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>'; |
@@ -180,13 +180,13 @@ function echoSectionStop() { | @@ -180,13 +180,13 @@ function echoSectionStop() { | ||
180 | 'label' => 'Module métrologie' | 180 | 'label' => 'Module métrologie' |
181 | ]); | 181 | ]); |
182 | 182 | ||
183 | - echoSectionStop(); | 183 | + $this->MyHelper->echoSectionStop(); |
184 | 184 | ||
185 | 185 | ||
186 | /* SECTION EMAILS */ | 186 | /* SECTION EMAILS */ |
187 | 187 | ||
188 | - //echoSectionStart("Emails", "emprunts"); | ||
189 | - echoSectionStart("Emails"); | 188 | + //$this->MyHelper->echoSectionStart("Emails", "emprunts"); |
189 | + $this->MyHelper->echoSectionStart("Emails"); | ||
190 | /* | 190 | /* |
191 | echo '<h3 id="t_emprunts" style="cursor: pointer;">'; | 191 | echo '<h3 id="t_emprunts" style="cursor: pointer;">'; |
192 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; | 192 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; |
@@ -242,13 +242,13 @@ function echoSectionStop() { | @@ -242,13 +242,13 @@ function echoSectionStop() { | ||
242 | 'label' => 'Mail guest 10' | 242 | 'label' => 'Mail guest 10' |
243 | ]); | 243 | ]); |
244 | */ | 244 | */ |
245 | - echoSectionStop(); | 245 | + $this->MyHelper->echoSectionStop(); |
246 | 246 | ||
247 | 247 | ||
248 | /* SECTION LDAP */ | 248 | /* SECTION LDAP */ |
249 | 249 | ||
250 | - //echoSectionStart("LDAP", "fichiers"); | ||
251 | - echoSectionStart("LDAP"); | 250 | + //$this->MyHelper->echoSectionStart("LDAP", "fichiers"); |
251 | + $this->MyHelper->echoSectionStart("LDAP"); | ||
252 | /* | 252 | /* |
253 | echo '<h3 id="t_fichiers" style="cursor: pointer;">'; | 253 | echo '<h3 id="t_fichiers" style="cursor: pointer;">'; |
254 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>'; | 254 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>'; |
@@ -294,14 +294,14 @@ function echoSectionStop() { | @@ -294,14 +294,14 @@ function echoSectionStop() { | ||
294 | 294 | ||
295 | // end LDAP DIV | 295 | // end LDAP DIV |
296 | echo '</div>'; | 296 | echo '</div>'; |
297 | - echoSectionStop(); | 297 | + $this->MyHelper->echoSectionStop(); |
298 | 298 | ||
299 | 299 | ||
300 | /* | 300 | /* |
301 | * SECTION OPTIMISATION LISTE UTILISATEURS | 301 | * SECTION OPTIMISATION LISTE UTILISATEURS |
302 | */ | 302 | */ |
303 | 303 | ||
304 | - echoSectionStart("Optimisation"); | 304 | + $this->MyHelper->echoSectionStart("Optimisation"); |
305 | /* LDAP optimisation */ | 305 | /* LDAP optimisation */ |
306 | echo $this->Form->control('ldap_cached', [ | 306 | echo $this->Form->control('ldap_cached', [ |
307 | 'label' => "Optimisation accès liste utilisateurs (Cache en BD)" | 307 | 'label' => "Optimisation accès liste utilisateurs (Cache en BD)" |
@@ -314,13 +314,13 @@ function echoSectionStop() { | @@ -314,13 +314,13 @@ function echoSectionStop() { | ||
314 | echo $this->Form->control('ldap_cache_validity_duration', [ | 314 | echo $this->Form->control('ldap_cache_validity_duration', [ |
315 | 'label' => 'Durée validité Cache (mn)' | 315 | 'label' => 'Durée validité Cache (mn)' |
316 | ]); | 316 | ]); |
317 | - echoSectionStop(); | 317 | + $this->MyHelper->echoSectionStop(); |
318 | 318 | ||
319 | 319 | ||
320 | 320 | ||
321 | /* SECTION AFFICHAGE */ | 321 | /* SECTION AFFICHAGE */ |
322 | 322 | ||
323 | - echoSectionStart("Affichage"); | 323 | + $this->MyHelper->echoSectionStart("Affichage"); |
324 | /* | 324 | /* |
325 | echo '<h3 id="t_fichiers" style="cursor: pointer;">'; | 325 | echo '<h3 id="t_fichiers" style="cursor: pointer;">'; |
326 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>'; | 326 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>'; |
@@ -339,7 +339,7 @@ function echoSectionStop() { | @@ -339,7 +339,7 @@ function echoSectionStop() { | ||
339 | ], | 339 | ], |
340 | 'label' => 'Nombre de materiel affichés par défaut' | 340 | 'label' => 'Nombre de materiel affichés par défaut' |
341 | ]); | 341 | ]); |
342 | - echoSectionStop(); | 342 | + $this->MyHelper->echoSectionStop(); |
343 | 343 | ||
344 | 344 | ||
345 | ?> | 345 | ?> |
src/Template/Configurations/view.ctp
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | +//use App\View\Helper\MyHelperHelper; | ||
4 | + | ||
3 | // Variables passees a la vue : | 5 | // Variables passees a la vue : |
4 | $configurationObj = $configurationObj; | 6 | $configurationObj = $configurationObj; |
5 | //debug($configurationObj); | 7 | //debug($configurationObj); |
6 | 8 | ||
7 | - | ||
8 | // Ces sections sont affichées ou cachées en cliquant dessus | 9 | // Ces sections sont affichées ou cachées en cliquant dessus |
9 | // Ce comportement est géré par le javascript webroot/js/script.js | 10 | // Ce comportement est géré par le javascript webroot/js/script.js |
10 | // qui contient une fonction pour chaque section (avec le nom "t_<nom de la section>") | 11 | // qui contient une fonction pour chaque section (avec le nom "t_<nom de la section>") |
11 | // Ex pour la section "emprunts" : $('#t_emprunts').click(function()... | 12 | // Ex pour la section "emprunts" : $('#t_emprunts').click(function()... |
12 | -//function echoSectionStart($title, $section) { | ||
13 | -function echoSectionStart($title) { | 13 | +//function $this->MyHelper->echoSectionStart($title, $section) { |
14 | +/* | ||
15 | +function $this->MyHelper->echoSectionStart($title) { | ||
14 | //echo '<h3 id="t_'.$section.'" style="cursor: pointer;">'; | 16 | //echo '<h3 id="t_'.$section.'" style="cursor: pointer;">'; |
15 | //echo "<h3 id='t_$section' class='toggle' style='cursor: pointer;'>"; | 17 | //echo "<h3 id='t_$section' class='toggle' style='cursor: pointer;'>"; |
16 | echo "<h3 id='t_$title' class='toggle' style='cursor: pointer;'>"; | 18 | echo "<h3 id='t_$title' class='toggle' style='cursor: pointer;'>"; |
@@ -23,10 +25,11 @@ function echoSectionStart($title) { | @@ -23,10 +25,11 @@ function echoSectionStart($title) { | ||
23 | echo '<table>'; | 25 | echo '<table>'; |
24 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | 26 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; |
25 | } | 27 | } |
26 | -function echoSectionStop() { | 28 | +function $this->MyHelper->echoSectionStop() { |
27 | echo '</table>'; | 29 | echo '</table>'; |
28 | echo '</div>'; | 30 | echo '</div>'; |
29 | } | 31 | } |
32 | +*/ | ||
30 | ?> | 33 | ?> |
31 | 34 | ||
32 | <div class="configurations view"> | 35 | <div class="configurations view"> |
@@ -43,8 +46,8 @@ function echoSectionStop() { | @@ -43,8 +46,8 @@ function echoSectionStop() { | ||
43 | echo '<br><br>'; | 46 | echo '<br><br>'; |
44 | 47 | ||
45 | 48 | ||
46 | - //echoSectionStart("Modes", "informations"); | ||
47 | - echoSectionStart("Modes"); | 49 | + //$this->MyHelper->echoSectionStart("Modes", "informations"); |
50 | + $this->MyHelper->echoSectionStart("Modes"); | ||
48 | /* | 51 | /* |
49 | echo '<h3 id="t_informations" style="cursor: pointer;">'; | 52 | echo '<h3 id="t_informations" style="cursor: pointer;">'; |
50 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>'; | 53 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>'; |
@@ -54,15 +57,18 @@ function echoSectionStop() { | @@ -54,15 +57,18 @@ function echoSectionStop() { | ||
54 | echo '<table>'; | 57 | echo '<table>'; |
55 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | 58 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; |
56 | */ | 59 | */ |
57 | - //$displayElement(__('Mode install'), $install); | ||
58 | - $displayElement(__('Mode install'), $configurationObj->mode_install==1?"Oui":"Non"); | ||
59 | - //$displayElement(__('Mode debug'), $debug); | ||
60 | - $displayElement(__('Mode debug'), $configurationObj->mode_debug==1?"Oui":"Non"); | ||
61 | - echoSectionStop(); | 60 | + //$this->MyHelper->displayElement(__('Mode install'), $install); |
61 | + //$this->MyHelper->displayElement(__('Mode install'), $configurationObj->mode_install==1?"Oui":"Non"); | ||
62 | + //MyHelperHelper::displayElement(__('Mode install'), $configurationObj->mode_install==1?"Oui":"Non"); | ||
63 | + $this->MyHelper->displayElement(__('Mode install'), $configurationObj->mode_install==1?"Oui":"Non"); | ||
64 | + | ||
65 | + //$this->MyHelper->displayElement(__('Mode debug'), $debug); | ||
66 | + $this->MyHelper->displayElement(__('Mode debug'), $configurationObj->mode_debug==1?"Oui":"Non"); | ||
67 | + $this->MyHelper->echoSectionStop(); | ||
62 | 68 | ||
63 | 69 | ||
64 | - //echoSectionStart("Laboratoire", "informations_admin"); | ||
65 | - echoSectionStart("Laboratoire"); | 70 | + //$this->MyHelper->echoSectionStart("Laboratoire", "informations_admin"); |
71 | + $this->MyHelper->echoSectionStart("Laboratoire"); | ||
66 | /* | 72 | /* |
67 | echo '<h3 id="t_informations_admin" style="cursor: pointer;">'; | 73 | echo '<h3 id="t_informations_admin" style="cursor: pointer;">'; |
68 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>'; | 74 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>'; |
@@ -72,15 +78,15 @@ function echoSectionStop() { | @@ -72,15 +78,15 @@ function echoSectionStop() { | ||
72 | echo '<table>'; | 78 | echo '<table>'; |
73 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | 79 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; |
74 | */ | 80 | */ |
75 | - $displayElement(__('Nom complet du Labo'), h($configurationObj->labName)); | ||
76 | - $displayElement(__('Nom court du Labo'), h($configurationObj->labNameShort)); | ||
77 | - $displayElement(__('Liaison présentation nom du Labo'), h($configurationObj->labPresent)); | ||
78 | - $displayElement(__('UMR du Labo'), h($configurationObj->labUmr)); | ||
79 | - echoSectionStop(); | 81 | + $this->MyHelper->displayElement(__('Nom complet du Labo'), h($configurationObj->labName)); |
82 | + $this->MyHelper->displayElement(__('Nom court du Labo'), h($configurationObj->labNameShort)); | ||
83 | + $this->MyHelper->displayElement(__('Liaison présentation nom du Labo'), h($configurationObj->labPresent)); | ||
84 | + $this->MyHelper->displayElement(__('UMR du Labo'), h($configurationObj->labUmr)); | ||
85 | + $this->MyHelper->echoSectionStop(); | ||
80 | 86 | ||
81 | 87 | ||
82 | - //echoSectionStart("Divers", "suivis"); | ||
83 | - echoSectionStart("Divers"); | 88 | + //$this->MyHelper->echoSectionStart("Divers", "suivis"); |
89 | + $this->MyHelper->echoSectionStart("Divers"); | ||
84 | /* | 90 | /* |
85 | echo '<h3 id="t_suivis" style="cursor: pointer;">'; | 91 | echo '<h3 id="t_suivis" style="cursor: pointer;">'; |
86 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>'; | 92 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>'; |
@@ -90,21 +96,21 @@ function echoSectionStop() { | @@ -90,21 +96,21 @@ function echoSectionStop() { | ||
90 | echo '<table>'; | 96 | echo '<table>'; |
91 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | 97 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; |
92 | */ | 98 | */ |
93 | - $displayElement(__('Librairie pdf utilisée'), $configurationObj->pdf_engine); | ||
94 | - $displayElement(__('Afficher la procédure à suivre sur l\'écran d\'accueil'), $configurationObj->procedure_sur_accueil?'Oui':'Non'); | ||
95 | - $displayElement(__('Imprimante disponible'), h($configurationObj->hasPrinter)?"Oui":"Non"); | ||
96 | - $displayElement(__('Numéro format étiquette'), h($configurationObj->label_format_num)); | ||
97 | - $displayElement(__('Seuil (prix) Matériel administratif'), h($configurationObj->prix_inventaire_administratif)); | ||
98 | - $displayElement(__('Taille max documents (octets)'), substr($configurationObj->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo'); | ||
99 | - $displayElement(__('Numero labo sans année'), $configurationObj->numero_labo_sans_annee?'Oui':'Non'); | ||
100 | - $displayElement(__('Champ date commande facultatif'), $configurationObj->date_commande_facultative?'Oui':'Non'); | ||
101 | - $displayElement(__('Label groupe thématique'), h($configurationObj->nom_groupe_thematique)); | ||
102 | - $displayElement(__('Label groupe métier'), h($configurationObj->nom_groupe_metier)); | ||
103 | - $displayElement(__('Module métrologie'), $configurationObj->metrologie?'Oui':'Non'); | ||
104 | - echoSectionStop(); | 99 | + $this->MyHelper->displayElement(__('Librairie pdf utilisée'), $configurationObj->pdf_engine); |
100 | + $this->MyHelper->displayElement(__('Afficher la procédure à suivre sur l\'écran d\'accueil'), $configurationObj->procedure_sur_accueil?'Oui':'Non'); | ||
101 | + $this->MyHelper->displayElement(__('Imprimante disponible'), h($configurationObj->hasPrinter)?"Oui":"Non"); | ||
102 | + $this->MyHelper->displayElement(__('Numéro format étiquette'), h($configurationObj->label_format_num)); | ||
103 | + $this->MyHelper->displayElement(__('Seuil (prix) Matériel administratif'), h($configurationObj->prix_inventaire_administratif)); | ||
104 | + $this->MyHelper->displayElement(__('Taille max documents (octets)'), substr($configurationObj->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo'); | ||
105 | + $this->MyHelper->displayElement(__('Numero labo sans année'), $configurationObj->numero_labo_sans_annee?'Oui':'Non'); | ||
106 | + $this->MyHelper->displayElement(__('Champ date commande facultatif'), $configurationObj->date_commande_facultative?'Oui':'Non'); | ||
107 | + $this->MyHelper->displayElement(__('Label groupe thématique'), h($configurationObj->nom_groupe_thematique)); | ||
108 | + $this->MyHelper->displayElement(__('Label groupe métier'), h($configurationObj->nom_groupe_metier)); | ||
109 | + $this->MyHelper->displayElement(__('Module métrologie'), $configurationObj->metrologie?'Oui':'Non'); | ||
110 | + $this->MyHelper->echoSectionStop(); | ||
105 | 111 | ||
106 | - //echoSectionStart("Emails", "emprunts"); | ||
107 | - echoSectionStart("Emails"); | 112 | + //$this->MyHelper->echoSectionStart("Emails", "emprunts"); |
113 | + $this->MyHelper->echoSectionStart("Emails"); | ||
108 | /* | 114 | /* |
109 | echo '<h3 id="t_emprunts" style="cursor: pointer;">'; | 115 | echo '<h3 id="t_emprunts" style="cursor: pointer;">'; |
110 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; | 116 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; |
@@ -114,27 +120,27 @@ function echoSectionStop() { | @@ -114,27 +120,27 @@ function echoSectionStop() { | ||
114 | echo '<table>'; | 120 | echo '<table>'; |
115 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | 121 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; |
116 | */ | 122 | */ |
117 | - $displayElement(__("Attribut 'sender' (expéditeur)"), h($configurationObj->sender_mail)); | ||
118 | - $displayElement(__("Activer l'envoi 'général' des mails"), h($configurationObj->envoi_mail)?'Oui':'Non'); | ||
119 | - $displayElement(__("Activer l'envoi 'spécifique' des mails pour la liste ci-dessous"), h($configurationObj->envoi_mail_guests)?'Oui':'Non'); | 123 | + $this->MyHelper->displayElement(__("Attribut 'sender' (expéditeur)"), h($configurationObj->sender_mail)); |
124 | + $this->MyHelper->displayElement(__("Activer l'envoi 'général' des mails"), h($configurationObj->envoi_mail)?'Oui':'Non'); | ||
125 | + $this->MyHelper->displayElement(__("Activer l'envoi 'spécifique' des mails pour la liste ci-dessous"), h($configurationObj->envoi_mail_guests)?'Oui':'Non'); | ||
120 | // (EP202009) non mais, faudrait arrêter d'être fainénant aussi... | 126 | // (EP202009) non mais, faudrait arrêter d'être fainénant aussi... |
121 | for ($i=1 ; $i<=10; $i++) { | 127 | for ($i=1 ; $i<=10; $i++) { |
122 | $dest = "emailGuest$i"; | 128 | $dest = "emailGuest$i"; |
123 | - $displayElement( __("Destinataire $i"), h($configurationObj->$dest) ); | 129 | + $this->MyHelper->displayElement( __("Destinataire $i"), h($configurationObj->$dest) ); |
124 | } | 130 | } |
125 | /* | 131 | /* |
126 | - $displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1)); | ||
127 | - $displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2)); | ||
128 | - $displayElement(__('Mail guest 3'), h($configurationObj->emailGuest3)); | ||
129 | - $displayElement(__('Mail guest 4'), h($configurationObj->emailGuest4)); | ||
130 | - $displayElement(__('Mail guest 5'), h($configurationObj->emailGuest5)); | ||
131 | - $displayElement(__('Mail guest 6'), h($configurationObj->emailGuest6)); | ||
132 | - $displayElement(__('Mail guest 7'), h($configurationObj->emailGuest7)); | ||
133 | - $displayElement(__('Mail guest 8'), h($configurationObj->emailGuest8)); | ||
134 | - $displayElement(__('Mail guest 9'), h($configurationObj->emailGuest9)); | ||
135 | - $displayElement(__('Mail guest 10'), h($configurationObj->emailGuest10)); | 132 | + $this->MyHelper->displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1)); |
133 | + $this->MyHelper->displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2)); | ||
134 | + $this->MyHelper->displayElement(__('Mail guest 3'), h($configurationObj->emailGuest3)); | ||
135 | + $this->MyHelper->displayElement(__('Mail guest 4'), h($configurationObj->emailGuest4)); | ||
136 | + $this->MyHelper->displayElement(__('Mail guest 5'), h($configurationObj->emailGuest5)); | ||
137 | + $this->MyHelper->displayElement(__('Mail guest 6'), h($configurationObj->emailGuest6)); | ||
138 | + $this->MyHelper->displayElement(__('Mail guest 7'), h($configurationObj->emailGuest7)); | ||
139 | + $this->MyHelper->displayElement(__('Mail guest 8'), h($configurationObj->emailGuest8)); | ||
140 | + $this->MyHelper->displayElement(__('Mail guest 9'), h($configurationObj->emailGuest9)); | ||
141 | + $this->MyHelper->displayElement(__('Mail guest 10'), h($configurationObj->emailGuest10)); | ||
136 | */ | 142 | */ |
137 | - echoSectionStop(); | 143 | + $this->MyHelper->echoSectionStop(); |
138 | 144 | ||
139 | 145 | ||
140 | /* | 146 | /* |
@@ -144,8 +150,8 @@ function echoSectionStop() { | @@ -144,8 +150,8 @@ function echoSectionStop() { | ||
144 | */ | 150 | */ |
145 | 151 | ||
146 | //if ($configuration->use_ldap) : | 152 | //if ($configuration->use_ldap) : |
147 | - //echoSectionStart("LDAP", "fichiers"); | ||
148 | - echoSectionStart("LDAP"); | 153 | + //$this->MyHelper->echoSectionStart("LDAP", "fichiers"); |
154 | + $this->MyHelper->echoSectionStart("LDAP"); | ||
149 | /* | 155 | /* |
150 | echo '<h3 id="t_fichiers" style="cursor: pointer;">'; | 156 | echo '<h3 id="t_fichiers" style="cursor: pointer;">'; |
151 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>'; | 157 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>'; |
@@ -155,18 +161,18 @@ function echoSectionStop() { | @@ -155,18 +161,18 @@ function echoSectionStop() { | ||
155 | echo '<table>'; | 161 | echo '<table>'; |
156 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | 162 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; |
157 | */ | 163 | */ |
158 | - $displayElement(__('Utilisation du LDAP'), h($configurationObj->ldap_used?"Oui":"Non")); | ||
159 | - $displayElement(__('Host'), h($configurationObj->ldap_host)); | ||
160 | - $displayElement(__('Port'), h($configurationObj->ldap_port)); | ||
161 | - $displayElement(__('Type d\'authentification du LDAP'), h($configurationObj->ldap_authenticationType)); | ||
162 | - $displayElement(__('Base DN du LDAP'), h($configurationObj->ldap_baseDn)); | ||
163 | - $displayElement(__('Filtre du LDAP'), h($configurationObj->ldap_filter)); | 164 | + $this->MyHelper->displayElement(__('Utilisation du LDAP'), h($configurationObj->ldap_used?"Oui":"Non")); |
165 | + $this->MyHelper->displayElement(__('Host'), h($configurationObj->ldap_host)); | ||
166 | + $this->MyHelper->displayElement(__('Port'), h($configurationObj->ldap_port)); | ||
167 | + $this->MyHelper->displayElement(__('Type d\'authentification du LDAP'), h($configurationObj->ldap_authenticationType)); | ||
168 | + $this->MyHelper->displayElement(__('Base DN du LDAP'), h($configurationObj->ldap_baseDn)); | ||
169 | + $this->MyHelper->displayElement(__('Filtre du LDAP'), h($configurationObj->ldap_filter)); | ||
164 | 170 | ||
165 | - $displayElement(__('LDAP authentifié (non anonyme)'), h($configurationObj->ldap_authentified)?"Oui":"Non" ); | ||
166 | - $displayElement(__('Bind du LDAP'), h($configurationObj->ldap_bindDn)); | 171 | + $this->MyHelper->displayElement(__('LDAP authentifié (non anonyme)'), h($configurationObj->ldap_authentified)?"Oui":"Non" ); |
172 | + $this->MyHelper->displayElement(__('Bind du LDAP'), h($configurationObj->ldap_bindDn)); | ||
167 | // Inutile d'afficher le pass | 173 | // Inutile d'afficher le pass |
168 | - //$displayElement(__('Password Bind du LDAP'), h($configurationObj->ldap_bindPass)); | ||
169 | - echoSectionStop(); | 174 | + //$this->MyHelper->displayElement(__('Password Bind du LDAP'), h($configurationObj->ldap_bindPass)); |
175 | + $this->MyHelper->echoSectionStop(); | ||
170 | 176 | ||
171 | 177 | ||
172 | /* | 178 | /* |
@@ -175,7 +181,7 @@ function echoSectionStop() { | @@ -175,7 +181,7 @@ function echoSectionStop() { | ||
175 | ******** | 181 | ******** |
176 | */ | 182 | */ |
177 | 183 | ||
178 | - echoSectionStart("Optmisation"); | 184 | + $this->MyHelper->echoSectionStart("Optmisation"); |
179 | /* LDAP optimisation */ | 185 | /* LDAP optimisation */ |
180 | if (is_null($configurationObj->ldap_cache_last_update)) $ldap_cache_elapsed_time = ''; | 186 | if (is_null($configurationObj->ldap_cache_last_update)) $ldap_cache_elapsed_time = ''; |
181 | else { | 187 | else { |
@@ -198,15 +204,15 @@ function echoSectionStop() { | @@ -198,15 +204,15 @@ function echoSectionStop() { | ||
198 | //$ldap_cache_elapsed_time = $date_now->diff($date_cached)->format('%hh %imn %ssec'); | 204 | //$ldap_cache_elapsed_time = $date_now->diff($date_cached)->format('%hh %imn %ssec'); |
199 | $ldap_cache_elapsed_time = $date_now->diff($date_cached)->format('%d jour(s) %hh %imn %ss'); | 205 | $ldap_cache_elapsed_time = $date_now->diff($date_cached)->format('%d jour(s) %hh %imn %ss'); |
200 | } | 206 | } |
201 | - $displayElement(__('Optimisation liste utilisateurs (utilisation Cache en BD)'), h($configurationObj->ldap_cached)?"Oui":"Non" ); | ||
202 | - $displayElement(__('Durée validité cache (mn)'), h($configurationObj->ldap_cache_validity_duration)); | ||
203 | - $displayElement(__('Date dernière mise à jour cache'), h($configurationObj->ldap_cache_last_update)); | ||
204 | - $displayElement(__('Temps écoulé depuis dernière mise à jour'), $ldap_cache_elapsed_time); | ||
205 | - echoSectionStop(); | 207 | + $this->MyHelper->displayElement(__('Optimisation liste utilisateurs (utilisation Cache en BD)'), h($configurationObj->ldap_cached)?"Oui":"Non" ); |
208 | + $this->MyHelper->displayElement(__('Durée validité cache (mn)'), h($configurationObj->ldap_cache_validity_duration)); | ||
209 | + $this->MyHelper->displayElement(__('Date dernière mise à jour cache'), h($configurationObj->ldap_cache_last_update)); | ||
210 | + $this->MyHelper->displayElement(__('Temps écoulé depuis dernière mise à jour'), $ldap_cache_elapsed_time); | ||
211 | + $this->MyHelper->echoSectionStop(); | ||
206 | 212 | ||
207 | 213 | ||
208 | - //echoSectionStart("Affichage", "affichage"); | ||
209 | - echoSectionStart("Affichage"); | 214 | + //$this->MyHelper->echoSectionStart("Affichage", "affichage"); |
215 | + $this->MyHelper->echoSectionStart("Affichage"); | ||
210 | /* | 216 | /* |
211 | echo '<h3 id="t_emprunts" style="cursor: pointer;">'; | 217 | echo '<h3 id="t_emprunts" style="cursor: pointer;">'; |
212 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; | 218 | echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>'; |
@@ -216,8 +222,8 @@ function echoSectionStop() { | @@ -216,8 +222,8 @@ function echoSectionStop() { | ||
216 | echo '<table>'; | 222 | echo '<table>'; |
217 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | 223 | echo '<tr><th style="width: 250px;"></th><th></th></tr>'; |
218 | */ | 224 | */ |
219 | - $displayElement(__('Nombre de matériels affichés par défaut (pagination)'), h($configurationObj->aff_par_defaut)); | ||
220 | - echoSectionStop(); | 225 | + $this->MyHelper->displayElement(__('Nombre de matériels affichés par défaut (pagination)'), h($configurationObj->aff_par_defaut)); |
226 | + $this->MyHelper->echoSectionStop(); | ||
221 | 227 | ||
222 | ?> | 228 | ?> |
223 | 229 |
src/Template/Pages/changes.ctp
@@ -18,7 +18,8 @@ const SECTION_CHANGES = "======= CHANGES =======\n"; | @@ -18,7 +18,8 @@ const SECTION_CHANGES = "======= CHANGES =======\n"; | ||
18 | */ | 18 | */ |
19 | const IMPORTANT = [ | 19 | const IMPORTANT = [ |
20 | '- (e)' => 'green', | 20 | '- (e)' => 'green', |
21 | - '- (i)' => 'orange', | 21 | + //'- (i)' => 'orange', |
22 | + '- (i)' => 'black', | ||
22 | '- (b)' => 'red' | 23 | '- (b)' => 'red' |
23 | ]; | 24 | ]; |
24 | 25 | ||
@@ -111,9 +112,9 @@ echo '<br />'; | @@ -111,9 +112,9 @@ echo '<br />'; | ||
111 | <p> | 112 | <p> |
112 | <u><b>Légende</b></u>: | 113 | <u><b>Légende</b></u>: |
113 | <ul> | 114 | <ul> |
114 | -<li>En <b style='color:green'>vert</b>, les changements visibles</li> | ||
115 | -<li>En <b style='color:orange'>orange</b>, les changements internes (non visibles, souvent techniques)</li> | ||
116 | -<li>En <b style='color:red'>rouge</b>, les corrections de bug (bugfixes)</li> | 115 | +<li>En <span style='color:red'>rouge</span>, les corrections de bug (bugfixes)</li> |
116 | +<li>En <span style='color:green'>vert</span>, les changements visibles</li> | ||
117 | +<li>En <span style='color:black'>noir (normal)</span>, les changements internes (non visibles, souvent techniques)</li> | ||
117 | </ul> | 118 | </ul> |
118 | </p> | 119 | </p> |
119 | <br /> | 120 | <br /> |
@@ -140,7 +141,8 @@ while(!feof($f)) { | @@ -140,7 +141,8 @@ while(!feof($f)) { | ||
140 | } | 141 | } |
141 | if ($pos) { | 142 | if ($pos) { |
142 | $color = IMPORTANT[$code]; | 143 | $color = IMPORTANT[$code]; |
143 | - echo "<b style='color:$color'> - ".substr($line,$pos+strlen($code))."</b>"; | 144 | + //echo "<b style='color:$color'> - ".substr($line,$pos+strlen($code))."</b>"; |
145 | + echo "<span style='color:$color'> - ".substr($line,$pos+strlen($code))."</span>"; | ||
144 | } | 146 | } |
145 | else echo $line; | 147 | else echo $line; |
146 | echo "<br>"; | 148 | echo "<br>"; |
src/View/Helper/MyHelperHelper.php
@@ -63,6 +63,29 @@ class MyHelperHelper extends Helper { | @@ -63,6 +63,29 @@ class MyHelperHelper extends Helper { | ||
63 | //if ($valeur!="") echo "<TR> <TD><strong>$nom</strong></TD> <$TD>$valeur</TD> </TR>"; | 63 | //if ($valeur!="") echo "<TR> <TD><strong>$nom</strong></TD> <$TD>$valeur</TD> </TR>"; |
64 | } | 64 | } |
65 | 65 | ||
66 | + /* Pour src/Template/Configurations/view et edit */ | ||
67 | + public function echoSectionStart($title) { | ||
68 | + $WITH_TABLE=true; | ||
69 | + //echo '<h3 id="t_'.$section.'" style="cursor: pointer;">'; | ||
70 | + //echo "<h3 id='t_$section' class='toggle' style='cursor: pointer;'>"; | ||
71 | + echo "<h3 id='t_$title' class='toggle' style='cursor: pointer;'>"; | ||
72 | + //echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_'.$section.'"></i>'; | ||
73 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_'.$title.'"></i>'; | ||
74 | + echo '<span style="text-decoration: underline;">'.$title.'</span>'; | ||
75 | + echo '</h3>'; | ||
76 | + //echo '<div id="'.$section.'" style="margin-bottom: 20px;">'; | ||
77 | + echo '<div id="'.$title.'" style="margin-bottom: 20px;">'; | ||
78 | + if ($WITH_TABLE) { | ||
79 | + echo '<table>'; | ||
80 | + echo '<tr><th style="width: 250px;"></th><th></th></tr>'; | ||
81 | + } | ||
82 | + } | ||
83 | + public function echoSectionStop() { | ||
84 | + $WITH_TABLE=true; | ||
85 | + if ($WITH_TABLE) echo '</table>'; | ||
86 | + echo '</div>'; | ||
87 | + } | ||
88 | + | ||
66 | 89 | ||
67 | 90 | ||
68 | 91 |