diff --git a/gulliver/js/form/core/form.js b/gulliver/js/form/core/form.js index 321fff4b4..bd91c889b 100755 --- a/gulliver/js/form/core/form.js +++ b/gulliver/js/form/core/form.js @@ -2550,10 +2550,9 @@ var validateGridForms = function(invalidFields){ for(j=0; jfields as $field) { + // verify fields in grids + if($field->type == 'grid') { + array_push($grids, $field->name); + foreach ($field->fields as $fieldGrid) { + if (is_object($fieldGrid) && isset($fieldGrid->required) && $fieldGrid->required) { + if (!in_array($fieldGrid->type, $skippedFieldsTypes)) { + if ( !(is_array($requiredFieldsGrids[$field->name])) ) { + $requiredFieldsGrids[$field->name] = array(); + } + array_push($requiredFieldsGrids[$field->name], $fieldGrid->name); + } + } + } + } + + // verify fields the form if (is_object($field) && isset($field->required) && $field->required) { if (!in_array($field->type, $skippedFieldsTypes)) { array_push($requiredFields, $field->name); @@ -523,12 +541,25 @@ class Form extends XmlForm } foreach($dataFields as $dataFieldName => $dataField) { + if (in_array($dataFieldName, $grids)) { + foreach ($dataField as $indexGrid => $dataGrid) { + foreach ($dataGrid as $fieldGridName => $fieldGridValue) { + if (in_array($fieldGridName, $requiredFieldsGrids[$dataFieldName]) && !in_array($fieldGridName, $noRequired) && trim($fieldGridValue) == '') { + if ( !(is_array($notPassedFields[$dataFieldName])) ) { + $notPassedFields[$dataFieldName] = array(); + } + $notPassedFields[$dataFieldName][$indexGrid][] = $fieldGridName; + } + } + } + } + //verify if the requiered field is in $requiredFields array if (in_array($dataFieldName, $requiredFields) && !in_array($dataFieldName, $noRequired) && trim($dataField) == '') { $notPassedFields[] = $dataFieldName; } } - + return count($notPassedFields) > 0 ? $notPassedFields : false; } diff --git a/workflow/engine/templates/cases/missRequiredFields.php b/workflow/engine/templates/cases/missRequiredFields.php index 9832af781..8067c5c02 100755 --- a/workflow/engine/templates/cases/missRequiredFields.php +++ b/workflow/engine/templates/cases/missRequiredFields.php @@ -32,7 +32,7 @@ - $width_content = '430px'; + $width_content = '500px'; $html = '
@@ -46,12 +46,26 @@
'; $rq = $_POST['req_val']; - foreach( $rq as $field) { - $html .= " + foreach( $rq as $indexRq => $field) { + if ( is_array($field) ) { + foreach ($field as $row => $fieldsRow) { + foreach ($fieldsRow as $fieldGrid) { + $html .= "
+ +
+ (*) The field $fieldGrid of the row + $row in the grid + $indexRq is required! +
"; + } + } + } else { + $html .= "
(*) The field $field is required!
"; + } } $netxpage = $_POST['next_step']['PAGE']; @@ -65,7 +79,7 @@ echo '
- +
'.$html.'