diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index 6746576c1..0c2c1a77e 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -2257,27 +2257,48 @@ class Cases $sAction = ''; break; } - $aNextStep = array( - 'TYPE' => $oStep->getStepTypeObj(), - 'UID' => $oStep->getStepUidObj(), - 'POSITION' => $oStep->getStepPosition(), - 'PAGE' => 'cases_Step?TYPE=' . $oStep->getStepTypeObj() . '&UID=' . - $oStep->getStepUidObj() . '&POSITION=' . $oStep->getStepPosition() . - '&ACTION=' . $sAction - ); - $iPosition = $iLastStep; + if($_SESSION['gmail'] || ($_GET['gmail'] && $_GET['gmail'] == 1)){ + $aNextStep = array( + 'TYPE' => $oStep->getStepTypeObj(), + 'UID' => $oStep->getStepUidObj(), + 'POSITION' => $oStep->getStepPosition(), + 'PAGE' => 'cases_Step?TYPE=' . $oStep->getStepTypeObj() . '&UID=' . + $oStep->getStepUidObj() . '&POSITION=' . $oStep->getStepPosition() . + '&ACTION=' . $sAction . + '&gmail=1' + ); + } else{ + $aNextStep = array( + 'TYPE' => $oStep->getStepTypeObj(), + 'UID' => $oStep->getStepUidObj(), + 'POSITION' => $oStep->getStepPosition(), + 'PAGE' => 'cases_Step?TYPE=' . $oStep->getStepTypeObj() . '&UID=' . + $oStep->getStepUidObj() . '&POSITION=' . $oStep->getStepPosition() . + '&ACTION=' . $sAction + ); + $iPosition = $iLastStep; + } } } $iPosition += 1; } } if (!$aNextStep) { - $aNextStep = array( - 'TYPE' => 'DERIVATION', - 'UID' => -1, - 'POSITION' => ($iLastStep + 1), - 'PAGE' => 'cases_Step?TYPE=ASSIGN_TASK&UID=-1&POSITION=10000&ACTION=ASSIGN' - ); + if($_SESSION['gmail'] || ($_GET['gmail'] && $_GET['gmail'] == 1)){ + $aNextStep = array( + 'TYPE' => 'DERIVATION', + 'UID' => -1, + 'POSITION' => ($iLastStep + 1), + 'PAGE' => 'cases_Step?TYPE=ASSIGN_TASK&UID=-1&POSITION=10000&ACTION=ASSIGN&gmail=1' + ); + }else { + $aNextStep = array( + 'TYPE' => 'DERIVATION', + 'UID' => -1, + 'POSITION' => ($iLastStep + 1), + 'PAGE' => 'cases_Step?TYPE=ASSIGN_TASK&UID=-1&POSITION=10000&ACTION=ASSIGN' + ); + } } return $aNextStep; } catch (exception $e) { diff --git a/workflow/engine/js/cases/core/pmDynaform.js b/workflow/engine/js/cases/core/pmDynaform.js index d70ce125e..8ac242875 100644 --- a/workflow/engine/js/cases/core/pmDynaform.js +++ b/workflow/engine/js/cases/core/pmDynaform.js @@ -26,6 +26,7 @@ $(window).load(function () { } } + var sesi = document.location.href; function loadAjaxParams () { var url; var action; @@ -46,8 +47,13 @@ $(window).load(function () { } method = 'POST'; } else if (app_uid){ //In case the form is in running cases + if(sesi.search("gmail") != -1){ + action = "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid + "&gmail=1"; + }else{ + action = "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid; + } url = location.protocol + '//' + location.host; - action = "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid; + url += '/sys' + workspace + '/en/neoclassic/cases/' + action; method = 'POST'; } @@ -86,7 +92,11 @@ $(window).load(function () { arrayRequired.name = "DynaformRequiredFields"; arrayRequired.value = fieldsRequired; var form = document.getElementsByTagName("form")[0]; - form.action = filePost ? filePost : "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid; + if(sesi.search("gmail") != -1){ + form.action = filePost ? filePost : "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid + "&gmail=1"; + } else { + form.action = filePost ? filePost : "cases_SaveData?UID=" + dyn_uid + "&APP_UID=" + app_uid; + } form.method = "post"; form.setAttribute("encType", "multipart/form-data"); form.appendChild(dyn_content_history); diff --git a/workflow/engine/methods/cases/cases_Derivate.php b/workflow/engine/methods/cases/cases_Derivate.php index 2b622db17..fe2730dba 100755 --- a/workflow/engine/methods/cases/cases_Derivate.php +++ b/workflow/engine/methods/cases/cases_Derivate.php @@ -21,56 +21,34 @@ * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ -if (!isset($_SESSION['USER_LOGGED'])) { - G::SendTemporalMessage( 'ID_LOGIN_AGAIN', 'warning', 'labels' ); - die( ''); +if (!isset($_SESSION['USER_LOGGED'])) { + G::SendTemporalMessage( 'ID_LOGIN_AGAIN', 'warning', 'labels' ); + die( ''); } /* Permissions */ switch ($RBAC->userCanAccess( 'PM_CASES' )) { diff --git a/workflow/engine/methods/cases/cases_SaveData.php b/workflow/engine/methods/cases/cases_SaveData.php index 996838d6a..17d08d35a 100755 --- a/workflow/engine/methods/cases/cases_SaveData.php +++ b/workflow/engine/methods/cases/cases_SaveData.php @@ -27,58 +27,30 @@ if (!isset($_SESSION['USER_LOGGED'])) { die( ''); } + try { if ($_GET['APP_UID'] !== $_SESSION['APPLICATION']) { throw new Exception( G::LoadTranslation( 'ID_INVALID_APPLICATION_ID_MSG', array ('{1}',G::LoadTranslation( 'ID_REOPEN' ) ) ) ); diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index be08ce525..8048a1464 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -1,80 +1,50 @@ + try + { + var olink = document.location.href; + if(olink.search("gmail") == -1){ + prnt = parent.parent; + top.location = top.location; + } else { + var data = olink.split("?"); + var odata = data[1].split("&"); + var appUid = odata[1].split("="); + var proUid = odata[0].split("="); + + var dataToSend = { + "action": "credentials", + "operation": "refreshPmSession", + "type": "processCall", + "funParams": [ + appUid[1], + proUid[1] + ], + }; + var x = parent.postMessage(JSON.stringify(dataToSend), "*"); + if (x == undefined){ + x = parent.parent.postMessage(JSON.stringify(dataToSend), "*"); + } + } + }catch (err) + { + parent.location = parent.location; + } + '); +} + require_once 'classes/model/AppDelegation.php'; $delegation = new AppDelegation(); if( $delegation->alreadyRouted($_SESSION['APPLICATION'],$_SESSION['INDEX']) ) { - if($_SESSION['gmail'] == 1){ - $mUrl = '../cases/cases_Open?APP_UID='.$_SESSION['APPLICATION'].'&DEL_INDEX='.$_SESSION['INDEX'].'&action=sent'; - header( 'location:' . $mUrl ); - die(); - } - G::header('location: ../cases/casesListExtJs'); - die(); -} - -if (!isset($_SESSION['USER_LOGGED'])) { - G::SendTemporalMessage( 'ID_LOGIN_AGAIN', 'warning', 'labels' ); - die( ''); + if($_SESSION['gmail'] == 1){ + $mUrl = '../cases/cases_Open?APP_UID='.$_SESSION['APPLICATION'].'&DEL_INDEX='.$_SESSION['INDEX'].'&action=sent'; + header( 'location:' . $mUrl ); + die(); + } + G::header('location: ../cases/casesListExtJs'); + die(); } /** * cases_Step.php @@ -112,6 +82,11 @@ switch ($RBAC->userCanAccess( 'PM_CASES' )) { die(); break; } + +if($_GET['gmail'] && $_GET['gmail'] == 1){ + $_SESSION['gmail'] = 1; + print_r('setea sesion gmail'); +} if ((int) $_SESSION['INDEX'] < 1) { G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' ); @@ -339,7 +314,11 @@ try { if ($a->isResponsive()) { $a->printEdit(); } else { - $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['UID'], '', $Fields['APP_DATA'], 'cases_SaveData?UID=' . $_GET['UID'] . '&APP_UID=' . $_SESSION['APPLICATION'], '', (strtolower($oStep->getStepMode()) != 'edit' ? strtolower($oStep->getStepMode()) : '')); + if($_GET['gmail'] && $_GET['gmail'] == 1){ + $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['UID'], '', $Fields['APP_DATA'], 'cases_SaveData?UID=' . $_GET['UID'] . '&APP_UID=' . $_SESSION['APPLICATION'] . '&gmail=1', '', (strtolower($oStep->getStepMode()) != 'edit' ? strtolower($oStep->getStepMode()) : '')); + }else{ + $G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['UID'], '', $Fields['APP_DATA'], 'cases_SaveData?UID=' . $_GET['UID'] . '&APP_UID=' . $_SESSION['APPLICATION'], '', (strtolower($oStep->getStepMode()) != 'edit' ? strtolower($oStep->getStepMode()) : '')); + } } break; case 'INPUT_DOCUMENT': diff --git a/workflow/public_html/pmGmail/lostSession.php b/workflow/public_html/pmGmail/lostSession.php new file mode 100644 index 000000000..f9575a69e --- /dev/null +++ b/workflow/public_html/pmGmail/lostSession.php @@ -0,0 +1,33 @@ + + try + { + alert("lostSession"); + var dataToSend = { + "action": "credentials", + "operation": "refreshPmSession", + "type": "processCall", + "funParams": [ + "", + "" + ], + "expectReturn": false + }; + var x = parent.postMessage(JSON.stringify(dataToSend), "*"); + }catch (err) + { + parent.location = parent.location; + } + '); +} +if($_GET['form']){ + header( 'location:' . $_SESSION['server'] . $_SESSION['PMCase'] ); +}else if($_GET['processmap']){ + header( 'location:' . $_SESSION['server'] . $_SESSION['PMProcessmap'] ); +}else if($_GET['uploaded']){ + header( 'location:' . $_SESSION['server'] . $_SESSION['PMUploadedDocuments'] ); +} else if($_GET['generated']){ + header( 'location:' . $_SESSION['server'] . $_SESSION['PMGeneratedDocuments'] ); +} diff --git a/workflow/public_html/pmGmail/templateForm.php b/workflow/public_html/pmGmail/templateForm.php index 1051db733..bd162aac4 100644 --- a/workflow/public_html/pmGmail/templateForm.php +++ b/workflow/public_html/pmGmail/templateForm.php @@ -74,33 +74,30 @@