Commit 835a9e83 authored by Théo GUILLON's avatar Théo GUILLON
Browse files

Modification : enregistrement des champs supplémentaire sur la coresponsabilité

Ajout : enregistrement des valeurs des champs répété pour la coresponsabilité
Correction : enregistrement valeur défault dans un formulaire
parent af037de2
...@@ -269,3 +269,9 @@ msgstr "doit être" ...@@ -269,3 +269,9 @@ msgstr "doit être"
msgid "formulaire.champIfNot" msgid "formulaire.champIfNot"
msgstr "sinon il sera" msgstr "sinon il sera"
msgid "formulaire.infoUseFieldsAdditionalCoresponsable"
msgstr "Les champs que vous allez créent en dessous seront répétés pour chacun co-responsable sélectionné"
msgid "formulaire.infoUseFieldsAdditionalSoustraitant"
msgstr "Les champs que vous allez créent en dessous seront répétés pour chacun sous-traitant sélectionné"
...@@ -513,8 +513,6 @@ class WebdpoFiche extends AppModel { ...@@ -513,8 +513,6 @@ class WebdpoFiche extends AppModel {
protected function cleanupData(array $data, array $formulaireChamps, bool $formulaireOLD, array $fieldsToDelete) protected function cleanupData(array $data, array $formulaireChamps, bool $formulaireOLD, array $fieldsToDelete)
{ {
debug($data);
// @TODO faire cela au moment de la génération // @TODO faire cela au moment de la génération
// Ajout textuel de la coresponsabilité // Ajout textuel de la coresponsabilité
if ($data['Fiche']['coresponsable'] == true) { if ($data['Fiche']['coresponsable'] == true) {
...@@ -828,24 +826,28 @@ class WebdpoFiche extends AppModel { ...@@ -828,24 +826,28 @@ class WebdpoFiche extends AppModel {
} }
} }
$success = true;
// On vérifie que les champs suplémentaite du formualaire ne soient pas obligatoire // On vérifie que les champs suplémentaite du formualaire ne soient pas obligatoire
foreach ($data[$this->alias]['coresponsabilitefields'] as $responsable_id => $coresponsabilitefield) { if (isset($data[$this->alias]['coresponsabilitefields']) && !empty($data[$this->alias]['coresponsabilitefields'])) {
foreach ($arrayCoresponsableFields as $arrayCoresponsableField) { $success = true;
if (empty($coresponsabilitefield[$arrayCoresponsableField['name']]) && $arrayCoresponsableField['obligatoire'] === true) {
//@TODO ERREUR champ obligatoire
// $this->alias->validationErrors['coresponsabilitefields'][$responsable_id][$arrayCoresponsableField['name']] = 'Champ obligatoire';
$success = false; foreach ($data[$this->alias]['coresponsabilitefields'] as $responsable_id => $coresponsabilitefield) {
foreach ($arrayCoresponsableFields as $arrayCoresponsableField) {
if (empty($coresponsabilitefield[$arrayCoresponsableField['name']]) && $arrayCoresponsableField['obligatoire'] === true) {
//@TODO ERREUR champ obligatoire
// $this->alias->validationErrors['coresponsabilitefields'][$responsable_id][$arrayCoresponsableField['name']] = 'Champ obligatoire';
$success = false;
}
} }
} }
}
if ($success === false) { if ($success === false) {
return $data; return $data;
} }
$data[$this->alias]['coresponsabilitefields'] = json_encode($data[$this->alias]['coresponsabilitefields'], true); $data[$this->alias]['coresponsabilitefields'] = json_encode($data[$this->alias]['coresponsabilitefields'], true);
}
return $data; return $data;
} }
......
...@@ -57,6 +57,20 @@ ...@@ -57,6 +57,20 @@
</div> </div>
<!-- Fin onglet Co-responsable --> <!-- Fin onglet Co-responsable -->
<?php
if (isset($this->request->data['Coresponsable']['coresponsables'])) {
$coresponsablesRequestData = $this->request->data['Coresponsable']['coresponsables'];
} else {
$coresponsablesRequestData = null;
}
if (isset($this->request->data['WebdpoFiche']['coresponsabilitefields'])) {
$coresponsabilitefieldsRequestData = $this->request->data['WebdpoFiche']['coresponsabilitefields'];
} else {
$coresponsabilitefieldsRequestData = null;
}
?>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function () { $(document).ready(function () {
...@@ -68,7 +82,7 @@ ...@@ -68,7 +82,7 @@
let infoCoresponsables = <?php echo json_encode(Hash::combine($responsables, '{n}.Responsable.id', '{n}.Responsable'))?>; let infoCoresponsables = <?php echo json_encode(Hash::combine($responsables, '{n}.Responsable.id', '{n}.Responsable'))?>;
<?php <?php
if (isset($fields['coresponsable'])) { if (isset($fields['coresponsable']) && !empty($fields['coresponsable'])) {
$templateFieldsCoresponsable = $this->element('Fiches/tabs/formulaire', [ $templateFieldsCoresponsable = $this->element('Fiches/tabs/formulaire', [
'champs' => $fields['coresponsable'] 'champs' => $fields['coresponsable']
]); ]);
...@@ -83,17 +97,22 @@ ...@@ -83,17 +97,22 @@
?> ?>
let templateFieldsCoresponsable = <?php echo json_encode($templateFieldsCoresponsable);?>; let templateFieldsCoresponsable = <?php echo json_encode($templateFieldsCoresponsable);?>;
let coresponsablesRequestData = <?php echo json_encode($this->request->data['Coresponsable']['coresponsables']);?>; let coresponsablesRequestData = <?php echo json_encode($coresponsablesRequestData);?>;
let coresponsabilitefieldsRequestData = <?php echo json_encode($coresponsabilitefieldsRequestData);?>;
$(coresponsablesRequestData).each(function (key, val) { if (coresponsablesRequestData) {
createCard(templateFieldsCoresponsable, infoCoresponsables, val); $(coresponsablesRequestData).each(function (key, val) {
}); createCard(templateFieldsCoresponsable, infoCoresponsables, val, coresponsabilitefieldsRequestData);
});
}
// Quand on sélectionne dans le champ Co-responsable(s)
$(eventSelect).on("select2:select", function (e) { $(eventSelect).on("select2:select", function (e) {
let idSelect = e.params.data.id; let idSelect = e.params.data.id;
createCard(templateFieldsCoresponsable, infoCoresponsables, idSelect); createCard(templateFieldsCoresponsable, infoCoresponsables, idSelect);
}); });
// Quand on déselectionne dans le champ Co-responsable(s)
$(eventSelect).on("select2:unselect", function (e) { $(eventSelect).on("select2:unselect", function (e) {
let id = e.params.data.id let id = e.params.data.id
let idRemove = '#card_coresponsable_' + id; let idRemove = '#card_coresponsable_' + id;
...@@ -106,18 +125,20 @@ ...@@ -106,18 +125,20 @@
}); });
function createCard(templateFieldsCoresponsable, infoCoresponsables, idSelect) { function createCard(templateFieldsCoresponsable, infoCoresponsables, idSelect, coresponsabilitefieldsRequestData = null) {
let coresponsable = infoCoresponsables[idSelect]; let coresponsable = infoCoresponsables[idSelect];
let colLeft = ''; let colLeft = '';
let fields = templateFieldsCoresponsable.replace(/data\[WebdpoFiche\]/g, 'data[WebdpoFiche][coresponsabilitefields]['+idSelect+']');
fields = fields.replace(/(for|id)="(<?php echo implode('|', $arrayFieldsId);?>)"/g, '$1="cr_'+idSelect+'_$2"');
let formCoreponsableFields = ''; let formCoreponsableFields = '';
if (fields) { if (templateFieldsCoresponsable) {
formCoreponsableFields = '<div id="form-container-coresponsable">'; let fields = templateFieldsCoresponsable.replace(/data\[WebdpoFiche\]/g, 'data[WebdpoFiche][coresponsabilitefields]['+idSelect+']');
formCoreponsableFields = formCoreponsableFields + fields; fields = fields.replace(/(for|id)="(<?php echo implode('|', $arrayFieldsId);?>)"/g, '$1="cr_'+idSelect+'_$2"');
formCoreponsableFields = formCoreponsableFields + '</div>';
if (fields) {
formCoreponsableFields = '<div id="form-container-coresponsable">';
formCoreponsableFields = formCoreponsableFields + fields;
formCoreponsableFields = formCoreponsableFields + '</div>';
}
} }
if (coresponsable['adressestructure'] != null) { if (coresponsable['adressestructure'] != null) {
...@@ -186,6 +207,13 @@ ...@@ -186,6 +207,13 @@
' </div>' + ' </div>' +
'</div>' + '</div>' +
'</div>'); '</div>');
// On attribut la valeur au champ si il y en a une.
if (coresponsabilitefieldsRequestData !== null) {
$.each(coresponsabilitefieldsRequestData[idSelect], function (key, val) {
$('#cr_'+idSelect+'_'+key).val(val);
});
}
} }
</script> </script>
\ No newline at end of file
...@@ -34,6 +34,14 @@ ...@@ -34,6 +34,14 @@
<br/> <br/>
<div class="alert alert-warning" role="alert">
<?php
echo __d('formulaire', 'formulaire.infoUseFieldsAdditionalCoresponsable');
?>
</div>
<br>
<?php <?php
echo $this->element( echo $this->element(
'Formulaires/boutonsCreationChamp', 'Formulaires/boutonsCreationChamp',
......
...@@ -35,6 +35,14 @@ ...@@ -35,6 +35,14 @@
<br/> <br/>
<div class="alert alert-warning" role="alert">
<?php
echo __d('formulaire', 'formulaire.infoUseFieldsAdditionalSoustraitant');
?>
</div>
<br>
<?php <?php
echo $this->element( echo $this->element(
'Formulaires/boutonsCreationChamp', 'Formulaires/boutonsCreationChamp',
......
...@@ -510,9 +510,12 @@ let createForm = function(typeCreateForm) { ...@@ -510,9 +510,12 @@ let createForm = function(typeCreateForm) {
); );
} }
//ICI 999
if ($(object).is('.checkboxes, .radios, .deroulant, .multi-select')) { if ($(object).is('.checkboxes, .radios, .deroulant, .multi-select')) {
let list = '', let list = '',
classNameNomDeVariableRequired = '',
nom = '', nom = '',
forLabelNomChamp = null,
classListeValeur = '', classListeValeur = '',
nameNomDeVariable = '', nameNomDeVariable = '',
forLabelNomDuChamp = '', forLabelNomDuChamp = '',
......
...@@ -107,7 +107,8 @@ $(document).ready(function () { ...@@ -107,7 +107,8 @@ $(document).ready(function () {
let valuesCheckboxesDefault = []; let valuesCheckboxesDefault = [];
$('input[name="'+fieldNameCheckboxes+'"]:checked').each(function() { $('input[name="'+fieldNameCheckboxes+'"]:checked').each(function() {
valuesCheckboxesDefault.push($(this).value); // valuesCheckboxesDefault.push($(this).value);
valuesCheckboxesDefault.push($(this).attr('value'));
}); });
objFieldDetails['default'] = valuesCheckboxesDefault; objFieldDetails['default'] = valuesCheckboxesDefault;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment