BUG 0000 "Problem in dependent fields with suggest field in grids" SOLVED
- Problem in dependent fields with suggest field in grids
- Solved problem in dependent fields with suggest field in grids
- The QA team should test with (in grids):
suggest -> suggest -> suggest
suggest -> dropdown -> suggest
dropdown -> suggest -> suggest
dropdown -> suggest -> dropdown
text -> suggest -> suggest
text -> suggest -> text
* Browsers IE7, IE8, IE9, Firefox and Chrome
* Available from version ProcessMaker-2.0.46
This commit is contained in:
@@ -105,15 +105,20 @@ function G_Field ( form, element, name )
|
|||||||
var tempValue;
|
var tempValue;
|
||||||
if (me.dependentFields.length===0) return true;
|
if (me.dependentFields.length===0) return true;
|
||||||
var fields=[],Fields = [],i,grid='',row=0;
|
var fields=[],Fields = [],i,grid='',row=0;
|
||||||
|
var gridField = "";
|
||||||
|
|
||||||
for(i in me.dependentFields) {
|
for(i in me.dependentFields) {
|
||||||
if (me.dependentFields[i].dependentOf) {
|
if (me.dependentFields[i].dependentOf) {
|
||||||
for (var j = 0; j < me.dependentFields[i].dependentOf.length; j++) {
|
for (var j = 0; j < me.dependentFields[i].dependentOf.length; j++) {
|
||||||
var oAux = me.dependentFields[i].dependentOf[j];
|
var oAux = me.dependentFields[i].dependentOf[j];
|
||||||
if (oAux.name.indexOf('][') > -1) {
|
if (oAux.name.indexOf('][') > -1) {
|
||||||
var aAux = oAux.name.split('][');
|
var arrayAux = oAux.name.split("][");
|
||||||
grid = aAux[0];
|
grid = arrayAux[0];
|
||||||
row = aAux[1];
|
row = parseInt(arrayAux[1]);
|
||||||
fieldName = aAux[2];
|
fieldName = arrayAux[2];
|
||||||
|
|
||||||
|
gridField = gridGetAllFieldAndValue(oAux.name, 0); //Not get current field
|
||||||
|
|
||||||
if (Fields.length > 0){
|
if (Fields.length > 0){
|
||||||
aux = Fields;
|
aux = Fields;
|
||||||
aux.push('?');
|
aux.push('?');
|
||||||
@@ -145,15 +150,19 @@ function G_Field ( form, element, name )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var callServer;
|
var callServer;
|
||||||
|
|
||||||
callServer = new leimnud.module.rpc.xmlhttp({
|
callServer = new leimnud.module.rpc.xmlhttp({
|
||||||
url : me.form.ajaxServer,
|
url: me.form.ajaxServer,
|
||||||
async : false,
|
async: false,
|
||||||
method : "POST",
|
method: "POST",
|
||||||
args : "function=reloadField&" + 'form='+encodeURIComponent(me.form.id)+'&fields='+encodeURIComponent(fields.toJSONString())+(grid!=''?'&grid='+grid:'')+(row>0?'&row='+row:'')
|
args: "function=reloadField" + "&form=" + encodeURIComponent(me.form.id) + "&fields=" + encodeURIComponent(fields.toJSONString()) + ((grid != "")? "&grid=" + grid + ((gridField != "")? "&gridField=" + encodeURIComponent("{" + gridField + "}") : "") : "") + ((row > 0)? "&row=" + row: "")
|
||||||
});
|
});
|
||||||
|
|
||||||
callServer.make();
|
callServer.make();
|
||||||
var response = callServer.xmlhttp.responseText;
|
var response = callServer.xmlhttp.responseText;
|
||||||
|
|
||||||
//Validate the response
|
//Validate the response
|
||||||
if (response.substr(0,1)==='[') {
|
if (response.substr(0,1)==='[') {
|
||||||
var newcont;
|
var newcont;
|
||||||
@@ -316,6 +325,9 @@ function G_DropDown( form, element, name )
|
|||||||
dd.options[key] = null;
|
dd.options[key] = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dd.options.length = 0; //Delete options
|
||||||
|
|
||||||
// the remove function is no longer reliable
|
// the remove function is no longer reliable
|
||||||
// while(dd.options.length>1) dd.remove(0);
|
// while(dd.options.length>1) dd.remove(0);
|
||||||
for(var o=0;o<content.options.length;o++) {
|
for(var o=0;o<content.options.length;o++) {
|
||||||
@@ -324,6 +336,10 @@ function G_DropDown( form, element, name )
|
|||||||
optn.value = content.options[o].key;
|
optn.value = content.options[o].key;
|
||||||
dd.options[o]=optn;
|
dd.options[o]=optn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dd.options.length == 0) {
|
||||||
|
dd.options[0] = new Option("", "");
|
||||||
|
}
|
||||||
};
|
};
|
||||||
if (!element) return;
|
if (!element) return;
|
||||||
leimnud.event.add(this.element,'change',this.updateDepententFields);
|
leimnud.event.add(this.element,'change',this.updateDepententFields);
|
||||||
@@ -3595,3 +3611,38 @@ function getNumericValue(val, decimalSeparator)
|
|||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var gridGetAllFieldAndValue = function (fieldId, swCurrentField)
|
||||||
|
{
|
||||||
|
var frm = G.getObject(getField(fieldId).form);
|
||||||
|
|
||||||
|
var arrayAux = fieldId.split("][");
|
||||||
|
var gridName = arrayAux[0];
|
||||||
|
var row = parseInt(arrayAux[1]);
|
||||||
|
var fieldName = arrayAux[2];
|
||||||
|
|
||||||
|
var grid;
|
||||||
|
var gridField = "";
|
||||||
|
var fieldNameAux = "";
|
||||||
|
var fieldValueAux = "";
|
||||||
|
var i1 = 0;
|
||||||
|
var i2 = 0;
|
||||||
|
|
||||||
|
//Get all fields of grid
|
||||||
|
for (i1 = 0; i1 <= frm.aElements.length - 1; i1++) {
|
||||||
|
if (frm.aElements[i1].name == gridName) {
|
||||||
|
grid = frm.aElements[i1];
|
||||||
|
|
||||||
|
for (i2 = 0; i2 <= grid.aFields.length - 1; i2++) {
|
||||||
|
fieldNameAux = grid.aFields[i2].sFieldName;
|
||||||
|
fieldValueAux = grid.getElementByName(row, fieldNameAux).value();
|
||||||
|
|
||||||
|
if ((swCurrentField == 1 || fieldNameAux != fieldName) && typeof fieldValueAux != "undefined") {
|
||||||
|
gridField = gridField + ((gridField != "")? "," : "") + "\"" + fieldNameAux + "\":\"" + fieldValueAux + "\"";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return gridField;
|
||||||
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -468,8 +468,9 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
var aObjectsScript = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');
|
var aObjectsScript = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');
|
||||||
|
|
||||||
var sObjectType = this.aFields[i-1].sType;
|
var sObjectType = this.aFields[i-1].sType;
|
||||||
|
|
||||||
if (aObjectsScript[0] != 'undefined' && sObjectType == 'suggest') {
|
if (aObjectsScript[0] != 'undefined' && sObjectType == 'suggest') {
|
||||||
if ( this.determineBrowser() == "MSIE" ) {
|
if (this.determineBrowser() == "MSIE") {
|
||||||
|
|
||||||
var firstNode = aCells[i];
|
var firstNode = aCells[i];
|
||||||
|
|
||||||
@@ -489,15 +490,13 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
scriptElement.text = sScriptAdjustRow;
|
scriptElement.text = sScriptAdjustRow;
|
||||||
parentScript.removeChild(elementScript);
|
parentScript.removeChild(elementScript);
|
||||||
parentScript.appendChild(scriptElement);
|
parentScript.appendChild(scriptElement);
|
||||||
|
} else {
|
||||||
} else {
|
var sObjScript = aObjectsScript[0].innerHTML;
|
||||||
var sObjScript = aObjectsScript[0].innerHTML;
|
var sNewObjScript = sObjScript.replace(/\[1\]/g, "\[" + currentRow + "\]");
|
||||||
var sNewObjScript = sObjScript.replace(/\[1\]/g, '\[' + currentRow + '\]');
|
aObjectsScript[0].innerHTML = sNewObjScript;
|
||||||
aObjectsScript[0].innerHTML = sNewObjScript;
|
eval(aObjectsScript[0].innerHTML);
|
||||||
eval(aObjectsScript[0].innerHTML);
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'checkbox': //CHECKBOX
|
case 'checkbox': //CHECKBOX
|
||||||
var attributeCheckBox = elementAttributesNS(aObjects[n], "");
|
var attributeCheckBox = elementAttributesNS(aObjects[n], "");
|
||||||
@@ -599,10 +598,14 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
for (x=0; x < aDependents.length; x++){
|
for (x=0; x < aDependents.length; x++){
|
||||||
if (aDependents[x] == sObject) sw = true;
|
if (aDependents[x] == sObject) sw = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Delete Options if dropdow is dependent
|
//Delete Options if dropdow is dependent
|
||||||
//only remains empty value
|
//only remains empty value
|
||||||
if (sw){
|
if (sw){
|
||||||
|
oNewSelect.options.length = 0; //Delete options
|
||||||
|
|
||||||
var oAux = document.createElement(aObjects[0].tagName);
|
var oAux = document.createElement(aObjects[0].tagName);
|
||||||
|
|
||||||
for ( var j = 0; j < aObjects[0].options.length; j++) {
|
for ( var j = 0; j < aObjects[0].options.length; j++) {
|
||||||
if (aObjects[0].options[j].value == ''){
|
if (aObjects[0].options[j].value == ''){
|
||||||
var oOption = document.createElement('OPTION');
|
var oOption = document.createElement('OPTION');
|
||||||
@@ -611,8 +614,9 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
oAux.options.add(oOption);
|
oAux.options.add(oOption);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
oNewSelect.innerHTML = ''; //Delete options
|
|
||||||
//aObjects[0].innerHTML = ''; //Delete options
|
//aObjects[0].innerHTML = ''; //Delete options
|
||||||
|
|
||||||
for (var r =0; r < oAux.options.length; r++){
|
for (var r =0; r < oAux.options.length; r++){
|
||||||
var xOption = document.createElement('OPTION');
|
var xOption = document.createElement('OPTION');
|
||||||
xOption.value = oAux.options[r].value;
|
xOption.value = oAux.options[r].value;
|
||||||
@@ -620,6 +624,10 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
//aObjects[0].options.add(xOption);
|
//aObjects[0].options.add(xOption);
|
||||||
oNewSelect.options.add(xOption);
|
oNewSelect.options.add(xOption);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (oNewSelect.options.length == 0) {
|
||||||
|
oNewSelect.options[0] = new Option("", "");
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
//Set Default Value if it's not a Dependent Field
|
//Set Default Value if it's not a Dependent Field
|
||||||
if (defaultValue != ''){
|
if (defaultValue != ''){
|
||||||
@@ -663,6 +671,7 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
}
|
}
|
||||||
//TODO: Implement Default Value and Dependent Fields Trigger for grid dropdowns
|
//TODO: Implement Default Value and Dependent Fields Trigger for grid dropdowns
|
||||||
}
|
}
|
||||||
|
|
||||||
var parentSelect = aObjects[0].parentNode;
|
var parentSelect = aObjects[0].parentNode;
|
||||||
parentSelect.removeChild(aObjects[0]);
|
parentSelect.removeChild(aObjects[0]);
|
||||||
parentSelect.appendChild(oNewSelect);
|
parentSelect.appendChild(oNewSelect);
|
||||||
@@ -1154,25 +1163,25 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
oAux = this.getElementByName(aAux[1], aFields[i]);
|
oAux = this.getElementByName(aAux[1], aFields[i]);
|
||||||
sAux = sAux.replace(new RegExp(aFields[i], "g"), "parseFloat(G.cleanMask(this.getElementByName(" + aAux[1] + ", '" + aFields[i] + "').value().replace(/[$|a-zA-Z\s]/g,'') || 0, '" + (oAux.sMask ? oAux.sMask : '')
|
sAux = sAux.replace(new RegExp(aFields[i], "g"), "parseFloat(G.cleanMask(this.getElementByName(" + aAux[1] + ", '" + aFields[i] + "').value().replace(/[$|a-zA-Z\s]/g,'') || 0, '" + (oAux.sMask ? oAux.sMask : '')
|
||||||
+ "').result.replace(/,/g, ''))");
|
+ "').result.replace(/,/g, ''))");
|
||||||
|
|
||||||
eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + aFields[i] + "]')) { oContinue = false; }");
|
eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + aFields[i] + "]')) { oContinue = false; }");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]')) { oContinue = false; }");
|
eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]')) { oContinue = false; }");
|
||||||
|
|
||||||
var swReal=0;
|
var swReal=0;
|
||||||
|
|
||||||
if (oContinue) {
|
if (oContinue) {
|
||||||
//we're selecting the mask to put in the field with the formula
|
//we're selecting the mask to put in the field with the formula
|
||||||
for (i = 0; i < this.aFields.length; i++) {
|
for (i = 0; i < this.aFields.length; i++) {
|
||||||
if(oField.sFieldName==this.aFields[i].sFieldName) {
|
if(oField.sFieldName==this.aFields[i].sFieldName) {
|
||||||
maskformula=this.aFields[i].oProperties.mask;
|
maskformula=this.aFields[i].oProperties.mask;
|
||||||
|
|
||||||
if(this.aFields[i].oProperties.validate=='Real')
|
if(this.aFields[i].oProperties.validate=='Real')
|
||||||
swReal=1;
|
swReal=1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(maskformula!=''){
|
if(maskformula!=''){
|
||||||
maskDecimal=maskformula.split(";");
|
maskDecimal=maskformula.split(";");
|
||||||
if(maskDecimal.length > 1) {
|
if(maskDecimal.length > 1) {
|
||||||
@@ -1192,17 +1201,17 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
else
|
else
|
||||||
maskToPut=0;
|
maskToPut=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// clean the field and load mask execute event keypress
|
// clean the field and load mask execute event keypress
|
||||||
document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value = '';
|
document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value = '';
|
||||||
this.executeEvent(document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']'), 'keypress');
|
this.executeEvent(document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']'), 'keypress');
|
||||||
|
|
||||||
// execute formula and set decimal
|
// execute formula and set decimal
|
||||||
eval("document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]').value = (" + sAux + ').toFixed('+maskToPut+');');
|
eval("document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]').value = (" + sAux + ').toFixed('+maskToPut+');');
|
||||||
|
|
||||||
// trim value
|
// trim value
|
||||||
document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value = document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value.replace(/^\s*|\s*$/g,"");
|
document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value = document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value.replace(/^\s*|\s*$/g,"");
|
||||||
|
|
||||||
// set '' to field if response is NaN
|
// set '' to field if response is NaN
|
||||||
if (document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value =='NaN')
|
if (document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value =='NaN')
|
||||||
document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value = '';
|
document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value = '';
|
||||||
|
|||||||
@@ -955,16 +955,17 @@ parent=parent.parentNode;parent.style.display='none';};this.show=function(parent
|
|||||||
parent=parent.parentNode;parent.style.display='';};this.setDependentFields=function(dependentFields){var i;if(dependentFields.indexOf(',')>-1){dependentFields=dependentFields.split(',');}
|
parent=parent.parentNode;parent.style.display='';};this.setDependentFields=function(dependentFields){var i;if(dependentFields.indexOf(',')>-1){dependentFields=dependentFields.split(',');}
|
||||||
else{dependentFields=dependentFields.split('|');}
|
else{dependentFields=dependentFields.split('|');}
|
||||||
for(i=0;i<dependentFields.length;i++){if(me.form.getElementIdByName(dependentFields[i])>=0){me.dependentFields[i]=me.form.getElementByName(dependentFields[i]);me.dependentFields[i].addDependencie(me);}}};this.addDependencie=function(field){var exists=false;for(i=0;i<me.dependentOf.length;i++)
|
for(i=0;i<dependentFields.length;i++){if(me.form.getElementIdByName(dependentFields[i])>=0){me.dependentFields[i]=me.form.getElementByName(dependentFields[i]);me.dependentFields[i].addDependencie(me);}}};this.addDependencie=function(field){var exists=false;for(i=0;i<me.dependentOf.length;i++)
|
||||||
if(me.dependentOf[i]===field)exists=true;if(!exists)me.dependentOf[i]=field;};this.updateDepententFields=function(event){var tempValue;if(me.dependentFields.length===0)return true;var fields=[],Fields=[],i,grid='',row=0;for(i in me.dependentFields){if(me.dependentFields[i].dependentOf){for(var j=0;j<me.dependentFields[i].dependentOf.length;j++){var oAux=me.dependentFields[i].dependentOf[j];if(oAux.name.indexOf('][')>-1){var aAux=oAux.name.split('][');grid=aAux[0];row=aAux[1];fieldName=aAux[2];if(Fields.length>0){aux=Fields;aux.push('?');if(aux.join('*').indexOf(fieldName+'*')==-1){Fields.push(fieldName);eval("var oAux2 = {"+fieldName+":'"+oAux.value()+"'}");fields=fields.concat(oAux2);}}else{Fields.push(fieldName);eval("var oAux2 = {"+fieldName+":'"+oAux.value()+"'}");fields=fields.concat(oAux2);}}
|
if(me.dependentOf[i]===field)exists=true;if(!exists)me.dependentOf[i]=field;};this.updateDepententFields=function(event){var tempValue;if(me.dependentFields.length===0)return true;var fields=[],Fields=[],i,grid='',row=0;var gridField="";for(i in me.dependentFields){if(me.dependentFields[i].dependentOf){for(var j=0;j<me.dependentFields[i].dependentOf.length;j++){var oAux=me.dependentFields[i].dependentOf[j];if(oAux.name.indexOf('][')>-1){var arrayAux=oAux.name.split("][");grid=arrayAux[0];row=parseInt(arrayAux[1]);fieldName=arrayAux[2];gridField=gridGetAllFieldAndValue(oAux.name,0);if(Fields.length>0){aux=Fields;aux.push('?');if(aux.join('*').indexOf(fieldName+'*')==-1){Fields.push(fieldName);eval("var oAux2 = {"+fieldName+":'"+oAux.value()+"'}");fields=fields.concat(oAux2);}}else{Fields.push(fieldName);eval("var oAux2 = {"+fieldName+":'"+oAux.value()+"'}");fields=fields.concat(oAux2);}}
|
||||||
else{aux=Fields;aux.push('?');oAux=me.dependentFields[i].dependentOf[0];if(Fields.length>0){if(aux.join('*').indexOf(oAux.name+'*')==-1){Fields.push(oAux.name);fields=fields.concat(me.dependentFields[i].dependentOf);}}else{Fields.push(oAux.name);fields=fields.concat(me.dependentFields[i].dependentOf);}}}}}
|
else{aux=Fields;aux.push('?');oAux=me.dependentFields[i].dependentOf[0];if(Fields.length>0){if(aux.join('*').indexOf(oAux.name+'*')==-1){Fields.push(oAux.name);fields=fields.concat(me.dependentFields[i].dependentOf);}}else{Fields.push(oAux.name);fields=fields.concat(me.dependentFields[i].dependentOf);}}}}}
|
||||||
var callServer;callServer=new leimnud.module.rpc.xmlhttp({url:me.form.ajaxServer,async:false,method:"POST",args:"function=reloadField&"+'form='+encodeURIComponent(me.form.id)+'&fields='+encodeURIComponent(fields.toJSONString())+(grid!=''?'&grid='+grid:'')+(row>0?'&row='+row:'')});callServer.make();var response=callServer.xmlhttp.responseText;if(response.substr(0,1)==='['){var newcont;eval('newcont='+response+';');if(grid==''){for(var i=0;i<newcont.length;i++){var j=me.form.getElementIdByName(newcont[i].name);if(typeof(me.form.aElements[j])!='undefined'){me.form.aElements[j].setValue(newcont[i].value);me.form.aElements[j].setContent(newcont[i].content);me.form.aElements[j].updateDepententFields();}}}
|
var callServer;callServer=new leimnud.module.rpc.xmlhttp({url:me.form.ajaxServer,async:false,method:"POST",args:"function=reloadField"+"&form="+encodeURIComponent(me.form.id)+"&fields="+encodeURIComponent(fields.toJSONString())+((grid!="")?"&grid="+grid+((gridField!="")?"&gridField="+encodeURIComponent("{"+gridField+"}"):""):"")+((row>0)?"&row="+row:"")});callServer.make();var response=callServer.xmlhttp.responseText;if(response.substr(0,1)==='['){var newcont;eval('newcont='+response+';');if(grid==''){for(var i=0;i<newcont.length;i++){var j=me.form.getElementIdByName(newcont[i].name);if(typeof(me.form.aElements[j])!='undefined'){me.form.aElements[j].setValue(newcont[i].value);me.form.aElements[j].setContent(newcont[i].content);me.form.aElements[j].updateDepententFields();}}}
|
||||||
else{for(var i=0;i<newcont.length;i++){var oAux=me.form.getElementByName(grid);if(oAux){var oAux2=oAux.getElementByName(row,newcont[i].name);if(oAux2){oAux2.setValue(newcont[i].value);oAux2.setContent(newcont[i].content);oAux2.updateDepententFields();}}}}}else{alert('Invalid response: '+response);}
|
else{for(var i=0;i<newcont.length;i++){var oAux=me.form.getElementByName(grid);if(oAux){var oAux2=oAux.getElementByName(row,newcont[i].name);if(oAux2){oAux2.setValue(newcont[i].value);oAux2.setContent(newcont[i].content);oAux2.updateDepententFields();}}}}}else{alert('Invalid response: '+response);}
|
||||||
return true;};this.setValue=function(newValue){me.element.value=newValue;};this.setContent=function(newContent){};this.setAttributes=function(attributes){for(var a in attributes){if(a=='formula'&&attributes[a]){sumaformu(this.element,attributes[a],attributes['mask']);}
|
return true;};this.setValue=function(newValue){me.element.value=newValue;};this.setContent=function(newContent){};this.setAttributes=function(attributes){for(var a in attributes){if(a=='formula'&&attributes[a]){sumaformu(this.element,attributes[a],attributes['mask']);}
|
||||||
switch(typeof(attributes[a])){case'string':case'int':case'boolean':if(a!='strTo'){switch(true){case typeof(me[a])==='undefined':case typeof(me[a])==='object':case typeof(me[a])==='function':case a==='isObject':case a==='isArray':break;default:me[a]=attributes[a];}}
|
switch(typeof(attributes[a])){case'string':case'int':case'boolean':if(a!='strTo'){switch(true){case typeof(me[a])==='undefined':case typeof(me[a])==='object':case typeof(me[a])==='function':case a==='isObject':case a==='isArray':break;default:me[a]=attributes[a];}}
|
||||||
else{me[a]=attributes[a];}}}};this.value=function(){return me.element.value;};this.toJSONString=function(){return'{"'+me.name+'":'+me.element.value.toJSONString()+'}';};this.highLight=function(){try{G.highLight(me.element);if(G.autoFirstField){me.element.focus();G.autoFirstField=false;setTimeout("G.autoFirstField=true;",1000);}}catch(e){}};}
|
else{me[a]=attributes[a];}}}};this.value=function(){return me.element.value;};this.toJSONString=function(){return'{"'+me.name+'":'+me.element.value.toJSONString()+'}';};this.highLight=function(){try{G.highLight(me.element);if(G.autoFirstField){me.element.focus();G.autoFirstField=false;setTimeout("G.autoFirstField=true;",1000);}}catch(e){}};}
|
||||||
function G_DropDown(form,element,name)
|
function G_DropDown(form,element,name)
|
||||||
{var me=this;this.parent=G_Field;this.parent(form,element,name);this.setContent=function(content){var dd=me.element;var browser=getBrowserClient();if((browser.name=='msie')||((browser.name=='firefox')&&(browser.version<12))){while(dd.options.length>1)dd.remove(0);}else{for(var key in dd.options){dd.options[key]=null;}}
|
{var me=this;this.parent=G_Field;this.parent(form,element,name);this.setContent=function(content){var dd=me.element;var browser=getBrowserClient();if((browser.name=='msie')||((browser.name=='firefox')&&(browser.version<12))){while(dd.options.length>1)dd.remove(0);}else{for(var key in dd.options){dd.options[key]=null;}}
|
||||||
for(var o=0;o<content.options.length;o++){var optn=$dce("OPTION");optn.text=content.options[o].value;optn.value=content.options[o].key;dd.options[o]=optn;}};if(!element)return;leimnud.event.add(this.element,'change',this.updateDepententFields);}
|
dd.options.length=0;for(var o=0;o<content.options.length;o++){var optn=$dce("OPTION");optn.text=content.options[o].value;optn.value=content.options[o].key;dd.options[o]=optn;}
|
||||||
|
if(dd.options.length==0){dd.options[0]=new Option("","");}};if(!element)return;leimnud.event.add(this.element,'change',this.updateDepententFields);}
|
||||||
G_DropDown.prototype=new G_Field();function G_Text(form,element,name)
|
G_DropDown.prototype=new G_Field();function G_Text(form,element,name)
|
||||||
{var me=this;this.mType="text";this.parent=G_Field;this.browser={};this.comma_separator=".";this.checkBrowser=function(){var nVer=navigator.appVersion;var nAgt=navigator.userAgent;var browserName=navigator.appName;var fullVersion=''+parseFloat(navigator.appVersion);var majorVersion=parseInt(navigator.appVersion,10);var nameOffset,verOffset,ix;if((verOffset=nAgt.indexOf("Opera"))!=-1){browserName="Opera";fullVersion=nAgt.substring(verOffset+6);if((verOffset=nAgt.indexOf("Version"))!=-1)
|
{var me=this;this.mType="text";this.parent=G_Field;this.browser={};this.comma_separator=".";this.checkBrowser=function(){var nVer=navigator.appVersion;var nAgt=navigator.userAgent;var browserName=navigator.appName;var fullVersion=''+parseFloat(navigator.appVersion);var majorVersion=parseInt(navigator.appVersion,10);var nameOffset,verOffset,ix;if((verOffset=nAgt.indexOf("Opera"))!=-1){browserName="Opera";fullVersion=nAgt.substring(verOffset+6);if((verOffset=nAgt.indexOf("Version"))!=-1)
|
||||||
fullVersion=nAgt.substring(verOffset+8);}
|
fullVersion=nAgt.substring(verOffset+8);}
|
||||||
@@ -1257,6 +1258,9 @@ return newStr;}
|
|||||||
function getNumericValue(val,decimalSeparator)
|
function getNumericValue(val,decimalSeparator)
|
||||||
{var arrayNum=val.split("");var num="";for(var i=0;i<=arrayNum.length-1;i++){switch(arrayNum[i]){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":num=num+arrayNum[i];break;case decimalSeparator:num=num+".";break;}}
|
{var arrayNum=val.split("");var num="";for(var i=0;i<=arrayNum.length-1;i++){switch(arrayNum[i]){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":num=num+arrayNum[i];break;case decimalSeparator:num=num+".";break;}}
|
||||||
return num;}
|
return num;}
|
||||||
|
var gridGetAllFieldAndValue=function(fieldId,swCurrentField)
|
||||||
|
{var frm=G.getObject(getField(fieldId).form);var arrayAux=fieldId.split("][");var gridName=arrayAux[0];var row=parseInt(arrayAux[1]);var fieldName=arrayAux[2];var grid;var gridField="";var fieldNameAux="";var fieldValueAux="";var i1=0;var i2=0;for(i1=0;i1<=frm.aElements.length-1;i1++){if(frm.aElements[i1].name==gridName){grid=frm.aElements[i1];for(i2=0;i2<=grid.aFields.length-1;i2++){fieldNameAux=grid.aFields[i2].sFieldName;fieldValueAux=grid.getElementByName(row,fieldNameAux).value();if((swCurrentField==1||fieldNameAux!=fieldName)&&typeof fieldValueAux!="undefined"){gridField=gridField+((gridField!="")?",":"")+"\""+fieldNameAux+"\":\""+fieldValueAux+"\"";}}}}
|
||||||
|
return gridField;};
|
||||||
function G_PagedTable()
|
function G_PagedTable()
|
||||||
{this.id='';this.name='';this.event='';this.element=null;this.field='';this.ajaxUri='';this.currentOrder='';this.currentFilter='';this.currentPage=1;this.totalRows=0;this.rowsPerPage=25;this.onInsertField='';this.onDeleteField='';this.afterDeleteField='';this.onUpdateField='';this.form;var me=this;function loadTable(func,uri){var div=document.getElementById('table['+me.id+']');var newContent=ajax_function(me.ajaxUri,func,uri);if(div.outerHTML){div.outerHTML=div.outerHTML.split(div.innerHTML).join(newContent);}else{div.innerHTML=newContent;}
|
{this.id='';this.name='';this.event='';this.element=null;this.field='';this.ajaxUri='';this.currentOrder='';this.currentFilter='';this.currentPage=1;this.totalRows=0;this.rowsPerPage=25;this.onInsertField='';this.onDeleteField='';this.afterDeleteField='';this.onUpdateField='';this.form;var me=this;function loadTable(func,uri){var div=document.getElementById('table['+me.id+']');var newContent=ajax_function(me.ajaxUri,func,uri);if(div.outerHTML){div.outerHTML=div.outerHTML.split(div.innerHTML).join(newContent);}else{div.innerHTML=newContent;}
|
||||||
var myScripts=div.getElementsByTagName('SCRIPT');for(var rr=0;rr<myScripts.length;rr++){try{if(myScripts[rr].innerHTML!=='')
|
var myScripts=div.getElementsByTagName('SCRIPT');for(var rr=0;rr<myScripts.length;rr++){try{if(myScripts[rr].innerHTML!=='')
|
||||||
@@ -1341,7 +1345,7 @@ for(n=0;n<aObjects.length;n++){switch(aObjects[n].type){case'text':aObjects[n].c
|
|||||||
var a2=document.createElement('a');if(a2.style.setAttribute){var styleText="position:relative;top:0px;left:-19px;";a2.style.setAttribute("cssText",styleText);}
|
var a2=document.createElement('a');if(a2.style.setAttribute){var styleText="position:relative;top:0px;left:-19px;";a2.style.setAttribute("cssText",styleText);}
|
||||||
else{var styleText="position:relative;top:0px;left:-22px;";a2.setAttribute("style",styleText);}
|
else{var styleText="position:relative;top:0px;left:-22px;";a2.setAttribute("style",styleText);}
|
||||||
a2.id=datePickerTriggerId;a2.innerHTML=img2;oNewRow.getElementsByTagName('td')[i].appendChild(a2);datePicker4("",newID,attributes.mask,attributes.start,attributes.end,attributes.time);aObjects[n].value=defaultValue;}else{if(_BROWSER.name=='msie'&&aObjects.length==1){var oNewOBJ=this.cloneElement(aObjects[n]);oNewOBJ.value=defaultValue;var parentGG=aObjects[n].parentNode;parentGG.removeChild(aObjects[n]);parentGG.appendChild(oNewOBJ);}else{if((attributes.gridtype)&&attributes.gridtype=="currency"){var attributesCurrency=elementAttributesNS(aObjects[n],"");aObjects[n].value=attributesCurrency.value.replace(/[.,0-9\s]/g,"");}else{aObjects[n].value=defaultValue;}}}
|
a2.id=datePickerTriggerId;a2.innerHTML=img2;oNewRow.getElementsByTagName('td')[i].appendChild(a2);datePicker4("",newID,attributes.mask,attributes.start,attributes.end,attributes.time);aObjects[n].value=defaultValue;}else{if(_BROWSER.name=='msie'&&aObjects.length==1){var oNewOBJ=this.cloneElement(aObjects[n]);oNewOBJ.value=defaultValue;var parentGG=aObjects[n].parentNode;parentGG.removeChild(aObjects[n]);parentGG.appendChild(oNewOBJ);}else{if((attributes.gridtype)&&attributes.gridtype=="currency"){var attributesCurrency=elementAttributesNS(aObjects[n],"");aObjects[n].value=attributesCurrency.value.replace(/[.,0-9\s]/g,"");}else{aObjects[n].value=defaultValue;}}}
|
||||||
var aObjectsScript=oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');var sObjectType=this.aFields[i-1].sType;if(aObjectsScript[0]!='undefined'&&sObjectType=='suggest'){if(this.determineBrowser()=="MSIE"){var firstNode=aCells[i];var firstScriptSuggest=firstNode.childNodes[2].innerHTML;var sScriptAdjustRow=firstScriptSuggest.replace(/\[1\]/g,'\['+currentRow+'\]');var elementTD=oNewRow.getElementsByTagName('td')[i];var elementLabel=elementTD.childNodes[0];var sNewLabelRow=elementLabel.getAttribute("id").replace(/\[1\]/g,'\['+currentRow+'\]');var elementHidden=elementTD.childNodes[1];var elementScript=elementTD.childNodes[2];var parentScript=elementScript.parentNode;var scriptElement=document.createElement("script");scriptElement.text=sScriptAdjustRow;parentScript.removeChild(elementScript);parentScript.appendChild(scriptElement);}else{var sObjScript=aObjectsScript[0].innerHTML;var sNewObjScript=sObjScript.replace(/\[1\]/g,'\['+currentRow+'\]');aObjectsScript[0].innerHTML=sNewObjScript;eval(aObjectsScript[0].innerHTML);}}
|
var aObjectsScript=oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');var sObjectType=this.aFields[i-1].sType;if(aObjectsScript[0]!='undefined'&&sObjectType=='suggest'){if(this.determineBrowser()=="MSIE"){var firstNode=aCells[i];var firstScriptSuggest=firstNode.childNodes[2].innerHTML;var sScriptAdjustRow=firstScriptSuggest.replace(/\[1\]/g,'\['+currentRow+'\]');var elementTD=oNewRow.getElementsByTagName('td')[i];var elementLabel=elementTD.childNodes[0];var sNewLabelRow=elementLabel.getAttribute("id").replace(/\[1\]/g,'\['+currentRow+'\]');var elementHidden=elementTD.childNodes[1];var elementScript=elementTD.childNodes[2];var parentScript=elementScript.parentNode;var scriptElement=document.createElement("script");scriptElement.text=sScriptAdjustRow;parentScript.removeChild(elementScript);parentScript.appendChild(scriptElement);}else{var sObjScript=aObjectsScript[0].innerHTML;var sNewObjScript=sObjScript.replace(/\[1\]/g,"\["+currentRow+"\]");aObjectsScript[0].innerHTML=sNewObjScript;eval(aObjectsScript[0].innerHTML);}}
|
||||||
break;case'checkbox':var attributeCheckBox=elementAttributesNS(aObjects[n],"");if(defaultValue==""||(typeof attributeCheckBox.falseValue!="undefined"&&defaultValue==attributeCheckBox.falseValue)||(typeof attributeCheckBox.falsevalue!="undefined"&&defaultValue==attributeCheckBox.falsevalue)){aObjects[n].checked=false;}else{aObjects[n].checked=true;}
|
break;case'checkbox':var attributeCheckBox=elementAttributesNS(aObjects[n],"");if(defaultValue==""||(typeof attributeCheckBox.falseValue!="undefined"&&defaultValue==attributeCheckBox.falseValue)||(typeof attributeCheckBox.falsevalue!="undefined"&&defaultValue==attributeCheckBox.falsevalue)){aObjects[n].checked=false;}else{aObjects[n].checked=true;}
|
||||||
break;case'hidden':if((attributes.gridtype!='yesno'&&attributes.gridtype!='dropdown')||typeof attributes.gridtype=='undefined'){aObjects[n].value=defaultValue;newID=aObjects[n].id.replace(/\[1\]/g,'\['+currentRow+'\]');aObjects[n].id=newID;aObjects[n].name=newID;}
|
break;case'hidden':if((attributes.gridtype!='yesno'&&attributes.gridtype!='dropdown')||typeof attributes.gridtype=='undefined'){aObjects[n].value=defaultValue;newID=aObjects[n].id.replace(/\[1\]/g,'\['+currentRow+'\]');aObjects[n].id=newID;aObjects[n].name=newID;}
|
||||||
break;case'button':if(aObjects[n].onclick){var onclickevn=new String(aObjects[n].onclick);eval('aObjects[n].onclick = '+onclickevn.replace(/\[1\]/g,'\['+currentRow+'\]')+';');}
|
break;case'button':if(aObjects[n].onclick){var onclickevn=new String(aObjects[n].onclick);eval('aObjects[n].onclick = '+onclickevn.replace(/\[1\]/g,'\['+currentRow+'\]')+';');}
|
||||||
@@ -1354,8 +1358,9 @@ else{oNewSelect.setAttribute(aAttributes[a].name,aAttributes[a].value);}}}
|
|||||||
attributes=elementAttributesNS(aObjects[0],'pm');if(attributes.defaultvalue!=''&&typeof attributes.defaultvalue!='undefined'){defaultValue=attributes.defaultvalue;}else{defaultValue='';}
|
attributes=elementAttributesNS(aObjects[0],'pm');if(attributes.defaultvalue!=''&&typeof attributes.defaultvalue!='undefined'){defaultValue=attributes.defaultvalue;}else{defaultValue='';}
|
||||||
if(attributes.gridtype!=''&&typeof attributes.gridtype!='undefined'){gridType=attributes.gridtype;}else{gridType='';}
|
if(attributes.gridtype!=''&&typeof attributes.gridtype!='undefined'){gridType=attributes.gridtype;}else{gridType='';}
|
||||||
var aDependents=this.allDependentFields.split(',');sObject=this.getObjectName(newID);var sw=false;for(x=0;x<aDependents.length;x++){if(aDependents[x]==sObject)sw=true;}
|
var aDependents=this.allDependentFields.split(',');sObject=this.getObjectName(newID);var sw=false;for(x=0;x<aDependents.length;x++){if(aDependents[x]==sObject)sw=true;}
|
||||||
if(sw){var oAux=document.createElement(aObjects[0].tagName);for(var j=0;j<aObjects[0].options.length;j++){if(aObjects[0].options[j].value==''){var oOption=document.createElement('OPTION');oOption.value=aObjects[0].options[j].value;oOption.text=aObjects[0].options[j].text;oAux.options.add(oOption);}}
|
if(sw){oNewSelect.options.length=0;var oAux=document.createElement(aObjects[0].tagName);for(var j=0;j<aObjects[0].options.length;j++){if(aObjects[0].options[j].value==''){var oOption=document.createElement('OPTION');oOption.value=aObjects[0].options[j].value;oOption.text=aObjects[0].options[j].text;oAux.options.add(oOption);}}
|
||||||
oNewSelect.innerHTML='';for(var r=0;r<oAux.options.length;r++){var xOption=document.createElement('OPTION');xOption.value=oAux.options[r].value;xOption.text=oAux.options[r].text;oNewSelect.options.add(xOption);}}else{if(defaultValue!=''){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;if(aObjects[0].options[j].value===defaultValue){oOption.setAttribute('selected','selected');}
|
for(var r=0;r<oAux.options.length;r++){var xOption=document.createElement('OPTION');xOption.value=oAux.options[r].value;xOption.text=oAux.options[r].text;oNewSelect.options.add(xOption);}
|
||||||
|
if(oNewSelect.options.length==0){oNewSelect.options[0]=new Option("","");}}else{if(defaultValue!=''){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;if(aObjects[0].options[j].value===defaultValue){oOption.setAttribute('selected','selected');}
|
||||||
oAux.options.add(oOption);}
|
oAux.options.add(oOption);}
|
||||||
oNewSelect.innerHTML='';for(var r=0;r<oAux.options.length;r++){var xOption=document.createElement('OPTION');xOption.value=oAux.options[r].value;xOption.text=oAux.options[r].text;if(_BROWSER.name=='msie'){if(oAux.options[r].getAttribute('selected')!=''){xOption.setAttribute('selected','selected');}}else{if(oAux.options[r].getAttribute('selected')=='selected'){xOption.setAttribute('selected','selected');}}
|
oNewSelect.innerHTML='';for(var r=0;r<oAux.options.length;r++){var xOption=document.createElement('OPTION');xOption.value=oAux.options[r].value;xOption.text=oAux.options[r].text;if(_BROWSER.name=='msie'){if(oAux.options[r].getAttribute('selected')!=''){xOption.setAttribute('selected','selected');}}else{if(oAux.options[r].getAttribute('selected')=='selected'){xOption.setAttribute('selected','selected');}}
|
||||||
oNewSelect.options.add(xOption);}}else{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);}}}
|
oNewSelect.options.add(xOption);}}else{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);}}}
|
||||||
|
|||||||
@@ -50,20 +50,18 @@ if (! is_file( XMLFORM_AJAX_PATH . $xmlFile )) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$G_FORM = new form( $xmlFile, $sPath );
|
$G_FORM = new form( $xmlFile, $sPath );
|
||||||
$G_FORM->id = urlDecode( $_POST['form'] );
|
$G_FORM->id = urlDecode( $_POST['form'] );
|
||||||
$G_FORM->values = isset( $_SESSION[$G_FORM->id] ) ? $_SESSION[$G_FORM->id] : array ();
|
$G_FORM->values = isset( $_SESSION[$G_FORM->id] ) ? $_SESSION[$G_FORM->id] : array ();
|
||||||
|
|
||||||
$newValues = (Bootstrap::json_decode( urlDecode( stripslashes( $_POST['fields'] ) ) ));
|
$newValues = (Bootstrap::json_decode( urlDecode( stripslashes( $_POST['fields'] ) ) ));
|
||||||
if (isset($_POST['aFieldCurrent'])) {
|
|
||||||
$currentValue = (Bootstrap::json_decode( urlDecode( stripslashes( $_POST['aFieldCurrent'] ) ) ));
|
|
||||||
} else {
|
|
||||||
$currentValue = (Bootstrap::json_decode( urlDecode( stripslashes( $_POST['fields'] ) ) ));
|
|
||||||
}
|
|
||||||
if (isset( $_POST['grid'] )) {
|
if (isset( $_POST['grid'] )) {
|
||||||
$_POST['row'] = (int) $_POST['row'];
|
$_POST['row'] = (int) $_POST['row'];
|
||||||
$aAux = array ();
|
$aAux = array ();
|
||||||
|
|
||||||
foreach ($currentValue as $sKey => $newValue) {
|
foreach ($newValues as $sKey => $newValue) {
|
||||||
$newValue = (array) $newValue;
|
$newValue = (array) $newValue;
|
||||||
$aKeys = array_keys( $newValue );
|
$aKeys = array_keys( $newValue );
|
||||||
if (count($aKeys)>0) {
|
if (count($aKeys)>0) {
|
||||||
@@ -102,6 +100,7 @@ if (sizeof( $newValues ) > 1 && isset( $_POST['grid'] )) {
|
|||||||
//Resolve dependencies
|
//Resolve dependencies
|
||||||
//Returns an array ($dependentFields) with the names of the fields
|
//Returns an array ($dependentFields) with the names of the fields
|
||||||
//that depends of fields passed through AJAX ($_GET/$_POST)
|
//that depends of fields passed through AJAX ($_GET/$_POST)
|
||||||
|
//Returns all dependencies of all fields, this in grids
|
||||||
$dependentFields = array ();
|
$dependentFields = array ();
|
||||||
$aux = array ();
|
$aux = array ();
|
||||||
for ($r = 0; $r < sizeof( $newValues ); $r ++) {
|
for ($r = 0; $r < sizeof( $newValues ); $r ++) {
|
||||||
@@ -125,16 +124,54 @@ for ($r = 0; $r < sizeof( $newValues ); $r ++) {
|
|||||||
|
|
||||||
$dependentFields = array_unique( $dependentFields );
|
$dependentFields = array_unique( $dependentFields );
|
||||||
|
|
||||||
|
//Delete all dependencies of all fields, we're interested only in the fields sending from AJAX, this in grids
|
||||||
|
if (isset($_POST["grid"])) {
|
||||||
|
$arrayField = (array)(Bootstrap::json_decode(urlDecode(stripslashes($_POST["fields"]))));
|
||||||
|
$arrayDependentField = array();
|
||||||
|
$ereg = null;
|
||||||
|
|
||||||
|
foreach ($arrayField as $fieldData) {
|
||||||
|
$arrayAux = (array)($fieldData);
|
||||||
|
|
||||||
|
foreach ($arrayAux as $index => $value) {
|
||||||
|
$ereg = $ereg . (($ereg != null)? "|" : null) . $index; //Concatenate field
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ereg != null) {
|
||||||
|
foreach ($dependentFields as $value) {
|
||||||
|
if (preg_match("/^(?:$ereg)\|.*$/", $value)) {
|
||||||
|
$arrayAux = explode("|", $value);
|
||||||
|
|
||||||
|
$arrayDependentField[] = $arrayAux[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$dependentFields = array_unique($arrayDependentField);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Completed all fields of the grid
|
||||||
|
if (isset($_POST["grid"]) && isset($_POST["gridField"])) {
|
||||||
|
$arrayGridField = (array)(Bootstrap::json_decode(urldecode(stripslashes($_POST["gridField"]))));
|
||||||
|
|
||||||
|
foreach ($arrayGridField as $index => $value) {
|
||||||
|
$G_FORM->values[$_POST["grid"]][$_POST["row"]][$index] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Parse and update the new content
|
//Parse and update the new content
|
||||||
$template = PATH_CORE . 'templates/xmlform.html';
|
$newContent = $G_FORM->getFields(PATH_CORE . "templates" . PATH_SEP . "xmlform.html", (isset($_POST["row"])? $_POST["row"] : -1));
|
||||||
$newContent = $G_FORM->getFields( $template, (isset( $_POST['row'] ) ? $_POST['row'] : - 1) );
|
|
||||||
//Returns the dependentFields's content
|
//Returns the dependentFields's content
|
||||||
$sendContent = array ();
|
$sendContent = array ();
|
||||||
$r = 0;
|
$r = 0;
|
||||||
|
|
||||||
|
//Set data
|
||||||
foreach ($dependentFields as $d) {
|
foreach ($dependentFields as $d) {
|
||||||
$sendContent[$r]->name = $d;
|
$sendContent[$r]->name = $d;
|
||||||
$sendContent[$r]->content = NULL;
|
$sendContent[$r]->content = null;
|
||||||
|
|
||||||
if (! isset( $_POST['grid'] )) {
|
if (! isset( $_POST['grid'] )) {
|
||||||
if (isset( $G_FORM->fields[$d] )) {
|
if (isset( $G_FORM->fields[$d] )) {
|
||||||
foreach ($G_FORM->fields[$d] as $attribute => $value) {
|
foreach ($G_FORM->fields[$d] as $attribute => $value) {
|
||||||
@@ -157,18 +194,20 @@ foreach ($dependentFields as $d) {
|
|||||||
break;
|
break;
|
||||||
case 'options':
|
case 'options':
|
||||||
if ($sendContent[$r]->content->type != 'text') {
|
if ($sendContent[$r]->content->type != 'text') {
|
||||||
$sendContent[$r]->content->{$attribute} = toJSArray( $value );
|
$sendContent[$r]->content->{$attribute} = toJSArray($value);
|
||||||
} else {
|
} else {
|
||||||
$sendContent[$r]->content->{$attribute} = toJSArray( (isset( $value[$_POST['row']] ) ? array ($value[$_POST['row']]) : array ()) );
|
$sendContent[$r]->content->{$attribute} = toJSArray((isset($value[$_POST["row"]])? array($value[$_POST["row"]]) : array()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sendContent[$r]->value = isset( $G_FORM->values[$_POST['grid']][$_POST['row']][$d] ) ? $G_FORM->values[$_POST['grid']][$_POST['row']][$d] : '';
|
$sendContent[$r]->value = isset( $G_FORM->values[$_POST['grid']][$_POST['row']][$d] ) ? $G_FORM->values[$_POST['grid']][$_POST['row']][$d] : '';
|
||||||
}
|
}
|
||||||
$r ++;
|
|
||||||
|
$r = $r + 1;
|
||||||
}
|
}
|
||||||
echo (Bootstrap::json_encode( $sendContent ));
|
|
||||||
|
echo Bootstrap::json_encode($sendContent);
|
||||||
|
|
||||||
function toJSArray ($array, $type = '')
|
function toJSArray ($array, $type = '')
|
||||||
{
|
{
|
||||||
@@ -215,20 +254,34 @@ function subDependencies ($k, &$G_FORM, &$aux, $grid = '')
|
|||||||
return array ();
|
return array ();
|
||||||
if (! isset( $G_FORM->fields[$grid]->fields[$k]->dependentFields ))
|
if (! isset( $G_FORM->fields[$grid]->fields[$k]->dependentFields ))
|
||||||
return array ();
|
return array ();
|
||||||
|
|
||||||
$aux[] = $k;
|
$aux[] = $k;
|
||||||
|
|
||||||
if (strpos( $G_FORM->fields[$grid]->fields[$k]->dependentFields, ',' ) !== false) {
|
if (strpos( $G_FORM->fields[$grid]->fields[$k]->dependentFields, ',' ) !== false) {
|
||||||
$myDependentFields = explode( ',', $G_FORM->fields[$grid]->fields[$k]->dependentFields );
|
$myDependentFields = explode( ',', $G_FORM->fields[$grid]->fields[$k]->dependentFields );
|
||||||
} else {
|
} else {
|
||||||
$myDependentFields = explode( '|', $G_FORM->fields[$grid]->fields[$k]->dependentFields );
|
$myDependentFields = explode( '|', $G_FORM->fields[$grid]->fields[$k]->dependentFields );
|
||||||
}
|
}
|
||||||
|
|
||||||
for ($r = 0; $r < sizeof( $myDependentFields ); $r ++) {
|
for ($r = 0; $r < sizeof( $myDependentFields ); $r ++) {
|
||||||
if ($myDependentFields[$r] == "")
|
if ($myDependentFields[$r] == "")
|
||||||
unset( $myDependentFields[$r] );
|
unset( $myDependentFields[$r] );
|
||||||
}
|
}
|
||||||
|
|
||||||
$mD = $myDependentFields;
|
$mD = $myDependentFields;
|
||||||
|
|
||||||
foreach( $mD as $ki) {
|
foreach( $mD as $ki) {
|
||||||
$myDependentFields = array_merge( $myDependentFields , subDependencies( $ki , $G_FORM , $aux, $grid) );
|
$myDependentFields = array_merge( $myDependentFields , subDependencies( $ki , $G_FORM , $aux, $grid) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Set field and the dependent field of the grid
|
||||||
|
foreach ($myDependentFields as $index => $value) {
|
||||||
|
if (!preg_match("/^.*\|.*$/", $value)) {
|
||||||
|
$myDependentFields[$index] = $k . "|" . $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $myDependentFields;
|
return $myDependentFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* class.xmlform.php
|
* class.xmlform.php
|
||||||
*
|
*
|
||||||
@@ -1604,19 +1603,6 @@ class XmlForm_Field_Suggest extends XmlForm_Field_SimpleText //by neyek
|
|||||||
$depValues = '+';
|
$depValues = '+';
|
||||||
}
|
}
|
||||||
|
|
||||||
$aDepFields = array ();
|
|
||||||
$count = 0;
|
|
||||||
if ($this->dependentFields !== '') {
|
|
||||||
$dependentFields = explode( ",", $this->dependentFields );
|
|
||||||
foreach ($dependentFields as $valueDependent) {
|
|
||||||
$sqlDepField = $owner->fields[$valueDependent]->sql;
|
|
||||||
$count = preg_match_all( '/\@(?:([\@\%\#\=\!Qq])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*?)*)\))/', $sqlDepField, $match, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE );
|
|
||||||
for ($cnt = 0; $cnt < $count; $cnt ++) {
|
|
||||||
$aDepFields[$cnt] = $match[2][$cnt][0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sOptions = 'script: function (input) { ';
|
$sOptions = 'script: function (input) { ';
|
||||||
|
|
||||||
$sOptions .= ' var inputValue = base64_encode(getField(\'' . $rowIdField . '[' . $this->name . '_label\').value); ';
|
$sOptions .= ' var inputValue = base64_encode(getField(\'' . $rowIdField . '[' . $this->name . '_label\').value); ';
|
||||||
@@ -1635,60 +1621,50 @@ class XmlForm_Field_Suggest extends XmlForm_Field_SimpleText //by neyek
|
|||||||
$sOptions .= 'callback: function (obj) { ';
|
$sOptions .= 'callback: function (obj) { ';
|
||||||
|
|
||||||
$sOptions .= 'if (typeof obj != "undefined") { ';
|
$sOptions .= 'if (typeof obj != "undefined") { ';
|
||||||
$sOptions .= ' var jField = { };';
|
|
||||||
$sOptions .= ' var sField = "[]"; ';
|
|
||||||
$sOptions .= ' var aFieldCurrent = {};';
|
$sOptions .= ' var aFieldCurrent = {};';
|
||||||
$sOptions .= ' aFieldCurrent[\'' . $this->name . '\'] = obj.id;';
|
$sOptions .= ' aFieldCurrent[\'' . $this->name . '\'] = obj.id;';
|
||||||
$sOptions .= ' var sFieldCurrent = "["+ encodeURIComponent(aFieldCurrent.toJSONString()) + "]"; ';
|
$sOptions .= ' var sFieldCurrent = "["+ encodeURIComponent(aFieldCurrent.toJSONString()) + "]"; ';
|
||||||
|
|
||||||
if ($count > 0) {
|
|
||||||
for ($cnt = 0; $cnt < $count; $cnt ++) {
|
|
||||||
if ( $this->name == $aDepFields[$cnt] ) {
|
|
||||||
$sOptions .= ' jField[\'' . $aDepFields[$cnt] . '\'] = obj.id;';
|
|
||||||
} else {
|
|
||||||
$sOptions .= ' jField[\'' . $aDepFields[$cnt] . '\'] = getField(\'' . $rowIdField . '[' . $aDepFields[$cnt] . '\').value; ';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sOptions .= ' var sField = "["+ encodeURIComponent(jField.toJSONString()) + "]"; ';
|
|
||||||
$sOptions .= $sCallBack . '; getField("' . $rowIdField . '[' . $this->name . '").value = obj.id;';
|
$sOptions .= $sCallBack . '; getField("' . $rowIdField . '[' . $this->name . '").value = obj.id;';
|
||||||
|
|
||||||
$sOwnerId = (isset($owner->owner->id))? $owner->owner->id : $owner->id;
|
$sOwnerId = (isset($owner->owner->id))? $owner->owner->id : $owner->id;
|
||||||
$sOptions .= 'var indexField = "' . $rowIdField . '[' . $this->name . '";';
|
$sOptions .= 'var indexField = "' . $rowIdField . '[' . $this->name . '";';
|
||||||
$sOptions .= 'indexField = indexField.match(/\[[0-9]+\]/g); ';
|
$sOptions .= 'indexField = indexField.match(/\[[0-9]+\]/g); ';
|
||||||
$sOptions .= 'indexFieldVal = indexField[0].replace(/\[|\]/g,""); ';
|
$sOptions .= 'indexFieldVal = indexField[0].replace(/\[|\]/g,""); ';
|
||||||
|
$sOptions .= 'var gridField = gridGetAllFieldAndValue("' . $ownerName . '][" + indexFieldVal + "][' . $this->name . '", 0); '; //Not get current field
|
||||||
$sOptions .= 'var response = ajax_function("../gulliver/defaultAjaxDynaform", "reloadField", ';
|
$sOptions .= 'var response = ajax_function("../gulliver/defaultAjaxDynaform", "reloadField", "form=' . $sOwnerId . '&fields=" + sFieldCurrent + "&grid=' . $ownerName . '" + ((gridField != "")? "&gridField=" + encodeURIComponent("{" + gridField + "}") : "") + "&row=" + indexFieldVal, "POST"); ';
|
||||||
$sOptions .= ' "form=' . $sOwnerId . '&fields=" + sField + "&grid=' . $ownerName . '&row=" + indexFieldVal + "&aFieldCurrent=" + sFieldCurrent, "POST" ); ';
|
$sOptions .= '';
|
||||||
|
|
||||||
$sOptions .= 'if (response.substr(0,1) === \'[\') { ';
|
$sOptions .= 'if (response.substr(0,1) === \'[\') { ';
|
||||||
$sOptions .= ' var newcont; ';
|
$sOptions .= ' var newcont; ';
|
||||||
$sOptions .= ' eval(\'newcont=\' + response + \';\'); ';
|
$sOptions .= ' eval(\'newcont=\' + response + \';\'); ';
|
||||||
|
$sOptions .= '';
|
||||||
$sOptions .= ' for(var i = 0; i<newcont.length; i++) { ';
|
$sOptions .= ' for(var i = 0; i<newcont.length; i++) { ';
|
||||||
// $sOptions .= ' var depField = getField(\'' . $rowIdField . '[\' + ' . 'newcont[i].name); ';
|
// $sOptions .= ' var depField = getField(\'' . $rowIdField . '[\' + ' . 'newcont[i].name); ';
|
||||||
$sOptions .= ' var depField = \'' . $rowIdField . '[\' + ' . 'newcont[i].name; ';
|
$sOptions .= ' var depField = \'' . $rowIdField . '[\' + ' . 'newcont[i].name; ';
|
||||||
|
|
||||||
$sOptions .= ' getField(depField).value = newcont[i].value; ';
|
$sOptions .= ' getField(depField).value = newcont[i].value; ';
|
||||||
$sOptions .= ' if (newcont[i].content.type == \'dropdown\') { ';
|
$sOptions .= '
|
||||||
|
switch (newcont[i].content.type) {
|
||||||
|
case "dropdown":
|
||||||
|
getField(depField).options.length = 0;
|
||||||
|
|
||||||
$sOptions .= ' fieldLength = getField(depField).options.length; ';
|
for (ni = 0; ni < newcont[i].content.options.length; ni++ ){
|
||||||
|
getField(depField).options[ni] = new Option(newcont[i].content.options[ni].value, newcont[i].content.options[ni].key);
|
||||||
|
}
|
||||||
|
|
||||||
$sOptions .= ' for (ni = 0; ni < fieldLength; ni++ ){ ';
|
if (getField(depField).options.length == 0) {
|
||||||
$sOptions .= ' getField(depField).options.remove(ni); ';
|
getField(depField).options[0] = new Option("", "");
|
||||||
$sOptions .= ' } ';
|
}
|
||||||
$sOptions .= ' getField(depField).length = 0; ';
|
break;
|
||||||
|
case "text":
|
||||||
$sOptions .= ' for (ni = 0; ni < newcont[i].content.options.length; ni++ ){ ';
|
getField(depField).value = "";
|
||||||
$sOptions .= ' var opt = document.createElement("OPTION"); ';
|
|
||||||
$sOptions .= ' opt.value = newcont[i].content.options[ni].key; ';
|
|
||||||
$sOptions .= ' opt.text = newcont[i].content.options[ni].value; ';
|
|
||||||
$sOptions .= ' getField(depField).options.add(opt); ';
|
|
||||||
|
|
||||||
$sOptions .= ' } ';
|
|
||||||
$sOptions .= ' } ';
|
|
||||||
|
|
||||||
|
if (newcont[i].content.options) {
|
||||||
|
if (newcont[i].content.options[0]) {
|
||||||
|
getField(depField).value = newcont[i].content.options[0].value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
';
|
||||||
$sOptions .= ' } ';
|
$sOptions .= ' } ';
|
||||||
$sOptions .= '} else { ';
|
$sOptions .= '} else { ';
|
||||||
$sOptions .= ' alert(\'Invalid response: \' + response); ';
|
$sOptions .= ' alert(\'Invalid response: \' + response); ';
|
||||||
@@ -3453,9 +3429,12 @@ class XmlForm_Field_Dropdown extends XmlForm_Field
|
|||||||
$html .= $rowId == '' ? $this->NSFieldType() : $this->NSGridType() . ' ';
|
$html .= $rowId == '' ? $this->NSFieldType() : $this->NSGridType() . ' ';
|
||||||
$html .= $this->NSDependentFields( true ) . ' ';
|
$html .= $this->NSDependentFields( true ) . ' ';
|
||||||
$html .= '>';
|
$html .= '>';
|
||||||
|
|
||||||
$findValue = '';
|
$findValue = '';
|
||||||
$firstValue = '';
|
$firstValue = '';
|
||||||
$cont = 0;
|
$cont = 0;
|
||||||
|
$swOption = 0;
|
||||||
|
|
||||||
foreach ($this->option as $optValue => $optName) {
|
foreach ($this->option as $optValue => $optName) {
|
||||||
settype( $optValue, 'string' );
|
settype( $optValue, 'string' );
|
||||||
$html .= '<option value="' . $optValue . '" ' . (($optValue === $value) ? 'selected="selected"' : '') . '>' . $optName . '</option>';
|
$html .= '<option value="' . $optValue . '" ' . (($optValue === $value) ? 'selected="selected"' : '') . '>' . $optName . '</option>';
|
||||||
@@ -3466,8 +3445,11 @@ class XmlForm_Field_Dropdown extends XmlForm_Field
|
|||||||
if ($firstValue == '') {
|
if ($firstValue == '') {
|
||||||
$firstValue = $optValue;
|
$firstValue = $optValue;
|
||||||
}
|
}
|
||||||
$cont ++;
|
|
||||||
|
$cont = $cont + 1;
|
||||||
|
$swOption = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->sqlOption as $optValue => $optName) {
|
foreach ($this->sqlOption as $optValue => $optName) {
|
||||||
settype( $optValue, 'string' );
|
settype( $optValue, 'string' );
|
||||||
$html .= '<option value="' . $optValue . '" ' . (($optValue === $value) ? 'selected="selected"' : '') . '>' . $optName . '</option>';
|
$html .= '<option value="' . $optValue . '" ' . (($optValue === $value) ? 'selected="selected"' : '') . '>' . $optName . '</option>';
|
||||||
@@ -3478,7 +3460,14 @@ class XmlForm_Field_Dropdown extends XmlForm_Field
|
|||||||
if ($firstValue == '') {
|
if ($firstValue == '') {
|
||||||
$firstValue = $optValue;
|
$firstValue = $optValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$swOption = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($swOption == 0) {
|
||||||
|
$html = $html . "<option value=\"\"></option>";
|
||||||
|
}
|
||||||
|
|
||||||
$html .= '</select>';
|
$html .= '</select>';
|
||||||
if ($readOnlyField != '') {
|
if ($readOnlyField != '') {
|
||||||
$html .= '<input type="hidden" ';
|
$html .= '<input type="hidden" ';
|
||||||
@@ -4006,10 +3995,12 @@ class XmlForm_Field_Grid extends XmlForm_Field
|
|||||||
$using_template = 'grid_view';
|
$using_template = 'grid_view';
|
||||||
}
|
}
|
||||||
|
|
||||||
$tpl = new xmlformTemplate( $this, PATH_CORE . "templates/{$using_template}.html" );
|
$tpl = new xmlformTemplate($this, PATH_CORE . "templates" . PATH_SEP . "$using_template.html");
|
||||||
|
|
||||||
if (! isset( $values ) || ! is_array( $values ) || sizeof( $values ) == 0) {
|
if (! isset( $values ) || ! is_array( $values ) || sizeof( $values ) == 0) {
|
||||||
$values = array_keys( $this->fields );
|
$values = array_keys( $this->fields );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($therow != - 1) {
|
if ($therow != - 1) {
|
||||||
//Check if values arrary is complete to can flip.
|
//Check if values arrary is complete to can flip.
|
||||||
$xValues = array ();
|
$xValues = array ();
|
||||||
@@ -4033,12 +4024,18 @@ class XmlForm_Field_Grid extends XmlForm_Field
|
|||||||
}
|
}
|
||||||
$values = $xValues;
|
$values = $xValues;
|
||||||
}
|
}
|
||||||
|
|
||||||
$aValuekeys = array_keys( $values );
|
$aValuekeys = array_keys( $values );
|
||||||
|
|
||||||
if (count( $aValuekeys ) > 0 && (int) $aValuekeys[0] == 1) {
|
if (count( $aValuekeys ) > 0 && (int) $aValuekeys[0] == 1) {
|
||||||
$values = $this->flipValues( $values );
|
$values = $this->flipValues( $values );
|
||||||
}
|
}
|
||||||
|
|
||||||
//if ($therow == 1)g::pr($values);
|
//if ($therow == 1)g::pr($values);
|
||||||
$this->rows = count( reset( $values ) );
|
$this->rows = count( reset( $values ) );
|
||||||
|
|
||||||
|
//Fields Grid only required fields of the grid, no all fields of dynaform main
|
||||||
|
/*
|
||||||
if (isset( $owner->values )) {
|
if (isset( $owner->values )) {
|
||||||
foreach ($owner->values as $key => $value) {
|
foreach ($owner->values as $key => $value) {
|
||||||
if (! isset( $values[$key] )) {
|
if (! isset( $values[$key] )) {
|
||||||
@@ -4049,6 +4046,8 @@ class XmlForm_Field_Grid extends XmlForm_Field
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
foreach ($this->fields as $k => $v) {
|
foreach ($this->fields as $k => $v) {
|
||||||
if (isset( $values['SYS_GRID_AGGREGATE_' . $this->name . '_' . $k] )) {
|
if (isset( $values['SYS_GRID_AGGREGATE_' . $this->name . '_' . $k] )) {
|
||||||
$this->fields[$k]->aggregate = $values['SYS_GRID_AGGREGATE_' . $this->name . '_' . $k];
|
$this->fields[$k]->aggregate = $values['SYS_GRID_AGGREGATE_' . $this->name . '_' . $k];
|
||||||
@@ -5470,19 +5469,25 @@ class xmlformTemplate extends Smarty
|
|||||||
public function getFields (&$form, $therow = -1)
|
public function getFields (&$form, $therow = -1)
|
||||||
{
|
{
|
||||||
$result = array ();
|
$result = array ();
|
||||||
|
|
||||||
foreach ($form->fields as $k => $v) {
|
foreach ($form->fields as $k => $v) {
|
||||||
|
$field = $v;
|
||||||
|
|
||||||
if ($form->mode != '') {
|
if ($form->mode != '') {
|
||||||
#@ last modification: erik
|
#@ last modification: erik
|
||||||
$v->mode = $form->mode; #@
|
$field->mode = $form->mode; #@
|
||||||
} #@
|
} #@
|
||||||
|
|
||||||
//if (isset($form->fields[$k]->sql)) $form->fields[$k]->executeSQL( $form );
|
//if (isset($form->fields[$k]->sql)) $form->fields[$k]->executeSQL( $form );
|
||||||
$value = (isset( $form->values[$k] )) ? $form->values[$k] : null;
|
$value = (isset( $form->values[$k] )) ? $form->values[$k] : null;
|
||||||
$result[$k] = G::replaceDataField( $form->fields[$k]->label, $form->values );
|
$result[$k] = G::replaceDataField( $form->fields[$k]->label, $form->values );
|
||||||
|
|
||||||
if ($form->type == 'xmlform') {
|
if ($form->type == 'xmlform') {
|
||||||
if (in_array($v->type, array('text', 'currency', 'percentage', 'password', 'suggest', 'textarea', 'dropdown', 'yesno', 'listbox', 'checkbox', 'date', 'link', 'file'))) {
|
if (in_array($field->type, array("text", "currency", "percentage", "password", "suggest", "textarea", "dropdown", "yesno", "listbox", "checkbox", "date", "link", "file"))) {
|
||||||
$result[$k] = '<label for="form[' . $k . ']">' . $result[$k] . '</label>';
|
$result[$k] = '<label for="form[' . $k . ']">' . $result[$k] . '</label>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! is_array( $value )) {
|
if (! is_array( $value )) {
|
||||||
if ($form->type == 'grid') {
|
if ($form->type == 'grid') {
|
||||||
$aAux = array ();
|
$aAux = array ();
|
||||||
@@ -5496,7 +5501,7 @@ class xmlformTemplate extends Smarty
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($v->type) {
|
switch ($field->type) {
|
||||||
case "link":
|
case "link":
|
||||||
$result["form"][$k] = $form->fields[$k]->renderGrid($aAux, array(), $form);
|
$result["form"][$k] = $form->fields[$k]->renderGrid($aAux, array(), $form);
|
||||||
break;
|
break;
|
||||||
@@ -5505,7 +5510,7 @@ class xmlformTemplate extends Smarty
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch ($v->type) {
|
switch ($field->type) {
|
||||||
case "link":
|
case "link":
|
||||||
$result["form"][$k] = $form->fields[$k]->render(
|
$result["form"][$k] = $form->fields[$k]->render(
|
||||||
$value,
|
$value,
|
||||||
@@ -5530,10 +5535,10 @@ class xmlformTemplate extends Smarty
|
|||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if ($v->type == "grid") {
|
if ($field->type == "grid") {
|
||||||
$result["form"][$k] = $form->fields[$k]->renderGrid( $value, $form, $therow );
|
$result["form"][$k] = $form->fields[$k]->renderGrid( $value, $form, $therow );
|
||||||
} else {
|
} else {
|
||||||
switch ($v->type) {
|
switch ($field->type) {
|
||||||
case "dropdown":
|
case "dropdown":
|
||||||
$result["form"][$k] = $form->fields[$k]->renderGrid( $value, $form, false, $therow );
|
$result["form"][$k] = $form->fields[$k]->renderGrid( $value, $form, false, $therow );
|
||||||
break;
|
break;
|
||||||
@@ -5554,11 +5559,13 @@ class xmlformTemplate extends Smarty
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($form as $name => $value) {
|
foreach ($form as $name => $value) {
|
||||||
if ($name !== 'fields') {
|
if ($name !== 'fields') {
|
||||||
$result['form_' . $name] = $value;
|
$result['form_' . $name] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user