From 6e0a170fa00fc907b66437fc63431f12303bd9ff Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Fri, 31 May 2013 12:19:28 -0400 Subject: [PATCH] BUG 10396 Mensaje de Invalid Response al crear Dynaform. IMPROVEMENT - Al restaurar la sesion no estaba seteandose los valores correctos en el archivo del formulario en c"ommpiled" - Al restaurar la sesion se crea un nuevo file en compiled con los datos actualizados --- .../engine/classes/class.dynaformEditor.php | 2 +- .../js/dynaformEditor/core/dynaformEditor.js | 2 +- .../methods/services/sessionPersists.php | 27 +++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.dynaformEditor.php b/workflow/engine/classes/class.dynaformEditor.php index 81446e544..ac9477b98 100755 --- a/workflow/engine/classes/class.dynaformEditor.php +++ b/workflow/engine/classes/class.dynaformEditor.php @@ -235,7 +235,7 @@ class dynaformEditor extends WebResource var DYNAFORM_URL="' . $Parameters['URL'] . '"; leimnud.event.add(window,"load",function(){ loadEditor(); }); '); - $oHeadPublisher->addScriptCode(' var jsMeta;var __usernameLogged__ = "' . (isset($_SESSION['USR_USERNAME']) ? $_SESSION['USR_USERNAME'] : '') . '";var SYS_LANG = "' . SYS_LANG . '";'); + $oHeadPublisher->addScriptCode(' var jsMeta;var __usernameLogged__ = "' . (isset($_SESSION['USR_USERNAME']) ? $_SESSION['USR_USERNAME'] : '') . '";var SYS_LANG = "' . SYS_LANG . '";var __DYN_UID__ = "' . $this->dyn_uid . '";'); $oHeadPublisher->addScriptCode('var dynaformEditorParams = \'' . serialize($Parameters) . '\';'); G::RenderPage("publish", 'blank'); } diff --git a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js index a376b5ac9..21be12243 100644 --- a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js +++ b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js @@ -13,7 +13,7 @@ var lastTypeSelected = ''; var sessionPersits = function() { var rpc = new leimnud.module.rpc.xmlhttp({ url: '../services/sessionPersists', - args: 'dynaformEditorParams=' + dynaformEditorParams, + args: 'dynaformEditorParams=' + dynaformEditorParams + (lastActionPerformed != '' ? '&DYN_UID=' + __DYN_UID__ : ''), async: false }); rpc.make(); diff --git a/workflow/engine/methods/services/sessionPersists.php b/workflow/engine/methods/services/sessionPersists.php index fe50ff0b8..10c5f3911 100755 --- a/workflow/engine/methods/services/sessionPersists.php +++ b/workflow/engine/methods/services/sessionPersists.php @@ -3,6 +3,33 @@ $response = new stdclass(); $response->status = isset($_SESSION['USER_LOGGED']); if (isset($_REQUEST['dynaformEditorParams'])) { $_SESSION['Current_Dynafom']['Parameters'] = unserialize(stripslashes($_REQUEST['dynaformEditorParams'])); + if (isset($_REQUEST['DYN_UID'])) { + $dynaform = new dynaform(); + $dynaform->load($_REQUEST['DYN_UID']); + + G::LoadClass('dynaformEditor'); + $editor = new dynaformEditor(array()); + $editor->file = $dynaform->getDynFilename(); + $editor->home = PATH_DYNAFORM; + $editor->title = $dynaform->getDynTitle(); + $editor->dyn_uid = $dynaform->getDynUid(); + $editor->pro_uid = $dynaform->getProUid(); + $editor->dyn_type = $dynaform->getDynType(); + $editor->dyn_title = $dynaform->getDynTitle(); + $editor->dyn_description = $dynaform->getDynDescription(); + $editor->dyn_editor = 'processmap'; + $editor->_setUseTemporalCopy(true); + + $A = isset($_SESSION['Current_Dynafom']['Parameters']['URL']) ? $_SESSION['Current_Dynafom']['Parameters']['URL'] : ''; + $form = new Form($dynaform->getProUid() . '/' . $dynaform->getDynUid(), PATH_DYNAFORM, SYS_LANG, true); + $properties = array('A' => $A, 'DYN_UID' => $dynaform->getDynUid(), 'PRO_UID' => $dynaform->getProUid(), 'DYN_TITLE' => $dynaform->getDynTitle(), + 'DYN_TYPE' => $dynaform->getDynType(), 'DYN_DESCRIPTION' => $dynaform->getDynDescription(), 'WIDTH' => $form->width, + 'MODE' => $form->mode, 'PRINTDYNAFORM' => $form->printdynaform, 'ADJUSTGRIDSWIDTH' => $form->adjustgridswidth, + 'NEXTSTEPSAVE' => $form->nextstepsave); + $tmp = $editor->_getTmpData(); + $tmp['Properties'] = $properties; + $editor->_setTmpData($tmp); + } } if (isset($_REQUEST['dynaformRestoreValues'])) { $aRetValues = unserialize(stripslashes($_REQUEST['dynaformRestoreValues']));