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 ");