diff --git a/workflow/engine/methods/cases/casesListExtJs.php b/workflow/engine/methods/cases/casesListExtJs.php index 1a6337494..27af63f8d 100755 --- a/workflow/engine/methods/cases/casesListExtJs.php +++ b/workflow/engine/methods/cases/casesListExtJs.php @@ -214,7 +214,9 @@ function getUserArray ( $action, $userUid ) { global $oAppCache; $status = array(); - $users[] = array( '', G::LoadTranslation('ID_ALL_USERS') ); + $users[] = array("CURRENT_USER", G::LoadTranslation("ID_CURRENT_USER")); + $users[] = array("", G::LoadTranslation("ID_ALL_USERS")); + //now get users, just for the Search action switch ( $action ) { case 'search_simple': @@ -242,7 +244,9 @@ function getAllUsersArray ( $action ) { global $oAppCache; $status = array(); - $users[] = array( '', G::LoadTranslation('ID_ALL_USERS') ); + $users[] = array("CURRENT_USER", G::LoadTranslation("ID_CURRENT_USER")); + $users[] = array("", G::LoadTranslation("ID_ALL_USERS")); + if ($action=='to_reassign') { //now get users, just for the Search action $cUsers = $oAppCache->getToReassignListCriteria(); diff --git a/workflow/engine/methods/cases/proxyCasesList.php b/workflow/engine/methods/cases/proxyCasesList.php index 2fa87d258..1d0ec5fb9 100755 --- a/workflow/engine/methods/cases/proxyCasesList.php +++ b/workflow/engine/methods/cases/proxyCasesList.php @@ -1,46 +1,89 @@ getAppGridData ( $userUid, $start, $limit, $action, $filter, $search, $process, $user, $status, $type, $dateFrom, $dateTo, $callback, $dir, $sort ); - $result = G::json_encode ( $data ); - } - else { - G::LoadClass ( 'applications' ); - $apps = new Applications (); - $data = $apps->getAll ( $userUid, $start, $limit, $action, $filter, $search, $process, $user, $status, $type, $dateFrom, $dateTo, $callback, $dir, $sort ); - - $result = G::json_encode ( $data ); - } - echo $result; + $userUid = (isset($_SESSION["USER_LOGGED"]) && $_SESSION["USER_LOGGED"] != "")? $_SESSION["USER_LOGGED"] : null; + $user = ($user == "CURRENT_USER")? $userUid : $user; + + if (( + $action == "todo" || $action == "draft" || $action == "sent" || $action == "selfservice" || + $action == "unassigned" || $action == "search" + ) + && + (($solrConf = System::solrEnv()) !== false) + ) { + G::LoadClass("AppSolr"); + + $ApplicationSolrIndex = new AppSolr( + $solrConf["solr_enabled"], + $solrConf["solr_host"], + $solrConf["solr_instance"] + ); + + $data = $ApplicationSolrIndex->getAppGridData( + $userUid, + $start, + $limit, + $action, + $filter, + $search, + $process, + $user, + $status, + $type, + $dateFrom, + $dateTo, + $callback, + $dir, + $sort + ); + + $result = G::json_encode($data); + } else { + G::LoadClass("applications"); + + $apps = new Applications(); + $data = $apps->getAll( + $userUid, + $start, + $limit, + $action, + $filter, + $search, + $process, + $user, + $status, + $type, + $dateFrom, + $dateTo, + $callback, + $dir, + $sort + ); + + $result = G::json_encode($data); + } + + echo $result; +} catch (Exception $e) { + $msg = array("error" => $e->getMessage()); + + echo G::json_encode($msg); } -catch ( Exception $e ) { - $msg = array ( - 'error' => $e->getMessage () - ); - print G::json_encode ( $msg ); -} + diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index 89065ee9d..32a9882b6 100644 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -1503,23 +1503,23 @@ Ext.onReady ( function() { ]; var toolbarToReassign = [ - optionMenuOpen, - '-', - btnSelectAll, - btnUnSelectAll, - '-', - btnReassign, - '->', - 'user', - comboAllUsers, - '-', - _('ID_PROCESS'), - comboProcess, - textSearch, - resetSearchButton, - btnSearch, - ' ', - ' ' + optionMenuOpen, + "-", + btnSelectAll, + btnUnSelectAll, + "-", + btnReassign, + "->", + _("ID_USER"), + comboAllUsers, + "-", + _("ID_PROCESS"), + comboProcess, + textSearch, + resetSearchButton, + btnSearch, + " ", + " " ]; var toolbarSent = [ @@ -1792,11 +1792,52 @@ var gridForm = new Ext.FormPanel({ //renderTo: bd }); + //Manually trigger the data store load + switch (action) { + case "draft": + storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); + storeCases.setBaseParam("search", textSearch.getValue()); + break; + case "sent": + storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); + storeCases.setBaseParam("status", comboStatus.store.getAt(0).get(comboStatus.valueField)); + storeCases.setBaseParam("search", textSearch.getValue()); + break; + case "to_revise": + storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); + storeCases.setBaseParam("search", textSearch.getValue()); + break; + case "to_reassign": + storeCases.setBaseParam("user", comboAllUsers.store.getAt(0).get(comboAllUsers.valueField)); + storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); + storeCases.setBaseParam("search", textSearch.getValue()); + break; + case "search": + storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); + storeCases.setBaseParam("status", comboStatus.store.getAt(0).get(comboStatus.valueField)); + storeCases.setBaseParam("user", comboUser.store.getAt(0).get(comboUser.valueField)); + storeCases.setBaseParam("search", textSearch.getValue()); + storeCases.setBaseParam("dateFrom", dateFrom.getValue()); + storeCases.setBaseParam("dateTo", dateTo.getValue()); + break; + case "unassigned": + storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); + storeCases.setBaseParam("search", textSearch.getValue()); + break; + case "gral": + storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); + storeCases.setBaseParam("search", textSearch.getValue()); + break; + default: + //todo + storeCases.setBaseParam("process", comboProcess.store.getAt(0).get(comboProcess.valueField)); + storeCases.setBaseParam("search", textSearch.getValue()); + break; + } - // manually trigger the data store load - storeCases.setBaseParam( 'action', action ); - storeCases.setBaseParam( 'start', 0 ); - storeCases.setBaseParam( 'limit', pageSize ); + storeCases.setBaseParam("action", action); + storeCases.setBaseParam("start", 0); + storeCases.setBaseParam("limit", pageSize); storeCases.load(); //newPopUp.add(reassignGrid); newPopUp.add(gridForm); @@ -1902,8 +1943,12 @@ var gridForm = new Ext.FormPanel({ catch (e) { // Nothing to do } - comboStatus.setValue(''); - comboProcess.setValue(''); + + comboProcess.setValue(""); + comboStatus.setValue(""); + comboUser.setValue("CURRENT_USER"); + comboAllUsers.setValue("CURRENT_USER"); + // hidding the buttons for the reassign // if (action=='to_reassign'){ // btnSelectAll.hide(); @@ -2016,3 +2061,4 @@ function msgBox(title, msg, type){ buttons: Ext.MessageBox.OK }); } +