diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php
index 24922b0b8..444d4b04e 100755
--- a/gulliver/system/class.xmlform.php
+++ b/gulliver/system/class.xmlform.php
@@ -2530,9 +2530,11 @@ class XmlForm_Field_Submit extends XmlForm_Field {
} elseif ($this->mode === 'view') {
// return "style};display:none\" disabled='disabled' class='module_app_button___gray module_app_buttonDisabled___gray {$this->className}' id=\"form[{$this->name}]\" name=\"form[{$this->name}]\" type='submit' value=\"{$this->label}\" " . (($this->onclick) ? 'onclick="' . htmlentities ( $onclick, ENT_COMPAT, 'utf-8' ) . '"' : '') . " />";
//$sLinkNextStep = 'window.open("' . $owner->fields['__DYNAFORM_OPTIONS']->xmlMenu->values['NEXT_STEP'] . '", "_self");';
-
- $sLinkNextStep = 'window.location=("casesSaveDataView?UID='.$_SESSION['CURRENT_DYN_UID'].'");';
- $html = '';
+ $html = '';
+ if (isset($_SESSION['CURRENT_DYN_UID'])) {
+ $sLinkNextStep = 'window.location=("casesSaveDataView?UID='.$_SESSION['CURRENT_DYN_UID'].'");';
+ $html = '';
+ }
$html .= 'name . ']" ';
$html .= 'name="form[' . $this->name . ']" ';
diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php
index 7f850aa3a..f01c167a1 100755
--- a/workflow/engine/classes/class.case.php
+++ b/workflow/engine/classes/class.case.php
@@ -4595,36 +4595,26 @@ class Cases {
}
/*
- * funcion permisos, by Everth
+ * funcion caseTrackerPermissions, by Everth
*
- * @name Permisos
+ * @name caseTrackerPermissions
* @param string $PRO_UID
* @return string
*/
- function Permisos($PRO_UID) {
- $a = 0;
- $b = 0;
- $c = 0;
- $d = 0;
- $oCaseTracker = new CaseTracker();
- $aCaseTracker = $oCaseTracker->load($PRO_UID);
- if (is_array($aCaseTracker)) {
- if ($aCaseTracker['CT_MAP_TYPE'] != 'NONE')
- $a = 1;
+ function caseTrackerPermissions($PRO_UID) {
+ $newCaseTracker = new CaseTracker();
+ $caseTracker = $newCaseTracker->load($PRO_UID);
+ if (is_array($caseTracker)) {
+ $caseTracker['CT_MAP_TYPE'] = ($caseTracker['CT_MAP_TYPE'] != 'NONE')? true : false;
+ //$caseTracker['CT_DERIVATION_HISTORY'] = ($caseTracker['CT_DERIVATION_HISTORY'] == 1)? true : false;
+ //$caseTracker['CT_MESSAGE_HISTORY'] = ($caseTracker['CT_MESSAGE_HISTORY'] == 1)? true : false;
- $oCriteria = new Criteria();
- $oCriteria->add(CaseTrackerObjectPeer::PRO_UID, $PRO_UID);
- if (CaseTrackerObjectPeer::doCount($oCriteria) > 0)
- $b = 1;
-
- if ($aCaseTracker['CT_DERIVATION_HISTORY'] == 1)
- $c = 1;
-
- if ($aCaseTracker['CT_MESSAGE_HISTORY'] == 1)
- $d = 1;
+ $criteria = new Criteria();
+ $criteria->add(CaseTrackerObjectPeer::PRO_UID, $PRO_UID);
+ $caseTracker['DYNADOC'] = (CaseTrackerObjectPeer::doCount($criteria) > 0)? true : false;
}
- return $a . '-' . $b . '-' . $c . '-' . $d;
+ return $caseTracker;
}
/*
diff --git a/workflow/engine/menus/caseTracker.php b/workflow/engine/menus/caseTracker.php
index 4d45d3eb0..7b37701bf 100755
--- a/workflow/engine/menus/caseTracker.php
+++ b/workflow/engine/menus/caseTracker.php
@@ -23,7 +23,7 @@
*
*/
/*
- * Case Tracker Menú
+ * Case Tracker Menú
*
* @author Everth S. Berrios Morales
*
@@ -31,46 +31,25 @@
global $G_TMP_MENU;
global $RBAC;
-$G_TMP_MENU->AddIdRawOption('MAP', 'tracker/tracker_ViewMap');
-$G_TMP_MENU->AddIdRawOption('DYNADOC', 'tracker/tracker_DynaDocs');
-$G_TMP_MENU->AddIdRawOption('HISTORY', 'tracker/tracker_History');
-$G_TMP_MENU->AddIdRawOption('MESSAGES', 'tracker/tracker_Messages');
-
-$G_TMP_MENU->Labels = array(
- G::LoadTranslation('ID_MAP'),
- G::LoadTranslation('ID_DYNADOC'),
- G::LoadTranslation('ID_HISTORY'),
- G::LoadTranslation('ID_HISTORY_MESSAGES')
-);
-
-if ( file_exists ( PATH_CORE . 'menus/plugin.php' ) ) {
- require_once ( PATH_CORE . 'menus/plugin.php' );
+if (file_exists ( PATH_CORE . 'menus/plugin.php')) {
+ require_once (PATH_CORE . 'menus/plugin.php');
}
-G::LoadClass('case');
- $oCase = new Cases();
- $per = $oCase->Permisos( $_SESSION['PROCESS']);
-
- $p = explode('-', $per);
-
-if ($p[0] != 1)
-{
- $G_TMP_MENU->DisableOptionId('MAP');
-}
-
-if ($p[1] != 1)
-{
- $G_TMP_MENU->DisableOptionId('DYNADOC');
-}
-
-if ($p[2] != 1)
-{
- $G_TMP_MENU->DisableOptionId('HISTORY');
-}
-
-if ($p[3] != 1)
-{
- $G_TMP_MENU->DisableOptionId('MESSAGES');
-}
+ G::LoadClass('case');
+ $case = new Cases();
+ $caseTracker = $case->caseTrackerPermissions( $_SESSION['PROCESS']);
+ if ($caseTracker['CT_MAP_TYPE']) {
+ $G_TMP_MENU->AddIdRawOption('MAP', 'tracker/tracker_ViewMap', G::LoadTranslation('ID_MAP'));
+ }
+ if ($caseTracker['DYNADOC']) {
+ $G_TMP_MENU->AddIdRawOption('DYNADOC', 'tracker/tracker_DynaDocs', G::LoadTranslation('ID_DYNADOC'));
+ }
+ if ($caseTracker['CT_DERIVATION_HISTORY']) {
+ $G_TMP_MENU->AddIdRawOption('HISTORY', 'tracker/tracker_History', G::LoadTranslation('ID_HISTORY'));
+ }
+ if ($caseTracker['CT_MESSAGE_HISTORY']) {
+ $G_TMP_MENU->AddIdRawOption('MESSAGES', 'tracker/tracker_Messages', G::LoadTranslation('ID_HISTORY_MESSAGES'));
+ }
+
diff --git a/workflow/engine/methods/tracker/authentication.php b/workflow/engine/methods/tracker/authentication.php
index 649c81e71..9c14cd0f7 100755
--- a/workflow/engine/methods/tracker/authentication.php
+++ b/workflow/engine/methods/tracker/authentication.php
@@ -29,98 +29,88 @@
*
*/
-
if (!isset($_POST['form']) ) {
G::SendTemporalMessage ('ID_USER_HAVENT_RIGHTS_SYSTEM', "error");
G::header ("location: login.php");die;
}
-
try {
- $frm = $_POST['form'];
- $case = '';
- $pin = '';
+ $frm = $_POST['form'];
+ $case = '';
+ $pin = '';
- if (isset($frm['CASE'])) {
- $case = strtolower(trim($frm['CASE']));
- $pin = trim($frm['PIN']);
- }
+ if (isset($frm['CASE'])) {
+ $case = strtolower(trim($frm['CASE']));
+ $pin = trim($frm['PIN']);
+ }
- G::LoadClass('case');
- $oCase = new Cases();
+ G::LoadClass('case');
+ $cases = new Cases();
- $uid = $oCase->verifyCaseTracker($case, $pin);
- //print_r($uid); die;
- switch ($uid) {
- //The case doesn't exist
- case -1:
- G::SendTemporalMessage ('ID_CASE_NOT_EXISTS', "error");
- break;
- //The pin is invalid
- case -2:
- G::SendTemporalMessage ('ID_PIN_INVALID', "error");
- break;
- }
+ $uid = $cases->verifyCaseTracker($case, $pin);
+ switch ($uid) {
+ //The case doesn't exist
+ case -1:
+ G::SendTemporalMessage ('ID_CASE_NOT_EXISTS', "error");
+ break;
+ //The pin is invalid
+ case -2:
+ G::SendTemporalMessage ('ID_PIN_INVALID', "error");
+ break;
+ }
- if ($uid < 0 ) {
- G::header ("location: login.php");
- die;
- }
+ if ($uid < 0 ) {
+ G::header ("location: login.php");
+ die;
+ }
- if(is_array($uid))
- {
- require_once ("classes/model/CaseTracker.php");
- require_once ("classes/model/CaseTrackerObject.php");
- $_SESSION['CASE']=$case;
- $_SESSION['PIN']=$pin;
- $_SESSION['PROCESS']=$uid['PRO_UID'];
- $_SESSION['APPLICATION']=$uid['APP_UID'];
- $_SESSION['TASK']=-1;
- $_SESSION['INDEX']=-1;
- $a=0;
- $b=0;
- $c=0;
- $oCriteria = new Criteria();
- $oCriteria->add(CaseTrackerPeer::PRO_UID, $_SESSION['PROCESS']);
- $oCaseTracker = new CaseTracker();
- if (CaseTrackerPeer::doCount($oCriteria) === 0) {
- $aCaseTracker = array('PRO_UID' => $_SESSION['PROCESS'],
+ if(is_array($uid))
+ {
+ require_once ("classes/model/CaseTracker.php");
+ require_once ("classes/model/CaseTrackerObject.php");
+ $_SESSION['CASE'] = $case;
+ $_SESSION['PIN'] = $pin;
+ $_SESSION['PROCESS'] = $uid['PRO_UID'];
+ $_SESSION['APPLICATION'] = $uid['APP_UID'];
+ $_SESSION['TASK'] = -1;
+ $_SESSION['INDEX'] = -1;
+
+ $criteria = new Criteria();
+ $criteria->add(CaseTrackerPeer::PRO_UID, $_SESSION['PROCESS']);
+ $caseTracker = new CaseTracker();
+ if (CaseTrackerPeer::doCount($criteria) === 0) {
+ $permissionsCaseTracker = array('PRO_UID' => $_SESSION['PROCESS'],
'CT_MAP_TYPE' => 'PROCESSMAP',
'CT_DERIVATION_HISTORY' => 1,
'CT_MESSAGE_HISTORY' => 1);
- $oCaseTracker->create($aCaseTracker);
+ $caseTracker->create($permissionsCaseTracker);
+ }
+ $caseTracker = $cases->caseTrackerPermissions( $_SESSION['PROCESS']);
+
+ if ($caseTracker['CT_MAP_TYPE']) {
+ G::header ('location: tracker_ViewMap');
}
else {
- $aCaseTracker = $oCaseTracker->load($_SESSION['PROCESS']);
- }
-
- if(is_array($aCaseTracker))
- { if($aCaseTracker['CT_MAP_TYPE']!='NONE')
- { $a=1;
- G::header ('location: tracker_ViewMap');
- die;
- }
-
- $oCriteria = new Criteria();
- $oCriteria->add(CaseTrackerObjectPeer::PRO_UID, $_SESSION['PROCESS']);
- if (CaseTrackerObjectPeer::doCount($oCriteria) > 0)
- { $b=1;
- G::header ("location: tracker_DynaDocs");
- die;
- }
-
- if($aCaseTracker['CT_DERIVATION_HISTORY']==1)
- { $c=1;
- G::header ("location: tracker_History");
- die;
- }
-
- G::header ("location: tracker_No");
- }
+ if ($caseTracker['DYNADOC']) {
+ G::header ("location: tracker_DynaDocs");
+ }
+ else {
+ if ($caseTracker['CT_DERIVATION_HISTORY']) {
+ G::header ("location: tracker_History");
+ }
+ else {
+ if ($caseTracker['CT_MESSAGE_HISTORY']) {
+ G::header ("location: tracker_No");
+ }
+ else {
+ G::header ("location: login.php");
+ G::SendTemporalMessage ('ID_ACCOUNT_DISABLED_CONTACT_ADMIN', "error");
+ }
+ }
+ }
+ }
}
-
}
-
catch ( Exception $e ) {
$aMessage['MESSAGE'] = $e->getMessage();
$G_PUBLISH = new Publisher;
diff --git a/workflow/engine/methods/tracker/tracker_Show.php b/workflow/engine/methods/tracker/tracker_Show.php
index 07c6bade4..53ba49fde 100755
--- a/workflow/engine/methods/tracker/tracker_Show.php
+++ b/workflow/engine/methods/tracker/tracker_Show.php
@@ -43,7 +43,7 @@
$G_MAIN_MENU = 'caseTracker';
$G_ID_MENU_SELECTED = 'DYNADOC';
global $G_PUBLISH;
-
+
switch ($_GET['CTO_TYPE_OBJ'])
{
case 'DYNAFORM':
@@ -57,7 +57,6 @@
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW'] = '#';
$Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PRINT_PREVIEW_ACTION'] = 'tracker_PrintView?CTO_UID_OBJ=' . $_GET['CTO_UID_OBJ'] . '&CTO_TYPE_OBJ=PRINT_PREVIEW';
$_SESSION['CTO_UID_OBJ'] = $_GET['CTO_UID_OBJ'];
-
$G_PUBLISH = new Publisher;
$G_PUBLISH->AddContent('dynaform', 'xmlform', $_SESSION['PROCESS']. '/' . $_GET['CTO_UID_OBJ'], '', $Fields['APP_DATA'],'','','view');
G::RenderPage('publish');
diff --git a/workflow/engine/methods/tracker/tracker_ViewMap.php b/workflow/engine/methods/tracker/tracker_ViewMap.php
index 15d6a422f..0f64a202a 100755
--- a/workflow/engine/methods/tracker/tracker_ViewMap.php
+++ b/workflow/engine/methods/tracker/tracker_ViewMap.php
@@ -29,95 +29,95 @@
* @author Everth S. Berrios Morales
*
*/
- if (!isset($_SESSION['PROCESS'])) {
- G::header('location: login');
+ if (!isset($_SESSION['PROCESS'])) {
+ G::header('location: login');
}
- $G_MAIN_MENU = 'caseTracker';
+ $G_MAIN_MENU = 'caseTracker';
$G_ID_MENU_SELECTED = 'MAP';
- require_once 'classes/model/CaseTracker.php';
- $oCaseTracker = new CaseTracker();
- $aCaseTracker = $oCaseTracker->load($_SESSION['PROCESS']);
- switch (($aCaseTracker['CT_MAP_TYPE'])) {
- case 'NONE':
- //Nothing
- break;
- case 'PROCESSMAP':
- G::LoadClass('case');
- $oCase = new Cases();
- $aFields = $oCase->loadCase($_SESSION['APPLICATION']);
- if (isset($aFields['TITLE'])) {
- $aFields['APP_TITLE'] = $aFields['TITLE'];
- }
- if ($aFields['APP_PROC_CODE'] != '') {
- $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
- }
+ require_once 'classes/model/CaseTracker.php';
+ $oCaseTracker = new CaseTracker();
+ $aCaseTracker = $oCaseTracker->load($_SESSION['PROCESS']);
+ switch (($aCaseTracker['CT_MAP_TYPE'])) {
+ case 'NONE':
+ //Nothing
+ break;
+ case 'PROCESSMAP':
+ G::LoadClass('case');
+ $oCase = new Cases();
+ $aFields = $oCase->loadCase($_SESSION['APPLICATION']);
+ if (isset($aFields['TITLE'])) {
+ $aFields['APP_TITLE'] = $aFields['TITLE'];
+ }
+ if ($aFields['APP_PROC_CODE'] != '') {
+ $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
+ }
$aFields['CASE'] = G::LoadTranslation('ID_CASE');
$aFields['TITLE'] = G::LoadTranslation('ID_TITLE');
- $oTemplatePower = new TemplatePower(PATH_TPL . 'processes/processes_Map.html');
- $oTemplatePower->prepare();
- $G_PUBLISH = new Publisher;
- $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
- $G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
- $oHeadPublisher =& headPublisher::getSingleton();
- $oHeadPublisher->addScriptCode('
- leimnud.event.add(window,"load",function(){
- var pb=leimnud.dom.capture("tag.body 0");
- Pm=new processmap();
- Pm.options = {
- target : "pm_target",
- dataServer: "../processes/processes_Ajax",
- uid : "' . $_SESSION['PROCESS'] . '",
- lang : "' . SYS_LANG . '",
- theme : "processmaker",
- size : {w:pb.offsetWidth-10,h:pb.offsetHeight},
- images_dir: "/jscore/processmap/core/images/",
- rw : false,
- mi : false,
- ct : true,
- hideMenu : false
- }
- Pm.make();
- });');
- G::RenderPage('publish');
- break;
- case 'STAGES':
- G::LoadClass('case');
- $oCase = new Cases();
- $aFields = $oCase->loadCase($_SESSION['APPLICATION']);
- if (isset($aFields['TITLE'])) {
- $aFields['APP_TITLE'] = $aFields['TITLE'];
- }
- if ($aFields['APP_PROC_CODE'] != '') {
- $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
- }
+ $oTemplatePower = new TemplatePower(PATH_TPL . 'processes/processes_Map.html');
+ $oTemplatePower->prepare();
+ $G_PUBLISH = new Publisher;
+ $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
+ $G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
+ $oHeadPublisher =& headPublisher::getSingleton();
+ $oHeadPublisher->addScriptCode('
+ leimnud.event.add(window,"load",function(){
+ var pb=leimnud.dom.capture("tag.body 0");
+ Pm=new processmap();
+ Pm.options = {
+ target : "pm_target",
+ dataServer: "../processes/processes_Ajax",
+ uid : "' . $_SESSION['PROCESS'] . '",
+ lang : "' . SYS_LANG . '",
+ theme : "processmaker",
+ size : {w:pb.offsetWidth-10,h:pb.offsetHeight},
+ images_dir: "/jscore/processmap/core/images/",
+ rw : false,
+ mi : false,
+ ct : true,
+ hideMenu : false
+ }
+ Pm.make();
+ });');
+ G::RenderPage('publish');
+ break;
+ case 'STAGES':
+ G::LoadClass('case');
+ $oCase = new Cases();
+ $aFields = $oCase->loadCase($_SESSION['APPLICATION']);
+ if (isset($aFields['TITLE'])) {
+ $aFields['APP_TITLE'] = $aFields['TITLE'];
+ }
+ if ($aFields['APP_PROC_CODE'] != '') {
+ $aFields['APP_NUMBER'] = $aFields['APP_PROC_CODE'];
+ }
$aFields['CASE'] = G::LoadTranslation('ID_CASE');
$aFields['TITLE'] = G::LoadTranslation('ID_TITLE');
- $oTemplatePower = new TemplatePower(PATH_TPL . 'tracker/stages_Map.html');
- $oTemplatePower->prepare();
- $G_PUBLISH = new Publisher;
- $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
- $G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
- $oHeadPublisher =& headPublisher::getSingleton();
- $oHeadPublisher->addScriptCode('
- leimnud.Package.Load("stagesmap",{Type:"file",Absolute:true,Path:"/jscore/stagesmap/core/stagesmap.js"});
- leimnud.event.add(window,"load",function(){
- var pb=leimnud.dom.capture("tag.body 0");
- Sm=new stagesmap();
- Sm.options = {
- target : "sm_target",
- dataServer: "../tracker/tracker_Ajax",
- uid : "' . $_SESSION['PROCESS'] . '",
- lang : "' . SYS_LANG . '",
- theme : "processmaker",
- size : {w:"780",h:"540"},
- //size : {w:pb.offsetWidth-10,h:pb.offsetHeight},
- images_dir: "/jscore/processmap/core/images/",
- rw : false,
- hideMenu : false
- };
- Sm.make();
- });');
- G::RenderPage('publish');
- break;
+ $oTemplatePower = new TemplatePower(PATH_TPL . 'tracker/stages_Map.html');
+ $oTemplatePower->prepare();
+ $G_PUBLISH = new Publisher;
+ $G_PUBLISH->AddContent('smarty', 'cases/cases_title', '', '', $aFields);
+ $G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
+ $oHeadPublisher =& headPublisher::getSingleton();
+ $oHeadPublisher->addScriptCode('
+ leimnud.Package.Load("stagesmap",{Type:"file",Absolute:true,Path:"/jscore/stagesmap/core/stagesmap.js"});
+ leimnud.event.add(window,"load",function(){
+ var pb=leimnud.dom.capture("tag.body 0");
+ Sm=new stagesmap();
+ Sm.options = {
+ target : "sm_target",
+ dataServer: "../tracker/tracker_Ajax",
+ uid : "' . $_SESSION['PROCESS'] . '",
+ lang : "' . SYS_LANG . '",
+ theme : "processmaker",
+ size : {w:"780",h:"540"},
+ //size : {w:pb.offsetWidth-10,h:pb.offsetHeight},
+ images_dir: "/jscore/processmap/core/images/",
+ rw : false,
+ hideMenu : false
+ };
+ Sm.make();
+ });');
+ G::RenderPage('publish');
+ break;
}
diff --git a/workflow/engine/test/unit/processmaker/classCasesTest.php b/workflow/engine/test/unit/processmaker/classCasesTest.php
index 1a07b5d1c..24248e458 100755
--- a/workflow/engine/test/unit/processmaker/classCasesTest.php
+++ b/workflow/engine/test/unit/processmaker/classCasesTest.php
@@ -550,7 +550,7 @@
//checking method 'Permisos'
$t->is ( $aMethods[60], 'Permisos', 'Permisos() is callable' );
- //$result = $obj->Permisos ( $PRO_UID);
+ //$result = $obj->caseTrackerPermissions ( $PRO_UID);
//$t->isa_ok( $result, 'NULL', 'call to method Permisos ');
$t->todo( "call to method Permisos using $PRO_UID ");