From 90919d4f4b2dbc07656480b701e96bf5a27bc4db Mon Sep 17 00:00:00 2001 From: Enrique Ponce De Leon Date: Thu, 2 Jun 2011 11:10:20 -0400 Subject: [PATCH] BUG 5648 Fixing restriction to multiple parent dependencie - This commit change grid dropdown default options ommited --- gulliver/js/grid/core/grid.js | 32 ++++++++++++++++++++++---------- gulliver/methods/defaultAjax.php | 2 +- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/gulliver/js/grid/core/grid.js b/gulliver/js/grid/core/grid.js index a51c411bf..01170191b 100644 --- a/gulliver/js/grid/core/grid.js +++ b/gulliver/js/grid/core/grid.js @@ -416,6 +416,15 @@ var G_Grid = function(oForm, sGridName){ //aObjects[0].options.add(xOption); oNewSelect.options.add(xOption); } + }else{ + //Copy all options + var oAux = document.createElement(aObjects[0].tagName); + for ( var j = 0; j < aObjects[0].options.length; j++) { + var oOption = document.createElement('OPTION'); + oOption.value = aObjects[0].options[j].value; + oOption.text = aObjects[0].options[j].text; + oNewSelect.options.add(oOption); + } } //TODO: Implement Default Value and Dependent Fields Trigger for grid dropdowns } @@ -475,17 +484,20 @@ var G_Grid = function(oForm, sGridName){ var exist = false; for (i=0; i < this.aFields.length; i++){ oAux = this.getElementByName(currentRow, this.aFields[i].sFieldName); - if (oAux.dependentFields.length > 0){ - exist = false; - for (m=0; m < xIsDependentOf.length; m++) - if (xIsDependentOf[m] == oAux.name) exist = true; - for (j=0; j < oAux.dependentFields.length; j++){ - xIsDependentOf.push(oAux.dependentFields[j].name); + if (typeof oAux !== 'undefined' && oAux != null) + if (typeof oAux.dependentFields !== 'undefined'){ + if (oAux.dependentFields.length > 0){ + exist = false; + for (m=0; m < xIsDependentOf.length; m++) + if (xIsDependentOf[m] == oAux.name) exist = true; + for (j=0; j < oAux.dependentFields.length; j++){ + xIsDependentOf.push(oAux.dependentFields[j].name); + } + if (!exist){ + oAux.updateDepententFields(); + } + } } - if (!exist){ - oAux.updateDepententFields(); - } - } } //Fires OnAddRow Event if (this.onaddrow) { diff --git a/gulliver/methods/defaultAjax.php b/gulliver/methods/defaultAjax.php index 1ec1c31f0..b2349e80a 100644 --- a/gulliver/methods/defaultAjax.php +++ b/gulliver/methods/defaultAjax.php @@ -56,7 +56,7 @@ $G_FORM->id=urlDecode($_POST['form']); //$G_FORM->values=isset($_SESSION[$G_FORM->id]) ? $_SESSION[$G_FORM->id] : array(); $newValues=($json->decode(urlDecode(stripslashes($_POST['fields'])))); - $newValues = array_unique($newValues); + if (isset($_POST['grid'])) { $_POST['row'] = (int)$_POST['row']; $aAux = array();