From 6990fd5bf1b598551c328a2726244b2a24de2a7e Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Wed, 22 May 2019 19:00:05 +0200 Subject: [PATCH] Bugfix actions sur pdf interdites --- README.md | 8 ++++---- src/Controller/AppController.php | 15 +++++++++------ src/Controller/DocumentsController.php | 10 +++++++++- src/Controller/MaterielsController.php | 25 ++++++++++++++++--------- src/Template/Materiels/index.ctp | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------- src/Template/Materiels/view.ctp | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------- 6 files changed, 247 insertions(+), 176 deletions(-) mode change 100755 => 100644 src/Template/Materiels/index.ctp diff --git a/README.md b/README.md index 2101ddd..3e73fb3 100644 --- a/README.md +++ b/README.md @@ -54,12 +54,12 @@ Logiciel testé et validé sur les configurations suivantes : VERSION ACTUELLE Date: 21/05/2019 -Version: 2.12.19 +Version: 2.12.20 Author: EP Commentaire: - Bugfix affichage boutons vue matériel (parfois 2e ligne chevauchait 1ère ligne) - (Enorme) Simplification des vues (toujours en cours) - + Bugfix actions sur pdf interdites + Simplifications vues materiels/view et index + IMPORTANT : - Pour connaitre la version actuelle, taper "./VERSION" diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php index e556ba2..2e6871a 100755 --- a/src/Controller/AppController.php +++ b/src/Controller/AppController.php @@ -615,8 +615,9 @@ class AppController extends Controller // (EP 21/5/19) NEW - $role = $this->getUserRole(); - $profile = self::PROFILES["$role"]; + //$role = $this->getUserRole(); + $this->userRole = $this->getUserRole(); + $profile = self::PROFILES["$this->userRole"]; // Set General CONSTANTS for all CONTROLLERS @@ -652,7 +653,7 @@ class AppController extends Controller ->first()['id']; // Now, set these constants for all VIEWS - $this->set('role', $role); + $this->set('role', $this->userRole); $this->set('profile', $profile); $this->set('username', $this->userName); $this->set('priviledgedUser', $this->priviledgedUser); @@ -850,7 +851,8 @@ class AppController extends Controller // Pass this function to all views //function echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) { - $echoActionButton = function($html, $icon_class, $title, $controller='', $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='') { + //$echoActionButton = function($html, $icon_class, $buttonStyle='', $title, $controller='', $action, $id, $other_args=[], $tip='', $confirmMessage='') { + $echoActionButton = function($html, $icon_class, $buttonStyle, $title, $controller, $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='') { if ($controller=='') $controller='materiels'; $controllerArgs = []; $controllerArgs['controller'] = $controller; @@ -858,7 +860,7 @@ class AppController extends Controller $controllerArgs[] = $id; foreach ($other_args as $other_arg) $controllerArgs[] = $other_arg; echo $html->link( - __(" $title"), + __("$title"), $controllerArgs, /* [ @@ -872,7 +874,8 @@ class AppController extends Controller 'title' => $tip, 'escape' => false, 'onclick' => 'return true;', - 'style' => 'margin-right: 10px'.$moreButtonStyle, + //'style' => 'margin-right: 10px'.$moreButtonStyle, + 'style' => $buttonStyle, 'confirm' => $confirmMessage ] ); diff --git a/src/Controller/DocumentsController.php b/src/Controller/DocumentsController.php index e943598..e1e6fea 100755 --- a/src/Controller/DocumentsController.php +++ b/src/Controller/DocumentsController.php @@ -38,8 +38,13 @@ class DocumentsController extends AppController if (in_array($action, [ // 'view', // 'add', + + // FPDF 'ficheMateriel', - 'mailDevis' + // DOMPDF + 'ficheMaterielPdf', + + 'mailDevis' ])) return true; @@ -50,7 +55,10 @@ class DocumentsController extends AppController */ if (in_array($action, [ + // FPDF 'admission', + // DOMPDF + 'admissionPdf', 'sortie' ])) { if ($this->userHasRoleAtLeast('Administration')) { diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index ab5f069..5a6f67a 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -241,18 +241,20 @@ class MaterielsController extends AppController $this->set(compact('toto')); */ - $user = $userFromSession; + $this->userFromSession = $userFromSession; $configuration = $this->confLabinvent; - $userCname = $user[$configuration->ldap_authenticationType][0]; + $this->userCname = $userFromSession[$configuration->ldap_authenticationType][0]; /* * $role = TableRegistry::get('Users')->find() * ->where(['username' => $user[$configuration->authentificationType_ldap][0]]) * ->first()['role']; */ - $role = $this->getUserRole($user); + // (EP) deja set par beforeFilter() + //$role = $this->getUserRole($user); + //$this->userRole = $this->getUserRole($user); // SUPERADMIN a tous les droits, non mais ! - if ($role == 'Super Administrateur') return true; + if ($this->userRole == 'Super Administrateur') return true; // $this->myDebug("role is ".$role); // debug("role is ".$role); @@ -272,8 +274,8 @@ class MaterielsController extends AppController * * Tout le reste en dessous de cette ligne devient inutile !!! */ - $this->myDebug("isAuthorizedAction ? " . $this->isAuthorizedAction2($this, $role, $action, $id, $user)); - return $this->isAuthorizedAction($role, $action, $id, $userFromSession, $userCname); + $this->myDebug("isAuthorizedAction ? " . $this->isAuthorizedAction2($this, $this->userRole, $action, $id, $userFromSession)); + return $this->isAuthorizedAction($this->userRole, $action, $id, $userFromSession, $this->userCname); } // isAuthorized @@ -623,7 +625,8 @@ class MaterielsController extends AppController $condition = [ 'Materiels.status =' => $this->request->getAttribute('params')['pass'][0] ]; - $this->set('STATUS', $this->request->getAttribute('params')['pass'][0]); + //$this->set('STATUS', $this->request->getAttribute('params')['pass'][0]); + $this->set('SELECTED_STATUS', $this->request->getAttribute('params')['pass'][0]); } $GM = $this->request->getQuery('GM'); @@ -743,7 +746,7 @@ class MaterielsController extends AppController $this->set('_serialize', [ 'materiels' ]); - } + } // index() /** * View method @@ -827,7 +830,11 @@ class MaterielsController extends AppController $CAN_MANAGE_FILES = $CAN_ATTACH_A_DOC; $this->set(compact('CAN_MANAGE_FILES')); - $CAN_EDIT = $IS_CREATED && $CAN_ATTACH_A_DOC; + // NEW + // TODO: marche pas !!! + //$CAN_EDIT = $this->isAuthorizedAction($this->userRole, 'edit', $id, $this->userFromSession, $this->userCname); + // OLD + $CAN_EDIT = $IS_CREATED && $CAN_ATTACH_A_DOC; $this->set(compact('CAN_EDIT')); $CAN_COPY = $CAN_EDIT; diff --git a/src/Template/Materiels/index.ctp b/src/Template/Materiels/index.ctp old mode 100755 new mode 100644 index 8f9bed4..8b21194 --- a/src/Template/Materiels/index.ctp +++ b/src/Template/Materiels/index.ctp @@ -1,6 +1,44 @@ @@ -21,25 +59,21 @@ echo $this->Html->link(' Nouveau Matériel', [ ]); echo '

'; -if (in_array($role, [ - 'Administration', - 'Administration Plus', - 'Super Administrateur' -])) { +if ($USER_IS_ADMIN_OR_MORE) { echo '

'; echo "Afficher les matériels : "; echo '
'; echo '
'; $b_all = $b_cre = $b_val = $b_toarc = $b_arc = ''; $SELECTED = ''; - if (isset($STATUS)) { - if ($STATUS == 'CREATED') + if (isset($SELECTED_STATUS)) { + if ($SELECTED_STATUS == 'CREATED') $b_cre = $SELECTED; - else if ($STATUS == 'VALIDATED') + else if ($SELECTED_STATUS == 'VALIDATED') $b_val = $SELECTED; - else if ($STATUS == 'TOBEARCHIVED') + else if ($SELECTED_STATUS == 'TOBEARCHIVED') $b_toarc = $SELECTED; - else if ($STATUS == 'ARCHIVED') + else if ($SELECTED_STATUS == 'ARCHIVED') $b_arc = $SELECTED; } else $b_all = $SELECTED; @@ -89,7 +123,7 @@ if (in_array($role, [ // ACTIONS : buttons "Tout selectionner", "Tout decocher" // - show only with "A valider" and "A sortir" - if (isset($STATUS) && $nbMateriels != 0) { + if (isset($SELECTED_STATUS) && $nbMateriels != 0) { echo $this->Html->link(' Tout cocher', '#all', [ 'onclick' => 'selectAll()', 'title' => 'Sélectionner tout les matériels', @@ -127,15 +161,15 @@ echo $this->Form->control('aff_par_defaut', [ if ($nbMateriels > 0) { // $form2 = $this->Form; // /echo $this->Form->create('materiels', ['url' => '/materiels/execActions']); - if (isset($STATUS)) + if (isset($SELECTED_STATUS)) echo $this->Form->hidden('what', [ - 'value' => $STATUS + 'value' => $SELECTED_STATUS ]); ?> - '; }?> + '; }?> @@ -157,7 +191,15 @@ if ($nbMateriels > 0) { $time = Time::now(); // On récupère la date et l'heure actuelles $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie $today = $today->format('Ydm'); // On formatte la date initialement en 31-12-2000 (par exemple) en un format qui pourra etre comparé : 20001231 + foreach ($materiels as $materiel) : + + $USER_IS_CREATOR_OR_OWNER = in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]); + $USER_IS_SAME_GROUP = ( + ( 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 ) + ); if ($materiel->date_fin_garantie !== NULL) { $timeFin = new time($materiel->date_fin_garantie); @@ -170,10 +212,10 @@ if ($nbMateriels > 0) { $styleLien = ''; ?> - - + ' . $this->Form->checkbox($materiel->id, [ 'style' => 'margin: 3px', 'id' => $materiel->id @@ -181,38 +223,34 @@ if (isset($STATUS)) { } ?> - @@ -274,45 +314,50 @@ if (in_array($materiel->status, [ - status)) { - case 'CREATED': $statut = 'C'; break; - case 'VALIDATED': $statut = 'V'; break; - case 'TOBEARCHIVED': $statut = 'TBA'; break; - case 'ARCHIVED': $statut = 'A'; break; - default: $statut = ''; break; } ?> - - - - '. (h($materiel->metrologie)=='1' ? 'Y':'N').''; - ?> + + + + + + - - - + + '. (h($materiel->metrologie)=='1' ? 'Y':'N').''; + ?> + + + +
Paginator->sort('designation','Désignation') ?> Paginator->sort('numero_laboratoire', 'N° interne (labo)') ?>
- + status, [ - 'CREATED', - // (EP 17/5/19) ben non, on peut pas si c'est validé !!! - //'VALIDATED' - ])) : - if (($role == 'Utilisateur' && (in_array($username, [ - $materiel->nom_createur, - $materiel->nom_responsable - ]))) || (in_array($role, [ - 'Administration', - 'Administration Plus', - 'Super Administrateur' - ])) || ($role == 'Responsable' && (in_array($username, [ - $materiel ->nom_createur, - $materiel ->nom_responsable - ]))) ||($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)))) { - ?> - Html->link(__(''), ['action' => 'edit', $materiel->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> - - - 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)))) { - - if (h($materiel->status) == 'CREATED' && $role != 'Responsable') { + // 1) EDIT icon + if ( + in_array($materiel->status, [ + 'CREATED', + // (EP 17/5/19) ben non, on peut pas si c'est validé !!! + //'VALIDATED' + ]) + && + ( + $USER_IS_ADMIN_OR_MORE + || + $USER_IS_CREATOR_OR_OWNER + || + ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP) + ) + ) echo $this->Html->link(__(''), ['action' => 'edit', $materiel->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]); + + // 2) VALIDER/TBA/ARCHIVER icon + if ( + $USER_IS_ADMIN + || + ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP) + ) { + if ($materiel->status=='CREATED' && !$USER_IS_RESPONSABLE) { echo $this->Html->link('', [ 'action' => 'statusValidated', $materiel->id @@ -222,7 +260,8 @@ if (in_array($materiel->status, [ 'escape' => false, 'confirm' => 'Êtes-vous sur de vouloir valider ' . $materiel->designation . ' ?' ]); - } else if (h($materiel->status) == 'VALIDATED') { + } + else if (h($materiel->status) == 'VALIDATED') { echo $this->Html->link('', [ 'action' => 'statusToBeArchived', $materiel->id @@ -232,10 +271,8 @@ if (in_array($materiel->status, [ 'escape' => false, 'confirm' => 'Êtes-vous sur de vouloir faire une demande d\'archive ' . $materiel->designation . ' ?' ]); - } else if (h($materiel->status && $role != 'Responsable') == 'TOBEARCHIVED' && ! in_array($role, [ - 'Responsable', - 'Super Administrateur' - ])) { + } + else if ($materiel->status=='TOBEARCHIVED' && !$USER_IS_RESPONSABLE) echo $this->Html->link('', [ 'action' => 'statusArchived', $materiel->id @@ -245,15 +282,17 @@ if (in_array($materiel->status, [ 'escape' => false, 'confirm' => 'Êtes-vous sur de vouloir archiver ' . $materiel->designation . ' ?' ]); - } } + // 3) DELETE icon if (h($materiel->status) == 'CREATED') { - if (($role != 'Utilisateur' && $role != 'Responsable') || in_array($username, [ - $materiel->nom_createur, - $materiel->nom_responsable - ]) || ($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)))) { - echo $this->Html->link(__(''), [ + if ( + $USER_IS_ADMIN_OR_MORE + || + $USER_IS_CREATOR_OR_OWNER + || + ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP) + ) echo $this->Html->link(__(''), [ 'action' => 'delete', $materiel->id ], [ @@ -262,8 +301,9 @@ if (in_array($materiel->status, [ 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer {0} ?', $materiel->designation) ]); - } } + + // 4) DATA (designation, num labo, hs, categ, ...) ?> has('designation') ? $this->Html->link($materiel->designation, ['controller' => 'Materiels', 'action' => 'view', $materiel->id],[$styleLien]) : '' ?>numero_inventaire_organisme) ?> nom_responsable) ?>date_acquisition) ?>etiquette)=='1' ? 'Y':'N' ?>date_acquisition) ?>etiquette)=='1' ? 'Y':'N' ?>
status, [ break; } - if ($STATUS != 'ARCHIVED') { - if (! ($role == 'Super Administrateur' && $STATUS == 'TOBEARCHIVED')) { + if ($SELECTED_STATUS != 'ARCHIVED') { + //if (! ($role == 'Super Administrateur' && $SELECTED_STATUS == 'TOBEARCHIVED')) { + if (! ($USER_IS_SUPERADMIN && $SELECTED_STATUS=='TOBEARCHIVED') ) { echo $this->Form->submit($action . ' matériels cochés', [ 'name' => 'updateSelectedStatus', 'id' => 'updateSelectedStatus', @@ -342,26 +388,19 @@ if (in_array($materiel->status, [ echo "

"; } - if (in_array($role, [ - 'Responsable', - 'Administration', - 'Administration Plus', - 'Super Administrateur' - ])) : + if ($USER_IS_ADMIN_OR_MORE || $USER_IS_RESPONSABLE) echo $this->Form->submit('Exporter la liste complete (toutes les pages)', [ 'name' => 'exportAll', 'id' => 'exportAll', 'style' => 'margin: 0px;' ]); - endif; - - ?> - element('pagination_with_first_and_last'); ?> + echo $this->element('pagination_with_first_and_last'); - Form->end()?> - Form->end(); +} + +else { echo 'Aucun matériel'; } ?> diff --git a/src/Template/Materiels/view.ctp b/src/Template/Materiels/view.ctp index 941324c..04f894b 100755 --- a/src/Template/Materiels/view.ctp +++ b/src/Template/Materiels/view.ctp @@ -11,6 +11,7 @@ use Cake\ORM\TableRegistry; $PDF_ENGINE = $PDF_ENGINE; // - User status: +$role = $role; $username = $username; $priviledgedUser = $priviledgedUser; $USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR; @@ -189,11 +190,11 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN * informations de la photo pour retrouver son nom et l'afficher, l'id ne suffit plus * on parcourt donc les documents liés à ce matériel */ - foreach ($materiel->documents as $documents) { + foreach ($materiel->documents as $document) { // et si le document est la photo liée, on l'affiche, pour cela - if($documents->photo) { + if($document->photo) { //on récupère le doc - $photo = $documents; + $photo = $document; //on reconstitue le nom a partir des paramètres (idmat_nom_id.extension) $nomPhoto = $photo->materiel_id . "_" . $photo->nom . "_" . $photo->id . "." .$photo->type_doc; @@ -229,13 +230,15 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN // --- (1) BOUTONS 1st row --- + $bStyle = 'margin-right: 10px'; + // BOUTON "Editer" - if ($CAN_EDIT) $echoActionButton($this->Html, 'icon-pencil', 'Editer ce matériel', 'materiels', 'edit', $materiel->id); + if ($CAN_EDIT) $echoActionButton($this->Html, 'icon-pencil', $bStyle, ' Editer ce matériel', 'materiels', 'edit', $materiel->id); // BOUTONS "NOUVEAU SUIVI" et "NOUVEL EMPRUNT" // if ($materiel->status == 'VALIDATED') { if ($IS_VALIDATED) { - $echoActionButton($this->Html, 'icon-plus', 'Nouv. Suivi', 'suivis', 'add', $materiel->id, [], 'Faire un nouveau suivi de ce matériel'); + $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Nouv. Suivi', 'suivis', 'add', $materiel->id, [], 'Faire un nouveau suivi de ce matériel'); /* echo $this->Html->link(' Nouv. Suivi', [ 'controller' => 'suivis', @@ -247,17 +250,17 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN 'escape' => false ]); // End link */ - $echoActionButton($this->Html, 'icon-plus', 'Nouv. Emprunt', 'emprunts', 'add', $materiel->id, [], 'Faire un nouvel emprunt de ce matériel'); + $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Nouv. Emprunt', 'emprunts', 'add', $materiel->id, [], 'Faire un nouvel emprunt de ce matériel'); } // BOUTONS "Lier un Doc" et "Remplacer/Lier photo" if ($CAN_ATTACH_A_DOC) { - $echoActionButton($this->Html, 'icon-file', 'Lier un Doc.', 'documents', 'add', $materiel->id, ['mat'], 'Attacher un Doc. à ce matériel'); + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Lier un Doc.', 'documents', 'add', $materiel->id, ['mat'], 'Attacher un Doc. à ce matériel'); // BOUTON "photo" if ($materiel->photo_id != null) - $echoActionButton($this->Html, 'icon-file', 'Remplacer la photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Remplacer la photo de ce matériel'); + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Remplacer la photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Remplacer la photo de ce matériel'); else - $echoActionButton($this->Html, 'icon-file', 'Lier une photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Attacher une photo à ce matériel'); + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Lier une photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Attacher une photo à ce matériel'); } // BOUTONS Doc admission et sortie (admin+) @@ -276,7 +279,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN $data = $materiel->numero_laboratoire . ".pdf"; } // if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) { - $echoActionButton($this->Html, 'icon-file', 'Doc. admission', 'documents', $action, $data, [], "Voir le document d'admission"); + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. admission', 'documents', $action, $data, [], "Voir le document d'admission"); } // Doc sortie (admin only) @@ -292,7 +295,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN $data = $materiel->numero_laboratoire . ".pdf"; } // else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) { - $echoActionButton($this->Html, 'icon-file', 'Doc. sortie', 'documents', $action, $data, [], "Voir le document de sortie"); + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. sortie', 'documents', $action, $data, [], "Voir le document de sortie"); } } // Doc admission et sortie @@ -306,47 +309,45 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN // En pratique, il suffit que un seul bouton de cette ligne aie ce style (pas nécessaire pour les autres) // Mais bon, c'est difficile de savoir lequel sera toujours présent... // Donc, on applique ce style à TOUS les boutons de cette 2e ligne - $moreButtonStyle = '; margin-top:10px; display:inline-block'; - $moreButtonStyleRed = $moreButtonStyle . '; color:red'; + $bStyle2 = $bStyle.'; margin-top:10px; display:inline-block'; + $bStyle2Red = $bStyle2 . '; color:red'; // BOUTON de changement de statut : Valider, Invalider, Demander archivage, ou Archiver if ($USER_IS_ADMIN_OR_MORE || ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP)) { // CREATED if ($IS_CREATED) // Bouton VALIDER - $echoActionButton($this->Html, 'icon-ok-sign', 'Valider', '', 'statusValidated', $materiel->id, [], "Valider ce matériel", '', $moreButtonStyleRed); + $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Red, ' Valider', '', 'statusValidated', $materiel->id, [], "Valider ce matériel"); // VALIDATED or more else { // Bouton Invalider - $echoActionButton($this->Html, 'icon-remove-sign', 'Invalider', '', 'statusCreated', $materiel->id, [], - "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)", - '', $moreButtonStyleRed + $echoActionButton($this->Html, 'icon-remove-sign', $bStyle2Red, ' Invalider', '', 'statusCreated', $materiel->id, [], + "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)" ); // Bouton TBA - if ($IS_VALIDATED) $echoActionButton($this->Html, 'icon-ok-sign', 'Demander sortie', '', 'statusToBeArchived', $materiel->id, [], - "Demander la sortie de l'inventaire", '', $moreButtonStyleRed + if ($IS_VALIDATED) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Red, ' Demander sortie', '', 'statusToBeArchived', $materiel->id, [], + "Demander la sortie de l'inventaire" ); // Bouton ARCHIVER //if ($IS_TOBEARCHIVED && $role!='Responsable') $echoActionButton( if ($IS_TOBEARCHIVED && $USER_IS_ADMIN_OR_MORE) $echoActionButton( - $this->Html, 'icon-ok-sign', 'Sortie inventaire', '', 'statusArchived', $materiel->id, [], + $this->Html, 'icon-ok-sign', $bStyle2Red, ' Sortie inventaire', '', 'statusArchived', $materiel->id, [], "Sortir définitivement de l'inventaire", - "Êtes-vous sur de bien vouloir archiver $materiel->designation ?", - $moreButtonStyleRed + "Êtes-vous sur de bien vouloir archiver $materiel->designation ?" ); } } // BOUTON Copier (seulement pour les materiels qui sont CREATED et pour les ADMINet+ ou USER owner) - if ($CAN_COPY) $echoActionButton($this->Html, 'icon-plus', 'Copier ce matériel', '', 'add', $materiel->id, [], "Copier ce matériel"); + if ($CAN_COPY) $echoActionButton($this->Html, 'icon-plus', $bStyle, ' Copier ce matériel', '', 'add', $materiel->id, [], "Copier ce matériel"); // BOUTON ETIQUETTE (si imprimante disponible) if ($CAN_PRINT_LABEL) { // - Bouton "Imprimer sur un ruban" - $echoActionButton($this->Html, 'icon-print', 'Impr. étiquette', '', 'printLabelRuban', h($materiel->id), [], "Imprimer sur un ruban"); + $echoActionButton($this->Html, 'icon-print', $bStyle, ' Impr. étiquette', '', 'printLabelRuban', h($materiel->id), [], "Imprimer sur un ruban"); // - Bouton "Etiquette posée" $echoActionButton( - $this->Html, 'icon-file', - $materiel->etiquette ? "Etiquette NON collée" : "Etiquette collée", + $this->Html, 'icon-file', $bStyle, + $materiel->etiquette ? " Etiquette NON collée" : " Etiquette collée", 'materiels', $materiel->etiquette ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced', h($materiel->id), ['view'], @@ -359,6 +360,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN } // BOUTON "Voir fiche matériel" + $bStyleGreen = $bStyle.'; background: green; color: white'; echo "
"; echo "
"; // echo '

'; @@ -370,12 +372,10 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN else { // DOMPDF $action = 'fiche_materiel_pdf'; - $data = $materiel->numero_laboratoire . ".pdf"; + $data = $materiel->numero_laboratoire.'.pdf'; } - $echoActionButton($this->Html, 'icon-file', 'Fiche PDF du matériel', 'documents', $action, $data, [], - "Voir la fiche du materiel", - '', - '; background: green; color: white' + $echoActionButton($this->Html, 'icon-file', $bStyleGreen, ' Fiche PDF du matériel', 'documents', $action, $data, [], + "Voir la fiche du materiel" ); @@ -507,9 +507,11 @@ if ($USER_IS_ADMIN_OR_MORE) { echo ''; echo '
'; } -?> +$bStyle = 'margin:0'; +?> +

@@ -528,7 +530,7 @@ if ($USER_IS_ADMIN_OR_MORE) { - suivis as $suivis) :?> + suivis as $suivi) :?> Html, 'icon-pencil', 'Impr. étiquette', 'Suivis', 'edit', $suivis->id, [], "Imprimer sur un ruban"); - echo $this->Html->link(__(''), [ + $echoActionButton($this->Html, 'icon-pencil', $bStyle, '', 'Suivis', 'edit', $suivi->id); + /* + echo $this->Html->link(__(''), [ 'controller' => 'Suivis', 'action' => 'edit', - $suivis->id + $suivi->id ], [ 'escape' => false, 'style' => 'margin:0' ]); + */ // Delete Suivis - echo $this->Form->postLink(__(''), [ + //TODO: postLink ??? kesako ? + //$echoActionButton($this->Html, 'icon-trash', $bStyle, '', 'Suivis', 'delete', $suivi->id, [], "", ""); + echo $this->Form->postLink(__(''), [ 'controller' => 'Suivis', 'action' => 'delete', - $suivis->id + $suivi->id ], [ 'escape' => false, 'style' => 'margin:0', - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivis->id) + 'confirm' => __('Êtes-vous sur de vouloir annuler ce suivi #{0} ?', $suivi->id) ]); } ?> - Html->link('Suivi ' . $suivis->id, ['controller' => 'suivis','action' => 'view',$suivis->id])?> - find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom'];?> - intitule)?> + Html->link('Suivi ' . $suivi->id, ['controller' => 'suivis','action' => 'view',$suivi->id])?> + find()->where(['id =' => h($suivi->type_suivi_id)])->first()['nom'];?> + intitule)?> - find()->where(['id =' => h($suivis->type_suivi_id)])->first()['nom'] == "Panne" ) {?> - date_controle)?> - date_prochain_controle)?> + find()->where(['id =' => h($suivi->type_suivi_id)])->first()['nom'] == "Panne" ) {?> + date_controle)?> + date_prochain_controle)?> - frequence)?> - type_frequence)?> + frequence)?> + type_frequence)?> - statut)?> + statut)?> @@ -585,6 +590,7 @@ if ($USER_IS_ADMIN_OR_MORE) { } ?> + @@ -625,6 +631,8 @@ if ($USER_IS_ADMIN_OR_MORE) { //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 ) { if ($CAN_MANAGE_EMPRUNTS) { // Edit Emprunt + $echoActionButton($this->Html, 'icon-pencil', $bStyle, '', 'Emprunts', 'edit', $emprunt->id); + /* echo $this->Html->link(__(''), [ 'controller' => 'Emprunts', 'action' => 'edit', @@ -633,6 +641,7 @@ if ($USER_IS_ADMIN_OR_MORE) { 'escape' => false, 'style' => 'margin:0' ]); + */ // Delete Emprunt echo $this->Form->postLink(__(''), [ 'controller' => 'Emprunts', @@ -641,7 +650,7 @@ if ($USER_IS_ADMIN_OR_MORE) { ], [ 'escape' => false, 'style' => 'margin:0', - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $emprunt->id) + 'confirm' => __('Êtes-vous sur de vouloir annuler cet emprunt #{0}?', $emprunt->id) ]); } ?> @@ -661,7 +670,7 @@ if ($USER_IS_ADMIN_OR_MORE) { } ?> - + @@ -681,25 +690,27 @@ if ($USER_IS_ADMIN_OR_MORE) { documents as $documents) : - $p = ($documents->photo) ? 'Oui' : ''; + foreach ($materiel->documents as $document) : + + $p = ($document->photo) ? 'Oui' : ''; $type = $typeDocuments->find() ->where([ - 'id =' => h($documents->type_document_id) + 'id =' => h($document->type_document_id) ]) ->first()['nom']; ?> photo) { - echo $this->Html->link(__(''), '/webroot/img/photos/' . $documents->materiel_id .'_' . $documents->nom.'_'. $documents->id . '.' . $documents->type_doc, [ + if ($document->photo) { + // TODO: $echoActionButton() + echo $this->Html->link(__(''), '/webroot/img/photos/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ 'title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false ]); } else { - echo $this->Html->link(__(''), '/webroot/files/' . $documents->materiel_id .'_' . $documents->nom.'_'. $documents->id . '.' . $documents->type_doc, [ + echo $this->Html->link(__(''), '/webroot/files/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ 'title' => 'Télécharger', 'style' => 'margin:0', 'escape' => false @@ -708,29 +719,32 @@ if ($USER_IS_ADMIN_OR_MORE) { //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) { if ($CAN_MANAGE_FILES) { // Edit doc + $echoActionButton($this->Html, 'icon-pencil', $bStyle, '', 'Documents', 'edit', $document->id); + /* echo $this->Html->link(__(''), [ 'controller' => 'Documents', 'action' => 'edit', - $documents->id + $document->id ], [ 'escape' => false, 'style' => 'margin:0' ]); + */ // Delete doc echo $this->Form->postLink(__(''), [ 'controller' => 'Documents', 'action' => 'delete', - $documents->id + $document->id ], [ 'escape' => false, 'style' => 'margin:0', - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id) + 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $document->id) ]); // Envoyer devis par mail (envoyer des mails avec les documents en pj) echo $this->Form->postLink(__(''), [ 'controller' => 'Documents', - 'action' => __('mailDevis' ,$documents->id), - $documents->id + 'action' => __('mailDevis' ,$document->id), + $document->id ], [ 'escape' => false, 'style' => 'margin:0', @@ -739,7 +753,7 @@ if ($USER_IS_ADMIN_OR_MORE) { } ?> - Html->link($documents->nom, ['controller' => 'documents','action' => 'view',$documents->id])?> + Html->link($document->nom, ['controller' => 'documents','action' => 'view',$document->id])?> @@ -750,7 +764,7 @@ if ($USER_IS_ADMIN_OR_MORE) { - + -- libgit2 0.21.2