Commit f94cf6ea105151b47772e325c40b638f0a0329c3
1 parent
171b7320
Exists in
master
and in
2 other branches
Bugfix affichage boutons vue matériel et simplification vues
Showing
4 changed files
with
248 additions
and
307 deletions
Show diff stats
README.md
@@ -53,12 +53,12 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -53,12 +53,12 @@ Logiciel testé et validé sur les configurations suivantes : | ||
53 | 53 | ||
54 | VERSION ACTUELLE | 54 | VERSION ACTUELLE |
55 | 55 | ||
56 | -Date: 20/05/2019 | ||
57 | -Version: 2.12.17 | 56 | +Date: 21/05/2019 |
57 | +Version: 2.12.18 | ||
58 | Author: EP | 58 | Author: EP |
59 | Commentaire: | 59 | Commentaire: |
60 | - Bugfix et amelioration tests | ||
61 | - Simplification des vues (en cours) | 60 | + Bugfix affichage boutons vue matériel (parfois 2e ligne chevauchait 1ère ligne) |
61 | + Simplification des vues (toujours en cours) | ||
62 | 62 | ||
63 | 63 | ||
64 | IMPORTANT : | 64 | IMPORTANT : |
@@ -95,7 +95,7 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https | @@ -95,7 +95,7 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https | ||
95 | 95 | ||
96 | ----------------------------------------------------------------------------------------------------------- | 96 | ----------------------------------------------------------------------------------------------------------- |
97 | 97 | ||
98 | -20/05/2019 Version: 2.12.17 (EP) | 98 | +21/05/2019 Version: 2.12.18 (EP) |
99 | 99 | ||
100 | 100 | ||
101 | 17/05/2019 Version: 2.12.15-17 (EP) | 101 | 17/05/2019 Version: 2.12.15-17 (EP) |
src/Controller/AppController.php
@@ -610,8 +610,48 @@ class AppController extends Controller | @@ -610,8 +610,48 @@ class AppController extends Controller | ||
610 | * $this->Auth->allowedActions = array('index', 'view'); | 610 | * $this->Auth->allowedActions = array('index', 'view'); |
611 | * } | 611 | * } |
612 | */ | 612 | */ |
613 | - $configuration = $this->confLabinvent; | ||
614 | 613 | ||
614 | + | ||
615 | + | ||
616 | + // (EP 21/5/19) NEW | ||
617 | + | ||
618 | + $role = $this->getUserRole(); | ||
619 | + $profile = self::PROFILES["$role"]; | ||
620 | + | ||
621 | + // Set General CONSTANTS for all CONTROLLERS | ||
622 | + // (Before, they used to be in beforeFilter()) | ||
623 | + // - Users constants | ||
624 | + $this->userName = $this->LdapAuth->user('sn')[0] . ' ' . $this->LdapAuth->user('givenname')[0]; | ||
625 | + //$this->set('username', $this->LdapAuth->user('sn')[0] . ' ' . $this->LdapAuth->user('givenname')[0]); | ||
626 | + | ||
627 | + // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié | ||
628 | + // (c'est à dire s'il n'est pas dans la table "utilisateurs") | ||
629 | + $this->priviledgedUser = $this->getTablePriviledgedUserFromCurrentSessionUserIfExists(); | ||
630 | + | ||
631 | + $this->USER_IS_RESPONSABLE = ($profile == self::PROFILE_RESPONSABLE); | ||
632 | + $this->USER_IS_ADMIN_OR_MORE = ($profile >= self::PROFILE_ADMIN); | ||
633 | + // - Misc constants | ||
634 | + $this->idGmNa = TableRegistry::getTableLocator()->get('GroupesMetiers')->find() | ||
635 | + ->where([ | ||
636 | + 'nom =' => 'N/A' | ||
637 | + ]) | ||
638 | + ->first()['id']; | ||
639 | + $this->idGtNa = TableRegistry::getTableLocator()->get('GroupesThematiques')->find() | ||
640 | + ->where([ | ||
641 | + 'nom =' => 'N/A' | ||
642 | + ]) | ||
643 | + ->first()['id']; | ||
644 | + | ||
645 | + // Now, set these constants for all VIEWS | ||
646 | + $this->set('username', $this->userName); | ||
647 | + $this->set('priviledgedUser', $this->priviledgedUser); | ||
648 | + $this->set('idGmNa', $this->idGmNa); | ||
649 | + $this->set('idGtNa', $this->idGtNa); | ||
650 | + $this->set('USER_IS_RESPONSABLE', $this->USER_IS_RESPONSABLE); | ||
651 | + $this->set('USER_IS_ADMIN_OR_MORE', $this->USER_IS_ADMIN_OR_MORE); | ||
652 | + | ||
653 | + | ||
654 | + $configuration = $this->confLabinvent; | ||
615 | if ($configuration->mode_install) | 655 | if ($configuration->mode_install) |
616 | $this->LdapAuth->allow([ | 656 | $this->LdapAuth->allow([ |
617 | 'display', | 657 | 'display', |
@@ -625,7 +665,8 @@ class AppController extends Controller | @@ -625,7 +665,8 @@ class AppController extends Controller | ||
625 | ]); | 665 | ]); |
626 | 666 | ||
627 | $this->LdapAuth->setConfig('authError', "Désolé, vous n'êtes pas autorisé à accéder à cette zone."); | 667 | $this->LdapAuth->setConfig('authError', "Désolé, vous n'êtes pas autorisé à accéder à cette zone."); |
628 | - } | 668 | + |
669 | + } // beforeFilter() | ||
629 | 670 | ||
630 | public function afterFilter(Event $event) | 671 | public function afterFilter(Event $event) |
631 | { | 672 | { |
@@ -661,15 +702,17 @@ class AppController extends Controller | @@ -661,15 +702,17 @@ class AppController extends Controller | ||
661 | ])) | 702 | ])) |
662 | $this->set('_serialize', true); | 703 | $this->set('_serialize', true); |
663 | 704 | ||
664 | - $this->set('username', $this->LdapAuth->user('sn')[0] . ' ' . $this->LdapAuth->user('givenname')[0]); | 705 | + // moved to beforeFilter() |
706 | + //$this->set('username', $this->LdapAuth->user('sn')[0] . ' ' . $this->LdapAuth->user('givenname')[0]); | ||
665 | 707 | ||
666 | $configuration = $this->confLabinvent; | 708 | $configuration = $this->confLabinvent; |
667 | $this->set('configuration', $configuration); | 709 | $this->set('configuration', $configuration); |
668 | $this->request->getSession()->write("authType", $configuration->ldap_authenticationType); | 710 | $this->request->getSession()->write("authType", $configuration->ldap_authenticationType); |
669 | 711 | ||
670 | - // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié | ||
671 | - // (c'est à dire s'il n'est pas dans la table "utilisateurs") | ||
672 | - $priviledgedUser = $this->getTablePriviledgedUserFromCurrentSessionUserIfExists(); | 712 | + |
713 | + // moved to beforeFilter() | ||
714 | + //$priviledgedUser = $this->getTablePriviledgedUserFromCurrentSessionUserIfExists(); | ||
715 | + | ||
673 | /* | 716 | /* |
674 | * $user = TableRegistry::getTableLocator()->get('Users')->find() | 717 | * $user = TableRegistry::getTableLocator()->get('Users')->find() |
675 | * ->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]]) | 718 | * ->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]]) |
@@ -688,24 +731,31 @@ class AppController extends Controller | @@ -688,24 +731,31 @@ class AppController extends Controller | ||
688 | $this->set('profile', $profile); | 731 | $this->set('profile', $profile); |
689 | 732 | ||
690 | $USER_IS_UTILISATEUR = ($profile == self::PROFILE_USER); | 733 | $USER_IS_UTILISATEUR = ($profile == self::PROFILE_USER); |
691 | - $USER_IS_RESPONSABLE = ($profile == self::PROFILE_RESPONSABLE); | 734 | + |
735 | + | ||
692 | $USER_IS_ADMIN = ($profile == self::PROFILE_ADMIN); | 736 | $USER_IS_ADMIN = ($profile == self::PROFILE_ADMIN); |
693 | $USER_IS_ADMINPLUS = ($profile == self::PROFILE_ADMINPLUS); | 737 | $USER_IS_ADMINPLUS = ($profile == self::PROFILE_ADMINPLUS); |
694 | $USER_IS_SUPERADMIN = ($profile == self::PROFILE_SUPERADMIN); | 738 | $USER_IS_SUPERADMIN = ($profile == self::PROFILE_SUPERADMIN); |
695 | $USER_IS_RESPONSABLE_OR_MORE = ($profile >= self::PROFILE_RESPONSABLE); | 739 | $USER_IS_RESPONSABLE_OR_MORE = ($profile >= self::PROFILE_RESPONSABLE); |
696 | - $USER_IS_ADMIN_OR_MORE = ($profile >= self::PROFILE_ADMIN); | 740 | + |
741 | + // moved to beforeFilter() | ||
742 | + //$USER_IS_RESPONSABLE = ($profile == self::PROFILE_RESPONSABLE); | ||
743 | + //$USER_IS_ADMIN_OR_MORE = ($profile >= self::PROFILE_ADMIN); | ||
744 | + | ||
697 | $USER_IS_ADMINPLUS_OR_MORE = ($profile >= self::PROFILE_ADMINPLUS); | 745 | $USER_IS_ADMINPLUS_OR_MORE = ($profile >= self::PROFILE_ADMINPLUS); |
698 | 746 | ||
699 | $this->set('USER_IS_UTILISATEUR', $USER_IS_UTILISATEUR); | 747 | $this->set('USER_IS_UTILISATEUR', $USER_IS_UTILISATEUR); |
700 | - $this->set('USER_IS_RESPONSABLE', $USER_IS_RESPONSABLE); | ||
701 | $this->set('USER_IS_ADMIN', $USER_IS_ADMIN); | 748 | $this->set('USER_IS_ADMIN', $USER_IS_ADMIN); |
702 | $this->set('USER_IS_ADMINPLUS', $USER_IS_ADMINPLUS); | 749 | $this->set('USER_IS_ADMINPLUS', $USER_IS_ADMINPLUS); |
703 | $this->set('USER_IS_SUPERADMIN', $USER_IS_SUPERADMIN); | 750 | $this->set('USER_IS_SUPERADMIN', $USER_IS_SUPERADMIN); |
704 | $this->set('USER_IS_RESPONSABLE_OR_MORE', $USER_IS_RESPONSABLE_OR_MORE); | 751 | $this->set('USER_IS_RESPONSABLE_OR_MORE', $USER_IS_RESPONSABLE_OR_MORE); |
705 | - $this->set(compact('USER_IS_ADMIN_OR_MORE')); | 752 | + // moved to beforeFilter() |
753 | + //$this->set('USER_IS_RESPONSABLE', $USER_IS_RESPONSABLE); | ||
754 | + //$this->set(compact('USER_IS_ADMIN_OR_MORE')); | ||
706 | $this->set('USER_IS_ADMINPLUS_OR_MORE', $USER_IS_ADMINPLUS_OR_MORE); | 755 | $this->set('USER_IS_ADMINPLUS_OR_MORE', $USER_IS_ADMINPLUS_OR_MORE); |
707 | 756 | ||
708 | - $this->set('priviledgedUser', $priviledgedUser); | 757 | + // moved to beforeFilter() |
758 | + //$this->set('priviledgedUser', $priviledgedUser); | ||
709 | 759 | ||
710 | /* | 760 | /* |
711 | * @todo EP 08/2017 Nouvelle organisation des ACL avec $easyACL | 761 | * @todo EP 08/2017 Nouvelle organisation des ACL avec $easyACL |
@@ -740,6 +790,8 @@ class AppController extends Controller | @@ -740,6 +790,8 @@ class AppController extends Controller | ||
740 | } | 790 | } |
741 | } | 791 | } |
742 | 792 | ||
793 | + // Moved to beforeFilter() | ||
794 | + /* | ||
743 | $this->set('idGmNa', TableRegistry::getTableLocator()->get('GroupesMetiers')->find() | 795 | $this->set('idGmNa', TableRegistry::getTableLocator()->get('GroupesMetiers')->find() |
744 | ->where([ | 796 | ->where([ |
745 | 'nom =' => 'N/A' | 797 | 'nom =' => 'N/A' |
@@ -750,6 +802,7 @@ class AppController extends Controller | @@ -750,6 +802,7 @@ class AppController extends Controller | ||
750 | 'nom =' => 'N/A' | 802 | 'nom =' => 'N/A' |
751 | ]) | 803 | ]) |
752 | ->first()['id']); | 804 | ->first()['id']); |
805 | + */ | ||
753 | 806 | ||
754 | $displayElement = function ($nom, $valeur, $params = "") { | 807 | $displayElement = function ($nom, $valeur, $params = "") { |
755 | $TD = ($params=="") ? 'TD' : "TD $params"; | 808 | $TD = ($params=="") ? 'TD' : "TD $params"; |
@@ -777,7 +830,36 @@ class AppController extends Controller | @@ -777,7 +830,36 @@ class AppController extends Controller | ||
777 | 830 | ||
778 | // Pass this function to all views | 831 | // Pass this function to all views |
779 | //function echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) { | 832 | //function echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) { |
780 | - $echoActionButton = function($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) { | 833 | + $echoActionButton = function($html, $icon_class, $title, $controller='', $action, $id, $other_args=[], $tip='', $confirmMessage='', $moreButtonStyle='') { |
834 | + if ($controller=='') $controller='materiels'; | ||
835 | + $controllerArgs = []; | ||
836 | + $controllerArgs['controller'] = $controller; | ||
837 | + $controllerArgs['action'] = $action; | ||
838 | + $controllerArgs[] = $id; | ||
839 | + foreach ($other_args as $other_arg) $controllerArgs[] = $other_arg; | ||
840 | + echo $html->link( | ||
841 | + __("<i class=$icon_class></i> $title"), | ||
842 | + $controllerArgs, | ||
843 | + /* | ||
844 | + [ | ||
845 | + 'controller' => $controller, | ||
846 | + 'action' => $action, | ||
847 | + $id, | ||
848 | + $other_args | ||
849 | + ], | ||
850 | + */ | ||
851 | + [ | ||
852 | + 'title' => $tip, | ||
853 | + 'escape' => false, | ||
854 | + 'onclick' => 'return true;', | ||
855 | + 'style' => 'margin-right: 10px'.$moreButtonStyle, | ||
856 | + 'confirm' => $confirmMessage | ||
857 | + ] | ||
858 | + ); | ||
859 | + }; | ||
860 | + /* | ||
861 | + $echoActionButton = function($html, $icon_class, $title, $action, $id, $controller='', $tip='', $confirmMessage='', $moreButtonStyle='', $mat=NULL, $photo=NULL) { | ||
862 | + if ($controller=='') $controller='materiels'; | ||
781 | echo $html->link( | 863 | echo $html->link( |
782 | __("<i class=$icon_class></i> $title"), | 864 | __("<i class=$icon_class></i> $title"), |
783 | [ | 865 | [ |
@@ -791,15 +873,17 @@ class AppController extends Controller | @@ -791,15 +873,17 @@ class AppController extends Controller | ||
791 | 'title' => $tip, | 873 | 'title' => $tip, |
792 | 'escape' => false, | 874 | 'escape' => false, |
793 | 'onclick' => 'return true;', | 875 | 'onclick' => 'return true;', |
794 | - 'style' => 'margin-right: 10px' | 876 | + 'style' => 'margin-right: 10px'.$moreButtonStyle, |
877 | + 'confirm' => $confirmMessage | ||
795 | ] | 878 | ] |
796 | ); | 879 | ); |
797 | }; | 880 | }; |
881 | + */ | ||
798 | $this->set(compact('echoActionButton')); | 882 | $this->set(compact('echoActionButton')); |
799 | 883 | ||
800 | - | ||
801 | } // beforeRender() | 884 | } // beforeRender() |
802 | 885 | ||
886 | + | ||
803 | // "le materiel", "le suivi"... | 887 | // "le materiel", "le suivi"... |
804 | protected function getArticle() | 888 | protected function getArticle() |
805 | { | 889 | { |
src/Controller/MaterielsController.php
@@ -153,6 +153,10 @@ class MaterielsController extends AppController | @@ -153,6 +153,10 @@ class MaterielsController extends AppController | ||
153 | public function beforeFilter(\Cake\Event\Event $event) | 153 | public function beforeFilter(\Cake\Event\Event $event) |
154 | { | 154 | { |
155 | $this->myDebug("step 0: beforeFilter()"); | 155 | $this->myDebug("step 0: beforeFilter()"); |
156 | + // ICI CEST OK | ||
157 | + $toto="tititoto"; | ||
158 | + $this->set(compact('toto')); | ||
159 | + | ||
156 | parent::beforeFilter($event); | 160 | parent::beforeFilter($event); |
157 | } | 161 | } |
158 | 162 | ||
@@ -180,6 +184,13 @@ class MaterielsController extends AppController | @@ -180,6 +184,13 @@ class MaterielsController extends AppController | ||
180 | $this->set('ARCHIVED', self::ARCHIVED); | 184 | $this->set('ARCHIVED', self::ARCHIVED); |
181 | 185 | ||
182 | /* | 186 | /* |
187 | + $CAN_EDIT = $IS_CREATED && ( | ||
188 | + $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 | ||
189 | + ); | ||
190 | + $this->set(compact('CAN_EDIT')); | ||
191 | + */ | ||
192 | + | ||
193 | + /* | ||
183 | * @todo EP 08/2017 Nouvelle organisation des ACL avec $easyACL | 194 | * @todo EP 08/2017 Nouvelle organisation des ACL avec $easyACL |
184 | */ | 195 | */ |
185 | // !!! MOVED TO APPCONTROLLER !!! | 196 | // !!! MOVED TO APPCONTROLLER !!! |
@@ -224,6 +235,12 @@ class MaterielsController extends AppController | @@ -224,6 +235,12 @@ class MaterielsController extends AppController | ||
224 | { | 235 | { |
225 | //if (parent::isAuthorized($userFromSession)) return TRUE; | 236 | //if (parent::isAuthorized($userFromSession)) return TRUE; |
226 | $this->myDebug("step 1: isAuthorized()"); | 237 | $this->myDebug("step 1: isAuthorized()"); |
238 | + | ||
239 | + /* ICI C'EST OK | ||
240 | + $toto="tititoto"; | ||
241 | + $this->set(compact('toto')); | ||
242 | + */ | ||
243 | + | ||
227 | $user = $userFromSession; | 244 | $user = $userFromSession; |
228 | $configuration = $this->confLabinvent; | 245 | $configuration = $this->confLabinvent; |
229 | $userCname = $user[$configuration->ldap_authenticationType][0]; | 246 | $userCname = $user[$configuration->ldap_authenticationType][0]; |
@@ -276,6 +293,12 @@ class MaterielsController extends AppController | @@ -276,6 +293,12 @@ class MaterielsController extends AppController | ||
276 | * switch ROLE | 293 | * switch ROLE |
277 | * | 294 | * |
278 | */ | 295 | */ |
296 | + | ||
297 | + // ICI C'EST PAS OK, why ??? | ||
298 | + //$toto="tititoto"; | ||
299 | + //$this->set(compact('toto')); | ||
300 | + | ||
301 | + | ||
279 | switch ($action) { | 302 | switch ($action) { |
280 | 303 | ||
281 | // INDEX, VIEW, ADD, FIND | 304 | // INDEX, VIEW, ADD, FIND |
@@ -769,6 +792,27 @@ class MaterielsController extends AppController | @@ -769,6 +792,27 @@ class MaterielsController extends AppController | ||
769 | $IS_VALIDATED = ($materiel->status == 'VALIDATED'); | 792 | $IS_VALIDATED = ($materiel->status == 'VALIDATED'); |
770 | $IS_TOBEARCHIVED = ($materiel->status == 'TOBEARCHIVED'); | 793 | $IS_TOBEARCHIVED = ($materiel->status == 'TOBEARCHIVED'); |
771 | $IS_ARCHIVED = ($materiel->status == 'ARCHIVED'); | 794 | $IS_ARCHIVED = ($materiel->status == 'ARCHIVED'); |
795 | + | ||
796 | + // NEW TODO: | ||
797 | + $USER_IS_CREATOR_OR_OWNER = in_array($this->userName, [ | ||
798 | + $materiel->nom_createur, | ||
799 | + $materiel->nom_responsable | ||
800 | + ]); | ||
801 | + $USER_IS_SAME_GROUP = ( | ||
802 | + ( isset($this->priviledgedUser->groupes_metier_id) && $this->priviledgedUser->groupes_metier_id != $this->idGmNa && $materiel->groupes_metier_id == $this->priviledgedUser->groupes_metier_id ) | ||
803 | + || | ||
804 | + ( isset($this->priviledgedUser->groupe_thematique_id) && $this->priviledgedUser->groupe_thematique_id != $this->idGtNa && $materiel->groupes_thematique_id == $this->priviledgedUser->groupe_thematique_id ) | ||
805 | + ); | ||
806 | + $CAN_EDIT = $IS_CREATED && ( | ||
807 | + $this->USER_IS_ADMIN_OR_MORE | ||
808 | + || | ||
809 | + $USER_IS_CREATOR_OR_OWNER | ||
810 | + || | ||
811 | + ( $this->USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP ) | ||
812 | + ); | ||
813 | + $this->set(compact('CAN_EDIT')); | ||
814 | + // END TODO | ||
815 | + | ||
772 | // $status = $this->allStatus[$materiel->status]; | 816 | // $status = $this->allStatus[$materiel->status]; |
773 | $status = self::allStatus[$materiel->status]; | 817 | $status = self::allStatus[$materiel->status]; |
774 | $this->set('IS_CREATED', $IS_CREATED); | 818 | $this->set('IS_CREATED', $IS_CREATED); |
@@ -799,9 +843,10 @@ class MaterielsController extends AppController | @@ -799,9 +843,10 @@ class MaterielsController extends AppController | ||
799 | 'materiel' | 843 | 'materiel' |
800 | ]); | 844 | ]); |
801 | 845 | ||
802 | - // TODO, mais plutot dans le beforeFilter() ou beforeRender()... | ||
803 | - /* | ||
804 | - $CAN_EDIT = $IS_CREATED && ($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); | 846 | + /* TODO: |
847 | + $CAN_EDIT = $IS_CREATED && ( | ||
848 | + $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 | ||
849 | + ); | ||
805 | $this->set(compact('CAN_EDIT')); | 850 | $this->set(compact('CAN_EDIT')); |
806 | */ | 851 | */ |
807 | 852 |
src/Template/Materiels/view.ctp
@@ -7,13 +7,32 @@ use Cake\ORM\TableRegistry; | @@ -7,13 +7,32 @@ use Cake\ORM\TableRegistry; | ||
7 | // - Constants : | 7 | // - Constants : |
8 | //$CAN_EDIT = $CAN_EDIT; | 8 | //$CAN_EDIT = $CAN_EDIT; |
9 | $PDF_ENGINE = $PDF_ENGINE; | 9 | $PDF_ENGINE = $PDF_ENGINE; |
10 | +// - User status: | ||
11 | +$username = $username; | ||
12 | +$priviledgedUser = $priviledgedUser; | ||
13 | +$USER_IS_UTILISATEUR = $USER_IS_UTILISATEUR; | ||
14 | +$USER_IS_RESPONSABLE = $USER_IS_RESPONSABLE; | ||
15 | +$USER_IS_ADMIN = $USER_IS_ADMIN; | ||
10 | $USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE; | 16 | $USER_IS_ADMIN_OR_MORE = $USER_IS_ADMIN_OR_MORE; |
17 | +$USER_IS_SUPERADMIN = $USER_IS_SUPERADMIN; | ||
18 | +// - Materiel status: | ||
19 | +$idGmNa = $idGmNa; | ||
20 | +$idGtNa = $idGtNa; | ||
21 | +$IS_CREATED = $IS_CREATED; | ||
22 | +$IS_VALIDATED = $IS_VALIDATED; | ||
23 | +$IS_TOBEARCHIVED = $IS_TOBEARCHIVED; | ||
24 | +$IS_ARCHIVED = $IS_ARCHIVED; | ||
25 | +// - User capabilities on materiel: | ||
26 | +$CAN_EDIT = $CAN_EDIT; | ||
27 | +// Autres | ||
28 | +// TODO: yena plein d'autres | ||
29 | +// ... | ||
11 | // - Fonctions : | 30 | // - Fonctions : |
12 | $displayElement = $displayElement; | 31 | $displayElement = $displayElement; |
13 | $dateProchainControleVerif = $dateProchainControleVerif; | 32 | $dateProchainControleVerif = $dateProchainControleVerif; |
14 | $echoActionButton = $echoActionButton; | 33 | $echoActionButton = $echoActionButton; |
15 | -// TODO: yena plein d'autres | ||
16 | -// ... | 34 | + |
35 | + | ||
17 | 36 | ||
18 | /* (EP) moved to controller | 37 | /* (EP) moved to controller |
19 | function $echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) { | 38 | function $echoActionButton($html, $icon_class, $title, $action, $id, $tip='', $controller='materiels', $mat=NULL, $photo=NULL) { |
@@ -118,7 +137,7 @@ $USER_IS_RESPONSABLE_AND_SAME_GROUP = $USER_IS_RESPONSABLE && ((isset($priviledg | @@ -118,7 +137,7 @@ $USER_IS_RESPONSABLE_AND_SAME_GROUP = $USER_IS_RESPONSABLE && ((isset($priviledg | ||
118 | 137 | ||
119 | 138 | ||
120 | // TODO: to be set by controller | 139 | // TODO: to be set by controller |
121 | -$CAN_EDIT = $IS_CREATED && ($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); | 140 | +//$CAN_EDIT = $IS_CREATED && ($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); |
122 | $CAN_ATTACH_A_DOC = $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; | 141 | $CAN_ATTACH_A_DOC = $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; |
123 | $CAN_COPY = $IS_CREATED and ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER); | 142 | $CAN_COPY = $IS_CREATED and ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER); |
124 | $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN_OR_MORE; | 143 | $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN_OR_MORE; |
@@ -132,7 +151,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | @@ -132,7 +151,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | ||
132 | <h2> | 151 | <h2> |
133 | <?php | 152 | <?php |
134 | // if (h($materiel->status) == 'ARCHIVED') echo '<i class="icon-inbox"></i> '; | 153 | // if (h($materiel->status) == 'ARCHIVED') echo '<i class="icon-inbox"></i> '; |
135 | - if ($IS_ARCHIVED) echo '<i class="icon-inbox"></i> '; | 154 | + if ($IS_ARCHIVED) echo '<i class="icon-inbox"></i> '; |
136 | $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : ''; | 155 | $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : ''; |
137 | ?> | 156 | ?> |
138 | <?=h($materiel->designation) . $panne?> | 157 | <?=h($materiel->designation) . $panne?> |
@@ -182,51 +201,21 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | @@ -182,51 +201,21 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | ||
182 | <br /> | 201 | <br /> |
183 | 202 | ||
184 | 203 | ||
185 | - <!-- BOUTONS --> | 204 | + <!-- BOUTONS (DIV) --> |
205 | + | ||
186 | <div id="boutons" class="actions" style="margin-bottom:20px; width:100%; float:none; padding:5px 0;"> | 206 | <div id="boutons" class="actions" style="margin-bottom:20px; width:100%; float:none; padding:5px 0;"> |
187 | 207 | ||
188 | <?php | 208 | <?php |
189 | - // CREATED or VALIDATED | ||
190 | - // if ( in_array($materiel->status, ['CREATED','VALIDATED']) ) { | ||
191 | - // (EP 17/5/19) Ben non, on peut pas éditer si validé !!! | ||
192 | - //if ($IS_CREATED || $IS_VALIDATED) { | ||
193 | - //if ($IS_CREATED) { | ||
194 | - if ($CAN_EDIT) $echoActionButton($this->Html, 'icon-pencil', 'Editer ce matériel', 'edit', $materiel->id); | ||
195 | - /* | ||
196 | - echo $this->Html->link( | ||
197 | - __('<i class="icon-pencil"></i> Editer ce matériel'), | ||
198 | - [ | ||
199 | - 'action' => 'edit', | ||
200 | - $materiel->id | ||
201 | - ], | ||
202 | - [ | ||
203 | - 'escape' => false, | ||
204 | - 'onclick' => 'return true;', | ||
205 | - 'style' => 'margin-right: 10px' | ||
206 | - ] | ||
207 | - ); | ||
208 | - */ | ||
209 | 209 | ||
210 | - /* | ||
211 | - * // TOBEARCHIVED+ | ||
212 | - * else { | ||
213 | - * //if (in_array($role, ['Administration Plus','Super Administrateur'])) { | ||
214 | - * if ($USER_IS_ADMIN_OR_MORE) { | ||
215 | - * echo $this->Html->link( | ||
216 | - * __('<i class="icon-pencil"></i> Editer ce matériel'), | ||
217 | - * ['action' => 'edit', $materiel->id], | ||
218 | - * ['escape' => false, 'onclick' => 'return true;', 'style' => 'margin-right: 10px'] | ||
219 | - * ); | ||
220 | - * } | ||
221 | - * } | ||
222 | - */ | 210 | + // --- (1) BOUTONS 1st row --- |
211 | + | ||
212 | + // BOUTON "Editer" | ||
213 | + if ($CAN_EDIT) $echoActionButton($this->Html, 'icon-pencil', 'Editer ce matériel', 'materiels', 'edit', $materiel->id); | ||
223 | 214 | ||
224 | - // VALIDATED | 215 | + // BOUTONS "NOUVEAU SUIVI" et "NOUVEL EMPRUNT" |
225 | // if ($materiel->status == 'VALIDATED') { | 216 | // if ($materiel->status == 'VALIDATED') { |
226 | if ($IS_VALIDATED) { | 217 | if ($IS_VALIDATED) { |
227 | - | ||
228 | - // BOUTON NOUVEAU SUIVI | ||
229 | - $echoActionButton($this->Html, 'icon-plus', 'Nouv. Suivi', 'add', $materiel->id, 'Faire un nouveau suivi de ce matériel', 'suivis'); | 218 | + $echoActionButton($this->Html, 'icon-plus', 'Nouv. Suivi', 'suivis', 'add', $materiel->id, [], 'Faire un nouveau suivi de ce matériel'); |
230 | /* | 219 | /* |
231 | echo $this->Html->link('<i class="icon-plus"></i> Nouv. Suivi', [ | 220 | echo $this->Html->link('<i class="icon-plus"></i> Nouv. Suivi', [ |
232 | 'controller' => 'suivis', | 221 | 'controller' => 'suivis', |
@@ -238,75 +227,21 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | @@ -238,75 +227,21 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | ||
238 | 'escape' => false | 227 | 'escape' => false |
239 | ]); // End link | 228 | ]); // End link |
240 | */ | 229 | */ |
241 | - | ||
242 | - // BOUTON NOUVEL EMPRUNT | ||
243 | - $echoActionButton($this->Html, 'icon-plus', 'Nouv. Emprunt', 'add', $materiel->id, 'Faire un nouvel emprunt de ce matériel', 'emprunts'); | ||
244 | - /* | ||
245 | - echo $this->Html->link('<i class="icon-plus"></i> Nouv. Emprunt', [ | ||
246 | - 'controller' => 'emprunts', | ||
247 | - 'action' => 'add', | ||
248 | - $materiel->id | ||
249 | - ], [ | ||
250 | - 'title' => 'Faire un nouvel emprunt de ce matériel', | ||
251 | - 'style' => 'margin-right: 10px', | ||
252 | - 'escape' => false | ||
253 | - ]); // End link | ||
254 | - */ | 230 | + $echoActionButton($this->Html, 'icon-plus', 'Nouv. Emprunt', 'emprunts', 'add', $materiel->id, [], 'Faire un nouvel emprunt de ce matériel'); |
255 | } | 231 | } |
256 | 232 | ||
257 | // BOUTONS "Lier un Doc" et "Remplacer/Lier photo" | 233 | // BOUTONS "Lier un Doc" et "Remplacer/Lier photo" |
258 | if ($CAN_ATTACH_A_DOC) { | 234 | if ($CAN_ATTACH_A_DOC) { |
259 | - //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) { | ||
260 | - $echoActionButton($this->Html, 'icon-file', 'Lier un Doc.', 'add', $materiel->id, 'Attacher un Doc. à ce matériel', 'documents', 'mat'); | 235 | + $echoActionButton($this->Html, 'icon-file', 'Lier un Doc.', 'documents', 'add', $materiel->id, ['mat'], 'Attacher un Doc. à ce matériel'); |
261 | // BOUTON "photo" | 236 | // BOUTON "photo" |
262 | if ($materiel->photo_id != null) | 237 | if ($materiel->photo_id != null) |
263 | - $echoActionButton($this->Html, 'icon-file', 'Remplacer la photo.', 'add', $materiel->id, 'Remplacer la photo de ce matériel', 'documents', 'mat', 'photo'); | 238 | + $echoActionButton($this->Html, 'icon-file', 'Remplacer la photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Remplacer la photo de ce matériel'); |
264 | else | 239 | else |
265 | - $echoActionButton($this->Html, 'icon-file', 'Lier une photo.', 'add', $materiel->id, 'Attacher une photo à ce matériel', 'documents', 'mat', 'photo'); | ||
266 | - /* | ||
267 | - echo $this->Html->link('<i class="icon-file"></i> Lier un Doc.', [ | ||
268 | - 'controller' => 'documents', | ||
269 | - 'action' => 'add', | ||
270 | - $materiel->id, | ||
271 | - 'mat' | ||
272 | - ], [ | ||
273 | - 'title' => 'Attacher un Doc. à ce matériel', | ||
274 | - 'style' => 'margin-right: 10px', | ||
275 | - 'escape' => false | ||
276 | - ]); | ||
277 | - */ | ||
278 | - | ||
279 | - /* | ||
280 | - echo $this->Html->link('<i class="icon-file"></i> Remplacer la photo.', [ | ||
281 | - 'controller' => 'documents', | ||
282 | - 'action' => 'add', | ||
283 | - $materiel->id, | ||
284 | - 'mat', | ||
285 | - 'photo' | ||
286 | - ], [ | ||
287 | - 'title' => 'Remplacer la photo de ce matériel', | ||
288 | - 'style' => 'margin-right: 10px', | ||
289 | - 'escape' => false | ||
290 | - ]); | ||
291 | - */ | ||
292 | - /* | ||
293 | - echo $this->Html->link('<i class="icon-file"></i> Lier une photo.', [ | ||
294 | - 'controller' => 'documents', | ||
295 | - 'action' => 'add', | ||
296 | - $materiel->id, | ||
297 | - 'mat', | ||
298 | - 'photo' | ||
299 | - ], [ | ||
300 | - 'title' => 'Attacher une photo à ce matériel', | ||
301 | - 'style' => 'margin-right: 10px', | ||
302 | - 'escape' => false | ||
303 | - ]); | ||
304 | - */ | ||
305 | - } // BOUTON Lier un doc | 240 | + $echoActionButton($this->Html, 'icon-file', 'Lier une photo.', 'documents', 'add', $materiel->id, ['mat', 'photo'], 'Attacher une photo à ce matériel'); |
241 | + } | ||
306 | 242 | ||
307 | - // Doc admission et sortie (admin+) | 243 | + // BOUTONS Doc admission et sortie (admin+) |
308 | if ($USER_IS_ADMIN_OR_MORE) { | 244 | if ($USER_IS_ADMIN_OR_MORE) { |
309 | - // if (in_array($role, ['Administration','Administration Plus','Super Administrateur'])) { | ||
310 | 245 | ||
311 | // Doc admission (admin only) | 246 | // Doc admission (admin only) |
312 | if ($IS_CREATED || $IS_VALIDATED) { | 247 | if ($IS_CREATED || $IS_VALIDATED) { |
@@ -321,22 +256,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | @@ -321,22 +256,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | ||
321 | $data = $materiel->numero_laboratoire . ".pdf"; | 256 | $data = $materiel->numero_laboratoire . ".pdf"; |
322 | } | 257 | } |
323 | // if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) { | 258 | // if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) { |
324 | - $echoActionButton($this->Html, 'icon-file', 'Doc. admission', $action, $data, "Voir le document d'admission", 'documents'); | ||
325 | - /* | ||
326 | - echo $this->Html->link('<i class="icon-file"></i> Doc. admission', [ | ||
327 | - 'controller' => 'documents', | ||
328 | - /// | ||
329 | - 'action' => 'admission', | ||
330 | - $materiel->numero_laboratoire | ||
331 | - /// | ||
332 | - 'action' => $action, | ||
333 | - $data | ||
334 | - ], [ | ||
335 | - 'title' => 'Voir le document d\'admission', | ||
336 | - 'style' => 'margin-right: 10px', | ||
337 | - 'escape' => false | ||
338 | - ]); | ||
339 | - */ | 259 | + $echoActionButton($this->Html, 'icon-file', 'Doc. admission', 'documents', $action, $data, [], "Voir le document d'admission"); |
340 | } | 260 | } |
341 | 261 | ||
342 | // Doc sortie (admin only) | 262 | // Doc sortie (admin only) |
@@ -352,170 +272,71 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | @@ -352,170 +272,71 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | ||
352 | $data = $materiel->numero_laboratoire . ".pdf"; | 272 | $data = $materiel->numero_laboratoire . ".pdf"; |
353 | } | 273 | } |
354 | // else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) { | 274 | // else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) { |
355 | - $echoActionButton($this->Html, 'icon-file', 'Doc. sortie', $action, $data, "Voir le document de sortie", 'documents'); | ||
356 | - /* | ||
357 | - echo $this->Html->link('<i class="icon-file"></i> Doc. sortie', [ | ||
358 | - 'controller' => 'documents', | ||
359 | - 'action' => $action, | ||
360 | - $data | ||
361 | - //'action' => 'sortie', | ||
362 | - //'action' => 'sortiePdf', | ||
363 | - //'action' => 'sortie_pdf', | ||
364 | - //$materiel->numero_laboratoire | ||
365 | - //$materiel->numero_laboratoire . ".pdf" | ||
366 | - | ||
367 | - ], [ | ||
368 | - 'title' => 'Voir le document de sortie', | ||
369 | - 'style' => 'margin-right: 10px', | ||
370 | - 'escape' => false | ||
371 | - ]); | ||
372 | - */ | 275 | + $echoActionButton($this->Html, 'icon-file', 'Doc. sortie', 'documents', $action, $data, [], "Voir le document de sortie"); |
373 | } | 276 | } |
374 | - } | 277 | + |
278 | + } // Doc admission et sortie | ||
375 | 279 | ||
280 | + | ||
281 | + // --- (2) BOUTONS 2nd row --- | ||
282 | + | ||
376 | echo "<br />"; | 283 | echo "<br />"; |
377 | 284 | ||
378 | - // BOUTON changement statut | 285 | + // (EP) Change bouton style pour que la 2ème ligne de boutons ne chevauche pas la 1ère |
286 | + // En pratique, il suffit que un seul bouton de cette ligne aie ce style (pas nécessaire pour les autres) | ||
287 | + // Mais bon, c'est difficile de savoir lequel sera toujours présent... | ||
288 | + // Donc, on applique ce style à TOUS les boutons de cette 2e ligne | ||
289 | + $moreButtonStyle = '; margin-top:10px; display:inline-block'; | ||
290 | + $moreButtonStyleRed = $moreButtonStyle . '; color:red'; | ||
291 | + // BOUTON de changement de statut : Valider, Invalider, Demander archivage, ou Archiver | ||
379 | if ($USER_IS_ADMIN_OR_MORE || $USER_IS_RESPONSABLE_AND_SAME_GROUP) { | 292 | if ($USER_IS_ADMIN_OR_MORE || $USER_IS_RESPONSABLE_AND_SAME_GROUP) { |
380 | - /* | ||
381 | - * if ( | ||
382 | - * in_array($role, ['Administration','Administration Plus','Super Administrateur']) | ||
383 | - * || ( | ||
384 | - * $role == 'Responsable' | ||
385 | - * && ( | ||
386 | - * ( | ||
387 | - * isset($priviledgedUser->groupes_metier_id) | ||
388 | - * && $priviledgedUser->groupes_metier_id != $idGmNa | ||
389 | - * && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id | ||
390 | - * ) | ||
391 | - * || | ||
392 | - * ( | ||
393 | - * isset($priviledgedUser->groupe_thematique_id) | ||
394 | - * && $priviledgedUser->groupe_thematique_id != $idGtNa | ||
395 | - * && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id | ||
396 | - * ) | ||
397 | - * ) | ||
398 | - * ) | ||
399 | - * ) { | ||
400 | - */ | ||
401 | - // 2) Bouton de changement de statut : Valider, Demander archivage, ou Archiver | ||
402 | - // switch ($materiel->status) { | ||
403 | - switch ($status) { | ||
404 | - | ||
405 | - // case "CREATED" : | ||
406 | - case $CREATED: | ||
407 | - // Bouton VALIDER | ||
408 | - echo $this->Html->link('<i class="icon-ok-sign"></i> Valider', [ | ||
409 | - 'action' => 'statusValidated', | ||
410 | - $materiel->id, | ||
411 | - 'view' | ||
412 | - ], [ | ||
413 | - 'title' => 'Valider le matériel', | ||
414 | - 'style' => 'margin-right: 10px; color: red', | ||
415 | - 'escape' => false | ||
416 | - ]); | ||
417 | - break; | ||
418 | - | ||
419 | - // case "VALIDATED" or more : | ||
420 | - case $VALIDATED: | ||
421 | - case $TOBEARCHIVED: | ||
422 | - case $ARCHIVED: | ||
423 | - // Bouton DE-VALIDER (invalider) | ||
424 | - echo $this->Html->link('<i class="icon-remove-sign"></i> Dé-valider', [ | ||
425 | - 'action' => 'statusCreated', | ||
426 | - $materiel->id, | ||
427 | - 'view' | ||
428 | - ], [ | ||
429 | - 'title' => 'dé-valider le matériel (le repasser au statut Créé)', | ||
430 | - // 'style' => 'margin-right: 10px; background: red; color: white', | ||
431 | - 'style' => 'margin-right: 10px; color: red', | ||
432 | - 'escape' => false | ||
433 | - ]); | ||
434 | - if ($status == $VALIDATED) { | ||
435 | - // Bouton TBA | ||
436 | - echo $this->Html->link('<i class="icon-ok-sign"></i> Demander sortie', [ | ||
437 | - 'action' => 'statusToBeArchived', | ||
438 | - $materiel->id, | ||
439 | - 'view' | ||
440 | - ], [ | ||
441 | - 'title' => 'Demander la sortie de l\'inventaire', | ||
442 | - 'style' => 'margin-right: 10px; color: red', | ||
443 | - 'escape' => false | ||
444 | - ]); | ||
445 | - } else if ($status == $TOBEARCHIVED) { | ||
446 | - // Bouton ARCHIVER | ||
447 | - // if ($role != 'Responsable' && $role != 'Super Administrateur') { | ||
448 | - if ($role != 'Responsable') { | ||
449 | - echo $this->Html->link('<i class="icon-ok-sign"></i> Sortie inventaire', [ | ||
450 | - 'action' => 'statusArchived', | ||
451 | - $materiel->id, | ||
452 | - 'view' | ||
453 | - ], [ | ||
454 | - 'title' => 'Sortir définitivement de l\'inventaire', | ||
455 | - 'style' => 'margin-right: 10px; color: red', | ||
456 | - 'escape' => false, | ||
457 | - 'confirm' => 'Êtes-vous sur de bien vouloir archiver ' . $materiel->designation . ' ?' | ||
458 | - ]); | ||
459 | - } | ||
460 | - } | ||
461 | - break; | ||
462 | - } // switch | ||
463 | - } // BOUTON changement statut | 293 | + // CREATED |
294 | + if ($IS_CREATED) | ||
295 | + // Bouton VALIDER | ||
296 | + $echoActionButton($this->Html, 'icon-ok-sign', 'Valider', '', 'statusValidated', $materiel->id, [], "Valider ce matériel", '', $moreButtonStyleRed); | ||
297 | + // VALIDATED or more | ||
298 | + else { | ||
299 | + // Bouton Invalider | ||
300 | + $echoActionButton($this->Html, 'icon-remove-sign', 'Invalider', '', 'statusCreated', $materiel->id, [], | ||
301 | + "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)", | ||
302 | + '', $moreButtonStyleRed | ||
303 | + ); | ||
304 | + // Bouton TBA | ||
305 | + if ($IS_VALIDATED) $echoActionButton($this->Html, 'icon-ok-sign', 'Demander sortie', '', 'statusToBeArchived', $materiel->id, [], | ||
306 | + "Demander la sortie de l'inventaire", '', $moreButtonStyleRed | ||
307 | + ); | ||
308 | + // Bouton ARCHIVER | ||
309 | + //if ($IS_TOBEARCHIVED && $role!='Responsable') $echoActionButton( | ||
310 | + if ($IS_TOBEARCHIVED && $USER_IS_ADMIN_OR_MORE) $echoActionButton( | ||
311 | + $this->Html, 'icon-ok-sign', 'Sortie inventaire', '', 'statusArchived', $materiel->id, [], | ||
312 | + "Sortir définitivement de l'inventaire", | ||
313 | + "Êtes-vous sur de bien vouloir archiver $materiel->designation ?", | ||
314 | + $moreButtonStyleRed | ||
315 | + ); | ||
316 | + } | ||
317 | + } | ||
464 | 318 | ||
465 | // BOUTON Copier (seulement pour les materiels qui sont CREATED et pour les ADMINet+ ou USER owner) | 319 | // BOUTON Copier (seulement pour les materiels qui sont CREATED et pour les ADMINet+ ou USER owner) |
466 | - if ($CAN_COPY) $echoActionButton($this->Html, 'icon-plus', 'Copier ce matériel', 'add', $materiel->id, "Copier ce matériel"); | ||
467 | - /* | ||
468 | - if ( $IS_CREATED and ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER) ) | ||
469 | - echo $this->Html->link('<i class="icon-pencil"></i> Copier ce matériel', | ||
470 | - [ | ||
471 | - 'controller' => 'materiels', | ||
472 | - 'action' => 'add', | ||
473 | - $materiel->id | ||
474 | - ], | ||
475 | - [ | ||
476 | - 'title' => 'Copier ce matériel', | ||
477 | - 'style' => 'margin-right: 10px; margin-top: 10px; display: inline-block', | ||
478 | - 'escape' => false | ||
479 | - ]); | ||
480 | - */ | 320 | + if ($CAN_COPY) $echoActionButton($this->Html, 'icon-plus', 'Copier ce matériel', '', 'add', $materiel->id, [], "Copier ce matériel"); |
481 | 321 | ||
482 | // BOUTON ETIQUETTE (si imprimante disponible) | 322 | // BOUTON ETIQUETTE (si imprimante disponible) |
483 | if ($CAN_PRINT_LABEL) { | 323 | if ($CAN_PRINT_LABEL) { |
484 | - //if ($IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN_OR_MORE) { | ||
485 | - /* | ||
486 | - in_array($role, [ | ||
487 | - 'Administration', | ||
488 | - 'Administration Plus', | ||
489 | - 'Super Administrateur' | ||
490 | - ])) { | ||
491 | - */ | ||
492 | - // echo "<br/>"; | ||
493 | - // echo '<div id="etiquette" class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">'; | ||
494 | // - Bouton "Imprimer sur un ruban" | 324 | // - Bouton "Imprimer sur un ruban" |
495 | - $action = 'Impr. étiquette'; | ||
496 | - echo $this->Html->link('<i class="icon-print"></i> ' . $action, [ | ||
497 | - 'action' => 'printLabelRuban', | ||
498 | - h($materiel->id), | ||
499 | - 'view' | ||
500 | - ], [ | ||
501 | - 'title' => 'Imprimer sur un ruban 12mm', | ||
502 | - 'style' => 'margin-right: 10px', | ||
503 | - 'escape' => false, | ||
504 | - 'onclick' => 'return true;' | ||
505 | - ]); | 325 | + $echoActionButton($this->Html, 'icon-print', 'Impr. étiquette', '', 'printLabelRuban', h($materiel->id), [], "Imprimer sur un ruban"); |
506 | // - Bouton "Etiquette posée" | 326 | // - Bouton "Etiquette posée" |
507 | - echo $this->Html->link('<i class="icon-file"></i> ' . (h($materiel->etiquette) ? "Etiquette NON posée sur le matériel" : "Etiquette posée sur le matériel"), [ | ||
508 | - 'controller' => 'materiels', | ||
509 | - 'action' => h($materiel->etiquette) ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced', | ||
510 | - h($materiel->id), | ||
511 | - 'view' | ||
512 | - ], [ | ||
513 | - 'title' => h($materiel->etiquette) ? "En cliquant sur ce bouton, vous déclarez que l'étiquette n'a PAS été posée sur le matériel" : "En cliquant sur ce bouton, vous certifiez que l'étiquette a bien été posée sur le matériel", | ||
514 | - 'style' => 'margin-left: 0px; margin-right: 10px', | ||
515 | - 'escape' => false | ||
516 | - ]); | ||
517 | - // echo '</div>'; | ||
518 | - } // BOUTON ETIQUETTE | 327 | + $echoActionButton( |
328 | + $this->Html, 'icon-file', | ||
329 | + $materiel->etiquette ? "Etiquette NON collée" : "Etiquette collée", | ||
330 | + 'materiels', | ||
331 | + $materiel->etiquette ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced', | ||
332 | + h($materiel->id), ['view'], | ||
333 | + $materiel->etiquette ? | ||
334 | + "En cliquant sur ce bouton, vous déclarez que l'étiquette n'a PAS été posée sur le matériel" | ||
335 | + : | ||
336 | + "En cliquant sur ce bouton, vous certifiez que l'étiquette a bien été posée sur le matériel" | ||
337 | + ); | ||
338 | + //'style' => 'margin-left: 0px; margin-right: 10px', | ||
339 | + } | ||
519 | 340 | ||
520 | // BOUTON "Voir fiche matériel" | 341 | // BOUTON "Voir fiche matériel" |
521 | echo "<br/>"; | 342 | echo "<br/>"; |
@@ -531,21 +352,12 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | @@ -531,21 +352,12 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN | ||
531 | $action = 'fiche_materiel_pdf'; | 352 | $action = 'fiche_materiel_pdf'; |
532 | $data = $materiel->numero_laboratoire . ".pdf"; | 353 | $data = $materiel->numero_laboratoire . ".pdf"; |
533 | } | 354 | } |
534 | - echo $this->Html->link('<i class="icon-file"></i> Fiche PDF du matériel', [ | ||
535 | - 'controller' => 'documents', | ||
536 | - 'action' => $action, | ||
537 | - $data | ||
538 | - //'action' => 'ficheMateriel', | ||
539 | - //'action' => 'ficheMaterielPdf', | ||
540 | - //'action' => 'fiche_materiel_pdf', | ||
541 | - //$materiel->numero_laboratoire | ||
542 | - //$materiel->numero_laboratoire . ".pdf" | ||
543 | - ], [ | ||
544 | - 'title' => 'Voir la fiche du materiel', | ||
545 | - 'style' => 'margin-right: 10px; background: green; color: white', | ||
546 | - 'escape' => false | ||
547 | - ]); | ||
548 | - // echo '</div>'; | 355 | + $echoActionButton($this->Html, 'icon-file', 'Fiche PDF du matériel', 'documents', $action, $data, [], |
356 | + "Voir la fiche du materiel", | ||
357 | + '', | ||
358 | + '; background: green; color: white' | ||
359 | + ); | ||
360 | + | ||
549 | 361 | ||
550 | // FIN DIV BOUTONS | 362 | // FIN DIV BOUTONS |
551 | ?> | 363 | ?> |