Commit 09dddeb796abf52a82c81985a391fc5bfba99a72
1 parent
4b529711
Exists in
master
and in
1 other branch
Plein de petits bugfixes (dont 1 gros : bouton CANCEL)
Dans le détail : - bugfix materiels/add : bouton CANCEL faisait un SUBMIT (comme pour /edit) !!! - bugfix materiels/view : bugfix css responsive.css pour apparence et position boutons - bugfix doc attaché : - commentaire si doc attaché avec mauvais nom - emplacement photo matériel (à gauche ou au-dessus et non pas à droite du QrCode, moche) - lien téléchargement documents attachés - bugfix pb accent sur liste materiels associés à une catégorie - etiquette posée => vert (rouge sinon) - apropos updated - lien vers page etiqueteuse updated - ...
Showing
13 changed files
with
209 additions
and
69 deletions
Show diff stats
.gitignore
README.md
... | ... | @@ -53,11 +53,21 @@ Logiciel testé et validé sur les configurations suivantes : |
53 | 53 | |
54 | 54 | VERSION ACTUELLE |
55 | 55 | |
56 | -Date: 06/03/2020 | |
57 | -Version: 2.14.6 | |
56 | +Date: 10/03/2020 | |
57 | +Version: 2.14.7 | |
58 | 58 | Author: EP |
59 | 59 | Commentaire: |
60 | - 6 gros bugfixes de la version 2.14 (responsive) sur 1 semaine de boulot !! | |
60 | + - bugfix materiels/add : bouton CANCEL faisait un SUBMIT (comme pour /edit) !!! | |
61 | + - bugfix materiels/view : bugfix css responsive.css pour apparence et position boutons | |
62 | + - bugfix doc attaché : | |
63 | + - commentaire si doc attaché avec mauvais nom | |
64 | + - emplacement photo matériel (à gauche ou au-dessus et non pas à droite du QrCode, moche) | |
65 | + - lien téléchargement documents attachés | |
66 | + - bugfix pb accent sur liste materiels associés à une catégorie | |
67 | + - etiquette posée => vert (rouge sinon) | |
68 | + - apropos updated | |
69 | + - lien vers page etiqueteuse updated | |
70 | + - ... | |
61 | 71 | |
62 | 72 | IMPORTANT : |
63 | 73 | - Pour connaitre la version actuelle, taper "./VERSION" |
... | ... | @@ -92,6 +102,10 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https |
92 | 102 | |
93 | 103 | ----------------------------------------------------------------------------------------------------------- |
94 | 104 | |
105 | + | |
106 | +06/03/2020 Version 2.14.6 (EP) | |
107 | + 6 gros bugfixes de la version 2.14 (responsive) sur 1 semaine de boulot !! | |
108 | + | |
95 | 109 | 28/02/2020 Version 2.14.0 (Jeanne Prugniel, stagiaire CRAL) |
96 | 110 | Application maintenant "responsive" avec l'utilisation de boostrap (ok sur pc, tablette, et mobile) |
97 | 111 | ... | ... |
src/Controller/AppController.php
... | ... | @@ -865,7 +865,7 @@ class AppController extends Controller |
865 | 865 | ->first()['id']); |
866 | 866 | */ |
867 | 867 | |
868 | - | |
868 | + // Pass this function to all views | |
869 | 869 | $mydebug = function($debugmode, $arg, $stop=false) { |
870 | 870 | if ($debugmode) { |
871 | 871 | // Absolument nécessaire sur inventirap (à cause de php 5 ?) |
... | ... | @@ -877,6 +877,7 @@ class AppController extends Controller |
877 | 877 | }; |
878 | 878 | $this->set(compact('mydebug')); |
879 | 879 | |
880 | + // Pass this function to all views | |
880 | 881 | $displayElement = function ($nom, $valeur, $params = "") { |
881 | 882 | $TD = ($params=="") ? 'TD' : "TD $params"; |
882 | 883 | //$TD = ($params=="") ? '<TD>' : '<TD '.$params.'>'; |
... | ... | @@ -933,6 +934,32 @@ class AppController extends Controller |
933 | 934 | ); |
934 | 935 | }; |
935 | 936 | $this->set(compact('echoActionButton')); |
937 | + | |
938 | + // Pass this function to all views (en fait, seulement add.ctp et edit.ctp) | |
939 | + //function echoSubmitButtons($context, $matos_id) { | |
940 | + // $action : 'view' or 'index' | |
941 | + $echoSubmitButtons = function($context, $action, $matos_id=null) { | |
942 | + // - Bouton Enregistrer | |
943 | + echo '<div id="form-submit-buttons">'; | |
944 | + //echo '<div class="col-md-7">'; | |
945 | + echo $context->Form->input('Enregistrer', ['type'=>'submit', 'value'=>'Submit', 'class'=>'btn btn-primary']); | |
946 | + //echo $context->Form->button(('<i class="btn btn-outline-dark btn-sm">Annuler</i>'), ['action' => 'view', $matos_id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); | |
947 | + //echo $context->Html->link(__('Annuler'), ['action' => 'view', $matos_id], ['class' => 'btn btn-info ', 'escape' => false]); | |
948 | + echo $context->Html->link(__('<i>Annuler</i>'), ['action' => $action, $matos_id], ['class'=>'btn btn-outline-dark btn-sm', 'style'=>"text-decoration:none;", 'escape'=>false]); | |
949 | + echo '</div>'; | |
950 | + /* | |
951 | + //echo $this->Form->submit(__('Enregistrer')); | |
952 | + echo $context->Form->button('Enregistrer', ['class'=>'btn btn-outline-success', 'type'=>'submit']); | |
953 | + // - Bouton Cancel | |
954 | + //echo $this->Html->link(__('<i class="icon-minus-sign"></i> Annuler'), ['action' => 'view', $materiel->id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); | |
955 | + echo $context->Form->button(('<i class="btn btn-outline-dark btn-sm">Annuler</i>'), ['action' => 'view', $matos_id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); | |
956 | + //echo '<button type="reset" class="btn btn-default pull-right">Cancel</button>'; | |
957 | + //echo '<a href="/link-to/whatever-address/" id="cancel" name="cancel" class="btn btn-default">Cancel</a>'; | |
958 | + */ | |
959 | + //} | |
960 | + }; | |
961 | + $this->set(compact('echoSubmitButtons')); | |
962 | + | |
936 | 963 | |
937 | 964 | } // beforeRender() |
938 | 965 | |
... | ... | @@ -979,7 +1006,7 @@ class AppController extends Controller |
979 | 1006 | * @param $msg : |
980 | 1007 | * Message à envoyer. Si $msg n'est pas renseigné, un message par défaut sera généré. |
981 | 1008 | */ |
982 | - public function sendEmail($entity, $subject = null, $msg = null) | |
1009 | + public function sendEmail($entity, $subject=null, $msg=null) | |
983 | 1010 | { |
984 | 1011 | /* |
985 | 1012 | * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) : |
... | ... | @@ -1004,7 +1031,7 @@ class AppController extends Controller |
1004 | 1031 | if ($entity instanceof Materiel) { |
1005 | 1032 | $materiel = $entity; |
1006 | 1033 | $nom_materiel = $materiel->designation; |
1007 | - if ($subject == null && $msg == null) { | |
1034 | + if ($subject==null && $msg==null) { | |
1008 | 1035 | $msgMore = ''; |
1009 | 1036 | Switch ($action) { |
1010 | 1037 | case 'add': | ... | ... |
src/Model/Table/DocumentsTable.php
... | ... | @@ -74,7 +74,8 @@ class DocumentsTable extends AppTable |
74 | 74 | //Mi regex pour mettre la règle alphaNumericDashUnderscore |
75 | 75 | $validator->add('nom', 'alphaNumericDashUnderscore', [ |
76 | 76 | 'rule' => ['custom', '|^[0-9a-zA-Z_-]*$|'], |
77 | - 'message' => __('Le nom du document ne doit contenir que des chiffres, des lettres, des tirets, ou des tirets.'), | |
77 | + 'message' => __('Le nom du document ne doit contenir ni espace ni accent (seulement des lettres, chiffres, ou tirets)'), | |
78 | + //'message' => __('Le nom du document ne doit contenir que des chiffres, des lettres, des tirets, ou des tirets.'), | |
78 | 79 | ]); |
79 | 80 | |
80 | 81 | return $validator; | ... | ... |
src/Template/Categories/view.ctp
... | ... | @@ -77,7 +77,7 @@ |
77 | 77 | |
78 | 78 | <h3 id="t_suivis" style="cursor: pointer;"> |
79 | 79 | <i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i> |
80 | - <span style="text-decoration: underline;">Materiels associées (<?= $materiels->count()?>)</span> | |
80 | + <span style="text-decoration: underline;">Materiels associés (<?= $materiels->count()?>)</span> | |
81 | 81 | </h3> |
82 | 82 | <div id="suivis" style="margin-bottom: 20px;"> |
83 | 83 | |
... | ... | @@ -90,7 +90,10 @@ |
90 | 90 | <?php foreach ($materiels as $materiel): ?> |
91 | 91 | <tr> |
92 | 92 | |
93 | + <!-- (EP 20200310) bugfix: si on utilise h(), les accents sont mal affichés... | |
93 | 94 | <td><?= $this->Html->link(h($materiel->designation), ['controller' => 'Materiels', 'action' => 'view', h($materiel->id)]); ?></td> |
95 | + --> | |
96 | + <td><?= $this->Html->link($materiel->designation, ['controller' => 'Materiels', 'action' => 'view', h($materiel->id)]); ?></td> | |
94 | 97 | |
95 | 98 | <td class="actions"> |
96 | 99 | <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Materiels', 'action' => 'view', $materiel->id], ['escape' => false, 'style' => 'margin:0']) ?> | ... | ... |
src/Template/Documents/view.ctp
... | ... | @@ -48,10 +48,12 @@ |
48 | 48 | |
49 | 49 | $displayElement(__('Extension fichier'), h($document->type_doc)); |
50 | 50 | |
51 | + $doc_name = $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc; | |
51 | 52 | if ($document->photo) { |
52 | - echo '<tr><td><strong>Fichier</strong></td><td><a href="' . $this->request->webroot . 'webroot/img/photos/' . $document->id . '.' . $document->type_doc . '">Télécharger fichier</a></td></tr>'; | |
53 | + //echo '<tr><td><strong>Fichier</strong></td><td><a href="' . $this->request->webroot . 'webroot/img/photos/' . $document->id . '.' . $document->type_doc . '">Télécharger fichier</a></td></tr>'; | |
54 | + echo '<tr><td><strong>Fichier</strong></td><td><a href="' . $this->request->webroot . 'img/photos/' . $doc_name . '">Télécharger photo</a></td></tr>'; | |
53 | 55 | } else { |
54 | - echo '<tr><td><strong>Fichier</strong></td><td><a href="' . $this->request->webroot . 'webroot/files/' . $document->id . '.' . $document->type_doc . '">Télécharger fichier</a></td></tr>'; | |
56 | + echo '<tr><td><strong>Fichier</strong></td><td><a href="' . $this->request->webroot . 'files/' . $doc_name . '">Télécharger fichier</a></td></tr>'; | |
55 | 57 | } |
56 | 58 | |
57 | 59 | ?> | ... | ... |
src/Template/Materiels/add.ctp
... | ... | @@ -77,6 +77,7 @@ $sousCategories = $sousCategories; |
77 | 77 | |
78 | 78 | // 3) FUNCTIONS from AppController |
79 | 79 | $mydebug = $mydebug; // $mydebug($D,"message"); |
80 | +$echoSubmitButtons = $echoSubmitButtons; | |
80 | 81 | |
81 | 82 | |
82 | 83 | $mydebug($D, $surCategories); |
... | ... | @@ -128,23 +129,38 @@ if (isset($cpMateriel)) { |
128 | 129 | //debug($Sur_categ_id) |
129 | 130 | ?> |
130 | 131 | |
132 | + | |
133 | + | |
134 | + | |
135 | +<!-- | |
136 | +************************************************* | |
137 | +*** DEBUT DE LA PAGE WEB SPÉCIFIQUE (CONTENT) *** | |
138 | +************************************************* | |
139 | +--> | |
140 | + | |
141 | +<!-- DIV FORMULAIRE --> | |
131 | 142 | <div class="materiels form col-lg-4 col-md-7 col-sm-9"> |
143 | + | |
144 | + <h2><i class="icon-plus"></i> Ajouter un Matériel</h2> | |
145 | + | |
132 | 146 | <?=$this->Form->create($materiel)?> |
133 | - <fieldset> | |
134 | - <h2> | |
135 | - <i class="icon-plus"></i> Ajouter un Matériel | |
136 | - </h2> | |
147 | + | |
148 | + <!-- BOUTONS SUBMIT et CANCEL --> | |
149 | + <?=$echoSubmitButtons($this, "index", $materiel->id);?> | |
150 | + | |
151 | + <fieldset> | |
152 | + | |
137 | 153 | <!--<div id="boutons" class="actions" |
138 | 154 | style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;"> |
139 | - | |
140 | 155 | <=$this->Form->submit(__('Enregistrer'))?> |
141 | 156 | <=$this->Form->button('Enregistrer', [ 'class'=>'btn btn-outline-success', 'type'=>'submit', ]) ?>--> |
142 | - | |
143 | 157 | <!--<=$this->Html->link(__('<i class="icon-minus-sign"></i> Annuler'), ['action' => 'index'], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px'])?> |
144 | 158 | <=$this->Form->button(('<i class="btn btn-outline-dark btn-sm">Annuler</i>'), ['action' => 'index'], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px'])?> |
145 | - </div>--> | |
159 | + </div> | |
160 | + --> | |
146 | 161 | |
147 | 162 | <?php |
163 | + | |
148 | 164 | echo $this->Form->control('designation', [ |
149 | 165 | 'label' => 'Désignation', |
150 | 166 | //'default' => $Designation |
... | ... | @@ -405,12 +421,17 @@ if (isset($cpMateriel)) { |
405 | 421 | 'value' => $username |
406 | 422 | ]); |
407 | 423 | ?> |
408 | - </fieldset> | |
409 | - <!--<=$this->Form->submit(__('Enregistrer'))?>--> | |
410 | - <?=$this->Form->button('Enregistrer', [ 'class'=>'btn btn-outline-success', 'type'=>'submit', ]) ?> | |
411 | - | |
412 | - <!--<=$this->Html->link(__('<i class="icon-minus-sign"></i> Annuler'), ['action' => 'index'], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px'])?>--> | |
413 | - <?=$this->Form->button(('<i class="btn btn-outline-dark btn-sm">Annuler</i>'), ['action' => 'index'], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px'])?> | |
424 | + | |
425 | + </fieldset> | |
426 | + | |
427 | + <!-- BOUTONS SUBMIT et CANCEL --> | |
428 | + <?=$echoSubmitButtons($this, "index", $materiel->id);?> | |
429 | + <!-- | |
430 | + <=$this->Form->submit(__('Enregistrer'))?> | |
431 | + <=$this->Form->button('Enregistrer', [ 'class'=>'btn btn-outline-success', 'type'=>'submit', ]) ?> | |
432 | + <=$this->Form->button(('<i class="btn btn-outline-dark btn-sm">Annuler</i>'), ['action' => 'index'], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px'])?> | |
433 | + <=$this->Html->link(__('<i class="icon-minus-sign"></i> Annuler'), ['action' => 'index'], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px'])?> | |
434 | + --> | |
414 | 435 | |
415 | 436 | <?=$this->Form->end()?> |
416 | 437 | </div> | ... | ... |
src/Template/Materiels/edit.ctp
... | ... | @@ -75,6 +75,7 @@ $mydebug = $mydebug; // $mydebug($D, "message") |
75 | 75 | $displayElement = $displayElement; |
76 | 76 | $dateProchainControleVerif = $dateProchainControleVerif; |
77 | 77 | $echoActionButton = $echoActionButton; |
78 | +$echoSubmitButtons = $echoSubmitButtons; | |
78 | 79 | |
79 | 80 | |
80 | 81 | //debug($GLOBALS); |
... | ... | @@ -154,6 +155,7 @@ if ($IS_VALIDATED && $materiel->numero_serie) |
154 | 155 | |
155 | 156 | |
156 | 157 | // Création des 2 boutons submit du formulaire (Enregistrer et Cancel) |
158 | +/* | |
157 | 159 | function echoSubmitButtons($context, $matos_id) { |
158 | 160 | // - Bouton Enregistrer |
159 | 161 | echo '<div id="form-submit-buttons">'; |
... | ... | @@ -163,7 +165,7 @@ function echoSubmitButtons($context, $matos_id) { |
163 | 165 | //echo $context->Html->link(__('Annuler'), ['action' => 'view', $matos_id], ['class' => 'btn btn-info ', 'escape' => false]); |
164 | 166 | echo $context->Html->link(__('<i>Annuler</i>'), ['action' => 'view', $matos_id], ['class'=>'btn btn-outline-dark btn-sm', 'style'=>"text-decoration:none;", 'escape'=>false]); |
165 | 167 | echo '</div>'; |
166 | - /* | |
168 | + /S | |
167 | 169 | //echo $this->Form->submit(__('Enregistrer')); |
168 | 170 | echo $context->Form->button('Enregistrer', ['class'=>'btn btn-outline-success', 'type'=>'submit']); |
169 | 171 | // - Bouton Cancel |
... | ... | @@ -171,8 +173,9 @@ function echoSubmitButtons($context, $matos_id) { |
171 | 173 | echo $context->Form->button(('<i class="btn btn-outline-dark btn-sm">Annuler</i>'), ['action' => 'view', $matos_id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); |
172 | 174 | //echo '<button type="reset" class="btn btn-default pull-right">Cancel</button>'; |
173 | 175 | //echo '<a href="/link-to/whatever-address/" id="cancel" name="cancel" class="btn btn-default">Cancel</a>'; |
174 | - */ | |
176 | + S/ | |
175 | 177 | } |
178 | +*/ | |
176 | 179 | |
177 | 180 | ?> |
178 | 181 | |
... | ... | @@ -188,10 +191,9 @@ function echoSubmitButtons($context, $matos_id) { |
188 | 191 | <!-- DIV FORMULAIRE --> |
189 | 192 | <div class="materiels form col-lg-5 col-md-7 col-sm-9"> |
190 | 193 | |
194 | + <h2><i class="icon-edit"></i> Editer un Matériel</h2> | |
191 | 195 | |
192 | 196 | <?=$this->Form->create($materiel)?> |
193 | - <fieldset> | |
194 | - <h2><i class="icon-edit"></i> Editer un Matériel</h2> | |
195 | 197 | |
196 | 198 | <?php |
197 | 199 | // Après harmonisation de edit et administrer plus besoin de lien vers la page* |
... | ... | @@ -206,7 +208,7 @@ function echoSubmitButtons($context, $matos_id) { |
206 | 208 | ?> |
207 | 209 | |
208 | 210 | <!-- BOUTONS SUBMIT --> |
209 | - <?php echoSubmitButtons($this, $materiel->id); ?> | |
211 | + <?php $echoSubmitButtons($this, 'view', $materiel->id); ?> | |
210 | 212 | <!-- |
211 | 213 | <div id="boutons" class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;"> |
212 | 214 | --<=$this->Form->submit(__('Enregistrer'))?>-- |
... | ... | @@ -216,6 +218,8 @@ function echoSubmitButtons($context, $matos_id) { |
216 | 218 | </div> |
217 | 219 | --> |
218 | 220 | |
221 | + <fieldset> | |
222 | + | |
219 | 223 | <?php |
220 | 224 | // designation |
221 | 225 | echo $this->Form->control('designation', [ |
... | ... | @@ -645,21 +649,20 @@ function echoSubmitButtons($context, $matos_id) { |
645 | 649 | ]); |
646 | 650 | |
647 | 651 | ?> |
648 | - </fieldset> | |
652 | + | |
653 | + </fieldset> | |
649 | 654 | |
650 | 655 | <?php |
651 | - | |
652 | - // BOUTONS SUBMIT | |
653 | - echoSubmitButtons($this, $materiel->id); | |
654 | - | |
655 | - /* | |
656 | - // - Bouton Enregistrer | |
657 | - //echo $this->Form->submit(__('Enregistrer')); | |
658 | - echo $this->Form->button('Enregistrer', ['class'=>'btn btn-outline-success', 'type'=>'submit']); | |
659 | - // - Bouton Cancel | |
660 | - //echo $this->Html->link(__('<i class="icon-minus-sign"></i> Annuler'), ['action' => 'view', $materiel->id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); | |
661 | - echo $this->Form->button(('<i class="btn btn-outline-dark btn-sm">Annuler</i>'), ['action' => 'view', $materiel->id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); | |
662 | - */ | |
656 | + // BOUTONS SUBMIT | |
657 | + $echoSubmitButtons($this, 'view', $materiel->id); | |
658 | + /* | |
659 | + // - Bouton Enregistrer | |
660 | + //echo $this->Form->submit(__('Enregistrer')); | |
661 | + echo $this->Form->button('Enregistrer', ['class'=>'btn btn-outline-success', 'type'=>'submit']); | |
662 | + // - Bouton Cancel | |
663 | + //echo $this->Html->link(__('<i class="icon-minus-sign"></i> Annuler'), ['action' => 'view', $materiel->id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); | |
664 | + echo $this->Form->button(('<i class="btn btn-outline-dark btn-sm">Annuler</i>'), ['action' => 'view', $materiel->id], ['escape' => false,'onclick' => 'return true;','style' => 'margin-right: 10px']); | |
665 | + */ | |
663 | 666 | |
664 | 667 | // Fin du formulaire |
665 | 668 | echo $this->Form->end(); | ... | ... |
src/Template/Materiels/view.ctp
... | ... | @@ -209,18 +209,18 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN |
209 | 209 | $photo = $document; |
210 | 210 | //on reconstitue le nom a partir des paramètres (idmat_nom_id.extension) |
211 | 211 | $nomPhoto = $photo->materiel_id . "_" . $photo->nom . "_" . $photo->id . "." .$photo->type_doc; |
212 | - | |
213 | 212 | //Et si la photo n'est pas vide on l'affiche |
214 | 213 | if(!empty($photo)) { |
215 | 214 | echo $this->Html->image('photos/'.$nomPhoto, [ |
216 | 215 | //si il y a une erreur sur le nom affiche le texte alternatif |
217 | 216 | 'alt' => 'Photo du matériel', |
218 | - 'style' => 'max-width: 300px; text-align: center;' | |
217 | + 'style' => 'max-width:300px; text-align:center; float:none;' | |
219 | 218 | ]); |
220 | 219 | } |
221 | 220 | } |
222 | 221 | } |
223 | 222 | |
223 | + echo "\n"; | |
224 | 224 | // QRCODE (Url) |
225 | 225 | //debug($this->request->env('HTTP_REFERER')); // 'http://labinvent.test/materiels' |
226 | 226 | //debug($this->request); |
... | ... | @@ -234,7 +234,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN |
234 | 234 | echo $this->Html->image('qrcodes/' . $this->request->getSession() |
235 | 235 | ->read("filename"), [ |
236 | 236 | 'alt' => 'QrCode : ' . $materiel->numero_laboratoire, |
237 | - 'style' => 'float: right' | |
237 | + 'style' => 'float:right;' | |
238 | 238 | ]); |
239 | 239 | ?> |
240 | 240 | </div> |
... | ... | @@ -398,19 +398,23 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN |
398 | 398 | |
399 | 399 | // BOUTON ETIQUETTE (si imprimante disponible) |
400 | 400 | if ($CAN_PRINT_LABEL) { |
401 | - // - Bouton "Imprimer sur un ruban" | |
402 | - $echoActionButton($this->Html, 'icon-print', $bStyle, ' Impr. étiquette', '', 'printLabelRuban', h($materiel->id), [], "Imprimer sur un ruban"); | |
403 | - // - Bouton "Etiquette posée" | |
404 | - $echoActionButton( | |
405 | - $this->Html, 'icon-file', $bStyle, | |
401 | + | |
402 | + // - Bouton "Imprimer étiquette" | |
403 | + $echoActionButton($this->Html, 'icon-print', $bStyle, | |
404 | + ' étiquette', '', 'printLabelRuban', h($materiel->id), [], | |
405 | + "Imprimer sur un ruban"); | |
406 | + | |
407 | + // - Bouton "Etiquette [non] collée" | |
408 | + //$echoActionButton($this->Html, 'icon-file', $bStyle.'; background: red; color: white', | |
409 | + $echoActionButton($this->Html, 'icon-file', $bStyle, | |
406 | 410 | $materiel->etiquette ? " Etiquette NON collée" : " Etiquette collée", |
407 | 411 | 'materiels', |
408 | 412 | $materiel->etiquette ? 'setLabelIsNotPlaced' : 'setLabelIsPlaced', |
409 | 413 | h($materiel->id), ['view'], |
410 | 414 | $materiel->etiquette ? |
411 | - "En cliquant sur ce bouton, vous déclarez que l'étiquette n'a PAS été posée sur le matériel" | |
415 | + "En cliquant sur ce bouton, vous déclarez que l'étiquette n'a PAS été collée sur le matériel" | |
412 | 416 | : |
413 | - "En cliquant sur ce bouton, vous certifiez que l'étiquette a bien été posée sur le matériel" | |
417 | + "En cliquant sur ce bouton, vous certifiez que l'étiquette a bien été collée sur le matériel" | |
414 | 418 | ); |
415 | 419 | //'style' => 'margin-left: 0px; margin-right: 10px', |
416 | 420 | } |
... | ... | @@ -465,9 +469,11 @@ if ($materiel->date_fin_garantie !== NULL) { |
465 | 469 | $dateFin = $dateFin->format('Ymd'); |
466 | 470 | } |
467 | 471 | |
472 | +$style_red = 'style="color: #FF0000"'; | |
473 | +$style_green = 'style="color: green"'; | |
468 | 474 | $style = ''; |
469 | 475 | if (isset($dateFin) && $today >= $dateFin) |
470 | - $style = 'style="color: #FF0000"'; | |
476 | + $style = $style_red; | |
471 | 477 | $type = ""; |
472 | 478 | if (h($materiel->materiel_administratif) == 1 && h($materiel->materiel_technique) == 1) |
473 | 479 | $type = 'Administratif et technique'; |
... | ... | @@ -492,7 +498,8 @@ if (h($materiel->etiquette) == 0) |
492 | 498 | else |
493 | 499 | $etiq = "Oui"; |
494 | 500 | |
495 | -$displayElement(__('Etiquette posée'), $etiq); | |
501 | +$displayElement(__('Etiquette collée'), $etiq, $etiq=="Oui"?$style_green:$style_red); | |
502 | + | |
496 | 503 | $displayElement(__('N° de série'), $materiel->numero_serie); |
497 | 504 | $displayElement(__($configuration->nom_groupe_thematique), $materiel->has('groupes_thematique') ? $this->Html->link($materiel->groupes_thematique->nom, [ |
498 | 505 | 'controller' => 'GroupesThematiques', |
... | ... | @@ -760,13 +767,15 @@ $bStyle = 'margin:0'; |
760 | 767 | <?php |
761 | 768 | if ($document->photo) { |
762 | 769 | // TODO: $echoActionButton() |
763 | - echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/img/photos/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ | |
770 | + //echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/img/photos/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ | |
771 | + echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/img/photos/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ | |
764 | 772 | 'title' => 'Télécharger', |
765 | 773 | 'style' => 'margin:0', |
766 | 774 | 'escape' => false |
767 | 775 | ]); |
768 | 776 | } else { |
769 | - echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/files/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ | |
777 | + //echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/webroot/files/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ | |
778 | + echo $this->Html->link(__('<i class="icon-download-alt"></i>'), '/files/' . $document->materiel_id .'_' . $document->nom.'_'. $document->id . '.' . $document->type_doc, [ | |
770 | 779 | 'title' => 'Télécharger', |
771 | 780 | 'style' => 'margin:0', |
772 | 781 | 'escape' => false |
... | ... | @@ -794,7 +803,7 @@ $bStyle = 'margin:0'; |
794 | 803 | ], [ |
795 | 804 | 'escape' => false, |
796 | 805 | 'style' => 'margin:0', |
797 | - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $document->id) | |
806 | + 'confirm' => __('Êtes-vous sur de vouloir supprimer le doc #{0}?', $document->id) | |
798 | 807 | ]); |
799 | 808 | // Envoyer devis par mail (envoyer des mails avec les documents en pj) |
800 | 809 | echo $this->Form->postLink(__('<i class="icon-envelope"></i>'), [ | ... | ... |
src/Template/Pages/about.ctp
... | ... | @@ -8,14 +8,14 @@ echo <<<"EOD" |
8 | 8 | <section id="cadre" class="col-lg-12"> |
9 | 9 | Ce logiciel sert a inventorier le matériel d'un laboratoire (à l'origine, celui de l'IRAP).<br><br> |
10 | 10 | |
11 | -COPYRIGHT (C) 2012-2019 IRAP (Institut de Recherche en Astrophysique et Planetologie) Toulouse - France <br><br> | |
11 | +COPYRIGHT (C) 2012-2020 IRAP (Institut de Recherche en Astrophysique et Planetologie) Toulouse - France <br><br> | |
12 | 12 | |
13 | 13 | Auteurs : <br> |
14 | +- Etienne Pallier (epallier@irap.omp.eu), Architecture<br> | |
15 | +- Elodie Bourrec (ebourrec@irap.omp.eu), Administration base de données<br> | |
16 | +- Marielle Lacombe (mlacombe@obs-mip.fr), Chef de projet<br> | |
14 | 17 | - Upsilon (micro-entreprise Université Toulouse 3 Paul Sabatier), réalisation version initiale 2012<br> |
15 | -- Marielle Lacombe (mlacombe@obs-mip.fr), chef de projet<br> | |
16 | -- Elodie Bourrec (ebourrec@irap.omp.eu), administration base de données<br> | |
17 | -- Etienne Pallier (epallier@irap.omp.eu), développement<br><br> | |
18 | - | |
18 | +<br> | |
19 | 19 | Licence GPL (http://www.gnu.org/copyleft/gpl.html)<br><br> |
20 | 20 | |
21 | 21 | This program is free software: you can redistribute it and/or modify | ... | ... |
src/Template/Pages/acls.ctp
1 | +<div class="index"> | |
2 | + <h2> | |
3 | + <i class="icon-print"></i> AUTORISATIONS | |
4 | + </h2> | |
5 | + | |
6 | + <br /> | |
7 | + <br /> | |
8 | + <h3>AUTORISATIONS DES UTILISATEURS (PROFILS)</h3> | |
9 | + <hr /> | |
10 | + | |
11 | + <br /> | |
12 | + <p> | |
13 | + <!-- ancien lien WIKI | |
14 | + <a href="https://projects.irap.omp.eu/projects/inventirap/wiki/Installation#I-Etiquettes-optionnel"> | |
15 | + --> | |
16 | + <!-- new lien GDOC --> | |
17 | + => | |
18 | + <a href="https://docs.google.com/document/d/1JTi3YX6X33asn9vfPGAPaFZ3u8IMGnAqCf2Ge0nWdtI/edit#heading=h.jaa6i3mtbmnr"> | |
19 | + Lien vers ce chapitre dans la documentation technique | |
20 | + </a> | |
21 | + </p> | |
22 | +</div> | |
23 | + | |
24 | +<?php | |
25 | + | |
26 | +/* ANCIENNE PAGE WEB | |
27 | + | |
28 | + | |
29 | + | |
1 | 30 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"> |
2 | 31 | <html xmlns="http://www.w3.org/1999/xhtml"> |
3 | 32 | <!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--> |
... | ... | @@ -882,7 +911,7 @@ ODF styles with no properties representable as CSS -->.Tableau2.13 .T10 .T11 .T1 |
882 | 911 | <p class="P1"> </p> |
883 | 912 | <p class="P4"> |
884 | 913 | Cette page n'est plus à jour, se référer à <a |
885 | - href="https://docs.google.com/document/d/1-OhEeoi96j6ueUl5NQCQ9ZsTfbJTFw3ZVaWU2iYly_o/edit" | |
914 | + href="https://docs.google.com/document/d/1JTi3YX6X33asn9vfPGAPaFZ3u8IMGnAqCf2Ge0nWdtI/edit#heading=h.jaa6i3mtbmnr" | |
886 | 915 | onclick="window.open(this.href); return false;">ce document</a> |
887 | 916 | </p> |
888 | 917 | <p class="P1"> </p> |
... | ... | @@ -1597,4 +1626,9 @@ ODF styles with no properties representable as CSS -->.Tableau2.13 .T10 .T11 .T1 |
1597 | 1626 | </div> |
1598 | 1627 | --> |
1599 | 1628 | </body> |
1600 | -</html> | |
1601 | 1629 | \ No newline at end of file |
1630 | +</html> | |
1631 | + | |
1632 | + | |
1633 | + | |
1634 | +*/ | |
1635 | +?> | |
1602 | 1636 | \ No newline at end of file | ... | ... |
src/Template/Pages/printers.ctp
... | ... | @@ -10,8 +10,13 @@ |
10 | 10 | |
11 | 11 | <br /> |
12 | 12 | <p> |
13 | + <!-- ancien lien WIKI | |
13 | 14 | <a href="https://projects.irap.omp.eu/projects/inventirap/wiki/Installation#I-Etiquettes-optionnel"> |
14 | - Lien vers le wiki | |
15 | + --> | |
16 | + <!-- new lien GDOC --> | |
17 | + => | |
18 | + <a href="https://docs.google.com/document/d/1-OhEeoi96j6ueUl5NQCQ9ZsTfbJTFw3ZVaWU2iYly_o/edit#heading=h.gx3h9cf2hpj9"> | |
19 | + Lien vers ce chapitre dans la documentation technique | |
15 | 20 | </a> |
16 | 21 | </p> |
17 | 22 | </div> | ... | ... |
webroot/css/responsive.css
... | ... | @@ -69,38 +69,55 @@ div.form, div.index, div.view { |
69 | 69 | } |
70 | 70 | |
71 | 71 | /*boutons*/ |
72 | + | |
73 | +/* | |
74 | +(EP 2020 03 09) | |
75 | +Jeanne avait fait ça mais c'est inutile et surtout incorrect | |
76 | +car les boutons changent de nombre (et de place)... | |
77 | +Donc par exemple, le bouton numero 6 n'est pas toujours le meme !!! | |
78 | + | |
72 | 79 | #boutons > a:nth-child(1) { |
73 | - margin-right: 20px; | |
74 | 80 | display: inline-block; |
81 | + margin-right: 20px; | |
75 | 82 | margin-bottom: 10px; |
76 | 83 | } |
77 | 84 | #boutons > a:nth-child(2) { |
78 | - margin-right: 20px; | |
79 | 85 | display: inline-block; |
86 | + margin-right: 20px; | |
80 | 87 | margin-bottom: 10px; |
81 | 88 | } |
82 | 89 | #boutons > a:nth-child(3) { |
83 | - margin-right: 20px; | |
84 | 90 | display: inline-block; |
91 | + margin-right: 20px; | |
85 | 92 | margin-bottom: 10px; |
86 | 93 | } |
87 | 94 | #boutons > a:nth-child(6) { |
95 | + display:inline-block; | |
88 | 96 | margin-right: 20px; |
89 | 97 | margin-top:10px; |
90 | - display:inline-block; | |
91 | 98 | color:red |
92 | 99 | } |
93 | 100 | #boutons > a:nth-child(4) { |
94 | - margin-right: 10px; | |
95 | 101 | display: inline-block; |
102 | + margin-right: 10px; | |
96 | 103 | margin-bottom: 10px; |
97 | 104 | } |
98 | 105 | #boutons > a:nth-child(10) { |
106 | + display: inline-block; | |
99 | 107 | margin-right: 10px; |
100 | 108 | background: green; |
101 | 109 | color: white; |
110 | +} | |
111 | +*/ | |
112 | + | |
113 | +/* (EP) Je propose plutot ceci par défaut pour tous les boutons */ | |
114 | +#boutons > a { | |
102 | 115 | display: inline-block; |
116 | + margin-right: 20px; | |
117 | + margin-bottom: 10px; | |
103 | 118 | } |
119 | + | |
120 | + | |
104 | 121 | #materiel_images > img:nth-child(1) { |
105 | 122 | float: right; |
106 | 123 | padding-top: 17px; | ... | ... |