Commit 6990fd5bf1b598551c328a2726244b2a24de2a7e

Authored by Etienne Pallier
1 parent 4f90ace2
Exists in master and in 2 other branches dev, dev-IRAP

Bugfix actions sur pdf interdites

Aussi: Grosse Simplification des vues materiels/view et index
@@ -54,12 +54,12 @@ Logiciel testé et validé sur les configurations suivantes : @@ -54,12 +54,12 @@ Logiciel testé et validé sur les configurations suivantes :
54 VERSION ACTUELLE 54 VERSION ACTUELLE
55 55
56 Date: 21/05/2019 56 Date: 21/05/2019
57 -Version: 2.12.19 57 +Version: 2.12.20
58 Author: EP 58 Author: EP
59 Commentaire: 59 Commentaire:
60 - Bugfix affichage boutons vue matériel (parfois 2e ligne chevauchait 1ère ligne)  
61 - (Enorme) Simplification des vues (toujours en cours)  
62 - 60 + Bugfix actions sur pdf interdites
  61 + Simplifications vues materiels/view et index
  62 +
63 63
64 IMPORTANT : 64 IMPORTANT :
65 - Pour connaitre la version actuelle, taper "./VERSION" 65 - Pour connaitre la version actuelle, taper "./VERSION"
src/Controller/AppController.php
@@ -615,8 +615,9 @@ class AppController extends Controller @@ -615,8 +615,9 @@ class AppController extends Controller
615 615
616 // (EP 21/5/19) NEW 616 // (EP 21/5/19) NEW
617 617
618 - $role = $this->getUserRole();  
619 - $profile = self::PROFILES["$role"]; 618 + //$role = $this->getUserRole();
  619 + $this->userRole = $this->getUserRole();
  620 + $profile = self::PROFILES["$this->userRole"];
620 621
621 622
622 // Set General CONSTANTS for all CONTROLLERS 623 // Set General CONSTANTS for all CONTROLLERS
@@ -652,7 +653,7 @@ class AppController extends Controller @@ -652,7 +653,7 @@ class AppController extends Controller
652 ->first()['id']; 653 ->first()['id'];
653 654
654 // Now, set these constants for all VIEWS 655 // Now, set these constants for all VIEWS
655 - $this->set('role', $role); 656 + $this->set('role', $this->userRole);
656 $this->set('profile', $profile); 657 $this->set('profile', $profile);
657 $this->set('username', $this->userName); 658 $this->set('username', $this->userName);
658 $this->set('priviledgedUser', $this->priviledgedUser); 659 $this->set('priviledgedUser', $this->priviledgedUser);
@@ -850,7 +851,8 @@ class AppController extends Controller @@ -850,7 +851,8 @@ class AppController extends Controller
850 851
851 // Pass this function to all views 852 // Pass this function to all views
852 //function echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) { 853 //function echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) {
853 - $echoActionButton = function($html, $icon_class, $title, $controller='', $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='') { 854 + //$echoActionButton = function($html, $icon_class, $buttonStyle='', $title, $controller='', $action, $id, $other_args=[], $tip='', $confirmMessage='') {
  855 + $echoActionButton = function($html, $icon_class, $buttonStyle, $title, $controller, $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='') {
854 if ($controller=='') $controller='materiels'; 856 if ($controller=='') $controller='materiels';
855 $controllerArgs = []; 857 $controllerArgs = [];
856 $controllerArgs['controller'] = $controller; 858 $controllerArgs['controller'] = $controller;
@@ -858,7 +860,7 @@ class AppController extends Controller @@ -858,7 +860,7 @@ class AppController extends Controller
858 $controllerArgs[] = $id; 860 $controllerArgs[] = $id;
859 foreach ($other_args as $other_arg) $controllerArgs[] = $other_arg; 861 foreach ($other_args as $other_arg) $controllerArgs[] = $other_arg;
860 echo $html->link( 862 echo $html->link(
861 - __("<i class=$icon_class></i> $title"), 863 + __("<i class=$icon_class></i>$title"),
862 $controllerArgs, 864 $controllerArgs,
863 /* 865 /*
864 [ 866 [
@@ -872,7 +874,8 @@ class AppController extends Controller @@ -872,7 +874,8 @@ class AppController extends Controller
872 'title' => $tip, 874 'title' => $tip,
873 'escape' => false, 875 'escape' => false,
874 'onclick' => 'return true;', 876 'onclick' => 'return true;',
875 - 'style' => 'margin-right: 10px'.$moreButtonStyle, 877 + //'style' => 'margin-right: 10px'.$moreButtonStyle,
  878 + 'style' => $buttonStyle,
876 'confirm' => $confirmMessage 879 'confirm' => $confirmMessage
877 ] 880 ]
878 ); 881 );
src/Controller/DocumentsController.php
@@ -38,8 +38,13 @@ class DocumentsController extends AppController @@ -38,8 +38,13 @@ class DocumentsController extends AppController
38 if (in_array($action, [ 38 if (in_array($action, [
39 // 'view', 39 // 'view',
40 // 'add', 40 // 'add',
  41 +
  42 + // FPDF
41 'ficheMateriel', 43 'ficheMateriel',
42 - 'mailDevis' 44 + // DOMPDF
  45 + 'ficheMaterielPdf',
  46 +
  47 + 'mailDevis'
43 ])) 48 ]))
44 return true; 49 return true;
45 50
@@ -50,7 +55,10 @@ class DocumentsController extends AppController @@ -50,7 +55,10 @@ class DocumentsController extends AppController
50 */ 55 */
51 56
52 if (in_array($action, [ 57 if (in_array($action, [
  58 + // FPDF
53 'admission', 59 'admission',
  60 + // DOMPDF
  61 + 'admissionPdf',
54 'sortie' 62 'sortie'
55 ])) { 63 ])) {
56 if ($this->userHasRoleAtLeast('Administration')) { 64 if ($this->userHasRoleAtLeast('Administration')) {
src/Controller/MaterielsController.php
@@ -241,18 +241,20 @@ class MaterielsController extends AppController @@ -241,18 +241,20 @@ class MaterielsController extends AppController
241 $this->set(compact('toto')); 241 $this->set(compact('toto'));
242 */ 242 */
243 243
244 - $user = $userFromSession; 244 + $this->userFromSession = $userFromSession;
245 $configuration = $this->confLabinvent; 245 $configuration = $this->confLabinvent;
246 - $userCname = $user[$configuration->ldap_authenticationType][0]; 246 + $this->userCname = $userFromSession[$configuration->ldap_authenticationType][0];
247 /* 247 /*
248 * $role = TableRegistry::get('Users')->find() 248 * $role = TableRegistry::get('Users')->find()
249 * ->where(['username' => $user[$configuration->authentificationType_ldap][0]]) 249 * ->where(['username' => $user[$configuration->authentificationType_ldap][0]])
250 * ->first()['role']; 250 * ->first()['role'];
251 */ 251 */
252 - $role = $this->getUserRole($user); 252 + // (EP) deja set par beforeFilter()
  253 + //$role = $this->getUserRole($user);
  254 + //$this->userRole = $this->getUserRole($user);
253 255
254 // SUPERADMIN a tous les droits, non mais ! 256 // SUPERADMIN a tous les droits, non mais !
255 - if ($role == 'Super Administrateur') return true; 257 + if ($this->userRole == 'Super Administrateur') return true;
256 258
257 // $this->myDebug("role is ".$role); 259 // $this->myDebug("role is ".$role);
258 // debug("role is ".$role); 260 // debug("role is ".$role);
@@ -272,8 +274,8 @@ class MaterielsController extends AppController @@ -272,8 +274,8 @@ class MaterielsController extends AppController
272 * 274 *
273 * Tout le reste en dessous de cette ligne devient inutile !!! 275 * Tout le reste en dessous de cette ligne devient inutile !!!
274 */ 276 */
275 - $this->myDebug("isAuthorizedAction ? " . $this->isAuthorizedAction2($this, $role, $action, $id, $user));  
276 - return $this->isAuthorizedAction($role, $action, $id, $userFromSession, $userCname); 277 + $this->myDebug("isAuthorizedAction ? " . $this->isAuthorizedAction2($this, $this->userRole, $action, $id, $userFromSession));
  278 + return $this->isAuthorizedAction($this->userRole, $action, $id, $userFromSession, $this->userCname);
277 279
278 } // isAuthorized 280 } // isAuthorized
279 281
@@ -623,7 +625,8 @@ class MaterielsController extends AppController @@ -623,7 +625,8 @@ class MaterielsController extends AppController
623 $condition = [ 625 $condition = [
624 'Materiels.status =' => $this->request->getAttribute('params')['pass'][0] 626 'Materiels.status =' => $this->request->getAttribute('params')['pass'][0]
625 ]; 627 ];
626 - $this->set('STATUS', $this->request->getAttribute('params')['pass'][0]); 628 + //$this->set('STATUS', $this->request->getAttribute('params')['pass'][0]);
  629 + $this->set('SELECTED_STATUS', $this->request->getAttribute('params')['pass'][0]);
627 } 630 }
628 631
629 $GM = $this->request->getQuery('GM'); 632 $GM = $this->request->getQuery('GM');
@@ -743,7 +746,7 @@ class MaterielsController extends AppController @@ -743,7 +746,7 @@ class MaterielsController extends AppController
743 $this->set('_serialize', [ 746 $this->set('_serialize', [
744 'materiels' 747 'materiels'
745 ]); 748 ]);
746 - } 749 + } // index()
747 750
748 /** 751 /**
749 * View method 752 * View method
@@ -827,7 +830,11 @@ class MaterielsController extends AppController @@ -827,7 +830,11 @@ class MaterielsController extends AppController
827 $CAN_MANAGE_FILES = $CAN_ATTACH_A_DOC; 830 $CAN_MANAGE_FILES = $CAN_ATTACH_A_DOC;
828 $this->set(compact('CAN_MANAGE_FILES')); 831 $this->set(compact('CAN_MANAGE_FILES'));
829 832
830 - $CAN_EDIT = $IS_CREATED && $CAN_ATTACH_A_DOC; 833 + // NEW
  834 + // TODO: marche pas !!!
  835 + //$CAN_EDIT = $this->isAuthorizedAction($this->userRole, 'edit', $id, $this->userFromSession, $this->userCname);
  836 + // OLD
  837 + $CAN_EDIT = $IS_CREATED && $CAN_ATTACH_A_DOC;
831 $this->set(compact('CAN_EDIT')); 838 $this->set(compact('CAN_EDIT'));
832 839
833 $CAN_COPY = $CAN_EDIT; 840 $CAN_COPY = $CAN_EDIT;
src/Template/Materiels/index.ctp 100755 → 100644
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 +
  5 +
  6 +
  7 +// (EP 21/5/19)
  8 +// --- Elements set by Controller for this view ---
  9 +
  10 +/*TODO: $materiels doit etre enrichi avec des nouveaux attributs tels que (pour chaque materiel de la liste) :
  11 +- CAN_EDIT
  12 +- CAN_DELETE
  13 + */
  14 +$materiels = $materiels;
  15 +
  16 +// Uniquement quand un statut est sélectionné (pour filtrer)
  17 +if (isset($SELECTED_STATUS)) $SELECTED_STATUS = $SELECTED_STATUS;
  18 +
  19 +// TODO: yena plein d'autres
  20 +// ...
  21 +
  22 +// - Constants :
  23 +
  24 +// - User status:
  25 +$role = $role;
  26 +$username = $username;
  27 +$priviledgedUser = $priviledgedUser;
  28 +$USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR;
  29 +$USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE;
  30 +$USER_IS_RESPONSABLE_OR_MORE = $USER_IS_RESPONSABLE_OR_MORE;
  31 +$USER_IS_ADMIN = $USER_IS_ADMIN;
  32 +$USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE;
  33 +$USER_IS_ADMINPLUS = $USER_IS_ADMINPLUS;
  34 +$USER_IS_ADMINPLUS_OR_MORE = $USER_IS_ADMINPLUS_OR_MORE;
  35 +$USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN;
  36 +
  37 +// - Fonctions :
  38 +$displayElement = $displayElement;
  39 +$dateProchainControleVerif = $dateProchainControleVerif;
  40 +$echoActionButton = $echoActionButton;
  41 +
4 ?> 42 ?>
5 43
6 44
@@ -21,25 +59,21 @@ echo $this-&gt;Html-&gt;link(&#39;&lt;i class=&quot;icon-plus&quot;&gt;&lt;/i&gt; Nouveau Matériel&#39;, [ @@ -21,25 +59,21 @@ echo $this-&gt;Html-&gt;link(&#39;&lt;i class=&quot;icon-plus&quot;&gt;&lt;/i&gt; Nouveau Matériel&#39;, [
21 ]); 59 ]);
22 echo '</p>'; 60 echo '</p>';
23 61
24 -if (in_array($role, [  
25 - 'Administration',  
26 - 'Administration Plus',  
27 - 'Super Administrateur'  
28 -])) { 62 +if ($USER_IS_ADMIN_OR_MORE) {
29 echo '<p>'; 63 echo '<p>';
30 echo "Afficher les matériels : "; 64 echo "Afficher les matériels : ";
31 echo '</br>'; 65 echo '</br>';
32 echo '</br>'; 66 echo '</br>';
33 $b_all = $b_cre = $b_val = $b_toarc = $b_arc = ''; 67 $b_all = $b_cre = $b_val = $b_toarc = $b_arc = '';
34 $SELECTED = '<i class="icon-ok"></i>'; 68 $SELECTED = '<i class="icon-ok"></i>';
35 - if (isset($STATUS)) {  
36 - if ($STATUS == 'CREATED') 69 + if (isset($SELECTED_STATUS)) {
  70 + if ($SELECTED_STATUS == 'CREATED')
37 $b_cre = $SELECTED; 71 $b_cre = $SELECTED;
38 - else if ($STATUS == 'VALIDATED') 72 + else if ($SELECTED_STATUS == 'VALIDATED')
39 $b_val = $SELECTED; 73 $b_val = $SELECTED;
40 - else if ($STATUS == 'TOBEARCHIVED') 74 + else if ($SELECTED_STATUS == 'TOBEARCHIVED')
41 $b_toarc = $SELECTED; 75 $b_toarc = $SELECTED;
42 - else if ($STATUS == 'ARCHIVED') 76 + else if ($SELECTED_STATUS == 'ARCHIVED')
43 $b_arc = $SELECTED; 77 $b_arc = $SELECTED;
44 } else 78 } else
45 $b_all = $SELECTED; 79 $b_all = $SELECTED;
@@ -89,7 +123,7 @@ if (in_array($role, [ @@ -89,7 +123,7 @@ if (in_array($role, [
89 123
90 // ACTIONS : buttons "Tout selectionner", "Tout decocher" 124 // ACTIONS : buttons "Tout selectionner", "Tout decocher"
91 // - show only with "A valider" and "A sortir" 125 // - show only with "A valider" and "A sortir"
92 - if (isset($STATUS) && $nbMateriels != 0) { 126 + if (isset($SELECTED_STATUS) && $nbMateriels != 0) {
93 echo $this->Html->link('<i class="icon-check"></i> Tout cocher', '#all', [ 127 echo $this->Html->link('<i class="icon-check"></i> Tout cocher', '#all', [
94 'onclick' => 'selectAll()', 128 'onclick' => 'selectAll()',
95 'title' => 'Sélectionner tout les matériels', 129 'title' => 'Sélectionner tout les matériels',
@@ -127,15 +161,15 @@ echo $this-&gt;Form-&gt;control(&#39;aff_par_defaut&#39;, [ @@ -127,15 +161,15 @@ echo $this-&gt;Form-&gt;control(&#39;aff_par_defaut&#39;, [
127 if ($nbMateriels > 0) { 161 if ($nbMateriels > 0) {
128 // $form2 = $this->Form; 162 // $form2 = $this->Form;
129 // /echo $this->Form->create('materiels', ['url' => '/materiels/execActions']); 163 // /echo $this->Form->create('materiels', ['url' => '/materiels/execActions']);
130 - if (isset($STATUS)) 164 + if (isset($SELECTED_STATUS))
131 echo $this->Form->hidden('what', [ 165 echo $this->Form->hidden('what', [
132 - 'value' => $STATUS 166 + 'value' => $SELECTED_STATUS
133 ]); 167 ]);
134 ?> 168 ?>
135 <table style="border-collapse: separate; border-spacing: 0;"> 169 <table style="border-collapse: separate; border-spacing: 0;">
136 <thead> 170 <thead>
137 <tr> 171 <tr>
138 - <?php if (isset($STATUS)) { echo '<th></th>'; }?> 172 + <?php if (isset($SELECTED_STATUS)) { echo '<th></th>'; }?>
139 <th class="actions"><?= __('') ?></th> 173 <th class="actions"><?= __('') ?></th>
140 <th><?= $this->Paginator->sort('designation','Désignation') ?></th> 174 <th><?= $this->Paginator->sort('designation','Désignation') ?></th>
141 <th><?= $this->Paginator->sort('numero_laboratoire', 'N° interne (labo)') ?></th> 175 <th><?= $this->Paginator->sort('numero_laboratoire', 'N° interne (labo)') ?></th>
@@ -157,7 +191,15 @@ if ($nbMateriels &gt; 0) { @@ -157,7 +191,15 @@ if ($nbMateriels &gt; 0) {
157 $time = Time::now(); // On récupère la date et l'heure actuelles 191 $time = Time::now(); // On récupère la date et l'heure actuelles
158 $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie 192 $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie
159 $today = $today->format('Ydm'); // On formatte la date initialement en 31-12-2000 (par exemple) en un format qui pourra etre comparé : 20001231 193 $today = $today->format('Ydm'); // On formatte la date initialement en 31-12-2000 (par exemple) en un format qui pourra etre comparé : 20001231
  194 +
160 foreach ($materiels as $materiel) : 195 foreach ($materiels as $materiel) :
  196 +
  197 + $USER_IS_CREATOR_OR_OWNER = in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]);
  198 + $USER_IS_SAME_GROUP = (
  199 + ( isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id!=$idGmNa && $materiel->groupes_metier_id==$priviledgedUser->groupes_metier_id )
  200 + ||
  201 + ( isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id!=$idGtNa && $materiel->groupes_thematique_id==$priviledgedUser->groupe_thematique_id )
  202 + );
161 203
162 if ($materiel->date_fin_garantie !== NULL) { 204 if ($materiel->date_fin_garantie !== NULL) {
163 $timeFin = new time($materiel->date_fin_garantie); 205 $timeFin = new time($materiel->date_fin_garantie);
@@ -170,10 +212,10 @@ if ($nbMateriels &gt; 0) { @@ -170,10 +212,10 @@ if ($nbMateriels &gt; 0) {
170 $styleLien = ''; 212 $styleLien = '';
171 ?> 213 ?>
172 214
173 - <tr>  
174 - <?php 215 + <tr>
  216 + <?php
175 217
176 -if (isset($STATUS)) { 218 + if (isset($SELECTED_STATUS)) {
177 echo '<td class="smallText">' . $this->Form->checkbox($materiel->id, [ 219 echo '<td class="smallText">' . $this->Form->checkbox($materiel->id, [
178 'style' => 'margin: 3px', 220 'style' => 'margin: 3px',
179 'id' => $materiel->id 221 'id' => $materiel->id
@@ -181,38 +223,34 @@ if (isset($STATUS)) { @@ -181,38 +223,34 @@ if (isset($STATUS)) {
181 } 223 }
182 ?> 224 ?>
183 225
184 - <td class="actions"  
185 - style="padding: 6px 0; text-align: left;">  
186 - <?php 226 + <td class="actions"
  227 + style="padding: 6px 0; text-align: left;">
  228 + <?php
187 229
188 -if (in_array($materiel->status, [  
189 - 'CREATED',  
190 - // (EP 17/5/19) ben non, on peut pas si c'est validé !!!  
191 - //'VALIDATED'  
192 - ])) :  
193 - if (($role == 'Utilisateur' && (in_array($username, [  
194 - $materiel->nom_createur,  
195 - $materiel->nom_responsable  
196 - ]))) || (in_array($role, [  
197 - 'Administration',  
198 - 'Administration Plus',  
199 - 'Super Administrateur'  
200 - ])) || ($role == 'Responsable' && (in_array($username, [  
201 - $materiel ->nom_createur,  
202 - $materiel ->nom_responsable  
203 - ]))) ||($role == 'Responsable' && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)))) {  
204 - ?>  
205 - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $materiel->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?>  
206 - <?php } endif; ?>  
207 -  
208 - <?php  
209 - if (in_array($role, [  
210 - 'Administration',  
211 - 'Administration Plus',  
212 - 'Super Administrateur'  
213 - ]) || ($role == 'Responsable' && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)))) {  
214 -  
215 - if (h($materiel->status) == 'CREATED' && $role != 'Responsable') { 230 + // 1) EDIT icon
  231 + if (
  232 + in_array($materiel->status, [
  233 + 'CREATED',
  234 + // (EP 17/5/19) ben non, on peut pas si c'est validé !!!
  235 + //'VALIDATED'
  236 + ])
  237 + &&
  238 + (
  239 + $USER_IS_ADMIN_OR_MORE
  240 + ||
  241 + $USER_IS_CREATOR_OR_OWNER
  242 + ||
  243 + ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP)
  244 + )
  245 + ) echo $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $materiel->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]);
  246 +
  247 + // 2) VALIDER/TBA/ARCHIVER icon
  248 + if (
  249 + $USER_IS_ADMIN
  250 + ||
  251 + ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP)
  252 + ) {
  253 + if ($materiel->status=='CREATED' && !$USER_IS_RESPONSABLE) {
216 echo $this->Html->link('<i class="icon-ok-sign"></i>', [ 254 echo $this->Html->link('<i class="icon-ok-sign"></i>', [
217 'action' => 'statusValidated', 255 'action' => 'statusValidated',
218 $materiel->id 256 $materiel->id
@@ -222,7 +260,8 @@ if (in_array($materiel-&gt;status, [ @@ -222,7 +260,8 @@ if (in_array($materiel-&gt;status, [
222 'escape' => false, 260 'escape' => false,
223 'confirm' => 'Êtes-vous sur de vouloir valider ' . $materiel->designation . ' ?' 261 'confirm' => 'Êtes-vous sur de vouloir valider ' . $materiel->designation . ' ?'
224 ]); 262 ]);
225 - } else if (h($materiel->status) == 'VALIDATED') { 263 + }
  264 + else if (h($materiel->status) == 'VALIDATED') {
226 echo $this->Html->link('<i class="icon-inbox"></i>', [ 265 echo $this->Html->link('<i class="icon-inbox"></i>', [
227 'action' => 'statusToBeArchived', 266 'action' => 'statusToBeArchived',
228 $materiel->id 267 $materiel->id
@@ -232,10 +271,8 @@ if (in_array($materiel-&gt;status, [ @@ -232,10 +271,8 @@ if (in_array($materiel-&gt;status, [
232 'escape' => false, 271 'escape' => false,
233 'confirm' => 'Êtes-vous sur de vouloir faire une demande d\'archive ' . $materiel->designation . ' ?' 272 'confirm' => 'Êtes-vous sur de vouloir faire une demande d\'archive ' . $materiel->designation . ' ?'
234 ]); 273 ]);
235 - } else if (h($materiel->status && $role != 'Responsable') == 'TOBEARCHIVED' && ! in_array($role, [  
236 - 'Responsable',  
237 - 'Super Administrateur'  
238 - ])) { 274 + }
  275 + else if ($materiel->status=='TOBEARCHIVED' && !$USER_IS_RESPONSABLE)
239 echo $this->Html->link('<i class="icon-inbox"></i>', [ 276 echo $this->Html->link('<i class="icon-inbox"></i>', [
240 'action' => 'statusArchived', 277 'action' => 'statusArchived',
241 $materiel->id 278 $materiel->id
@@ -245,15 +282,17 @@ if (in_array($materiel-&gt;status, [ @@ -245,15 +282,17 @@ if (in_array($materiel-&gt;status, [
245 'escape' => false, 282 'escape' => false,
246 'confirm' => 'Êtes-vous sur de vouloir archiver ' . $materiel->designation . ' ?' 283 'confirm' => 'Êtes-vous sur de vouloir archiver ' . $materiel->designation . ' ?'
247 ]); 284 ]);
248 - }  
249 } 285 }
250 286
  287 + // 3) DELETE icon
251 if (h($materiel->status) == 'CREATED') { 288 if (h($materiel->status) == 'CREATED') {
252 - if (($role != 'Utilisateur' && $role != 'Responsable') || in_array($username, [  
253 - $materiel->nom_createur,  
254 - $materiel->nom_responsable  
255 - ]) || ($role == 'Responsable' && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)))) {  
256 - echo $this->Html->link(__('<i class="icon-trash"></i>'), [ 289 + if (
  290 + $USER_IS_ADMIN_OR_MORE
  291 + ||
  292 + $USER_IS_CREATOR_OR_OWNER
  293 + ||
  294 + ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP)
  295 + ) echo $this->Html->link(__('<i class="icon-trash"></i>'), [
257 'action' => 'delete', 296 'action' => 'delete',
258 $materiel->id 297 $materiel->id
259 ], [ 298 ], [
@@ -262,8 +301,9 @@ if (in_array($materiel-&gt;status, [ @@ -262,8 +301,9 @@ if (in_array($materiel-&gt;status, [
262 'escape' => false, 301 'escape' => false,
263 'confirm' => __('Êtes-vous sur de vouloir supprimer {0} ?', $materiel->designation) 302 'confirm' => __('Êtes-vous sur de vouloir supprimer {0} ?', $materiel->designation)
264 ]); 303 ]);
265 - }  
266 } 304 }
  305 +
  306 + // 4) DATA (designation, num labo, hs, categ, ...)
267 ?> 307 ?>
268 </td> 308 </td>
269 <td class="smallText"><?= $materiel->has('designation') ? $this->Html->link($materiel->designation, ['controller' => 'Materiels', 'action' => 'view', $materiel->id],[$styleLien]) : '' ?></td> 309 <td class="smallText"><?= $materiel->has('designation') ? $this->Html->link($materiel->designation, ['controller' => 'Materiels', 'action' => 'view', $materiel->id],[$styleLien]) : '' ?></td>
@@ -274,45 +314,50 @@ if (in_array($materiel-&gt;status, [ @@ -274,45 +314,50 @@ if (in_array($materiel-&gt;status, [
274 <td class="smallText"><?= h($materiel->numero_inventaire_organisme) ?></td> 314 <td class="smallText"><?= h($materiel->numero_inventaire_organisme) ?></td>
275 <td class="smallText"><?= h($materiel->nom_responsable) ?></td> 315 <td class="smallText"><?= h($materiel->nom_responsable) ?></td>
276 316
277 - <?php 317 + <?php
  318 + // 5) MATERIEL STATUS : C/V/TBA/A
278 switch (h($materiel->status)) { 319 switch (h($materiel->status)) {
279 -  
280 case 'CREATED': 320 case 'CREATED':
281 $statut = 'C'; 321 $statut = 'C';
282 break; 322 break;
283 -  
284 case 'VALIDATED': 323 case 'VALIDATED':
285 $statut = 'V'; 324 $statut = 'V';
286 break; 325 break;
287 -  
288 case 'TOBEARCHIVED': 326 case 'TOBEARCHIVED':
289 $statut = 'TBA'; 327 $statut = 'TBA';
290 break; 328 break;
291 -  
292 case 'ARCHIVED': 329 case 'ARCHIVED':
293 $statut = 'A'; 330 $statut = 'A';
294 break; 331 break;
295 -  
296 default: 332 default:
297 $statut = ''; 333 $statut = '';
298 break; 334 break;
299 } 335 }
300 ?> 336 ?>
301 - <td class="smallText"><?= $statut ?></td>  
302 - <td class="smallText"><?= h($materiel->date_acquisition) ?></td>  
303 - <td class="smallText"><?= h($materiel->etiquette)=='1' ? 'Y':'N' ?></td>  
304 - <?php if ($METRO)  
305 - echo '<td class="smallText">'. (h($materiel->metrologie)=='1' ? 'Y':'N').'</td>';  
306 - ?> 337 + <td class="smallText"><?= $statut ?></td>
  338 +
  339 +
  340 + <!--
  341 + // 6) Date acquisition et Etiquette posée
  342 + -->
  343 + <td class="smallText"><?= h($materiel->date_acquisition) ?></td>
  344 + <td class="smallText"><?= h($materiel->etiquette)=='1' ? 'Y':'N' ?></td>
307 345
308 - </tr>  
309 - <?php endforeach; ?>  
310 - </tbody> 346 + <!--
  347 + // 7) METRO o/n
  348 + -->
  349 + <?php if ($METRO)
  350 + echo '<td class="smallText">'. (h($materiel->metrologie)=='1' ? 'Y':'N').'</td>';
  351 + ?>
  352 +
  353 + </tr>
  354 + <?php endforeach; ?>
  355 + </tbody>
311 </table> 356 </table>
312 357
313 <?php 358 <?php
314 - if (isset($STATUS)) {  
315 - switch ($STATUS) { 359 + if (isset($SELECTED_STATUS)) {
  360 + switch ($SELECTED_STATUS) {
316 case 'CREATED': 361 case 'CREATED':
317 $action = 'Valider les'; 362 $action = 'Valider les';
318 break; 363 break;
@@ -324,8 +369,9 @@ if (in_array($materiel-&gt;status, [ @@ -324,8 +369,9 @@ if (in_array($materiel-&gt;status, [
324 break; 369 break;
325 } 370 }
326 371
327 - if ($STATUS != 'ARCHIVED') {  
328 - if (! ($role == 'Super Administrateur' && $STATUS == 'TOBEARCHIVED')) { 372 + if ($SELECTED_STATUS != 'ARCHIVED') {
  373 + //if (! ($role == 'Super Administrateur' && $SELECTED_STATUS == 'TOBEARCHIVED')) {
  374 + if (! ($USER_IS_SUPERADMIN && $SELECTED_STATUS=='TOBEARCHIVED') ) {
329 echo $this->Form->submit($action . ' matériels cochés', [ 375 echo $this->Form->submit($action . ' matériels cochés', [
330 'name' => 'updateSelectedStatus', 376 'name' => 'updateSelectedStatus',
331 'id' => 'updateSelectedStatus', 377 'id' => 'updateSelectedStatus',
@@ -342,26 +388,19 @@ if (in_array($materiel-&gt;status, [ @@ -342,26 +388,19 @@ if (in_array($materiel-&gt;status, [
342 echo "<br /><br />"; 388 echo "<br /><br />";
343 } 389 }
344 390
345 - if (in_array($role, [  
346 - 'Responsable',  
347 - 'Administration',  
348 - 'Administration Plus',  
349 - 'Super Administrateur'  
350 - ])) : 391 + if ($USER_IS_ADMIN_OR_MORE || $USER_IS_RESPONSABLE)
351 echo $this->Form->submit('Exporter la liste complete (toutes les pages)', [ 392 echo $this->Form->submit('Exporter la liste complete (toutes les pages)', [
352 'name' => 'exportAll', 393 'name' => 'exportAll',
353 'id' => 'exportAll', 394 'id' => 'exportAll',
354 'style' => 'margin: 0px;' 395 'style' => 'margin: 0px;'
355 ]); 396 ]);
356 - endif;  
357 -  
358 - ?>  
359 397
360 - <?php echo $this->element('pagination_with_first_and_last'); ?> 398 + echo $this->element('pagination_with_first_and_last');
361 399
362 - <?= $this->Form->end()?>  
363 - <?php  
364 -} else { 400 + $this->Form->end();
  401 +}
  402 +
  403 +else {
365 echo 'Aucun matériel'; 404 echo 'Aucun matériel';
366 } 405 }
367 ?> 406 ?>
src/Template/Materiels/view.ctp
@@ -11,6 +11,7 @@ use Cake\ORM\TableRegistry; @@ -11,6 +11,7 @@ use Cake\ORM\TableRegistry;
11 $PDF_ENGINE = $PDF_ENGINE; 11 $PDF_ENGINE = $PDF_ENGINE;
12 12
13 // - User status: 13 // - User status:
  14 +$role = $role;
14 $username = $username; 15 $username = $username;
15 $priviledgedUser = $priviledgedUser; 16 $priviledgedUser = $priviledgedUser;
16 $USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR; 17 $USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR;
@@ -189,11 +190,11 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN @@ -189,11 +190,11 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
189 * informations de la photo pour retrouver son nom et l'afficher, l'id ne suffit plus 190 * informations de la photo pour retrouver son nom et l'afficher, l'id ne suffit plus
190 * on parcourt donc les documents liés à ce matériel 191 * on parcourt donc les documents liés à ce matériel
191 */ 192 */
192 - foreach ($materiel->documents as $documents) { 193 + foreach ($materiel->documents as $document) {
193 // et si le document est la photo liée, on l'affiche, pour cela 194 // et si le document est la photo liée, on l'affiche, pour cela
194 - if($documents->photo) { 195 + if($document->photo) {
195 //on récupère le doc 196 //on récupère le doc
196 - $photo = $documents; 197 + $photo = $document;
197 //on reconstitue le nom a partir des paramètres (idmat_nom_id.extension) 198 //on reconstitue le nom a partir des paramètres (idmat_nom_id.extension)
198 $nomPhoto = $photo->materiel_id . "_" . $photo->nom . "_" . $photo->id . "." .$photo->type_doc; 199 $nomPhoto = $photo->materiel_id . "_" . $photo->nom . "_" . $photo->id . "." .$photo->type_doc;
199 200
@@ -229,13 +230,15 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN @@ -229,13 +230,15 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
229 230
230 // --- (1) BOUTONS 1st row --- 231 // --- (1) BOUTONS 1st row ---
231 232
  233 + $bStyle = 'margin-right: 10px';
  234 +
232 // BOUTON "Editer" 235 // BOUTON "Editer"
233 - if ($CAN_EDIT) $echoActionButton($this->Html, 'icon-pencil', 'Editer ce matériel', 'materiels', 'edit', $materiel->id); 236 + if ($CAN_EDIT) $echoActionButton($this->Html, 'icon-pencil', $bStyle, ' Editer ce matériel', 'materiels', 'edit', $materiel->id);
234 237
235 // BOUTONS "NOUVEAU SUIVI" et "NOUVEL EMPRUNT" 238 // BOUTONS "NOUVEAU SUIVI" et "NOUVEL EMPRUNT"
236 // if ($materiel->status == 'VALIDATED') { 239 // if ($materiel->status == 'VALIDATED') {
237 if ($IS_VALIDATED) { 240 if ($IS_VALIDATED) {
238 - $echoActionButton($this->Html, 'icon-plus', 'Nouv. Suivi', 'suivis', 'add', $materiel->id, [], 'Faire un nouveau suivi de ce matériel'); 241 + $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Nouv. Suivi', 'suivis', 'add', $materiel->id, [], 'Faire un nouveau suivi de ce matériel');
239 /* 242 /*
240 echo $this->Html->link('<i class="icon-plus"></i> Nouv. Suivi', [ 243 echo $this->Html->link('<i class="icon-plus"></i> Nouv. Suivi', [
241 'controller' => 'suivis', 244 'controller' => 'suivis',
@@ -247,17 +250,17 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN @@ -247,17 +250,17 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
247 'escape' => false 250 'escape' => false
248 ]); // End link 251 ]); // End link
249 */ 252 */
250 - $echoActionButton($this->Html, 'icon-plus', 'Nouv. Emprunt', 'emprunts', 'add', $materiel->id, [], 'Faire un nouvel emprunt de ce matériel'); 253 + $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Nouv. Emprunt', 'emprunts', 'add', $materiel->id, [], 'Faire un nouvel emprunt de ce matériel');
251 } 254 }
252 255
253 // BOUTONS "Lier un Doc" et "Remplacer/Lier photo" 256 // BOUTONS "Lier un Doc" et "Remplacer/Lier photo"
254 if ($CAN_ATTACH_A_DOC) { 257 if ($CAN_ATTACH_A_DOC) {
255 - $echoActionButton($this->Html, 'icon-file', 'Lier un Doc.', 'documents', 'add', $materiel->id, ['mat'], 'Attacher un Doc. à ce matériel'); 258 + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Lier un Doc.', 'documents', 'add', $materiel->id, ['mat'], 'Attacher un Doc. à ce matériel');
256 // BOUTON "photo" 259 // BOUTON "photo"
257 if ($materiel->photo_id != null) 260 if ($materiel->photo_id != null)
258 - $echoActionButton($this->Html, 'icon-file', 'Remplacer la photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Remplacer la photo de ce matériel'); 261 + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Remplacer la photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Remplacer la photo de ce matériel');
259 else 262 else
260 - $echoActionButton($this->Html, 'icon-file', 'Lier une photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Attacher une photo à ce matériel'); 263 + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Lier une photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Attacher une photo à ce matériel');
261 } 264 }
262 265
263 // BOUTONS Doc admission et sortie (admin+) 266 // BOUTONS Doc admission et sortie (admin+)
@@ -276,7 +279,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN @@ -276,7 +279,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
276 $data = $materiel->numero_laboratoire . ".pdf"; 279 $data = $materiel->numero_laboratoire . ".pdf";
277 } 280 }
278 // if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) { 281 // if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) {
279 - $echoActionButton($this->Html, 'icon-file', 'Doc. admission', 'documents', $action, $data, [], "Voir le document d'admission"); 282 + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. admission', 'documents', $action, $data, [], "Voir le document d'admission");
280 } 283 }
281 284
282 // Doc sortie (admin only) 285 // Doc sortie (admin only)
@@ -292,7 +295,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN @@ -292,7 +295,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
292 $data = $materiel->numero_laboratoire . ".pdf"; 295 $data = $materiel->numero_laboratoire . ".pdf";
293 } 296 }
294 // else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) { 297 // else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) {
295 - $echoActionButton($this->Html, 'icon-file', 'Doc. sortie', 'documents', $action, $data, [], "Voir le document de sortie"); 298 + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. sortie', 'documents', $action, $data, [], "Voir le document de sortie");
296 } 299 }
297 300
298 } // Doc admission et sortie 301 } // Doc admission et sortie
@@ -306,47 +309,45 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN @@ -306,47 +309,45 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
306 // En pratique, il suffit que un seul bouton de cette ligne aie ce style (pas nécessaire pour les autres) 309 // En pratique, il suffit que un seul bouton de cette ligne aie ce style (pas nécessaire pour les autres)
307 // Mais bon, c'est difficile de savoir lequel sera toujours présent... 310 // Mais bon, c'est difficile de savoir lequel sera toujours présent...
308 // Donc, on applique ce style à TOUS les boutons de cette 2e ligne 311 // Donc, on applique ce style à TOUS les boutons de cette 2e ligne
309 - $moreButtonStyle = '; margin-top:10px; display:inline-block';  
310 - $moreButtonStyleRed = $moreButtonStyle . '; color:red'; 312 + $bStyle2 = $bStyle.'; margin-top:10px; display:inline-block';
  313 + $bStyle2Red = $bStyle2 . '; color:red';
311 // BOUTON de changement de statut : Valider, Invalider, Demander archivage, ou Archiver 314 // BOUTON de changement de statut : Valider, Invalider, Demander archivage, ou Archiver
312 if ($USER_IS_ADMIN_OR_MORE || ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP)) { 315 if ($USER_IS_ADMIN_OR_MORE || ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP)) {
313 // CREATED 316 // CREATED
314 if ($IS_CREATED) 317 if ($IS_CREATED)
315 // Bouton VALIDER 318 // Bouton VALIDER
316 - $echoActionButton($this->Html, 'icon-ok-sign', 'Valider', '', 'statusValidated', $materiel->id, [], "Valider ce matériel", '', $moreButtonStyleRed); 319 + $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Red, ' Valider', '', 'statusValidated', $materiel->id, [], "Valider ce matériel");
317 // VALIDATED or more 320 // VALIDATED or more
318 else { 321 else {
319 // Bouton Invalider 322 // Bouton Invalider
320 - $echoActionButton($this->Html, 'icon-remove-sign', 'Invalider', '', 'statusCreated', $materiel->id, [],  
321 - "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)",  
322 - '', $moreButtonStyleRed 323 + $echoActionButton($this->Html, 'icon-remove-sign', $bStyle2Red, ' Invalider', '', 'statusCreated', $materiel->id, [],
  324 + "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)"
323 ); 325 );
324 // Bouton TBA 326 // Bouton TBA
325 - if ($IS_VALIDATED) $echoActionButton($this->Html, 'icon-ok-sign', 'Demander sortie', '', 'statusToBeArchived', $materiel->id, [],  
326 - "Demander la sortie de l'inventaire", '', $moreButtonStyleRed 327 + if ($IS_VALIDATED) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Red, ' Demander sortie', '', 'statusToBeArchived', $materiel->id, [],
  328 + "Demander la sortie de l'inventaire"
327 ); 329 );
328 // Bouton ARCHIVER 330 // Bouton ARCHIVER
329 //if ($IS_TOBEARCHIVED && $role!='Responsable') $echoActionButton( 331 //if ($IS_TOBEARCHIVED && $role!='Responsable') $echoActionButton(
330 if ($IS_TOBEARCHIVED && $USER_IS_ADMIN_OR_MORE) $echoActionButton( 332 if ($IS_TOBEARCHIVED && $USER_IS_ADMIN_OR_MORE) $echoActionButton(
331 - $this->Html, 'icon-ok-sign', 'Sortie inventaire', '', 'statusArchived', $materiel->id, [], 333 + $this->Html, 'icon-ok-sign', $bStyle2Red, ' Sortie inventaire', '', 'statusArchived', $materiel->id, [],
332 "Sortir définitivement de l'inventaire", 334 "Sortir définitivement de l'inventaire",
333 - "Êtes-vous sur de bien vouloir archiver $materiel->designation ?",  
334 - $moreButtonStyleRed 335 + "Êtes-vous sur de bien vouloir archiver $materiel->designation ?"
335 ); 336 );
336 } 337 }
337 } 338 }
338 339
339 // BOUTON Copier (seulement pour les materiels qui sont CREATED et pour les ADMINet+ ou USER owner) 340 // BOUTON Copier (seulement pour les materiels qui sont CREATED et pour les ADMINet+ ou USER owner)
340 - if ($CAN_COPY) $echoActionButton($this->Html, 'icon-plus', 'Copier ce matériel', '', 'add', $materiel->id, [], "Copier ce matériel"); 341 + if ($CAN_COPY) $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Copier ce matériel', '', 'add', $materiel->id, [], "Copier ce matériel");
341 342
342 // BOUTON ETIQUETTE (si imprimante disponible) 343 // BOUTON ETIQUETTE (si imprimante disponible)
343 if ($CAN_PRINT_LABEL) { 344 if ($CAN_PRINT_LABEL) {
344 // - Bouton "Imprimer sur un ruban" 345 // - Bouton "Imprimer sur un ruban"
345 - $echoActionButton($this->Html, 'icon-print', 'Impr. étiquette', '', 'printLabelRuban', h($materiel->id), [], "Imprimer sur un ruban"); 346 + $echoActionButton($this->Html, 'icon-print', $bStyle, ' Impr. étiquette', '', 'printLabelRuban', h($materiel->id), [], "Imprimer sur un ruban");
346 // - Bouton "Etiquette posée" 347 // - Bouton "Etiquette posée"
347 $echoActionButton( 348 $echoActionButton(
348 - $this->Html, 'icon-file',  
349 - $materiel->etiquette ? "Etiquette NON collée" : "Etiquette collée", 349 + $this->Html, 'icon-file', $bStyle,
  350 + $materiel->etiquette ? " Etiquette NON collée" : " Etiquette collée",
350 'materiels', 351 'materiels',
351 $materiel->etiquette ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced', 352 $materiel->etiquette ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced',
352 h($materiel->id), ['view'], 353 h($materiel->id), ['view'],
@@ -359,6 +360,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN @@ -359,6 +360,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
359 } 360 }
360 361
361 // BOUTON "Voir fiche matériel" 362 // BOUTON "Voir fiche matériel"
  363 + $bStyleGreen = $bStyle.'; background: green; color: white';
362 echo "<br/>"; 364 echo "<br/>";
363 echo "<br/>"; 365 echo "<br/>";
364 // echo '<div id="fiche pdf" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">'; 366 // echo '<div id="fiche pdf" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">';
@@ -370,12 +372,10 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN @@ -370,12 +372,10 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
370 else { 372 else {
371 // DOMPDF 373 // DOMPDF
372 $action = 'fiche_materiel_pdf'; 374 $action = 'fiche_materiel_pdf';
373 - $data = $materiel->numero_laboratoire . ".pdf"; 375 + $data = $materiel->numero_laboratoire.'.pdf';
374 } 376 }
375 - $echoActionButton($this->Html, 'icon-file', 'Fiche PDF du matériel', 'documents', $action, $data, [],  
376 - "Voir la fiche du materiel",  
377 - '',  
378 - '; background: green; color: white' 377 + $echoActionButton($this->Html, 'icon-file', $bStyleGreen, ' Fiche PDF du matériel', 'documents', $action, $data, [],
  378 + "Voir la fiche du materiel"
379 ); 379 );
380 380
381 381
@@ -507,9 +507,11 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -507,9 +507,11 @@ if ($USER_IS_ADMIN_OR_MORE) {
507 echo '</table>'; 507 echo '</table>';
508 echo '</div>'; 508 echo '</div>';
509 } 509 }
510 -?>  
511 510
512 511
  512 +$bStyle = 'margin:0';
  513 +?>
  514 +
513 <!-- SUIVIS --> 515 <!-- SUIVIS -->
514 516
515 <h3 id="t_suivis" style="cursor: pointer;"> 517 <h3 id="t_suivis" style="cursor: pointer;">
@@ -528,7 +530,7 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -528,7 +530,7 @@ if ($USER_IS_ADMIN_OR_MORE) {
528 <th><?=__('Date fin / Repetition')?></th> 530 <th><?=__('Date fin / Repetition')?></th>
529 <th><?=__('Statut')?></th> 531 <th><?=__('Statut')?></th>
530 </tr> 532 </tr>
531 - <?php foreach ($materiel->suivis as $suivis) :?> 533 + <?php foreach ($materiel->suivis as $suivi) :?>
532 <tr> 534 <tr>
533 <td class="actions" style="padding: 6px 0; text-align: left;"> 535 <td class="actions" style="padding: 6px 0; text-align: left;">
534 <?php 536 <?php
@@ -540,41 +542,44 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -540,41 +542,44 @@ if ($USER_IS_ADMIN_OR_MORE) {
540 */ 542 */
541 if ($CAN_MANAGE_SUIVIS) { 543 if ($CAN_MANAGE_SUIVIS) {
542 // Edit Suivis 544 // Edit Suivis
543 - // TODO:  
544 - //$echoActionButton($this->Html, 'icon-pencil', 'Impr. étiquette', 'Suivis', 'edit', $suivis->id, [], "Imprimer sur un ruban");  
545 - echo $this->Html->link(__('<i class="icon-pencil"></i>'), [ 545 + $echoActionButton($this->Html, 'icon-pencil', $bStyle, '', 'Suivis', 'edit', $suivi->id);
  546 + /*
  547 + echo $this->Html->link(__('<i class="icon-pencil"></i>'), [
546 'controller' => 'Suivis', 548 'controller' => 'Suivis',
547 'action' => 'edit', 549 'action' => 'edit',
548 - $suivis->id 550 + $suivi->id
549 ], [ 551 ], [
550 'escape' => false, 552 'escape' => false,
551 'style' => 'margin:0' 553 'style' => 'margin:0'
552 ]); 554 ]);
  555 + */
553 // Delete Suivis 556 // Delete Suivis
554 - echo $this->Form->postLink(__('<i class="icon-trash"></i>'), [ 557 + //TODO: postLink ??? kesako ?
  558 + //$echoActionButton($this->Html, 'icon-trash', $bStyle, '', 'Suivis', 'delete', $suivi->id, [], "", "");
  559 + echo $this->Form->postLink(__('<i class="icon-trash"></i>'), [
555 'controller' => 'Suivis', 560 'controller' => 'Suivis',
556 'action' => 'delete', 561 'action' => 'delete',
557 - $suivis->id 562 + $suivi->id
558 ], [ 563 ], [
559 'escape' => false, 564 'escape' => false,
560 'style' => 'margin:0', 565 'style' => 'margin:0',
561 - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivis->id) 566 + 'confirm' => __('Êtes-vous sur de vouloir annuler ce suivi #{0} ?', $suivi->id)
562 ]); 567 ]);
563 } 568 }
564 ?> 569 ?>
565 </td> 570 </td>
566 - <td><?=$this->Html->link('Suivi ' . $suivis->id, ['controller' => 'suivis','action' => 'view',$suivis->id])?></td>  
567 - <td><?=$typeSuivis->find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom'];?></td>  
568 - <td><?=h($suivis->intitule)?></td> 571 + <td><?=$this->Html->link('Suivi ' . $suivi->id, ['controller' => 'suivis','action' => 'view',$suivi->id])?></td>
  572 + <td><?=$typeSuivis->find()->where(['id =' => h($suivi->type_suivi_id)])->first()['nom'];?></td>
  573 + <td><?=h($suivi->intitule)?></td>
569 574
570 - <?php if ($typeSuivis->find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom'] == "Panne" ) {?>  
571 - <td><?=h($suivis->date_controle)?></td>  
572 - <td><?=h($suivis->date_prochain_controle)?></td> 575 + <?php if ($typeSuivis->find()->where(['id =' => h($suivi->type_suivi_id)])->first()['nom'] == "Panne" ) {?>
  576 + <td><?=h($suivi->date_controle)?></td>
  577 + <td><?=h($suivi->date_prochain_controle)?></td>
573 <?php } else { ?> 578 <?php } else { ?>
574 - <td><?=h($suivis->frequence)?></td>  
575 - <td><?=h($suivis->type_frequence)?></td> 579 + <td><?=h($suivi->frequence)?></td>
  580 + <td><?=h($suivi->type_frequence)?></td>
576 <?php } ?> 581 <?php } ?>
577 - <td><?=h($suivis->statut)?></td> 582 + <td><?=h($suivi->statut)?></td>
578 </tr> 583 </tr>
579 <?php endforeach;?> 584 <?php endforeach;?>
580 585
@@ -585,6 +590,7 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -585,6 +590,7 @@ if ($USER_IS_ADMIN_OR_MORE) {
585 } 590 }
586 ?> 591 ?>
587 </div> 592 </div>
  593 + <!-- FIN SUIVIS -->
588 594
589 595
590 <!-- EMPRUNTS --> 596 <!-- EMPRUNTS -->
@@ -625,6 +631,8 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -625,6 +631,8 @@ if ($USER_IS_ADMIN_OR_MORE) {
625 //if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER ) { 631 //if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER ) {
626 if ($CAN_MANAGE_EMPRUNTS) { 632 if ($CAN_MANAGE_EMPRUNTS) {
627 // Edit Emprunt 633 // Edit Emprunt
  634 + $echoActionButton($this->Html, 'icon-pencil', $bStyle, '', 'Emprunts', 'edit', $emprunt->id);
  635 + /*
628 echo $this->Html->link(__('<i class="icon-pencil"></i>'), [ 636 echo $this->Html->link(__('<i class="icon-pencil"></i>'), [
629 'controller' => 'Emprunts', 637 'controller' => 'Emprunts',
630 'action' => 'edit', 638 'action' => 'edit',
@@ -633,6 +641,7 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -633,6 +641,7 @@ if ($USER_IS_ADMIN_OR_MORE) {
633 'escape' => false, 641 'escape' => false,
634 'style' => 'margin:0' 642 'style' => 'margin:0'
635 ]); 643 ]);
  644 + */
636 // Delete Emprunt 645 // Delete Emprunt
637 echo $this->Form->postLink(__('<i class="icon-trash"></i>'), [ 646 echo $this->Form->postLink(__('<i class="icon-trash"></i>'), [
638 'controller' => 'Emprunts', 647 'controller' => 'Emprunts',
@@ -641,7 +650,7 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -641,7 +650,7 @@ if ($USER_IS_ADMIN_OR_MORE) {
641 ], [ 650 ], [
642 'escape' => false, 651 'escape' => false,
643 'style' => 'margin:0', 652 'style' => 'margin:0',
644 - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $emprunt->id) 653 + 'confirm' => __('Êtes-vous sur de vouloir annuler cet emprunt #{0}?', $emprunt->id)
645 ]); 654 ]);
646 } 655 }
647 ?> 656 ?>
@@ -661,7 +670,7 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -661,7 +670,7 @@ if ($USER_IS_ADMIN_OR_MORE) {
661 } 670 }
662 ?> 671 ?>
663 </div> 672 </div>
664 - <!-- EMPRUNTS --> 673 + <!-- FIN EMPRUNTS -->
665 674
666 675
667 <!-- FICHIERS liés --> 676 <!-- FICHIERS liés -->
@@ -681,25 +690,27 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -681,25 +690,27 @@ if ($USER_IS_ADMIN_OR_MORE) {
681 <th><?=__('Miniature')?></th> 690 <th><?=__('Miniature')?></th>
682 </tr> 691 </tr>
683 <?php 692 <?php
684 - foreach ($materiel->documents as $documents) :  
685 - $p = ($documents->photo) ? 'Oui' : ''; 693 + foreach ($materiel->documents as $document) :
  694 +
  695 + $p = ($document->photo) ? 'Oui' : '';
686 $type = $typeDocuments->find() 696 $type = $typeDocuments->find()
687 ->where([ 697 ->where([
688 - 'id =' => h($documents->type_document_id) 698 + 'id =' => h($document->type_document_id)
689 ]) 699 ])
690 ->first()['nom']; 700 ->first()['nom'];
691 ?> 701 ?>
692 <tr> 702 <tr>
693 <td class="actions" style="padding: 6px 0; text-align: left;"> 703 <td class="actions" style="padding: 6px 0; text-align: left;">
694 <?php 704 <?php
695 - if ($documents->photo) {  
696 - echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/img/photos/' . $documents->materiel_id .'_' . $documents->nom.'_'. $documents->id . '.' . $documents->type_doc, [ 705 + if ($document->photo) {
  706 + // TODO: $echoActionButton()
  707 + echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/img/photos/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [
697 'title' => 'Télécharger', 708 'title' => 'Télécharger',
698 'style' => 'margin:0', 709 'style' => 'margin:0',
699 'escape' => false 710 'escape' => false
700 ]); 711 ]);
701 } else { 712 } else {
702 - echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/files/' . $documents->materiel_id .'_' . $documents->nom.'_'. $documents->id . '.' . $documents->type_doc, [ 713 + echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/files/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [
703 'title' => 'Télécharger', 714 'title' => 'Télécharger',
704 'style' => 'margin:0', 715 'style' => 'margin:0',
705 'escape' => false 716 'escape' => false
@@ -708,29 +719,32 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -708,29 +719,32 @@ if ($USER_IS_ADMIN_OR_MORE) {
708 //if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER) { 719 //if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER) {
709 if ($CAN_MANAGE_FILES) { 720 if ($CAN_MANAGE_FILES) {
710 // Edit doc 721 // Edit doc
  722 + $echoActionButton($this->Html, 'icon-pencil', $bStyle, '', 'Documents', 'edit', $document->id);
  723 + /*
711 echo $this->Html->link(__('<i class="icon-pencil"></i>'), [ 724 echo $this->Html->link(__('<i class="icon-pencil"></i>'), [
712 'controller' => 'Documents', 725 'controller' => 'Documents',
713 'action' => 'edit', 726 'action' => 'edit',
714 - $documents->id 727 + $document->id
715 ], [ 728 ], [
716 'escape' => false, 729 'escape' => false,
717 'style' => 'margin:0' 730 'style' => 'margin:0'
718 ]); 731 ]);
  732 + */
719 // Delete doc 733 // Delete doc
720 echo $this->Form->postLink(__('<i class="icon-trash"></i>'), [ 734 echo $this->Form->postLink(__('<i class="icon-trash"></i>'), [
721 'controller' => 'Documents', 735 'controller' => 'Documents',
722 'action' => 'delete', 736 'action' => 'delete',
723 - $documents->id 737 + $document->id
724 ], [ 738 ], [
725 'escape' => false, 739 'escape' => false,
726 'style' => 'margin:0', 740 'style' => 'margin:0',
727 - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id) 741 + 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $document->id)
728 ]); 742 ]);
729 // Envoyer devis par mail (envoyer des mails avec les documents en pj) 743 // Envoyer devis par mail (envoyer des mails avec les documents en pj)
730 echo $this->Form->postLink(__('<i class="icon-envelope"></i>'), [ 744 echo $this->Form->postLink(__('<i class="icon-envelope"></i>'), [
731 'controller' => 'Documents', 745 'controller' => 'Documents',
732 - 'action' => __('mailDevis' ,$documents->id),  
733 - $documents->id 746 + 'action' => __('mailDevis' ,$document->id),
  747 + $document->id
734 ], [ 748 ], [
735 'escape' => false, 749 'escape' => false,
736 'style' => 'margin:0', 750 'style' => 'margin:0',
@@ -739,7 +753,7 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -739,7 +753,7 @@ if ($USER_IS_ADMIN_OR_MORE) {
739 } 753 }
740 ?> 754 ?>
741 </td> 755 </td>
742 - <td><?=$this->Html->link($documents->nom, ['controller' => 'documents','action' => 'view',$documents->id])?></td> 756 + <td><?=$this->Html->link($document->nom, ['controller' => 'documents','action' => 'view',$document->id])?></td>
743 <td><?=$type?></td> 757 <td><?=$type?></td>
744 <td><?=$p?></td> 758 <td><?=$p?></td>
745 </tr> 759 </tr>
@@ -750,7 +764,7 @@ if ($USER_IS_ADMIN_OR_MORE) { @@ -750,7 +764,7 @@ if ($USER_IS_ADMIN_OR_MORE) {
750 </table> 764 </table>
751 <?php } else echo 'Aucun fichier pour ce matériel.'; ?> 765 <?php } else echo 'Aucun fichier pour ce matériel.'; ?>
752 </div> 766 </div>
753 - <!-- FICHIERS liés --> 767 + <!-- FIN FICHIERS liés -->
754 768
755 </div> 769 </div>
756 <!-- "materiels view" --> 770 <!-- "materiels view" -->