Commit e7832ff7 authored by tguillon's avatar tguillon
Browse files

Modification : factorisation des vues pour le formulaire et pour la fiche

Modification : armonisation des champs entre le formulaires et la déclaration d'un traitement (fiche)
Modification : numéro de version
parent acc6973c
......@@ -19,7 +19,7 @@ Le format est basé sur le modèle [Keep a Changelog](http://keepachangelog.com/
### Suppressions
1.0.2 - 2019-XX-XX
1.1.0 - 2019-XX-XX
=====
### Ajouts
......@@ -47,6 +47,8 @@ connecté.
- Correction de l'affectation d'un sous-traitant à une entité
- Correction de l'affectation d'un co-responsable à une entité
- Correction du fichier webdpo.inc.default sur l'url de Gedooo
- Affichage du formulaire
- Affichage du traitement
### Suppressions
- Suppression de l'utilisation du système de verrouillage d'un traitement au registre.
......
......@@ -341,34 +341,72 @@ class FichesController extends AppController
$soustraitants = $this->_soustraitants();
$responsables = $this->_responsables();
$organisation = $this->Organisation->find('first', [
'conditions' => [
'id' => $this->Session->read('Organisation.id')
],
'fields' => [
'raisonsociale',
'telephone',
'fax',
'adresse',
'email',
'sigle',
'siret',
'ape',
'civiliteresponsable',
'nomresponsable',
'prenomresponsable',
'emailresponsable',
'telephoneresponsable',
'fonctionresponsable',
'dpo',
'numerodpo'
]
]);
if (empty($this->request->data)) {
$organisation = $this->Organisation->find('first', [
'conditions' => [
'id' => $this->Session->read('Organisation.id')
],
'fields' => [
'raisonsociale',
'telephone',
'fax',
'adresse',
'email',
'sigle',
'siret',
'ape',
'civiliteresponsable',
'nomresponsable',
'prenomresponsable',
'emailresponsable',
'telephoneresponsable',
'fonctionresponsable',
'dpo',
'numerodpo'
]
]);
$this->request->data['Fiche'] = Hash::extract($organisation, 'Organisation');
//On récupére le DPO de la collectivité
$userDPO = $this->_dpoOrganisation($organisation['Organisation']['dpo']);
$this->request->data['Fiche']['dpo'] = $userDPO['User']['civilite'] . ' ' . $userDPO['User']['prenom'] . ' ' . $userDPO['User']['nom'];
$this->request->data['Fiche']['fixDpo'] = $userDPO['User']['telephonefixe'];
$this->request->data['Fiche']['emailDpo'] = $userDPO['User']['email'];
$this->request->data['Fiche']['portableDpo'] = $userDPO['User']['telephoneportable'];
//On récupére le DPO de la collectivité
$userDPO = $this->_dpoOrganisation($organisation['Organisation']['dpo']);
// User
$userLog = $this->User->find('first', [
'conditions' => [
'User.id' => $this->Session->read("Auth.User.id")
],
'fields' => [
'nom_complet_court',
'email',
'telephonefixe',
'telephoneportable'
]
]);
$this->request->data['Fiche']['declarantpersonnenom'] = $userLog['User']['nom_complet_court'];
$this->request->data['Fiche']['declarantpersonneemail'] = $userLog['User']['email'];
$this->request->data['Fiche']['declarantpersonnefix'] = $userLog['User']['telephonefixe'];
$this->request->data['Fiche']['declarantpersonneportable'] = $userLog['User']['telephoneportable'];
// $service = $this->OrganisationUser->find('all', [
// 'conditions' => [
// 'user_id' => $this->Auth->user('id'),
// 'organisation_id' => $this->Session->read('Organisation.id')
// ],
// 'contain' => [
// 'OrganisationUserService' => [
// 'Service'
// ]
// ]
// ]);
// $serviceUser = Hash::extract($service, '{n}.OrganisationUserService.Service');
// $listeUserService = Hash::combine($serviceUser, '{n}.libelle', '{n}.libelle');
}
$this->set(compact('champs', 'options_normes', 'descriptions_normes', 'soustraitance', 'soustraitants', 'responsables', 'organisation', 'userDPO'));
$this->set(compact('champs', 'options_normes', 'descriptions_normes', 'soustraitance', 'soustraitants', 'responsables'));
}
/**
......
......@@ -310,6 +310,10 @@ class FormulairesController extends AppController {
}
if ($this->request->is('POST')) {
debug($this->request->data);
die;
$success = true;
$this->Formulaire->begin();
......
<!-- Onglet Annexe(s) -->
<div id="annexe" class="tab-pane">
<br/>
<!-- Texte Ajouter une pièce jointe -->
<h4>
<?php echo __d('fiche', 'fiche.textAjouterPieceJointe'); ?>
</h4>
<br/>
<!-- Texte format fichier accepté -->
<div class="alert alert-warning" role="alert">
<?php echo __d('fiche', 'fiche.textTypeFichierAccepter'); ?>
</div>
<?php
$i = $this->Html->tag(
'i',
'<!---->',
['class' => 'fa fa-cloud-upload fa-4x text-primary']
);
$p = $this->Html->tag(
'p',
('Glissez-déposez vos fichiers ici')
);
echo $this->Html->tag(
'div',
$i.$p,
['class' => 'dropbox']
);
?>
<br/>
<table class="table" id="render">
<tbody>
<?php
if (!empty($files)) {
foreach ($files as $key => $file) {
?>
<tr id="rowFiche<?php echo $key; ?>">
<td class="col-md-1">
<i class="fa fa-file-text-o fa-lg"><!----></i>
</td>
<td class="col-md-9 tdleft">
<?php echo $file ?>
</td>
<td class="col-md-2">
<button type="button" class="btn btn-warning" onclick="deleteFile('<?php echo $file ?>','<?php echo $key ?>')">
<i class="fa fa-times-circle"><!----></i>
Annuler
</button>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<?php
if (!empty($filesSave)) {
?>
<div class="col-md-12 top30">
<h4>
<?php echo __d('fiche', 'fiche.textInfoPieceJointe'); ?>
</h4>
<table class="table">
<tbody>
<?php
foreach ($filesSave as $val) {
?>
<tr id="rowFichier<?php echo $val['Fichier']['id']; ?>">
<td class="col-md-1">
<i class="fa fa-file-text-o fa-lg"><!----></i>
</td>
<td class="col-md-9 tdleft">
<?php echo $val['Fichier']['nom']; ?>
</td>
<td class="col-md-2 boutonsFile boutonsFile"<?php echo $val['Fichier']['id']; ?>>
<?php
echo $this->Html->link('<span class="fa fa-download fa-lg"><!----></span>', [
'controller' => 'fiches',
'action' => 'download',
$val['Fichier']['url'],
$val['Fichier']['nom']
], [
'class' => 'btn btn-default-default boutonShow btn-sm my-tooltip',
'title' => 'Télécharger le fichier',
'escapeTitle' => false
]);
?>
<button type="button" class="btn btn-default-danger btn-sm my-tooltip left5 btn-del-file" onclick="deleteFileSave('<?php echo $val['Fichier']['id'] ?>','<?php echo $val['Fichier']['url'] ?>')">
<i class="fa fa-trash fa-lg"><!----></i>
</button>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<hr/>
<?php
}
?>
</div>
<!-- Fin onglet Annexe(s) -->
<script type="text/javascript">
$(document).ready(function () {
$.fn.extend({
logEvents: function() {
return this.each(function () {
$(this).onAny(function(event) {
console.log(event.target, event.type);
});
});
}
});
$.fn.onAny = function(cb){
for(var k in this[0])
if(k.search('on') === 0)
this.on(k.slice(2), function(e){
// Probably there's a better way to call a callback function with right context, $.proxy() ?
cb.apply(this,[e]);
});
return this;
};
$('.dropbox').onAny(function(event) {
event.preventDefault();
$(this).removeClass('dragover');
});
$('.dropbox').on('dragover', function() {
$(this).addClass('dragover');
});
$('.dropbox').on('dragout, dragleave, dragexit', function() {
$(this).removeClass('dragover');
});
$('.dropbox').on('drop', function(event) {
var formData = new FormData(),
files = [];
for (var key in event.originalEvent.dataTransfer.files) {
formData.append('fichiers[]', event.originalEvent.dataTransfer.files[key]);
}
$.ajax({
url: '/fiches/saveFileTmp',
method: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(data) {
try{
var content = JSON.parse(data);
for (var key in content) {
var tr = $('<tr id="rowFiche'+key+'"><\/tr>')
.append('<td class="col-md-1"><i class="fa fa-file-text-o fa-lg"><!----><\/i><\/td>')
.append('<td class="col-md-9 tdleft">'+content[key].filename+'<\/td>')
.append('<td class="col-md-2"><button type="button" class="btn btn-warning" onclick=\"deleteFile(\''+content[key].filename+'\',\''+key+'\')\"><i class="fa fa-times-circle"><!----><\/i> Annuler<\/button><\/td>')
$('#render').find('tbody').append(tr);
}
}catch(e){
alert("error");
return;
}
},
error: function() {
alert('error');
}
});
});
});
function deleteFile(file, key){
$.ajax({
url: '/fiches/deleteFile',
method: 'POST',
data: {filename :file},
success: function() {
var row = document.getElementById("rowFiche"+key);
row.parentNode.removeChild(row);
},
error: function() {
alert('Erreur lors de la suppression du fichier');
}
});
}
function deleteFileSave(idFile, urlFile){
$.ajax({
url: '/fiches/deleteRecordingFile',
method: 'POST',
data: {
idFile : idFile,
urlFile : urlFile
},
success: function() {
var row = document.getElementById("rowFichier"+idFile);
row.parentNode.removeChild(row);
},
error: function() {
alert('Erreur lors de la suppression du fichier');
}
});
}
</script>
\ No newline at end of file
<?php
if (!empty($responsables)) {
?>
<!-- Onglet Co-responsable -->
<div id="ongletCoresponsable" class="tab-pane">
<br/>
<!-- Information sur le rédacteur -->
<div class="col-md-12">
<span class='labelFormulaire'>
<?php
echo __d('fiche', 'fiche.textInfoConcernantCoresponsable');
?>
</span>
<div class="row row35"></div>
</div>
<!-- Champs du formulaire -->
<div class="row">
<div class="col-md-6">
<?php
echo $this->WebcilForm->input('coresponsableid', [
'id' => 'coresponsableid',
'class' => 'form-control usersDeroulant',
'options' => Hash::combine($responsables, '{n}.Responsable.id', '{n}.Responsable.raisonsocialestructure'),
'empty' => true,
'multiple' => false,
'required' => true,
'data-placeholder' => __d('fiche', 'fiche.placeholderChampCoresponsable')
]);
?>
</div>
</div>
<div class="col-md-12">
<span class='labelFormulaire'>
<?php
echo __d('responsable', 'responsable.titreCoresponsable');
?>
</span>
<div class="row row35"></div>
</div>
<div class="row">
<!-- Colonne de gauche -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->inputs([
'nomcoresponsable' => [
'id' => 'nomcoresponsable',
'required' => true,
'readonly' => true,
'placeholder' => false
],
'prenomcoresponsable' => [
'id' => 'prenomcoresponsable',
'required' => true,
'readonly' => true,
'placeholder' => false
],
'fonctioncoresponsable' => [
'id' => 'fonctioncoresponsable',
'required' => true,
'readonly' => true,
'placeholder' => false
]
]);
?>
</div>
<!-- Colonne de droite -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->inputs([
'emailcoresponsable' => [
'id' => 'emailcoresponsable',
'required' => true,
'readonly' => true,
'placeholder' => false
],
'telephonecoresponsable' => [
'id' => 'telephonecoresponsable',
'required' => true,
'readonly' => true,
'placeholder' => false
]
]);
?>
</div>
</div>
<div class="col-md-12">
<span class='labelFormulaire'>
<?php
echo __d('responsable', 'responsable.titreStructureCoresponsable');
?>
</span>
<div class="row row35"></div>
</div>
<div class="row">
<!-- Colonne de gauche -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->inputs([
'raisonsocialestructure' => [
'id' => 'raisonsocialestructure',
'required' => true,
'readonly' => true,
'placeholder' => false
],
'siretstructure' => [
'id' => 'siretstructure',
'required' => true,
'readonly' => true,
'placeholder' => false
],
'apestructure' => [
'id' => 'apestructure',
'required' => true,
'readonly' => true,
'placeholder' => false
]
]);
?>
</div>
<!-- Colonne de droite -->
<div class="col-md-6">
<?php
echo $this->WebcilForm->inputs([
'telephonestructure' => [
'id' => 'telephonestructure',
'readonly' => true,
'placeholder' => false
],
'faxstructure' => [
'id' => 'faxstructure',
'readonly' => true,
'placeholder' => false
],
'adressestructure' => [
'id' => 'adressestructure',
'type' => 'textarea',
'readonly' => true,
'placeholder' => false
],
'emailstructure' => [
'id' => 'emailstructure',
'readonly' => true,
'placeholder' => false
]
]);
?>
</div>
</div>
</div>
<!-- Fin onglet Co-responsable -->
<?php
}
?>
<script type="text/javascript">
$(document).ready(function () {
var coresponsable = $("#coresponsable").val();
if (coresponsable == true) {
$('#liOngletCoresponsable').removeClass('disabled');
$('#aOngletCoresponsable').attr('role', 'tab');
$('#aOngletCoresponsable').attr('data-toggle', 'tab');
} else {
$('#liOngletCoresponsable').addClass('disabled');
$('#aOngletCoresponsable').attr('role', '');
$('#aOngletCoresponsable').attr('data-toggle', '');
}
$("#coresponsable").change(function () {
idCoresponsable = $(this).val();
if (idCoresponsable == true) {
$('#liOngletCoresponsable').removeClass('disabled');
$('#aOngletCoresponsable').attr('role', 'tab');
$('#aOngletCoresponsable').attr('data-toggle', 'tab');
} else {
$('#liOngletCoresponsable').addClass('disabled');
$('#aOngletCoresponsable').attr('role', '');
$('#aOngletCoresponsable').attr('data-toggle', '');
}
});
var infoCoresponsable = <?php echo json_encode(Hash::combine($responsables, '{n}.Responsable.id', '{n}.Responsable'))?>;
$("#coresponsableid").change(function () {
idcoresponsable = $(this).val();
if (idcoresponsable === '') {
str = null;
$("#nomcoresponsable").val(str);
$("#prenomcoresponsable").val(str);
$("#emailcoresponsable").val(str);
$("#telephonecoresponsable").val(str);
$("#fonctioncoresponsable").val(str);
$("#raisonsocialestructure").val(str);
$("#siretstructure").val(str);
$("#apestructure").val(str);
$("#telephonestructure").val(str);
$("#faxstructure").val(str);
$("#adressestructure").val(str);
$("#emailstructure").val(str);
} else {
$("#nomcoresponsable").val(infoCoresponsable[idcoresponsable]['nomresponsable']);
$("#prenomcoresponsable").val(infoCoresponsable[idcoresponsable]['prenomresponsable']);
$("#emailcoresponsable").val(infoCoresponsable[idcoresponsable]['emailresponsable']);
$("#telephonecoresponsable").val(infoCoresponsable[idcoresponsable]['telephoneresponsable']);
$("#fonctioncoresponsable").val(infoCoresponsable[idcoresponsable]['fonctionresponsable']);
$("#raisonsocialestructure").val(infoCoresponsable[idcoresponsable]['raisonsocialestructure']);
$("#siretstructure").val(infoCoresponsable[idcoresponsable]['siretstructure']);
$("#apestructure").val(infoCoresponsable[idcoresponsable]['apestructure']);
$("#telephonestructure").val(infoCoresponsable[idcoresponsable]['telephonestructure']);
$("#faxstructure").val(infoCoresponsable[idcoresponsable]['faxstructure']);
$("#adressestructure").val(infoCoresponsable[idcoresponsable]['adressestructure']);
$("#emailstructure").val(infoCoresponsable[idcoresponsable]['emailstructure']);
}
});
});
</script>
\ No newline at end of file
<!-- Onglet Information sur l'entité -->
<div id="infos" class="tab-pane">
<br/>
<!--Information sur l'entité -->
<div class="col-md-12">
<span class='labelFormulaire'>
<?php
echo __d('organisation','organisation.textEntite');