BUG 8660 Problems in Case Tracker SOLVED

- The first problem, when the tab diagram showing the map did not hide when you selected the option NONE, and when they entered a white screen is displayed, the error speak second to show the dynaforms not present a session variable the which was shown as a notice.
- To display dinaforms valid only in the XmlForm class, and q if you increase the session showed the Dynaform across the page, to edit the first problem is how to obtain permits in class case by changing the role permission caseTrackerPermissions addition to improving function, also modified the way to generate depending on the function menu caseTrackerPermissions also modified the authentication to lead the tab corresponding to the relevant validations.
This commit is contained in:
Marco Antonio Nina
2012-03-08 11:11:47 -04:00
parent 20e11d747d
commit fadec156e5
7 changed files with 187 additions and 227 deletions

View File

@@ -2530,9 +2530,11 @@ class XmlForm_Field_Submit extends XmlForm_Field {
} elseif ($this->mode === 'view') {
// return "<input style=\"{$this->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");';
$html = '';
if (isset($_SESSION['CURRENT_DYN_UID'])) {
$sLinkNextStep = 'window.location=("casesSaveDataView?UID='.$_SESSION['CURRENT_DYN_UID'].'");';
$html = '<input style="' . $this->style . '" class="module_app_button___gray '. $this->className .'" id="form['. $this->name .']" name="form['. $this->name .']" type="button" value="' .G::LoadTranslation('ID_CONTINUE') . '" onclick="' . htmlentities ( $sLinkNextStep, ENT_COMPAT, 'utf-8' ) . '" />';
}
$html .= '<input ';
$html .= 'id="form['. $this->name . ']" ';
$html .= 'name="form[' . $this->name . ']" ';

View File

@@ -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;
}
/*

View File

@@ -23,7 +23,7 @@
*
*/
/*
* Case Tracker Men<EFBFBD>
* Case Tracker Menú
*
* @author Everth S. Berrios Morales <everth@colosa.com>
*
@@ -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');
}
G::LoadClass('case');
$oCase = new Cases();
$per = $oCase->Permisos( $_SESSION['PROCESS']);
$p = explode('-', $per);
if ($p[0] != 1)
{
$G_TMP_MENU->DisableOptionId('MAP');
$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 ($p[1] != 1)
{
$G_TMP_MENU->DisableOptionId('DYNADOC');
if ($caseTracker['DYNADOC']) {
$G_TMP_MENU->AddIdRawOption('DYNADOC', 'tracker/tracker_DynaDocs', G::LoadTranslation('ID_DYNADOC'));
}
if ($p[2] != 1)
{
$G_TMP_MENU->DisableOptionId('HISTORY');
if ($caseTracker['CT_DERIVATION_HISTORY']) {
$G_TMP_MENU->AddIdRawOption('HISTORY', 'tracker/tracker_History', G::LoadTranslation('ID_HISTORY'));
}
if ($p[3] != 1)
{
$G_TMP_MENU->DisableOptionId('MESSAGES');
if ($caseTracker['CT_MESSAGE_HISTORY']) {
$G_TMP_MENU->AddIdRawOption('MESSAGES', 'tracker/tracker_Messages', G::LoadTranslation('ID_HISTORY_MESSAGES'));
}

View File

@@ -29,13 +29,11 @@
*
*/
if (!isset($_POST['form']) ) {
G::SendTemporalMessage ('ID_USER_HAVENT_RIGHTS_SYSTEM', "error");
G::header ("location: login.php");die;
}
try {
$frm = $_POST['form'];
$case = '';
@@ -47,10 +45,9 @@ try {
}
G::LoadClass('case');
$oCase = new Cases();
$cases = new Cases();
$uid = $oCase->verifyCaseTracker($case, $pin);
//print_r($uid); die;
$uid = $cases->verifyCaseTracker($case, $pin);
switch ($uid) {
//The case doesn't exist
case -1:
@@ -77,50 +74,43 @@ try {
$_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'],
$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;
if ($caseTracker['DYNADOC']) {
G::header ("location: tracker_DynaDocs");
die;
}
if($aCaseTracker['CT_DERIVATION_HISTORY']==1)
{ $c=1;
else {
if ($caseTracker['CT_DERIVATION_HISTORY']) {
G::header ("location: tracker_History");
die;
}
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;

View File

@@ -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');

View File

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