BUG 15012 "When creating a dynaform with the character..." SOLVED

- When creating a dynaform with the character "&", the field handlers not working.
- Problema resuelto, el problema que se teníera lo siguiente cuando se utiliza el "&" en el tílo de un dynaform,
  cuando se enviaba los datos via GET, el "&" lo interpretaba como un separador de variables y esto ocasionaba la
  division de los datos que se enviaba.	Se valida los datos enviados via GET codificáolos y al recibir estos datos
  se los decodifica
This commit is contained in:
Luis Fernando Saisa Lopez
2014-06-03 14:30:20 -04:00
parent f115d60768
commit 082e72d4e8
3 changed files with 13 additions and 12 deletions

View File

@@ -13,7 +13,7 @@ var lastTypeSelected = '';
var sessionPersits = function() { var sessionPersits = function() {
var rpc = new leimnud.module.rpc.xmlhttp({ var rpc = new leimnud.module.rpc.xmlhttp({
url: '../services/sessionPersists', url: '../services/sessionPersists',
args: 'dynaformEditorParams=' + dynaformEditorParams + (lastActionPerformed != '' ? '&DYN_UID=' + __DYN_UID__ : ''), args: "dynaformEditorParams=" + encodeURIComponent(dynaformEditorParams) + ((lastActionPerformed != "")? "&DYN_UID=" + __DYN_UID__ : ""),
async: false async: false
}); });
rpc.make(); rpc.make();
@@ -565,7 +565,7 @@ var dynaformEditor={
// lineNumbers: true, // lineNumbers: true,
// lineWrapping: true }); // lineWrapping: true });
//} //}
} }
} else { } else {
showRowById('JS_TITLE'); showRowById('JS_TITLE');
@@ -774,7 +774,7 @@ var dynaformEditor={
} }
} }
this.currentJS=field.value; this.currentJS=field.value;
var res=this.ajax.get_javascripts(this.A,field.value); var res=this.ajax.get_javascripts(this.A,field.value);
if(field.value == ''){ if(field.value == ''){
if( typeof(res.aOptions[0]) !== "undefined" && res.aOptions[0].value != '___pm_boot_strap___'){ if( typeof(res.aOptions[0]) !== "undefined" && res.aOptions[0].value != '___pm_boot_strap___'){
@@ -831,9 +831,9 @@ var dynaformEditor={
} }
} }
var field=getField("JS_LIST","dynaforms_JSEditor"); var field=getField("JS_LIST","dynaforms_JSEditor");
var value=field.value; var value=field.value;
if (this.currentJS) if (this.currentJS)
{ {
field.value=this.currentJS; field.value=this.currentJS;

View File

@@ -2,7 +2,8 @@
$response = new stdclass(); $response = new stdclass();
$response->status = isset($_SESSION['USER_LOGGED']); $response->status = isset($_SESSION['USER_LOGGED']);
if (isset($_REQUEST['dynaformEditorParams'])) { if (isset($_REQUEST['dynaformEditorParams'])) {
$_SESSION['Current_Dynafom']['Parameters'] = unserialize(stripslashes($_REQUEST['dynaformEditorParams'])); $_SESSION['Current_Dynafom']['Parameters'] = unserialize(stripslashes(utf8_decode(rawurldecode($_REQUEST["dynaformEditorParams"]))));
if (isset($_REQUEST['DYN_UID'])) { if (isset($_REQUEST['DYN_UID'])) {
$dynaform = new dynaform(); $dynaform = new dynaform();
$dynaform->load($_REQUEST['DYN_UID']); $dynaform->load($_REQUEST['DYN_UID']);
@@ -34,7 +35,7 @@ if (isset($_REQUEST['dynaformEditorParams'])) {
if (isset($_REQUEST['dynaformRestoreValues'])) { if (isset($_REQUEST['dynaformRestoreValues'])) {
$aRetValues = unserialize(stripslashes(base64_decode($_REQUEST['dynaformRestoreValues']))); $aRetValues = unserialize(stripslashes(base64_decode($_REQUEST['dynaformRestoreValues'])));
if (isset($aRetValues['APPLICATION'])) { if (isset($aRetValues['APPLICATION'])) {
$_SESSION['APPLICATION'] = $aRetValues['APPLICATION']; $_SESSION['APPLICATION'] = $aRetValues['APPLICATION'];
} }

View File

@@ -15,7 +15,7 @@
<DYN_TYPE_PREVIOUS type="hidden" showInTable="0"/> <DYN_TYPE_PREVIOUS type="hidden" showInTable="0"/>
<A type="hidden" showInTable="0"/> <A type="hidden" showInTable="0"/>
<DYN_TITLE type="text" maxlength="32" size ="32"> <DYN_TITLE type="text" maxlength="256" size ="32">
<en>Dynaform</en> <en>Dynaform</en>
</DYN_TITLE> </DYN_TITLE>
@@ -53,7 +53,7 @@
<option name="prompt">Show prompt</option> <option name="prompt">Show prompt</option>
</en> </en>
</NEXTSTEPSAVE> </NEXTSTEPSAVE>
<PRINTDYNAFORM type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="0"> <PRINTDYNAFORM type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="0">
<en>Show print dynaform button</en> <en>Show print dynaform button</en>
</PRINTDYNAFORM> </PRINTDYNAFORM>
@@ -165,7 +165,7 @@ function validateGridConversion(proUid,dynUid){
msgBox("Grid forms can not contain the following fields: <br>" + response,"alert"); msgBox("Grid forms can not contain the following fields: <br>" + response,"alert");
return false; return false;
} }
}.extend(this); }.extend(this);
isTrue = oRPC.make(); isTrue = oRPC.make();
@@ -193,7 +193,7 @@ function changeToolbar(type){
args : 'TOOLBAR=' + type + '&FILE=' + file + '&PRO_UID=' + proUid + '&DYN_UID=' + dynUid + '&DYN_TITLE=' + dynTitle args : 'TOOLBAR=' + type + '&FILE=' + file + '&PRO_UID=' + proUid + '&DYN_UID=' + dynUid + '&DYN_TITLE=' + dynTitle
}); });
oRPC.callback = function(oRPC) { oRPC.callback = function(oRPC) {
getElementsByClassNameCrossBrowser("panel_headerBar___processmaker",document,"div")[0].innerHTML = oRPC.xmlhttp.responseText; getElementsByClassNameCrossBrowser("panel_headerBar___processmaker",document,"div")[0].innerHTML = oRPC.xmlhttp.responseText;
document.getElementById("publisherContent[0]").style.display = "inline"; document.getElementById("publisherContent[0]").style.display = "inline";
document.getElementById("publisherContent[0]").style.position = "absolute"; document.getElementById("publisherContent[0]").style.position = "absolute";
@@ -223,4 +223,4 @@ orderButtons();
}*/ }*/
]]> ]]>
</sdfsdf> </sdfsdf>
</dynaForm> </dynaForm>