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"
msgid "formulaire.champIfNot"
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 {
protected function cleanupData(array $data, array $formulaireChamps, bool $formulaireOLD, array $fieldsToDelete)
{
debug($data);
// @TODO faire cela au moment de la génération
// Ajout textuel de la coresponsabilité
if ($data['Fiche']['coresponsable'] == true) {
......@@ -828,24 +826,28 @@ class WebdpoFiche extends AppModel {
}
}
$success = true;
// On vérifie que les champs suplémentaite du formualaire ne soient pas obligatoire
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';
if (isset($data[$this->alias]['coresponsabilitefields']) && !empty($data[$this->alias]['coresponsabilitefields'])) {
$success = true;
$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) {
return $data;
}
if ($success === false) {
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;
}
......
......@@ -57,6 +57,20 @@
</div>
<!-- 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">
$(document).ready(function () {
......@@ -68,7 +82,7 @@
let infoCoresponsables = <?php echo json_encode(Hash::combine($responsables, '{n}.Responsable.id', '{n}.Responsable'))?>;
<?php
if (isset($fields['coresponsable'])) {
if (isset($fields['coresponsable']) && !empty($fields['coresponsable'])) {
$templateFieldsCoresponsable = $this->element('Fiches/tabs/formulaire', [
'champs' => $fields['coresponsable']
]);
......@@ -83,17 +97,22 @@
?>
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) {
createCard(templateFieldsCoresponsable, infoCoresponsables, val);
});
if (coresponsablesRequestData) {
$(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) {
let idSelect = e.params.data.id;
createCard(templateFieldsCoresponsable, infoCoresponsables, idSelect);
});
// Quand on déselectionne dans le champ Co-responsable(s)
$(eventSelect).on("select2:unselect", function (e) {
let id = e.params.data.id
let idRemove = '#card_coresponsable_' + id;
......@@ -106,18 +125,20 @@
});
function createCard(templateFieldsCoresponsable, infoCoresponsables, idSelect) {
function createCard(templateFieldsCoresponsable, infoCoresponsables, idSelect, coresponsabilitefieldsRequestData = null) {
let coresponsable = infoCoresponsables[idSelect];
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 = '';
if (fields) {
formCoreponsableFields = '<div id="form-container-coresponsable">';
formCoreponsableFields = formCoreponsableFields + fields;
formCoreponsableFields = formCoreponsableFields + '</div>';
if (templateFieldsCoresponsable) {
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"');
if (fields) {
formCoreponsableFields = '<div id="form-container-coresponsable">';
formCoreponsableFields = formCoreponsableFields + fields;
formCoreponsableFields = formCoreponsableFields + '</div>';
}
}
if (coresponsable['adressestructure'] != null) {
......@@ -186,6 +207,13 @@
' </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>
\ No newline at end of file
......@@ -34,6 +34,14 @@
<br/>
<div class="alert alert-warning" role="alert">
<?php
echo __d('formulaire', 'formulaire.infoUseFieldsAdditionalCoresponsable');
?>
</div>
<br>
<?php
echo $this->element(
'Formulaires/boutonsCreationChamp',
......
......@@ -35,6 +35,14 @@
<br/>
<div class="alert alert-warning" role="alert">
<?php
echo __d('formulaire', 'formulaire.infoUseFieldsAdditionalSoustraitant');
?>
</div>
<br>
<?php
echo $this->element(
'Formulaires/boutonsCreationChamp',
......
......@@ -510,9 +510,12 @@ let createForm = function(typeCreateForm) {
);
}
//ICI 999
if ($(object).is('.checkboxes, .radios, .deroulant, .multi-select')) {
let list = '',
classNameNomDeVariableRequired = '',
nom = '',
forLabelNomChamp = null,
classListeValeur = '',
nameNomDeVariable = '',
forLabelNomDuChamp = '',
......
......@@ -107,7 +107,8 @@ $(document).ready(function () {
let valuesCheckboxesDefault = [];
$('input[name="'+fieldNameCheckboxes+'"]:checked').each(function() {
valuesCheckboxesDefault.push($(this).value);
// valuesCheckboxesDefault.push($(this).value);
valuesCheckboxesDefault.push($(this).attr('value'));
});
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