BUG 7197 New feature request: "Categories" column/filter... SOLVED

- According to the specifications.
- Was added the filter "Categories" only when Solar is disabled.
This commit is contained in:
Marco Antonio Nina
2012-09-17 15:57:45 -04:00
parent f1ce49c70e
commit f8760a1d84
3 changed files with 66 additions and 138 deletions

View File

@@ -79,7 +79,7 @@
$oAppCache->confCasesList = $confCasesList; $oAppCache->confCasesList = $confCasesList;
//get values for the comboBoxes //get values for the comboBoxes
$processes = getProcessArray($action, $userUid ); $processes[] = array ( '', G::LoadTranslation('ID_ALL_PROCESS'));
$status = getStatusArray($action, $userUid ); $status = getStatusArray($action, $userUid );
$category = getCategoryArray(); $category = getCategoryArray();
$users = getUserArray($action, $userUid ); $users = getUserArray($action, $userUid );
@@ -125,95 +125,6 @@
$oHeadPublisher->assign('FORMATS',$c->getFormats()); $oHeadPublisher->assign('FORMATS',$c->getFormats());
G::RenderPage('publish', 'extJs'); G::RenderPage('publish', 'extJs');
//functions to fill the comboboxes in the case list page
function getProcessArray ( $action, $userUid ) {
global $oAppCache;
$processes = Array();
$processes[] = array ( '', G::LoadTranslation('ID_ALL_PROCESS') );
//get the list based in the action provided
// G::pr($action);die;
switch ( $action ) {
case 'draft' :
$cProcess = $oAppCache->getDraftListCriteria($userUid); //fast enough
break;
case 'sent' :
$cProcess = $oAppCache->getSentListProcessCriteria ($userUid); // fast enough
break;
case 'simple_search':
case 'search' :
//in search action, the query to obtain all process is too slow, so we need to query directly to
//process and content tables, and for that reason we need the current language in AppCacheView.
G::loadClass('configuration');
$oConf = new Configurations;
$oConf->loadConfig($x, 'APP_CACHE_VIEW_ENGINE','','','','');
$appCacheViewEngine = $oConf->aConfig;
$lang = isset($appCacheViewEngine['LANG']) ? $appCacheViewEngine['LANG'] : 'en';
$cProcess = new Criteria('workflow');
$cProcess->clearSelectColumns ( );
$cProcess->addSelectColumn ( ProcessPeer::PRO_UID );
$cProcess->addSelectColumn ( ContentPeer::CON_VALUE );
$del = DBAdapter::getStringDelimiter();
$conds = array();
$conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID );
$conds[] = array(ContentPeer::CON_CATEGORY, $del . 'PRO_TITLE' . $del);
$conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del);
$cProcess->addJoinMC($conds, Criteria::LEFT_JOIN);
$cProcess->add(ProcessPeer::PRO_STATUS, 'ACTIVE');
$oDataset = ProcessPeer::doSelectRS($cProcess);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while($aRow = $oDataset->getRow()){
$processes[] = array ( $aRow['PRO_UID'], $aRow['CON_VALUE'] );
$oDataset->next();
}
return $processes;
break;
case 'unassigned' :
$cProcess = $oAppCache->getUnassignedListCriteria($userUid);
break;
case 'paused' :
$cProcess = $oAppCache->getPausedListCriteria($userUid);
break;
case 'to_revise' :
$cProcess = $oAppCache->getToReviseListCriteria($userUid);
break;
case 'to_reassign' :
$cProcess = $oAppCache->getToReassignListCriteria();
$cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE);
break;
case 'gral' :
$cProcess = $oAppCache->getGeneralListCriteria();
$cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE);
break;
case 'todo' :
default:
$cProcess = $oAppCache->getToDoListCriteria($userUid); //fast enough
break;
}
//get the processes for this user in this action
$cProcess->clearSelectColumns();
$cProcess->addSelectColumn(AppCacheViewPeer::PRO_UID);
$cProcess->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE);
$cProcess->setDistinct(AppCacheViewPeer::PRO_UID);
$oDataset = AppCacheViewPeer::doSelectRS($cProcess);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while($aRow = $oDataset->getRow()){
$processes[] = array ( $aRow['PRO_UID'], $aRow['APP_PRO_TITLE'] );
$oDataset->next();
}
return $processes;
}
function getUserArray ( $action, $userUid ) { function getUserArray ( $action, $userUid ) {
global $oAppCache; global $oAppCache;
$status = array(); $status = array();

View File

@@ -49,14 +49,14 @@
//get the list based in the action provided //get the list based in the action provided
switch ( $action ) { switch ( $action ) {
case 'draft' : case 'draft':
$cProcess = $oAppCache->getDraftListCriteria($userUid); //fast enough $cProcess = $oAppCache->getDraftListCriteria($userUid); //fast enough
break; break;
case 'sent' : case 'sent':
$cProcess = $oAppCache->getSentListProcessCriteria ($userUid); // fast enough $cProcess = $oAppCache->getSentListProcessCriteria ($userUid); // fast enough
break; break;
case 'simple_search': case 'simple_search':
case 'search' : case 'search':
//in search action, the query to obtain all process is too slow, so we need to query directly to //in search action, the query to obtain all process is too slow, so we need to query directly to
//process and content tables, and for that reason we need the current language in AppCacheView. //process and content tables, and for that reason we need the current language in AppCacheView.
G::loadClass('configuration'); G::loadClass('configuration');
@@ -65,51 +65,51 @@
$appCacheViewEngine = $oConf->aConfig; $appCacheViewEngine = $oConf->aConfig;
$lang = isset($appCacheViewEngine['LANG']) ? $appCacheViewEngine['LANG'] : 'en'; $lang = isset($appCacheViewEngine['LANG']) ? $appCacheViewEngine['LANG'] : 'en';
$cProcess = new Criteria('workflow'); $cProcess = new Criteria('workflow');
$cProcess->clearSelectColumns ( ); $cProcess->clearSelectColumns ( );
$cProcess->addSelectColumn ( ProcessPeer::PRO_UID ); $cProcess->addSelectColumn ( ProcessPeer::PRO_UID );
$cProcess->addSelectColumn ( ContentPeer::CON_VALUE ); $cProcess->addSelectColumn ( ContentPeer::CON_VALUE );
if ($categoryUid) { if ($categoryUid) {
$cProcess->add ( ProcessPeer::PRO_CATEGORY, $categoryUid ); $cProcess->add (ProcessPeer::PRO_CATEGORY, $categoryUid);
} }
$del = DBAdapter::getStringDelimiter(); $del = DBAdapter::getStringDelimiter();
$conds = array(); $conds = array();
$conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID ); $conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID );
$conds[] = array(ContentPeer::CON_CATEGORY, $del . 'PRO_TITLE' . $del); $conds[] = array(ContentPeer::CON_CATEGORY, $del . 'PRO_TITLE' . $del);
$conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del); $conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del);
$cProcess->addJoinMC($conds, Criteria::LEFT_JOIN); $cProcess->addJoinMC($conds, Criteria::LEFT_JOIN);
$cProcess->add(ProcessPeer::PRO_STATUS, 'ACTIVE'); $cProcess->add(ProcessPeer::PRO_STATUS, 'ACTIVE');
$oDataset = ProcessPeer::doSelectRS($cProcess); $oDataset = ProcessPeer::doSelectRS($cProcess);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $oDataset->next();
while($aRow = $oDataset->getRow()){ while ($aRow = $oDataset->getRow()) {
$processes[] = array ( $aRow['PRO_UID'], $aRow['CON_VALUE'] ); $processes[] = array ( $aRow['PRO_UID'], $aRow['CON_VALUE'] );
$oDataset->next(); $oDataset->next();
} }
return print G::json_encode($processes); return print G::json_encode($processes);
break; break;
case 'unassigned' : case 'unassigned':
$cProcess = $oAppCache->getUnassignedListCriteria($userUid); $cProcess = $oAppCache->getUnassignedListCriteria($userUid);
break; break;
case 'paused' : case 'paused':
$cProcess = $oAppCache->getPausedListCriteria($userUid); $cProcess = $oAppCache->getPausedListCriteria($userUid);
break; break;
case 'to_revise' : case 'to_revise':
$cProcess = $oAppCache->getToReviseListCriteria($userUid); $cProcess = $oAppCache->getToReviseListCriteria($userUid);
break; break;
case 'to_reassign' : case 'to_reassign':
$cProcess = $oAppCache->getToReassignListCriteria(); $cProcess = $oAppCache->getToReassignListCriteria();
$cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE); $cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE);
break; break;
case 'gral' : case 'gral':
$cProcess = $oAppCache->getGeneralListCriteria(); $cProcess = $oAppCache->getGeneralListCriteria();
$cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE); $cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE);
break; break;
case 'todo' : case 'todo':
default: default:
$cProcess = $oAppCache->getToDoListCriteria($userUid); //fast enough $cProcess = $oAppCache->getToDoListCriteria($userUid); //fast enough
break; break;
} }
//get the processes for this user in this action //get the processes for this user in this action
$cProcess->clearSelectColumns(); $cProcess->clearSelectColumns();
@@ -126,9 +126,9 @@
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $oDataset->next();
while($aRow = $oDataset->getRow()){ while ($aRow = $oDataset->getRow()) {
$processes[] = array ( $aRow['PRO_UID'], $aRow['APP_PRO_TITLE'] ); $processes[] = array ( $aRow['PRO_UID'], $aRow['APP_PRO_TITLE'] );
$oDataset->next(); $oDataset->next();
} }
return print G::json_encode($processes); return print G::json_encode($processes);
} }

View File

@@ -793,6 +793,21 @@ Ext.onReady ( function() {
'<span> {APP_PRO_TITLE}</span>', '<span> {APP_PRO_TITLE}</span>',
'</div></tpl>' '</div></tpl>'
); );
Ext.Ajax.request({
url : 'casesList_Ajax' ,
params : {actionAjax : 'processListExtJs',
action: action,
CATEGORY_UID: filterCategory},
success: function ( result, request ) {
processValues = Ext.util.JSON.decode(result.responseText);
comboProcess.getStore().removeAll();
comboProcess.getStore().loadData(processValues);
},
failure: function ( result, request) {
Ext.MessageBox.alert('Failed', result.responseText);
}
});
var comboProcess = new Ext.form.ComboBox({ var comboProcess = new Ext.form.ComboBox({
width : 200, width : 200,
@@ -893,6 +908,7 @@ Ext.onReady ( function() {
filterCategory = comboCategory.value; filterCategory = comboCategory.value;
storeCases.setBaseParam('category', filterCategory); storeCases.setBaseParam('category', filterCategory);
storeCases.setBaseParam('process', '');
storeCases.load({params:{category: filterCategory, start : 0 , limit : pageSize}}); storeCases.load({params:{category: filterCategory, start : 0 , limit : pageSize}});
Ext.Ajax.request({ Ext.Ajax.request({
@@ -905,6 +921,7 @@ Ext.onReady ( function() {
comboProcess.getStore().removeAll(); comboProcess.getStore().removeAll();
comboProcess.getStore().loadData( data ); comboProcess.getStore().loadData( data );
comboProcess.setValue(''); comboProcess.setValue('');
}, },
failure: function ( result, request) { failure: function ( result, request) {
Ext.MessageBox.alert('Failed', result.responseText); Ext.MessageBox.alert('Failed', result.responseText);
@@ -1858,25 +1875,25 @@ var gridForm = new Ext.FormPanel({
//Manually trigger the data store load //Manually trigger the data store load
switch (action) { switch (action) {
case "draft": case "draft":
storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); storeCases.setBaseParam("process", '');
storeCases.setBaseParam("search", textSearch.getValue()); storeCases.setBaseParam("search", textSearch.getValue());
break; break;
case "sent": case "sent":
storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); storeCases.setBaseParam("process", '');
storeCases.setBaseParam("status", comboStatus.store.getAt(0).get(comboStatus.valueField)); storeCases.setBaseParam("status", comboStatus.store.getAt(0).get(comboStatus.valueField));
storeCases.setBaseParam("search", textSearch.getValue()); storeCases.setBaseParam("search", textSearch.getValue());
break; break;
case "to_revise": case "to_revise":
storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); storeCases.setBaseParam("process", '');
storeCases.setBaseParam("search", textSearch.getValue()); storeCases.setBaseParam("search", textSearch.getValue());
break; break;
case "to_reassign": case "to_reassign":
storeCases.setBaseParam("user", comboAllUsers.store.getAt(0).get(comboAllUsers.valueField)); storeCases.setBaseParam("user", comboAllUsers.store.getAt(0).get(comboAllUsers.valueField));
storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); storeCases.setBaseParam("process", '');
storeCases.setBaseParam("search", textSearch.getValue()); storeCases.setBaseParam("search", textSearch.getValue());
break; break;
case "search": case "search":
storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); storeCases.setBaseParam("process", '');
storeCases.setBaseParam("status", comboStatus.store.getAt(0).get(comboStatus.valueField)); storeCases.setBaseParam("status", comboStatus.store.getAt(0).get(comboStatus.valueField));
storeCases.setBaseParam("user", comboUser.store.getAt(0).get(comboUser.valueField)); storeCases.setBaseParam("user", comboUser.store.getAt(0).get(comboUser.valueField));
storeCases.setBaseParam("search", textSearch.getValue()); storeCases.setBaseParam("search", textSearch.getValue());
@@ -1884,16 +1901,16 @@ var gridForm = new Ext.FormPanel({
storeCases.setBaseParam("dateTo", dateTo.getValue()); storeCases.setBaseParam("dateTo", dateTo.getValue());
break; break;
case "unassigned": case "unassigned":
storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); storeCases.setBaseParam("process", '');
storeCases.setBaseParam("search", textSearch.getValue()); storeCases.setBaseParam("search", textSearch.getValue());
break; break;
case "gral": case "gral":
storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); storeCases.setBaseParam("process", '');
storeCases.setBaseParam("search", textSearch.getValue()); storeCases.setBaseParam("search", textSearch.getValue());
break; break;
default: default:
//todo //todo
storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); storeCases.setBaseParam("process", '');
storeCases.setBaseParam("search", textSearch.getValue()); storeCases.setBaseParam("search", textSearch.getValue());
break; break;
} }