Commit 6f74ba5c0e86df4b80bed2ef70f55f07bdc88c3f
1 parent
f4e6dc02
Exists in
master
and in
3 other branches
Version: 2.5.3.0
ajout "administrer" form materiels + index "mes materiels" Demande (terminé) : https://projects.irap.omp.eu/issues/3906 https://projects.irap.omp.eu/issues/3916 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
Showing
8 changed files
with
435 additions
and
9 deletions
Show diff stats
README-LABINVENT.md
... | ... | @@ -51,13 +51,12 @@ Logiciel testé et validé sur les configurations suivantes : |
51 | 51 | VERSION ACTUELLE |
52 | 52 | |
53 | 53 | Date: 29/06/2016 |
54 | -Version: 2.5.2.0 | |
54 | +Version: 2.5.3.0 | |
55 | 55 | |
56 | -envoi mail ajout document + bugfixes + edition details doc + acl documents + pb saut de ligne champ "text | |
56 | +ajout "administrer" form materiels + index "mes materiels" | |
57 | 57 | |
58 | -Demande (terminé) : https://projects.irap.omp.eu/issues/3913 | |
59 | - https://projects.irap.omp.eu/issues/3716 | |
60 | - https://projects.irap.omp.eu/issues/3912 | |
58 | +Demande (terminé) : https://projects.irap.omp.eu/issues/3906 | |
59 | + https://projects.irap.omp.eu/issues/3916 | |
61 | 60 | |
62 | 61 | Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 |
63 | 62 | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -179,9 +179,19 @@ class MaterielsController extends AppController |
179 | 179 | if(isset($GMV)) { |
180 | 180 | $condition = ['Materiels.groupes_metier_id =' => $this->request->query('GMV'), 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; |
181 | 181 | } |
182 | + | |
183 | + $MY = $this->request->query('MY'); | |
184 | + if(isset($MY)) { | |
185 | + if(in_array($this->role, ['Utilisateur', 'Responsable'])) { | |
186 | + $condition = ['Materiels.nom_responsable =' => $this->request->query('MY'), 'Materiels.status !=' => 'ARCHIVED']; | |
187 | + } else { | |
188 | + $condition = ['Materiels.nom_responsable =' => $this->request->query('MY')]; | |
189 | + } | |
190 | + | |
191 | + } | |
182 | 192 | |
183 | 193 | |
184 | - if($this->role == 'Utilisateur') { | |
194 | + if(in_array($this->role, ['Utilisateur', 'Responsable']) && $condition != '') { | |
185 | 195 | $condition = ['Materiels.status !=' => 'ARCHIVED']; |
186 | 196 | } |
187 | 197 | |
... | ... | @@ -344,6 +354,61 @@ class MaterielsController extends AppController |
344 | 354 | $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); |
345 | 355 | $this->set('_serialize', ['materiel']); |
346 | 356 | } |
357 | + | |
358 | + | |
359 | + /** | |
360 | + * Administrer method | |
361 | + * | |
362 | + * @param string|null $id Materiel id. | |
363 | + * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. | |
364 | + * @throws \Cake\Network\Exception\NotFoundException When record not found. | |
365 | + */ | |
366 | + public function administrer($id = null) | |
367 | + { | |
368 | + $materiel = $this->Materiels->get($id, [ | |
369 | + 'contain' => [] | |
370 | + ]); | |
371 | + if ($this->request->is(['patch', 'post', 'put'])) { | |
372 | + $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); | |
373 | + if ($this->Materiels->save($materiel, ['checkRules' => false])) { | |
374 | + $this->Flash->success(__('Le matériel a bien été édité.')); | |
375 | + return $this->redirect(['action' => 'view', $id]); | |
376 | + } else { | |
377 | + $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); | |
378 | + } | |
379 | + } | |
380 | + $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SurCategories.nom']); | |
381 | + $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Categories.nom']); | |
382 | + $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SousCategories.nom']); | |
383 | + $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesThematiques.nom']); | |
384 | + $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); | |
385 | + $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); | |
386 | + $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); | |
387 | + | |
388 | + $users = TableRegistry::get('LdapConnections')->getListUsers(); | |
389 | + //tri des utilisateurs par nom | |
390 | + sort($users); | |
391 | + $utilisateurs = []; | |
392 | + for($i = 0; $i < sizeof($users); $i++) { | |
393 | + $utilisateurs[$users[$i]] = $users[$i]; | |
394 | + } | |
395 | + | |
396 | + if(!empty($materiel->get('nom_responsable'))){ | |
397 | + if(!in_array($materiel->get('nom_responsable'), $utilisateurs)){ | |
398 | + $nom_ancien_responsable = $materiel->get('nom_responsable'); | |
399 | + $this->set(compact('nom_ancien_responsable')); | |
400 | + } | |
401 | + } | |
402 | + $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email']; | |
403 | + | |
404 | + $this->set('IS_CREATED', $materiel->status == 'CREATED'); | |
405 | + $this->set('IS_VALIDATED', $materiel->status == 'VALIDATED'); | |
406 | + $this->set('IS_ARCHIVED_OR_TOBE', in_array ( $materiel->status, ['TOBEARCHIVED','ARCHIVED'])); | |
407 | + | |
408 | + $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); | |
409 | + $this->set('_serialize', ['materiel']); | |
410 | + } | |
411 | + | |
347 | 412 | |
348 | 413 | /** |
349 | 414 | * Delete method | ... | ... |
src/Model/Table/MaterielsTable.php
... | ... | @@ -278,6 +278,9 @@ class MaterielsTable extends AppTable |
278 | 278 | |
279 | 279 | public function beforeSave($event, $entity, $options) |
280 | 280 | { |
281 | + if(!$entity->get('administrer')) { | |
282 | + | |
283 | + | |
281 | 284 | if(!empty($entity->get('nom_responsable')) && empty($entity->get('nom_responsable'))){ |
282 | 285 | $entity->set('nom_responsable', $entity->get('nom_ancien_responsable')); |
283 | 286 | } |
... | ... | @@ -328,7 +331,8 @@ class MaterielsTable extends AppTable |
328 | 331 | } |
329 | 332 | } |
330 | 333 | |
331 | - | |
334 | + } | |
335 | + | |
332 | 336 | if(empty($entity->get('date_acquisition'))){ |
333 | 337 | $entity->set('date_acquisition', null); |
334 | 338 | } | ... | ... |
src/Template/Layout/default.ctp
... | ... | @@ -94,7 +94,7 @@ $cakeDescription = 'Labinvent 2'; |
94 | 94 | </i></td> |
95 | 95 | <td id="version"> |
96 | 96 | <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> |
97 | - <font color="black">VERSION 2.5.2.0 (29/06/2016)</font> | |
97 | + <font color="black">VERSION 2.5.3.0 (29/06/2016)</font> | |
98 | 98 | </td> |
99 | 99 | </tr> |
100 | 100 | </table> | ... | ... |
... | ... | @@ -0,0 +1,344 @@ |
1 | +<div class="materiels form"> | |
2 | + <?= $this->Form->create($materiel) ?> | |
3 | + <fieldset> | |
4 | + <h2><i class="icon-edit"></i> Administrer un Matériel</h2> | |
5 | + | |
6 | + <?php | |
7 | + echo $this->Html->link('Retourner au formulaire d\'édition classique', ['action' => 'edit', $materiel->id]); | |
8 | + echo '<br><br>'; | |
9 | + ?> | |
10 | + <?= $this->Form->submit(__('Enregistrer')) ?> | |
11 | + | |
12 | + <?php | |
13 | + | |
14 | + echo $this->Form->input('designation', ['label' => 'Désignation']); | |
15 | + | |
16 | + echo $this->Form->input('numero_laboratoire', ['label' => 'Numéro de laboratoire']); | |
17 | + | |
18 | + echo $this->Form->input('hors_service', ['label' => 'Appareil hors_service']); | |
19 | + | |
20 | + echo $this->Form->input('etiquette', [ | |
21 | + 'label' => 'Etiquette posée', | |
22 | + ]); | |
23 | + | |
24 | + | |
25 | + echo $this->Form->input('sur_categorie_id', [ | |
26 | + 'label' => 'Domaine', | |
27 | + 'options' => $surCategories, | |
28 | + 'empty' => 'Choisir un domaine', | |
29 | + 'style' => 'width: 260px', | |
30 | + | |
31 | + ]); | |
32 | + | |
33 | + $categs = $categories; | |
34 | + // if a domaine is selected, reduce the categories list to this domaine | |
35 | + if (isset ( $this->request->data['sur_categorie_id'] ) && ($this->request->data['sur_categorie_id'] != '')) { | |
36 | + $categs = $categs->where(['sur_categorie_id =' => $this->request->data['sur_categorie_id']]); | |
37 | + } | |
38 | + echo $this->Form->input('categorie_id', [ | |
39 | + 'label' => 'Catégorie', | |
40 | + 'style' => 'width: 380px', | |
41 | + 'options' => $categs, | |
42 | + 'empty' => 'Choisir une catégorie', | |
43 | + ]); | |
44 | + | |
45 | + // SOUS-CATEGORIES | |
46 | + // by default, list is empty | |
47 | + $souscategs = []; | |
48 | + // if a categ is selected, update sous-categs list for this categ (only) | |
49 | + if (isset ( $this->request->data['categorie_id'] ) && ($this->request->data['categorie_id'] != '')) { | |
50 | + $souscategs = $sousCategories; | |
51 | + $souscategs = $souscategs->where(['categorie_id' => $this->request->data['categorie_id']]); | |
52 | + } | |
53 | + echo $this->Form->input('sous_categorie_id', [ | |
54 | + 'label' => 'Sous-catégorie', | |
55 | + 'style' => 'width: 380px', | |
56 | + 'options' => $souscategs, | |
57 | + 'empty' => 'Choisir une sous-catégorie', | |
58 | + ]); | |
59 | + | |
60 | + echo $this->Form->input('materiel_technique', [ | |
61 | + 'label' => 'Technique', | |
62 | + ]); | |
63 | + echo $this->Form->input('materiel_administratif', [ | |
64 | + 'label' => 'Inventoriable (>'.$configuration->prix_inventaire_administratif.'€)', | |
65 | + ]); | |
66 | + | |
67 | + echo $this->Form->input('description', [ | |
68 | + 'label' => 'Description', | |
69 | + ]); | |
70 | + | |
71 | + | |
72 | + echo $this->Form->input('site_id', [ | |
73 | + 'options' => $sites, | |
74 | + 'style' => 'width: 380px', | |
75 | + 'default' => 9, | |
76 | + ]); | |
77 | + | |
78 | + echo $this->Form->input('lieu_detail', ['label' => 'Détail lieu de stockage']); | |
79 | + | |
80 | + echo $this->Form->input('date_acquisition', [ | |
81 | + 'type' => 'text', | |
82 | + 'label' => 'Date de la commande', | |
83 | + 'class' => 'datepicker', | |
84 | + 'placeholder' => 'Cliquez pour sélectionner une date', | |
85 | + ]); | |
86 | + echo $this->Form->input('date_reception', [ | |
87 | + 'type' => 'text', | |
88 | + 'label' => 'Date de réception', | |
89 | + 'class' => 'datepicker', | |
90 | + 'placeholder' => 'A éditer lors de la réception uniquement.', | |
91 | + 'empty' => true]); | |
92 | + | |
93 | + | |
94 | + echo '<table id="tableAlignementFrequence"><tr><td>'; | |
95 | + echo $this->Form->input('duree_garantie', [ | |
96 | + 'type' => 'text', | |
97 | + 'style' => 'width: 100px', | |
98 | + 'label' => 'Durée garantie', | |
99 | + 'templates' => ['inputContainer' => '<div class="A">{{content}}</div>'], | |
100 | + 'placeholder' => '' | |
101 | + ]); | |
102 | + echo '</td><td>'; | |
103 | + echo $this->Form->input ('unite_duree_garantie', [ | |
104 | + 'label' => false, | |
105 | + 'templates' => ['inputContainer' => '<div class="typeFrequence">{{content}}</div>'], | |
106 | + 'options' => ['Mois' => 'Mois', 'Ans' => 'Ans'], | |
107 | + 'default' => 'Ans' | |
108 | + ]); | |
109 | + echo '</td></tr></table>'; | |
110 | + echo $this->Form->input('date_fin_garantie', [ | |
111 | + 'type' => 'text', | |
112 | + 'label' => 'Date fin de garantie', | |
113 | + 'placeholder' => 'Cliquez pour selectionner une date', | |
114 | + 'class' => 'datepicker', | |
115 | + 'default' => NULL | |
116 | + ]); | |
117 | + | |
118 | + | |
119 | + echo $this->Form->input('status', ['label' => 'Statut', 'options' => [ | |
120 | + 'CREATED' => 'CREATED', | |
121 | + 'VALIDATED' => 'VALIDATED', | |
122 | + 'TOBEARCHIVED' => 'TOBEARCHIVED', | |
123 | + 'ARCHIVED' => 'ARCHIVED']]); | |
124 | + | |
125 | + echo $this->Form->input('numero_serie', [ | |
126 | + 'label' => 'Numéro de série', | |
127 | + ]); | |
128 | + echo $this->Form->input('groupes_thematique_id', [ | |
129 | + 'label' => $configuration->nom_groupe_thematique, | |
130 | + 'options' => $groupesThematiques, | |
131 | + 'default' => 1]); | |
132 | + echo $this->Form->input('groupes_metier_id', [ | |
133 | + 'label' => $configuration->nom_groupe_metier, | |
134 | + 'options' => $groupesMetiers, | |
135 | + 'default' => 1]); | |
136 | + | |
137 | + if(!(in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { | |
138 | + echo $this->Form->hidden('nom_responsable', [ | |
139 | + 'label' => 'Nom du propriétaire', | |
140 | + 'disabled' => $isReadonlyField('nom_responsable', $myReadonlyFields), | |
141 | + 'empty' => 'Choisir un utilisateur', | |
142 | + 'default' => $username, | |
143 | + 'options' => $utilisateurs, | |
144 | + ]); | |
145 | + } | |
146 | + | |
147 | + if(isset($nom_ancien_responsable)){ | |
148 | + echo $this->Form->input ('nom_ancien_responsable', [ | |
149 | + 'label' => 'Nom ancien propriétaire', | |
150 | + 'readonly' => true, | |
151 | + 'default' => $nom_ancien_responsable | |
152 | + ]); | |
153 | + } | |
154 | + | |
155 | + echo $this->Form->input('email_responsable', [ | |
156 | + 'label' => 'Email du propriétaire', | |
157 | + 'default' => $mail_responsable | |
158 | + ]); | |
159 | + | |
160 | + | |
161 | + echo $this->Form->input('fournisseur', [ | |
162 | + 'label' => 'Fournisseur', | |
163 | + ]); | |
164 | + echo $this->Form->input('organisme_id', [ | |
165 | + 'options' => $organismes, | |
166 | + 'style' => 'width: 380px', | |
167 | + 'empty' => 'Choisir un organisme' | |
168 | + ]); | |
169 | + echo $this->Form->input('prix_ht', [ | |
170 | + 'label' => 'Prix HT (€)', | |
171 | + ]); | |
172 | + | |
173 | + echo '<div style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE;"><span style="font-size: 9px; color: red;">Partie administrative</span>'; | |
174 | + | |
175 | + echo $this->Form->input('adminEdit', [ | |
176 | + 'type' => 'checkbox', | |
177 | + 'label' => 'Editer la partie administrative', | |
178 | + 'onchange' => 'changeAdminEdit();', | |
179 | + 'default' => false | |
180 | + ]); | |
181 | + | |
182 | + echo $this->Form->input('eotp', [ | |
183 | + 'label' => 'Centre financier/EOTP', | |
184 | + 'disabled' => true | |
185 | + ]); | |
186 | + echo $this->Form->input('numero_commande', [ | |
187 | + 'label' => 'Numéro de commande', | |
188 | + 'disabled' => true | |
189 | + ]); | |
190 | + echo $this->Form->input('code_comptable', [ | |
191 | + 'label' => 'Code comptable', | |
192 | + 'disabled' => true | |
193 | + ]); | |
194 | + echo $this->Form->input('numero_inventaire_organisme', [ | |
195 | + 'label' => 'N° inventaire organisme', | |
196 | + 'disabled' => true | |
197 | + ]); | |
198 | + echo $this->Form->input('numero_inventaire_old', [ | |
199 | + 'label' => 'Ancien N° inventaire', | |
200 | + 'disabled' => true | |
201 | + ]); | |
202 | + echo '</div>'; | |
203 | + | |
204 | + echo $this->Form->input('nom_createur', ['label' => 'Nom du créateur']); | |
205 | + echo $this->Form->input('created', [ | |
206 | + 'label' => 'Date de création']); | |
207 | + echo $this->Form->input('nom_modificateur', ['label' => 'Nom du modificateur', 'value' => $username ]); | |
208 | + echo $this->Form->input('modified', [ | |
209 | + 'label' => 'Date de modification']); | |
210 | + | |
211 | + echo $this->Form->hidden('administrer', ['default' => 1]); | |
212 | + ?> | |
213 | + </fieldset> | |
214 | + <?= $this->Form->submit(__('Enregistrer')) ?> | |
215 | + <?= $this->Form->end() ?> | |
216 | +</div> | |
217 | + | |
218 | +<div class="actions"> | |
219 | + <?php | |
220 | + echo $this->element('menu'); | |
221 | + echo $this->element('menu_form', [ 'pluralHumanName' => 'Matériels' ]); | |
222 | + ?> | |
223 | +</div> | |
224 | + | |
225 | + | |
226 | +<?php | |
227 | +/** | |
228 | + * GESTION DES EVENEMENTS SUR LES DOMAINES/CATEGORIES/SOUS-CATEGORIES | |
229 | + * | |
230 | + * Phase initialisation (1ère ouverture de la page) : | |
231 | + * - domaine ==> value = TOUS, select = "choisir" (ADD) ou data (EDIT) | |
232 | + * - categ ==> value = TOUTES (ADD) ou from domaine (EDIT), select = "choisir" (ADD) ou data (EDIT) | |
233 | + * - scateg ==> value = Aucune (ADD) ou from categ (EDIT), select = "choisir" (ADD) ou data (EDIT) | |
234 | + * | |
235 | + * Event domaine change : | |
236 | + * - si select <> "choisir" ==> categ value = from domaine (select="choisir"), et vider scateg | |
237 | + * - si select = "choisir" ==> categ value = TOUTES (select="choisir"), et vider scateg | |
238 | + * | |
239 | + * Event categ change : | |
240 | + * - si select <> "choisir" ==> domaine select = from categ, et scateg values = from categ | |
241 | + * - si select = "choisir" ==> vider scateg | |
242 | + * | |
243 | + * Event scateg change : RIEN A FAIRE | |
244 | + */ | |
245 | +?> | |
246 | + | |
247 | +<script type="text/javascript"> | |
248 | + | |
249 | +/** | |
250 | + * Event DOMAINE change | |
251 | + * | |
252 | + * Sur sélection d'un DOMAINE ==> update CATEGORIES + empty SOUS-CATEGORIES | |
253 | + * | |
254 | + * Dans le détail : | |
255 | + * - si select <> "choisir" ==> categ value = from domaine (select="choisir") | |
256 | + * - si select = "choisir" ==> categ value = TOUTES (select="choisir") | |
257 | + * - puis (dans les 2 cas) vider scateg | |
258 | + * | |
259 | + */ | |
260 | + | |
261 | +$(document).ready(function () { | |
262 | + $("#sur-categorie-id").bind("change", function (event) { | |
263 | + var domaineId=$("#sur-categorie-id :selected").val(); | |
264 | + | |
265 | + if (domaineId=="") | |
266 | + updateSelectOptionsFromAnother("#categorie-id", "#sur-categorie-id", "Categories/getAll", "Choisir une catégorie"); | |
267 | + else | |
268 | + updateSelectOptionsFromAnother("#categorie-id", "#sur-categorie-id", "Categories/getBySurCategorie", "Choisir une catégorie"); | |
269 | + emptySelectOptions("#sous-categorie-id","Choisir une sous-catégorie"); | |
270 | + return false; | |
271 | + }); | |
272 | +}); | |
273 | + | |
274 | +/** | |
275 | + * | |
276 | + * Event CATEGORIE change | |
277 | + * | |
278 | + * - si select = "choisir" ==> vider scateg | |
279 | + * - si select <> "choisir" ==> domaine value selected = celui de la categ, et scateg values = from categ | |
280 | + */ | |
281 | +$(document).ready(function () { | |
282 | + $("#categorie-id").bind("change", function (event) { | |
283 | + var categId=$("#categorie-id :selected").val(); | |
284 | + var categLabel=$("#categorie-id :selected").text(); | |
285 | + | |
286 | + if (categId=="") emptySelectOptions("#sous-categorie-id","Choisir une sous-catégorie"); | |
287 | + else { | |
288 | + updateSelectOptionsFromAnother("#sous-categorie-id", "#categorie-id", "SousCategories/getByCategorie", "Choisir une sous-catégorie "+categLabel); | |
289 | + updateSelectOptionsFromAnother("#sur-categorie-id", "#categorie-id", "SurCategories/getFromCategorie", ""); | |
290 | + } | |
291 | + return false; | |
292 | + }); | |
293 | +}); | |
294 | + | |
295 | + | |
296 | + /** | |
297 | + * Event Mail change | |
298 | + */ | |
299 | + $(document).ready(function () { | |
300 | + $("#nom-responsable").bind("change", function (event) { | |
301 | + var url = document.URL; | |
302 | + var reg=new RegExp("(materiels).*$","g"); | |
303 | + var emailUrl = url.replace(reg, "Users/getLdapEmail/"); | |
304 | + $.ajax({ | |
305 | + url: emailUrl + $("#nom-responsable").val() | |
306 | + }).done(function(data) { | |
307 | + $("#email-responsable").val(data) | |
308 | + }); | |
309 | + }); | |
310 | + }); | |
311 | + | |
312 | + | |
313 | + /** | |
314 | + * Event calcul date fin de garantie | |
315 | + */ | |
316 | + $(document).ready(function () { | |
317 | + $("#duree-garantie").bind("change", function (event) { | |
318 | + if($("#date-reception").val() != "" && $("#duree-garantie").val() != "") { | |
319 | + var url = document.URL; | |
320 | + var reg=new RegExp("(materiels).*$","g"); | |
321 | + var dateUrl = url.replace(reg, "Materiels/getDateGarantie/"); | |
322 | + $.ajax({ | |
323 | + url: dateUrl + $("#date-reception").val() + "/" + $("#duree-garantie").val() + "/" + $("#unite-duree-garantie").val() | |
324 | + }).done(function(data) { | |
325 | + $("#date-fin-garantie").val(data) | |
326 | + }); | |
327 | + } | |
328 | + }); | |
329 | + $("#unite-duree-garantie").bind("change", function (event) { | |
330 | + if($("#date-reception").val() != "" && $("#duree-garantie").val() != "") { | |
331 | + var url = document.URL; | |
332 | + var reg=new RegExp("(materiels).*$","g"); | |
333 | + var dateUrl = url.replace(reg, "Materiels/getDateGarantie/"); | |
334 | + $.ajax({ | |
335 | + url: dateUrl + $("#date-reception").val() + "/" + $("#duree-garantie").val() + "/" + $("#unite-duree-garantie").val() | |
336 | + }).done(function(data) { | |
337 | + $("#date-fin-garantie").val(data) | |
338 | + }); | |
339 | + } | |
340 | + }); | |
341 | + }); | |
342 | + | |
343 | + | |
344 | +</script> | ... | ... |
src/Template/Materiels/edit.ctp
... | ... | @@ -39,6 +39,14 @@ if ($IS_VALIDATED) |
39 | 39 | <?= $this->Form->create($materiel) ?> |
40 | 40 | <fieldset> |
41 | 41 | <h2><i class="icon-edit"></i> Editer un Matériel</h2> |
42 | + | |
43 | + | |
44 | + <?php | |
45 | + if($role == 'Super Administrateur') { | |
46 | + echo $this->Html->link('Aller au formulaire d\'édition avancée', ['action' => 'administrer', $materiel->id]); | |
47 | + echo '<br><br>'; | |
48 | + } | |
49 | + ?> | |
42 | 50 | <?= $this->Form->submit(__('Enregistrer')) ?> |
43 | 51 | |
44 | 52 | <?php | ... | ... |
src/Template/Pages/home_app.ctp
... | ... | @@ -10,6 +10,12 @@ |
10 | 10 | echo 'et avec le niveau d\'authentification <b>'.$role.'</b>.'; |
11 | 11 | echo '<p>'; |
12 | 12 | |
13 | + echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; | |
14 | + echo '<tr><th></th></tr>'; | |
15 | + echo '<tr><td> '.$this->Html->link('Voir mes matériels', [ | |
16 | + 'controller' => 'materiels', 'action' => 'index', 'MY' => $username]).' </td></tr>'; | |
17 | + echo '</table>'; | |
18 | + | |
13 | 19 | //Utilisateur admin/super admin |
14 | 20 | if (in_array($role, ['Administration', 'Administration Plus'])) { |
15 | 21 | echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">'; | ... | ... |
src/Template/Pages/tools.ctp
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | echo '<tr><td>'; |
25 | 25 | echo $this->Html->link('Gérer les fichiers', ['controller' => 'documents', 'action' => 'index']); |
26 | 26 | echo '</td></tr>'; |
27 | - endif; | |
27 | + endif; | |
28 | 28 | |
29 | 29 | echo '<tr><td>'; |
30 | 30 | echo $this->Html->link('Export de la liste des materiels actifs (format CSV)', ['controller' => 'materiels', 'action' => 'export']); | ... | ... |