From cb086e06c39577d1f4c971dbfae0f80501489b0d Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Wed, 15 Aug 2012 19:04:55 -0400 Subject: [PATCH] BUG 9624 When you go to the UNASSIGN option, screen is blank SOLVED - When format a date with null value thows a javascript error - Add validation for null values - Fix some issues with the format of names (current user, previous user) --- .../engine/classes/class.applications.php | 70 +++++++++++-------- .../engine/methods/cases/casesListExtJs.php | 43 +++++++----- workflow/engine/templates/cases/casesList.js | 68 +++++++++++------- 3 files changed, 108 insertions(+), 73 deletions(-) diff --git a/workflow/engine/classes/class.applications.php b/workflow/engine/classes/class.applications.php index 47c1f2da2..26c20dcd6 100644 --- a/workflow/engine/classes/class.applications.php +++ b/workflow/engine/classes/class.applications.php @@ -19,7 +19,7 @@ class Applications $type = isset($type) ? $type: 'extjs'; $dateFrom = isset($dateFrom)? $dateFrom : ''; $dateTo = isset($dateTo) ? $dateTo : ''; - + G::LoadClass("BasePeer" ); G::LoadClass ( 'configuration' ); require_once ( "classes/model/AppCacheView.php" ); @@ -31,7 +31,7 @@ class Applications //$userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? $_SESSION['USER_LOGGED'] : null; <-- passed by param $oAppCache = new AppCacheView(); - + //get data configuration $conf = new Configurations(); $confCasesList = $conf->getConfiguration('casesList',($action=='search'||$action=='simple_search')?'sent':$action ); @@ -98,10 +98,20 @@ class Applications break; } - // $Criteria->addJoin(AppCacheViewPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); - $Criteria->addJoin(AppCacheViewPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); - $Criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME ); - $Criteria->addSelectColumn(UsersPeer::USR_LASTNAME ); + $Criteria->addAlias('CU', 'USERS'); + $Criteria->addJoin(AppCacheViewPeer::USR_UID, 'CU.USR_UID', Criteria::LEFT_JOIN); + $Criteria->addAsColumn('USR_FIRSTNAME', 'CU.USR_FIRSTNAME'); + $Criteria->addAsColumn('USR_LASTNAME', 'CU.USR_LASTNAME'); + $Criteria->addAsColumn('USR_USERNAME', 'CU.USR_USERNAME'); + + // Fix for previous user + if ($action == 'todo' || $action == 'selfservice' || $action =='unassigned' || $action == 'paused' || $action == 'to_revise') { + $Criteria->addAlias('PU', 'USERS'); + $Criteria->addJoin(AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN); + $Criteria->addAsColumn('PREVIOUS_USR_FIRSTNAME', 'PU.USR_FIRSTNAME'); + $Criteria->addAsColumn('PREVIOUS_USR_LASTNAME', 'PU.USR_LASTNAME'); + $Criteria->addAsColumn('PREVIOUS_USR_USERNAME', 'PU.USR_USERNAME'); + } if ( !is_array($confCasesList) ) { $rows = $this->getDefaultFields( $action ); @@ -155,14 +165,14 @@ class Applications $CriteriaCount->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ); } - //add the filter + //add the filter if ( $filter != '' ) { switch ( $filter ) { case 'read' : $Criteria->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL); $CriteriaCount->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL); break; - case 'unread' : + case 'unread' : $Criteria->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL); $CriteriaCount->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL); break; @@ -175,7 +185,7 @@ class Applications $CriteriaCount->add (AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL); break; } - } + } //add the search filter if ( $search != '' ) { @@ -245,7 +255,7 @@ class Applications //here we count how many records exists for this criteria. //BUT there are some special cases, and if we dont optimize them the server will crash. $doCountAlreadyExecuted = false; - //case 1. when the SEARCH action is selected and none filter, search criteria is defined, + //case 1. when the SEARCH action is selected and none filter, search criteria is defined, //we need to count using the table APPLICATION, because APP_CACHE_VIEW takes 3 seconds if ( $action == 'search' && $filter == '' && $search == '' && $process == '' && $status == '' && $dateFrom == '' && $dateTo == '') { @@ -282,7 +292,7 @@ class Applications } - //add sortable options + //add sortable options if ( $sort != '' ) { if ( $dir == 'DESC' ) $Criteria->addDescendingOrderByColumn( $sort ); @@ -290,7 +300,7 @@ class Applications $Criteria->addAscendingOrderByColumn( $sort ); } - //limit the results according the interface + //limit the results according the interface $Criteria->setLimit( $limit ); $Criteria->setOffset( $start ); @@ -327,7 +337,7 @@ class Applications $index = $start; while($aRow = $oDataset->getRow()){ //$aRow = $oAppCache->replaceRowUserData($aRow); - + /* For participated cases, we want the last step in the case, not only * the last step this user participated. To do that we get every case * information again for the last step. (This could be solved by a subquery, @@ -349,14 +359,14 @@ class Applications if (array_key_exists($col, $newData)) $aRow[$col] = $newData[$col]; } - + $maxDataset->close(); } - + if (!isset($aRow['APP_CURRENT_USER'])) $aRow['APP_CURRENT_USER'] = "[Unassigned]"; - - // replacing the status data with their respective translation + + // replacing the status data with their respective translation if( isset($aRow['APP_STATUS']) ){ $aRow['APP_STATUS'] = G::LoadTranslation("ID_{$aRow['APP_STATUS']}"); } @@ -365,17 +375,17 @@ class Applications if( isset($aRow['DEL_PRIORITY']) ){ $aRow['DEL_PRIORITY'] = G::LoadTranslation("ID_PRIORITY_{$aPriorities[$aRow['DEL_PRIORITY']]}"); } - + $rows[] = $aRow; $oDataset->next(); } $result['data'] = $rows; - + return $result; } - + //TODO: Encapsulates these and another default generation functions inside a class /** * generate all the default fields @@ -631,7 +641,7 @@ class Applications G::LoadClass('pmScript'); G::LoadClass('case'); - + $steps = Array(); $case = new Cases; $step = new Step; @@ -661,7 +671,7 @@ class Applications if (trim($caseStep->getStepCondition()) != '') { // if it has a condition $pmScript->setScript($caseStep->getStepCondition()); - + if (!$pmScript->evaluate()) { //evaluate //evaluated false, jump & continue with the others steps continue; @@ -689,18 +699,18 @@ class Applications $outputDoc = $appDocument->getObject($appUid, $index, $caseStep->getStepUidObj(), 'OUTPUT'); $stepItem['title'] = $oDocument->getOutDocTitle(); - + if ($outputDoc['APP_DOC_UID']) { - $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=VIEW&DOC={$outputDoc['APP_DOC_UID']}"; + $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=VIEW&DOC={$outputDoc['APP_DOC_UID']}"; } else { - $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=GENERATE"; + $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=GENERATE"; } break; case 'INPUT_DOCUMENT': $oDocument = InputDocumentPeer::retrieveByPK($stepUid); - + $stepItem['title'] = $oDocument->getInpDocTitle(); $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=ATTACH"; break; @@ -708,11 +718,11 @@ class Applications case 'EXTERNAL': $stepTitle = 'unknown ' . $caseStep->getStepUidObj(); $oPluginRegistry = PMPluginRegistry::getSingleton(); - + $externalStep = $externalSteps[$caseStep->getStepUidObj()]; $stepItem['id'] = $externalStep->sStepId; $stepItem['title'] = $externalStep->sStepTitle; - $stepItem['url'] = "cases/cases_Step?UID={$externalStep->sStepId}&TYPE=EXTERNAL&POSITION=$stepPosition&ACTION=EDIT"; + $stepItem['url'] = "cases/cases_Step?UID={$externalStep->sStepId}&TYPE=EXTERNAL&POSITION=$stepPosition&ACTION=EDIT"; break; } @@ -725,8 +735,8 @@ class Applications $stepItem['type'] = ''; $stepItem['title'] = G::LoadTranslation('ID_ASSIGN_TASK'); $stepItem['url'] = "cases/cases_Step?TYPE=ASSIGN_TASK&UID=-1&POSITION=10000&ACTION=ASSIGN"; - - $steps[] = $stepItem; + + $steps[] = $stepItem; return $steps; } diff --git a/workflow/engine/methods/cases/casesListExtJs.php b/workflow/engine/methods/cases/casesListExtJs.php index 73ef8540a..1a6337494 100755 --- a/workflow/engine/methods/cases/casesListExtJs.php +++ b/workflow/engine/methods/cases/casesListExtJs.php @@ -331,23 +331,25 @@ //these getXX function gets the default fields in casesListSetup function getToDo() { $caseColumns = array (); - $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_SUMMARY'), 'dataIndex' => 'CASE_SUMMARY', 'width' => 45, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_SUMMARY'), 'dataIndex' => 'CASE_SUMMARY', 'width' => 45, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASES_NOTES'), 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 45, 'align' => 'center', 'sorteable'=>false); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); - $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50 , 'hidden'=> true, 'hideable'=> false); - $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID', 'width' => 50 , 'hidden'=> true, 'hideable'=> false); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PROCESS'), 'dataIndex' => 'APP_PRO_TITLE', 'width' => 120 ); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_TASK'), 'dataIndex' => 'APP_TAS_TITLE', 'width' => 120 ); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_SENT_BY'), 'dataIndex' => 'APP_DEL_PREVIOUS_USER', 'width' => 90 ); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_DUE_DATE'), 'dataIndex' => 'DEL_TASK_DUE_DATE', 'width' => 110); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_LAST_MODIFY'),'dataIndex' => 'APP_UPDATE_DATE', 'width' => 110 ); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PRIORITY'), 'dataIndex' => 'DEL_PRIORITY', 'width' => 50 ); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); + $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50 , 'hidden'=> true, 'hideable'=> false); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PROCESS'), 'dataIndex' => 'APP_PRO_TITLE', 'width' => 120 ); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_TASK'), 'dataIndex' => 'APP_TAS_TITLE', 'width' => 120 ); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_SENT_BY'), 'dataIndex' => 'APP_DEL_PREVIOUS_USER', 'width' => 90 ); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_DUE_DATE'), 'dataIndex' => 'DEL_TASK_DUE_DATE', 'width' => 110); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_LAST_MODIFY'), 'dataIndex' => 'APP_UPDATE_DATE', 'width' => 110 ); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PRIORITY'), 'dataIndex' => 'DEL_PRIORITY', 'width' => 50 ); $caseReaderFields = array(); $caseReaderFields[] = array( 'name' => 'APP_UID' ); $caseReaderFields[] = array( 'name' => 'USR_UID' ); $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_UID' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_FIRSTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_LASTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_USERNAME' ); $caseReaderFields[] = array( 'name' => 'DEL_INDEX' ); $caseReaderFields[] = array( 'name' => 'APP_NUMBER' ); $caseReaderFields[] = array( 'name' => 'APP_TITLE' ); @@ -491,7 +493,6 @@ $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASES_NOTES'), 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 45, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); - $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID','width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PROCESS'), 'dataIndex' => 'APP_PRO_TITLE', 'width' => 120 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_TASK'), 'dataIndex' => 'APP_TAS_TITLE', 'width' => 120 ); @@ -506,6 +507,9 @@ $caseReaderFields[] = array( 'name' => 'APP_UID' ); $caseReaderFields[] = array( 'name' => 'USR_UID' ); $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_UID' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_FIRSTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_LASTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_USERNAME' ); $caseReaderFields[] = array( 'name' => 'APP_NUMBER' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'DEL_INDEX' ); @@ -532,12 +536,9 @@ $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASES_NOTES'), 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 45, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); - $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PROCESS'), 'dataIndex' => 'APP_PRO_TITLE', 'width' => 120 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_TASK'), 'dataIndex' => 'APP_TAS_TITLE', 'width' => 120 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_SENT_BY'), 'dataIndex' => 'APP_DEL_PREVIOUS_USER','width' => 90 ); - $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); - $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_LAST_MODIFY'), 'dataIndex' => 'APP_UPDATE_DATE', 'width' => 80 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_THREAD_INDEX'),'dataIndex' => 'APP_THREAD_INDEX', 'width' => 80 ); @@ -547,6 +548,9 @@ $caseReaderFields[] = array( 'name' => 'APP_UID' ); $caseReaderFields[] = array( 'name' => 'USR_UID' ); $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_UID' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_FIRSTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_LASTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_USERNAME' ); $caseReaderFields[] = array( 'name' => 'APP_NUMBER' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'DEL_INDEX' ); @@ -578,7 +582,7 @@ $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PROCESS'), 'dataIndex' => 'APP_PRO_TITLE', 'width' => 120 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_TASK'), 'dataIndex' => 'APP_TAS_TITLE', 'width' => 120 ); - $caseColumns[] = array( 'header' => G::LoadTranslation('ID_SENT_BY'), 'dataIndex' => 'ID_SENT_BY','width' => 90 ); + $caseColumns[] = array( 'header' => G::LoadTranslation('ID_SENT_BY'), 'dataIndex' => 'APP_DEL_PREVIOUS_USER','width' => 90 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CURRENT_USER'),'dataIndex' => 'APP_CURRENT_USER','width' => 90 ); // $caseColumns[] = array( 'header' =>'Sent By', 'dataIndex' => 'APP_DEL_PREVIOUS_USER', 'width' => 90 ); ///-- $caseColumns[] = array( 'header' => G::LoadTranslation('ID_LAST_MODIFY'), 'dataIndex' => 'APP_UPDATE_DATE', 'width' => 110 ); @@ -589,6 +593,9 @@ $caseReaderFields[] = array( 'name' => 'APP_UID' ); $caseReaderFields[] = array( 'name' => 'USR_UID' ); $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_UID' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_FIRSTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_LASTNAME' ); + $caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_USERNAME' ); $caseReaderFields[] = array( 'name' => 'APP_NUMBER' ); $caseReaderFields[] = array( 'name' => 'DEL_INDEX' ); $caseReaderFields[] = array( 'name' => 'APP_TITLE' ); @@ -601,7 +608,7 @@ $caseReaderFields[] = array( 'name' => 'DEL_PRIORITY' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'APP_FINISH_DATE' ); - $caseReaderFields[] = array( 'name' => 'ID_SENT_BY' ); + $caseReaderFields[] = array( 'name' => 'APP_DEL_PREVIOUS_USER' ); $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); @@ -612,8 +619,6 @@ $caseColumns = array (); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_SUMMARY'), 'dataIndex' => 'CASE_SUMMARY', 'width' => 45, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASES_NOTES'), 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 45, 'align' => 'center', 'sorteable'=>false); - $caseColumns[] = array( 'header' => 'TaskUid', 'dataIndex' => 'TAS_UID' , 'width' => 150 ,'hidden'=> true, 'hideable'=> false); - $caseColumns[] = array( 'header' => 'DelIndex', 'dataIndex' => 'DEL_INDEX' , 'width' => 150 ,'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID','width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index cdf13cb3a..89065ee9d 100644 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -123,7 +123,7 @@ function jumpToCase(appNumber){ } }, params: {action:'previusJump', appNumber: appNumber} - }); + }); } function deleteCase() { @@ -226,7 +226,7 @@ function pauseCase(date){ var noteReasonTxt = ''; } var notifyReasonVal = Ext.getCmp('notifyReason').getValue() == true ? 1 : 0; - + Ext.MessageBox.show({ msg: _('ID_PROCESSING'), wait:true,waitConfig: {interval:200} }); Ext.Ajax.request({ url: 'cases_Ajax', @@ -260,7 +260,7 @@ function pauseCase(date){ ] }); msgPause.show(this); - + } else { Ext.Msg.show({ title:'', @@ -459,9 +459,14 @@ Ext.onReady ( function() { } function dueDate(value, p, r){ - var myDate = convertDate( value ); - var myColor = (myDate < new Date()) ? " color:red;" : 'color:green;'; - return String.format("{0}", myDate.dateFormat(FORMATS.casesListDateFormat), myColor ); + if (value) { + var myDate = convertDate( value ); + var myColor = (myDate < new Date()) ? " color:red;" : 'color:green;'; + return String.format("{0}", myDate.dateFormat(FORMATS.casesListDateFormat), myColor ); + } + else { + return ''; + } } var renderSummary = function (val, p, r) { @@ -477,8 +482,22 @@ Ext.onReady ( function() { } //Render Full Name - full_name = function(v,x,s){ - return _FNF(v, s.data.USR_FIRSTNAME, s.data.USR_LASTNAME); + full_name = function(v, x, s) { + if (s.data.USR_UID) { + return _FNF(s.data.USR_USERNAME, s.data.USR_FIRSTNAME, s.data.USR_LASTNAME); + } + else { + return ''; + } + }; + + previous_full_name = function(v, x, s) { + if (s.data.PREVIOUS_USR_UID) { + return _FNF(s.data.PREVIOUS_USR_USERNAME, s.data.PREVIOUS_USR_FIRSTNAME, s.data.PREVIOUS_USR_LASTNAME); + } + else { + return ''; + } }; for(var i = 0, len = columns.length; i < len; i++){ @@ -491,7 +510,7 @@ Ext.onReady ( function() { if( c.id == 'unpauseLink') c.renderer = unpauseLink; if( c.dataIndex == 'CASE_SUMMARY') c.renderer = renderSummary; if( c.dataIndex == 'CASE_NOTES_COUNT') c.renderer = renderNote; - if( c.dataIndex == 'APP_DEL_PREVIOUS_USER') c.renderer = full_name; + if( c.dataIndex == 'APP_DEL_PREVIOUS_USER') c.renderer = previous_full_name; if( c.dataIndex == 'APP_CURRENT_USER') c.renderer = full_name; } @@ -502,6 +521,7 @@ Ext.onReady ( function() { readerFields.push ( {name: "USR_FIRSTNAME"}); readerFields.push ( {name: "USR_LASTNAME"}); + readerFields.push ( {name: "USR_USERNAME"}); for (i=0; i