diff --git a/gulliver/js/jquery/jquery.confirm.js b/gulliver/js/jquery/jquery.confirm.js
deleted file mode 100644
index ffdc372b7..000000000
--- a/gulliver/js/jquery/jquery.confirm.js
+++ /dev/null
@@ -1,56 +0,0 @@
- (function($){
-
- $.confirm = function(params){
-
- if($('#confirmOverlay').length){
- // A confirm is already shown on the page:
- return false;
- }
-
- var buttonHTML = '';
- $.each(params.buttons,function(name,obj){
-
- // Generating the markup for the buttons:
-
- buttonHTML += ''+name+'';
-
- if(!obj.action){
- obj.action = function(){};
- }
- });
-
- var markup = [
- '
',
- '
',
- '
',params.title,'
',
- '
',params.message,'
',
- '
',
- buttonHTML,
- '
'
- ].join('');
-
- $(markup).hide().appendTo('body').fadeIn();
-
- var buttons = $('#confirmBox .button'),
- i = 0;
-
- $.each(params.buttons,function(name,obj){
- buttons.eq(i++).click(function(){
-
- // Calling the action attribute when a
- // click occurs, and hiding the confirm.
-
- obj.action();
- $.confirm.hide();
- return false;
- });
- });
- }
-
- $.confirm.hide = function(){
- $('#confirmOverlay').fadeOut(function(){
- $(this).remove();
- });
- }
-
-})(jQuery);
diff --git a/workflow/engine/classes/class.applications.php b/workflow/engine/classes/class.applications.php
new file mode 100644
index 000000000..416168914
--- /dev/null
+++ b/workflow/engine/classes/class.applications.php
@@ -0,0 +1,645 @@
+getConfiguration('casesList',($action=='search'||$action=='simple_search')?'sent':$action );
+ // var_dump($confCasesList);
+ $oAppCache->confCasesList = $confCasesList;
+
+ // get the action based list
+ switch ( $action ) {
+ case 'draft' :
+ $Criteria = $oAppCache->getDraftListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getDraftCountCriteria($userUid);
+ break;
+ case 'sent' :
+ $Criteria = $oAppCache->getSentListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getSentCountCriteria($userUid);
+ // var_dump($Criteria);
+ break;
+ case 'selfservice' :
+ case 'unassigned':
+ $Criteria = $oAppCache->getUnassignedListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getUnassignedCountCriteria($userUid);
+ break;
+ case 'paused' :
+ $Criteria = $oAppCache->getPausedListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getPausedCountCriteria($userUid);
+ break;
+ case 'completed' :
+ $Criteria = $oAppCache->getCompletedListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getCompletedCountCriteria($userUid);
+ break;
+ case 'cancelled' :
+ $Criteria = $oAppCache->getCancelledListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getCancelledCountCriteria($userUid);
+ break;
+ case 'search' :
+ $Criteria = $oAppCache->getSearchListCriteria();
+ $CriteriaCount = $oAppCache->getSearchCountCriteria();
+ break;
+ case 'simple_search' :
+ $Criteria = $oAppCache->getSimpleSearchListCriteria();
+ $CriteriaCount = $oAppCache->getSimpleSearchCountCriteria();
+ break;
+ case 'to_revise' :
+ $Criteria = $oAppCache->getToReviseListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getToReviseCountCriteria($userUid);
+ break;
+ case 'to_reassign' :
+ $Criteria = $oAppCache->getToReassignListCriteria();
+ $CriteriaCount = $oAppCache->getToReassignCountCriteria();
+ break;
+ case 'all' :
+ $Criteria = $oAppCache->getAllCasesListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getAllCasesCountCriteria($userUid);
+ break;
+ // general criteria probably will be deprecated
+ case 'gral' :
+ $Criteria = $oAppCache->getGeneralListCriteria();
+ $CriteriaCount = $oAppCache->getGeneralCountCriteria();
+ break;
+ case 'todo' :
+ default:
+ $Criteria = $oAppCache->getToDoListCriteria($userUid);
+ $CriteriaCount = $oAppCache->getToDoCountCriteria($userUid);
+ break;
+ }
+
+ if ( !is_array($confCasesList) ) {
+ $rows = $this->getDefaultFields( $action );
+ $result = $this->genericJsonResponse( '', array(), $rows , 20, '' );
+ //$conf->saveObject($result,'casesList',$action,'','','');
+ }
+
+ // add the process filter
+ if ( $process != '' ) {
+ $Criteria->add (AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL );
+ $CriteriaCount->add (AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL );
+ }
+
+ // add the user filter
+ if ( $user != '' ) {
+ $Criteria->add (AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL );
+ $CriteriaCount->add (AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL );
+ }
+
+ if ( $status != '' ) {
+ $Criteria->add (AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL );
+ $CriteriaCount->add (AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL );
+ }
+
+ if ( $dateFrom != '' ) {
+ if( $dateTo != '' ){
+ $Criteria->add(
+ $Criteria->getNewCriterion(
+ AppCacheViewPeer::DEL_DELEGATE_DATE,
+ $dateFrom, Criteria::GREATER_EQUAL
+ )->addAnd($Criteria->getNewCriterion(
+ AppCacheViewPeer::DEL_DELEGATE_DATE,
+ $dateTo, Criteria::LESS_EQUAL
+ ))
+ );
+ $CriteriaCount->add(
+ $CriteriaCount->getNewCriterion(
+ AppCacheViewPeer::DEL_DELEGATE_DATE,
+ $dateFrom, Criteria::GREATER_EQUAL
+ )->addAnd($Criteria->getNewCriterion(
+ AppCacheViewPeer::DEL_DELEGATE_DATE,
+ $dateTo, Criteria::LESS_EQUAL
+ ))
+ );
+ } else {
+ $Criteria->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL );
+ $CriteriaCount->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL );
+ }
+ } else if ( $dateTo != '' ) {
+ $Criteria->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL );
+ $CriteriaCount->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL );
+ }
+
+ //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' :
+ $Criteria->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
+ $CriteriaCount->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
+ break;
+ case 'started' :
+ $Criteria->add (AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL);
+ $CriteriaCount->add (AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL);
+ break;
+ case 'completed' :
+ $Criteria->add (AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
+ $CriteriaCount->add (AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
+ break;
+ }
+ }
+
+ //add the search filter
+ if ( $search != '' ) {
+
+ $defaultFields = $oAppCache->getDefaultFields();
+ $oTmpCriteria = '';
+ // if there is PMTABLE for this case list:
+ if ( !empty($oAppCache->confCasesList) && isset($oAppCache->confCasesList['PMTable']) && trim($oAppCache->confCasesList['PMTable'])!='' ) {
+ // getting the table name
+ $oAdditionalTables = AdditionalTablesPeer::retrieveByPK($oAppCache->confCasesList['PMTable']);
+ $tableName = $oAdditionalTables->getAddTabName();
+ $oNewCriteria = new Criteria( 'workflow' );
+ $counter = 0;
+ foreach($oAppCache->confCasesList['second']['data'] as $fieldData){
+ if ( !in_array($fieldData['name'],$defaultFields) ){
+ $fieldName = $tableName.'.'.$fieldData['name'];
+ if ( $counter == 0 ) {
+ $oTmpCriteria = $oNewCriteria->getNewCriterion ( $fieldName, '%' . $search . '%', Criteria::LIKE );
+ } else {
+ $oTmpCriteria = $oNewCriteria->getNewCriterion ( $fieldName, '%' . $search . '%', Criteria::LIKE )->addOr($oTmpCriteria);
+ }
+ $counter++;
+ }
+ }
+ //add the default and hidden DEL_INIT_DATE
+ }
+
+ // the criteria adds new fields if there are defined PM Table Fields in the cases list
+ if ($oTmpCriteria!='') {
+ $Criteria->add(
+ $Criteria->getNewCriterion(
+ AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
+ )->addOr($Criteria->getNewCriterion(
+ AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
+ )->addOr($Criteria->getNewCriterion(
+ AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
+ )->addOr($oTmpCriteria))
+ ));
+ } else {
+ $Criteria->add(
+ $Criteria->getNewCriterion(
+ AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
+ )->addOr($Criteria->getNewCriterion(
+ AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
+ )->addOr($Criteria->getNewCriterion(
+ AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
+ ))
+ ));
+ }
+
+ // the count query needs to be the normal criteria query if there are defined PM Table Fields in the cases list
+ if ($oTmpCriteria!='') {
+ $CriteriaCount = $Criteria;
+ } else {
+ $CriteriaCount->add(
+ $CriteriaCount->getNewCriterion(
+ AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
+ )->addOr($CriteriaCount->getNewCriterion(
+ AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
+ )->addOr($CriteriaCount->getNewCriterion(
+ AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
+ ))
+ ));
+ }
+ }
+
+ //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,
+ //we need to count using the table APPLICATION, because APP_CACHE_VIEW takes 3 seconds
+
+ if ( $action == 'search' && $filter == '' && $search == '' && $process == '' && $status == '' && $dateFrom == '' && $dateTo == '') {
+ $totalCount = $oAppCache->getSearchAllCount();
+ $doCountAlreadyExecuted = true;
+ }
+
+ if ( $doCountAlreadyExecuted == false ) {
+ // in the case of reassign the distinct attribute shows a diferent count result comparing to the
+ // original list
+ if ($action == 'to_reassign' || $action == 'todo'){
+ $distinct = false;
+ } else{
+ $distinct = true;
+ }
+ // first check if there is a PMTable defined within the list,
+ // the issue that brokes the normal criteria query seems to be fixed
+ if (isset($oAppCache->confCasesList['PMTable']) && !empty($oAppCache->confCasesList['PMTable'])) {
+ // then
+ $oAdditionalTables = AdditionalTablesPeer::retrieveByPK($oAppCache->confCasesList['PMTable']);
+ $tableName = $oAdditionalTables->getAddTabName();
+ $tableName = strtolower($tableName);
+ $tableNameArray = explode('_',$tableName);
+ foreach ($tableNameArray as $item){
+ $newTableName[] = ucfirst($item);
+ }
+ $tableName = implode('',$newTableName);
+ // so the pm table class can be invoqued from the pm table model clases
+ if (!class_exists($tableName)){
+ require_once(PATH_DB.SYS_SYS.PATH_SEP."classes".PATH_SEP.$tableName.".php");
+ }
+ }
+ $totalCount = AppCacheViewPeer::doCount( $CriteriaCount, $distinct );
+
+ }
+
+ //add sortable options
+ if ( $sort != '' ) {
+ if ( $dir == 'DESC' )
+ $Criteria->addDescendingOrderByColumn( $sort );
+ else
+ $Criteria->addAscendingOrderByColumn( $sort );
+ }
+
+ //limit the results according the interface
+ $Criteria->setLimit( $limit );
+ $Criteria->setOffset( $start );
+
+
+ /*
+ // this is the optimal way or query to render the cases search list
+ // fixing the bug related to the wrong data displayed in the list
+ if ( $action == 'search' ) {
+ $oDatasetIndex = AppCacheViewPeer::doSelectRS( $Criteria );
+ $oDatasetIndex->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+ $oDatasetIndex->next();
+ // a list of MAX_DEL_INDEXES is required in order to validate the right row
+ while($aRow = $oDatasetIndex->getRow()){
+ $maxDelIndexList[] = $aRow['MAX_DEL_INDEX'];
+ $oDatasetIndex->next();
+ }
+ // adding the validation condition in order to get the right row using the group by sentence
+ $Criteria->add(AppCacheViewPeer::DEL_INDEX, $maxDelIndexList, Criteria::IN );
+ //
+ $params = array ( $maxDelIndexList );
+
+ }
+ */
+
+ //execute the query
+ $oDataset = AppCacheViewPeer::doSelectRS($Criteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+
+ $result = array();
+ $result['totalCount'] = $totalCount;
+ $rows = array();
+ $aPriorities = array('1'=>'VL', '2'=>'L', '3'=>'N', '4'=>'H', '5'=>'VH');
+ $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,
+ * but Propel might not support it and subqueries can be slower for larger
+ * datasets).
+ */
+ if ($action == 'sent' || $action == 'search') {
+ $maxCriteria = new Criteria('workflow');
+ $maxCriteria->add(AppCacheViewPeer::APP_UID, $aRow['APP_UID'], Criteria::EQUAL);
+ $maxCriteria->addDescendingOrderByColumn(AppCacheViewPeer::DEL_INDEX);
+ $maxCriteria->setLimit(1);
+
+ $maxDataset = AppCacheViewPeer::doSelectRS( $maxCriteria );
+ $maxDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
+ $maxDataset->next();
+
+ $newData = $maxDataset->getRow();
+ foreach ($aRow as $col => $value) {
+ 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
+ if( isset($aRow['APP_STATUS']) ){
+ $aRow['APP_STATUS'] = G::LoadTranslation("ID_{$aRow['APP_STATUS']}");
+ }
+ // replacing the priority data with their respective translation
+ 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
+ * @return Array $fields
+ */
+ function setDefaultFields() {
+ $fields = array();
+ $fields['APP_NUMBER'] = array( 'name' => 'APP_NUMBER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_NUMBER') , 'width' => 40, 'align' => 'left');
+ $fields['APP_UID'] = array( 'name' => 'APP_UID' , 'fieldType' => 'key', 'label' => G::loadTranslation('ID_CASESLIST_APP_UID'), 'width' => 80, 'align' => 'left');
+ $fields['DEL_INDEX'] = array( 'name' => 'DEL_INDEX' , 'fieldType' => 'key' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_INDEX') , 'width' => 50, 'align' => 'left');
+ $fields['TAS_UID'] = array( 'name' => 'TAS_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_TAS_UID') , 'width' => 80, 'align' => 'left');
+ $fields['USR_UID'] = array( 'name' => 'USR_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_USR_UID') , 'width' => 80, 'align' => 'left', 'hidden' => true);
+ $fields['PREVIOUS_USR_UID'] = array( 'name' => 'PREVIOUS_USR_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_PREVIOUS_USR_UID') , 'width' => 80, 'align' => 'left', 'hidden' => true);
+ $fields['APP_TITLE'] = array( 'name' => 'APP_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TITLE') , 'width' => 140, 'align' => 'left');
+ $fields['APP_PRO_TITLE'] = array( 'name' => 'APP_PRO_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_PRO_TITLE') , 'width' => 140, 'align' => 'left');
+ $fields['APP_TAS_TITLE'] = array( 'name' => 'APP_TAS_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TAS_TITLE') , 'width' => 140, 'align' => 'left');
+ $fields['APP_DEL_PREVIOUS_USER'] = array( 'name' => 'APP_DEL_PREVIOUS_USER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DEL_PREVIOUS_USER') , 'width' => 120, 'align' => 'left');
+ $fields['APP_CURRENT_USER'] = array( 'name' => 'APP_CURRENT_USER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_CURRENT_USER') , 'width' => 120, 'align' => 'left');
+ $fields['DEL_TASK_DUE_DATE'] = array( 'name' => 'DEL_TASK_DUE_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_TASK_DUE_DATE') , 'width' => 100, 'align' => 'left');
+ $fields['APP_UPDATE_DATE'] = array( 'name' => 'APP_UPDATE_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_UPDATE_DATE') , 'width' => 100, 'align' => 'left');
+ $fields['DEL_PRIORITY'] = array( 'name' => 'DEL_PRIORITY' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_PRIORITY') , 'width' => 80, 'align' => 'left');
+ $fields['APP_STATUS'] = array( 'name' => 'APP_STATUS' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_STATUS') , 'width' => 80, 'align' => 'left');
+ $fields['APP_FINISH_DATE'] = array( 'name' => 'APP_FINISH_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_FINISH_DATE') , 'width' => 100, 'align' => 'left');
+ $fields['APP_DELAY_UID'] = array( 'name' => 'APP_DELAY_UID' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DELAY_UID') , 'width' => 100, 'align' => 'left');
+ $fields['APP_THREAD_INDEX'] = array( 'name' => 'APP_THREAD_INDEX' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_THREAD_INDEX') , 'width' => 100, 'align' => 'left');
+ $fields['APP_DEL_INDEX'] = array( 'name' => 'APP_DEL_INDEX' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DEL_INDEX') , 'width' => 100, 'align' => 'left');
+ $fields['APP_TYPE'] = array( 'name' => 'APP_TYPE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TYPE') , 'width' => 100, 'align' => 'left');
+ $fields['APP_DELEGATION_USER'] = array( 'name' => 'APP_DELEGATION_USER' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DELEGATION_USER') , 'width' => 100, 'align' => 'left');
+ $fields['APP_ENABLE_ACTION_USER'] = array( 'name' => 'APP_ENABLE_ACTION_USER' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_ENABLE_ACTION_USER') , 'width' => 100, 'align' => 'left');
+ $fields['APP_ENABLE_ACTION_DATE'] = array( 'name' => 'APP_ENABLE_ACTION_DATE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_AAPP_ENABLE_ACTION_DATE') , 'width' => 100, 'align' => 'left');
+ $fields['APP_DISABLE_ACTION_USER'] = array( 'name' => 'APP_DISABLE_ACTION_USER', 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DISABLE_ACTION_USER') , 'width' => 100, 'align' => 'left');
+ $fields['APP_DISABLE_ACTION_DATE'] = array( 'name' => 'APP_DISABLE_ACTION_DATE', 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DISABLE_ACTION_DATE') , 'width' => 100, 'align' => 'left');
+ $fields['APP_AUTOMATIC_DISABLED_DATE'] = array( 'name' => 'APP_AUTOMATIC_DISABLED_DATE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_AUTOMATIC_DISABLED_DATE') , 'width' => 100, 'align' => 'left');
+ return $fields;
+
+ }
+
+ /**
+ * this function return the default fields for a default case list
+ * @param $action
+ * @return an array with the default fields for an specific case list (action)
+ */
+ function getDefaultFields ( $action ) {
+ $rows = array();
+ switch ( $action ) {
+ case 'todo' : // #, Case, task, process, sent by, due date, Last Modify, Priority
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['DEL_TASK_DUE_DATE'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['DEL_PRIORITY'];
+ break;
+
+ case 'draft' : //#, Case, task, process, due date, Last Modify, Priority },
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['DEL_TASK_DUE_DATE'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['DEL_PRIORITY'];
+ break;
+ case 'sent' : // #, Case, task, process, current user, sent by, Last Modify, Status
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['APP_CURRENT_USER'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['APP_STATUS'];
+ break;
+ case 'unassigned' : //#, Case, task, process, completed by user, finish date
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ break;
+ case 'paused' : //#, Case, task, process, sent by
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['APP_THREAD_INDEX'];
+ $rows[] = $fields['APP_DEL_INDEX'];
+ break;
+ case 'completed' : //#, Case, task, process, completed by user, finish date
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ break;
+
+ case 'cancelled' : //#, Case, task, process, due date, Last Modify
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ break;
+
+ case 'to_revise' : //#, Case, task, process, due date, Last Modify
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['APP_CURRENT_USER'];
+ $rows[] = $fields['DEL_PRIORITY'];
+ $rows[] = $fields['APP_STATUS'];
+ break;
+
+ case 'to_reassign' : //#, Case, task, process, due date, Last Modify
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['TAS_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_CURRENT_USER'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['APP_STATUS'];
+
+
+ break;
+
+ case 'all' : //#, Case, task, process, due date, Last Modify
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_CURRENT_USER'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['APP_STATUS'];
+ break;
+
+ case 'gral' : //#, Case, task, process, due date, Last Modify
+ $fields = $this->setDefaultFields();
+ $rows[] = $fields['APP_UID'];
+ $rows[] = $fields['DEL_INDEX'];
+ $rows[] = $fields['USR_UID'];
+ $rows[] = $fields['PREVIOUS_USR_UID'];
+ $rows[] = $fields['APP_NUMBER'];
+ $rows[] = $fields['APP_TITLE'];
+ $rows[] = $fields['APP_PRO_TITLE'];
+ $rows[] = $fields['APP_TAS_TITLE'];
+ $rows[] = $fields['APP_CURRENT_USER'];
+ $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
+ $rows[] = $fields['APP_UPDATE_DATE'];
+ $rows[] = $fields['APP_STATUS'];
+ break;
+ }
+ return $rows;
+ }
+
+ /**
+ * set the generic Json Response, using two array for the grid stores and a string for the pmtable name
+ * @param string $pmtable
+ * @param array $first
+ * @param array $second
+ * @return $response a json string
+ */
+ function genericJsonResponse($pmtable, $first, $second, $rowsperpage, $dateFormat ) {
+ $firstGrid['totalCount'] = count($first);
+ $firstGrid['data'] = $first;
+ $secondGrid['totalCount'] = count($second);
+ $secondGrid['data'] = $second;
+ $result = array();
+ $result['first'] = $firstGrid;
+ $result['second'] = $secondGrid;
+ $result['PMTable'] = isset($pmtable) ? $pmtable : '';
+ $result['rowsperpage'] = isset($rowsperpage) ? $rowsperpage : 20;
+ $result['dateformat'] = isset($dateFormat) && $dateFormat != '' ? $dateFormat : 'M d, Y';
+ return $result;
+ }
+
+ /**
+ *
+ * @param String $itemKey
+ * @param array $fields
+ * @return Boolean
+ */
+ function removeItem($itemKey,$fields) {
+ $removedField = false;
+ for ($i=0;$icalculateGridIndex( $fields );
+ return ( $fields );
+ }
+
+ /**
+ *
+ * @param Array $fields
+ * @return Array
+ *
+ */
+ function calculateGridIndex( $fields ) {
+ for ( $i=0;$iaddSelectColumn(GroupUserPeer::GRP_UID);
- // $oCriteria->addSelectColumn('COUNT(*) AS CNT');
- // $oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::INNER_JOIN);
$oCriteria->add(GroupUserPeer::USR_UID, $usrUid);
- //$oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL);
-
//$oCriteria->addGroupByColumn(GroupUserPeer::GRP_UID);
$oDataset = GroupUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode (ResultSet::FETCHMODE_ASSOC);
- $g = new Groupwf();
+
$rows = Array();
while ($oDataset->next()) {
$row = $oDataset->getRow();
- $grpRow = $g->load($row['GRP_UID']);
- $row = array_merge($row, $grpRow);
- $rows[] = $row;
+ $g = new Groupwf();
+ try {
+ $grpRow = $g->load($row['GRP_UID']);
+ $row = array_merge($row, $grpRow);
+ $rows[] = $row;
+ }
+ catch (Exception $e){
+ continue;
+ }
}
return $rows;
diff --git a/workflow/engine/controllers/home.php b/workflow/engine/controllers/home.php
index b56b77c9d..52c7dd764 100644
--- a/workflow/engine/controllers/home.php
+++ b/workflow/engine/controllers/home.php
@@ -15,6 +15,9 @@ class Home extends Controller
private $userRolName;
private $userUxType;
+ private $appListStart = 0;
+ private $appListLimit = 15;
+
public function __construct()
{
// setting as using simplified.
@@ -64,6 +67,66 @@ class Home extends Controller
}
public function appList($httpData)
+ {
+ $httpData->t = isset($httpData->t)? $httpData->t : 'in';
+ $title = $httpData->t != 'draft' ? 'My Inbox' : 'My Drafts';
+ $action = $httpData->t != 'draft' ? 'todo' : 'draft';
+ //$cases = self::getAppList($httpData->t, $this->appListStart, $this->appListLimit);
+
+ G::LoadClass('applications');
+ $apps = new Applications();
+ $cases = $apps->getAll($this->appListStart, $this->appListLimit, $action);
+
+ // settings html template
+ $this->setView('home/appList');
+
+ // settings vars and rendering
+ $this->setVar('cases', $cases['data']);
+ $this->setVar('cases_count', $cases['totalCount']);
+ $this->setVar('title', $title);
+ $this->setVar('appListStart', $this->appListLimit);
+ $this->setVar('appListLimit', 5);
+
+ G::RenderPage('publish', 'mvc');
+ }
+
+ public function getApps($httpData)
+ {
+ G::LoadClass('applications');
+ $apps = new Applications();
+ $cases = $apps->getAll($httpData->start, $httpData->limit);
+
+ $this->setView('home/applications');
+
+ // settings vars and rendering
+ $this->setVar('cases', $cases['data']);
+
+ G::RenderPage('publish', 'mvc');
+ }
+
+ public function startCase($httpData)
+ {
+ G::LoadClass('case');
+ $case = new Cases();
+ $aData = $case->startCase($httpData->id, $_SESSION['USER_LOGGED']);
+
+ $_SESSION['APPLICATION'] = $aData['APPLICATION'];
+ $_SESSION['INDEX'] = $aData['INDEX'];
+ $_SESSION['PROCESS'] = $aData['PROCESS'];
+ $_SESSION['TASK'] = $httpData->id;
+ $_SESSION['STEP_POSITION'] = 0;
+ $_SESSION['CASES_REFRESH'] = true;
+
+ $oCase = new Cases();
+ $aNextStep = $oCase->getNextStep($_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION']);
+ //../cases/cases_Open?APP_UID={$APP.APP_UID}&DEL_INDEX={$APP.DEL_INDEX}&action=todo
+ $aNextStep['PAGE'] = '../cases/cases_Open?APP_UID='.$aData['APPLICATION'].'&DEL_INDEX='.$aData['INDEX'].'&action=draft';
+ $_SESSION ['BREAKSTEP'] ['NEXT_STEP'] = $aNextStep;
+
+ G::header('Location: ' . $aNextStep['PAGE']);
+ }
+
+ private function getAppList($type, $start=null, $limit=null)
{
require_once ( "classes/model/AppCacheView.php" );
require_once ( "classes/model/Application.php" );
@@ -72,36 +135,30 @@ class Home extends Controller
$appCache = new AppCacheView();
$appNotes = new AppNotes();
- $start = 0;
- $limit = 100;
-
$notesStart = 0;
$notesLimit = 4;
- $httpData->t = isset($httpData->t)? $httpData->t : 'in';
-
- /**
- * Getting the user's applications list
- */
-
- //TODO validate user id
-
// getting user's cases on inbox
- switch ($httpData->t) {
- case 'in':
+ switch ($type) {
+ case 'inbox': case 'in':
$criteria = $appCache->getToDoListCriteria($this->userID);
- $title = 'My Inbox';
break;
+
case 'draft':
default:
$criteria = $appCache->getDraftListCriteria($this->userID); //fast enough
- $title = 'My Drafts';
break;
}
- //$criteriac = $oAppCache->getToDoCountCriteria($this->userID);
- //$criteria->setLimit($limit);
- //$criteria->setOffset($start);
+ $distinct = $type == 'draft' ? true : false;
+ $criteriac = $appCache->getToDoCountCriteria($this->userID);
+ $totalCount = AppCacheViewPeer::doCount( $criteriac, $distinct );
+
+ if (isset($start))
+ $criteria->setOffset($start);
+
+ if (isset($limit))
+ $criteria->setLimit($limit);
$criteria->addDescendingOrderByColumn(AppCacheViewPeer::APP_NUMBER);
$dataset = AppCacheViewPeer::doSelectRS($criteria);
@@ -137,38 +194,8 @@ class Home extends Controller
$row['NOTES_LIST'] = $notes['notes'];
$cases[] = $row;
-
}
- // settings html template
- $this->setView('home/appList');
-
- // settings vars and rendering
- $this->setVar('cases', $cases);
- $this->setVar('title', $title);
-
- G::RenderPage('publish', 'mvc');
- }
-
- public function startCase($httpData)
- {
- G::LoadClass('case');
- $case = new Cases();
- $aData = $case->startCase($httpData->id, $_SESSION['USER_LOGGED']);
-
- $_SESSION['APPLICATION'] = $aData['APPLICATION'];
- $_SESSION['INDEX'] = $aData['INDEX'];
- $_SESSION['PROCESS'] = $aData['PROCESS'];
- $_SESSION['TASK'] = $httpData->id;
- $_SESSION['STEP_POSITION'] = 0;
- $_SESSION['CASES_REFRESH'] = true;
-
- $oCase = new Cases();
- $aNextStep = $oCase->getNextStep($_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION']);
- //../cases/cases_Open?APP_UID={$APP.APP_UID}&DEL_INDEX={$APP.DEL_INDEX}&action=todo
- $aNextStep['PAGE'] = '../cases/cases_Open?APP_UID='.$aData['APPLICATION'].'&DEL_INDEX='.$aData['INDEX'].'&action=draft';
- $_SESSION ['BREAKSTEP'] ['NEXT_STEP'] = $aNextStep;
-
- G::header('Location: ' . $aNextStep['PAGE']);
+ return array('data' => $cases, 'totalCount' => $totalCount);
}
}
\ No newline at end of file
diff --git a/workflow/engine/methods/cases/proxyCasesList.php b/workflow/engine/methods/cases/proxyCasesList.php
index cb5a151d8..b4c3d5343 100755
--- a/workflow/engine/methods/cases/proxyCasesList.php
+++ b/workflow/engine/methods/cases/proxyCasesList.php
@@ -18,630 +18,14 @@
$dateTo = isset($_POST['dateTo']) ? substr($_POST['dateTo'],0,10) : '';
try {
-
- G::LoadClass("BasePeer" );
- G::LoadClass ( 'configuration' );
- require_once ( "classes/model/AppCacheView.php" );
- require_once ( "classes/model/AppDelegation.php" );
- require_once ( "classes/model/AdditionalTables.php" );
- require_once ( "classes/model/AppDelay.php" );
- require_once ( "classes/model/Fields.php" );
-
- $userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? $_SESSION['USER_LOGGED'] : null;
- $oAppCache = new AppCacheView();
-
- //get data configuration
- $conf = new Configurations();
- $confCasesList = $conf->getConfiguration('casesList',($action=='search'||$action=='simple_search')?'sent':$action );
-// var_dump($confCasesList);
- $oAppCache->confCasesList = $confCasesList;
-
-// get the action based list
- switch ( $action ) {
- case 'draft' :
- $Criteria = $oAppCache->getDraftListCriteria($userUid);
- $CriteriaCount = $oAppCache->getDraftCountCriteria($userUid);
- break;
- case 'sent' :
- $Criteria = $oAppCache->getSentListCriteria($userUid);
- $CriteriaCount = $oAppCache->getSentCountCriteria($userUid);
-// var_dump($Criteria);
- break;
- case 'selfservice' :
- case 'unassigned':
- $Criteria = $oAppCache->getUnassignedListCriteria($userUid);
- $CriteriaCount = $oAppCache->getUnassignedCountCriteria($userUid);
- break;
- case 'paused' :
- $Criteria = $oAppCache->getPausedListCriteria($userUid);
- $CriteriaCount = $oAppCache->getPausedCountCriteria($userUid);
- break;
- case 'completed' :
- $Criteria = $oAppCache->getCompletedListCriteria($userUid);
- $CriteriaCount = $oAppCache->getCompletedCountCriteria($userUid);
- break;
- case 'cancelled' :
- $Criteria = $oAppCache->getCancelledListCriteria($userUid);
- $CriteriaCount = $oAppCache->getCancelledCountCriteria($userUid);
- break;
- case 'search' :
- $Criteria = $oAppCache->getSearchListCriteria();
- $CriteriaCount = $oAppCache->getSearchCountCriteria();
- break;
- case 'simple_search' :
- $Criteria = $oAppCache->getSimpleSearchListCriteria();
- $CriteriaCount = $oAppCache->getSimpleSearchCountCriteria();
- break;
- case 'to_revise' :
- $Criteria = $oAppCache->getToReviseListCriteria($userUid);
- $CriteriaCount = $oAppCache->getToReviseCountCriteria($userUid);
- break;
- case 'to_reassign' :
- $Criteria = $oAppCache->getToReassignListCriteria();
- $CriteriaCount = $oAppCache->getToReassignCountCriteria();
- break;
- case 'all' :
- $Criteria = $oAppCache->getAllCasesListCriteria($userUid);
- $CriteriaCount = $oAppCache->getAllCasesCountCriteria($userUid);
- break;
- // general criteria probably will be deprecated
- case 'gral' :
- $Criteria = $oAppCache->getGeneralListCriteria();
- $CriteriaCount = $oAppCache->getGeneralCountCriteria();
- break;
- case 'todo' :
- default:
- $Criteria = $oAppCache->getToDoListCriteria($userUid);
- $CriteriaCount = $oAppCache->getToDoCountCriteria($userUid);
- break;
- }
-
- if ( !is_array($confCasesList) ) {
- $rows = getDefaultFields( $action );
- $result = genericJsonResponse( '', array(), $rows , 20, '' );
- //$conf->saveObject($result,'casesList',$action,'','','');
- }
-
- // add the process filter
- if ( $process != '' ) {
- $Criteria->add (AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL );
- $CriteriaCount->add (AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL );
- }
-
- // add the user filter
- if ( $user != '' ) {
- $Criteria->add (AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL );
- $CriteriaCount->add (AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL );
- }
-
- if ( $status != '' ) {
- $Criteria->add (AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL );
- $CriteriaCount->add (AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL );
- }
-
- if ( $dateFrom != '' ) {
- if( $dateTo != '' ){
- $Criteria->add(
- $Criteria->getNewCriterion(
- AppCacheViewPeer::DEL_DELEGATE_DATE,
- $dateFrom, Criteria::GREATER_EQUAL
- )->addAnd($Criteria->getNewCriterion(
- AppCacheViewPeer::DEL_DELEGATE_DATE,
- $dateTo, Criteria::LESS_EQUAL
- ))
- );
- $CriteriaCount->add(
- $CriteriaCount->getNewCriterion(
- AppCacheViewPeer::DEL_DELEGATE_DATE,
- $dateFrom, Criteria::GREATER_EQUAL
- )->addAnd($Criteria->getNewCriterion(
- AppCacheViewPeer::DEL_DELEGATE_DATE,
- $dateTo, Criteria::LESS_EQUAL
- ))
- );
- } else {
- $Criteria->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL );
- $CriteriaCount->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL );
- }
- } else if ( $dateTo != '' ) {
- $Criteria->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL );
- $CriteriaCount->add (AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL );
- }
-
- //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' :
- $Criteria->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
- $CriteriaCount->add (AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
- break;
- case 'started' :
- $Criteria->add (AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL);
- $CriteriaCount->add (AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL);
- break;
- case 'completed' :
- $Criteria->add (AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
- $CriteriaCount->add (AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
- break;
- }
- }
-
- //add the search filter
- if ( $search != '' ) {
-
- $defaultFields = $oAppCache->getDefaultFields();
- $oTmpCriteria = '';
- // if there is PMTABLE for this case list:
- if ( !empty($oAppCache->confCasesList) && isset($oAppCache->confCasesList['PMTable']) && trim($oAppCache->confCasesList['PMTable'])!='' ) {
- // getting the table name
- $oAdditionalTables = AdditionalTablesPeer::retrieveByPK($oAppCache->confCasesList['PMTable']);
- $tableName = $oAdditionalTables->getAddTabName();
- $oNewCriteria = new Criteria( 'workflow' );
- $counter = 0;
- foreach($oAppCache->confCasesList['second']['data'] as $fieldData){
- if ( !in_array($fieldData['name'],$defaultFields) ){
- $fieldName = $tableName.'.'.$fieldData['name'];
- if ( $counter == 0 ) {
- $oTmpCriteria = $oNewCriteria->getNewCriterion ( $fieldName, '%' . $search . '%', Criteria::LIKE );
- } else {
- $oTmpCriteria = $oNewCriteria->getNewCriterion ( $fieldName, '%' . $search . '%', Criteria::LIKE )->addOr($oTmpCriteria);
- }
- $counter++;
- }
- }
- //add the default and hidden DEL_INIT_DATE
- }
-
- // the criteria adds new fields if there are defined PM Table Fields in the cases list
- if ($oTmpCriteria!='') {
- $Criteria->add(
- $Criteria->getNewCriterion(
- AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
- )->addOr($Criteria->getNewCriterion(
- AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
- )->addOr($Criteria->getNewCriterion(
- AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
- )->addOr($oTmpCriteria))
- ));
- } else {
- $Criteria->add(
- $Criteria->getNewCriterion(
- AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
- )->addOr($Criteria->getNewCriterion(
- AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
- )->addOr($Criteria->getNewCriterion(
- AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
- ))
- ));
- }
-
- // the count query needs to be the normal criteria query if there are defined PM Table Fields in the cases list
- if ($oTmpCriteria!='') {
- $CriteriaCount = $Criteria;
- } else {
- $CriteriaCount->add(
- $CriteriaCount->getNewCriterion(
- AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE
- )->addOr($CriteriaCount->getNewCriterion(
- AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE
- )->addOr($CriteriaCount->getNewCriterion(
- AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE
- ))
- ));
- }
- }
-
- //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,
- //we need to count using the table APPLICATION, because APP_CACHE_VIEW takes 3 seconds
-
- if ( $action == 'search' && $filter == '' && $search == '' && $process == '' && $status == '' && $dateFrom == '' && $dateTo == '') {
- $totalCount = $oAppCache->getSearchAllCount();
- $doCountAlreadyExecuted = true;
- }
-
- if ( $doCountAlreadyExecuted == false ) {
- // in the case of reassign the distinct attribute shows a diferent count result comparing to the
- // original list
- if ($action == 'to_reassign' || $action == 'todo'){
- $distinct = false;
- } else{
- $distinct = true;
- }
- // first check if there is a PMTable defined within the list,
- // the issue that brokes the normal criteria query seems to be fixed
- if (isset($oAppCache->confCasesList['PMTable']) && !empty($oAppCache->confCasesList['PMTable'])) {
- // then
- $oAdditionalTables = AdditionalTablesPeer::retrieveByPK($oAppCache->confCasesList['PMTable']);
- $tableName = $oAdditionalTables->getAddTabName();
- $tableName = strtolower($tableName);
- $tableNameArray = explode('_',$tableName);
- foreach ($tableNameArray as $item){
- $newTableName[] = ucfirst($item);
- }
- $tableName = implode('',$newTableName);
- // so the pm table class can be invoqued from the pm table model clases
- if (!class_exists($tableName)){
- require_once(PATH_DB.SYS_SYS.PATH_SEP."classes".PATH_SEP.$tableName.".php");
- }
- }
- $totalCount = AppCacheViewPeer::doCount( $CriteriaCount, $distinct );
-
- }
-
- //add sortable options
- if ( $sort != '' ) {
- if ( $dir == 'DESC' )
- $Criteria->addDescendingOrderByColumn( $sort );
- else
- $Criteria->addAscendingOrderByColumn( $sort );
- }
-
- //limit the results according the interface
- $Criteria->setLimit( $limit );
- $Criteria->setOffset( $start );
-
-
- /*
- // this is the optimal way or query to render the cases search list
- // fixing the bug related to the wrong data displayed in the list
- if ( $action == 'search' ) {
- $oDatasetIndex = AppCacheViewPeer::doSelectRS( $Criteria );
- $oDatasetIndex->setFetchmode( ResultSet::FETCHMODE_ASSOC );
- $oDatasetIndex->next();
- // a list of MAX_DEL_INDEXES is required in order to validate the right row
- while($aRow = $oDatasetIndex->getRow()){
- $maxDelIndexList[] = $aRow['MAX_DEL_INDEX'];
- $oDatasetIndex->next();
- }
- // adding the validation condition in order to get the right row using the group by sentence
- $Criteria->add(AppCacheViewPeer::DEL_INDEX, $maxDelIndexList, Criteria::IN );
//
- $params = array ( $maxDelIndexList );
+ G::LoadClass('applications');
+ $apps = new Applications();
+ $data = $apps->getAll($start, $limit, $action, $filter, $search, $process, $user, $status, $type, $dateFrom, $dateTo, $callback, $dir, $sort);
- }
- */
-
- //execute the query
- $oDataset = AppCacheViewPeer::doSelectRS($Criteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
-
- $result = array();
- $result['totalCount'] = $totalCount;
- $rows = array();
- $aPriorities = array('1'=>'VL', '2'=>'L', '3'=>'N', '4'=>'H', '5'=>'VH');
- $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,
- * but Propel might not support it and subqueries can be slower for larger
- * datasets).
- */
- if ($action == 'sent' || $action == 'search') {
- $maxCriteria = new Criteria('workflow');
- $maxCriteria->add(AppCacheViewPeer::APP_UID, $aRow['APP_UID'], Criteria::EQUAL);
- $maxCriteria->addDescendingOrderByColumn(AppCacheViewPeer::DEL_INDEX);
- $maxCriteria->setLimit(1);
-
- $maxDataset = AppCacheViewPeer::doSelectRS( $maxCriteria );
- $maxDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
- $maxDataset->next();
-
- $newData = $maxDataset->getRow();
- foreach ($aRow as $col => $value) {
- 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
- if( isset($aRow['APP_STATUS']) ){
- $aRow['APP_STATUS'] = G::LoadTranslation("ID_{$aRow['APP_STATUS']}");
- }
- // replacing the priority data with their respective translation
- if( isset($aRow['DEL_PRIORITY']) ){
- $aRow['DEL_PRIORITY'] = G::LoadTranslation("ID_PRIORITY_{$aPriorities[$aRow['DEL_PRIORITY']]}");
- }
-
- $rows[] = $aRow;
- $oDataset->next();
- }
- $result['data'] = $rows;
-//print the result in json format
- print G::json_encode( $result ) ;
-
+ echo G::json_encode($data);
}
catch ( Exception $e ) {
- $msg = array ( 'error' => $e->getMessage() );
+ $msg = array ( 'error' => $e->getMessage() );
print G::json_encode( $msg ) ;
}
-
-
-
- //TODO: Encapsulates these and another default generation functions inside a class
- /**
- * generate all the default fields
- * @return Array $fields
- */
- function setDefaultFields() {
- $fields = array();
- $fields['APP_NUMBER'] = array( 'name' => 'APP_NUMBER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_NUMBER') , 'width' => 40, 'align' => 'left');
- $fields['APP_UID'] = array( 'name' => 'APP_UID' , 'fieldType' => 'key', 'label' => G::loadTranslation('ID_CASESLIST_APP_UID'), 'width' => 80, 'align' => 'left');
- $fields['DEL_INDEX'] = array( 'name' => 'DEL_INDEX' , 'fieldType' => 'key' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_INDEX') , 'width' => 50, 'align' => 'left');
- $fields['TAS_UID'] = array( 'name' => 'TAS_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_TAS_UID') , 'width' => 80, 'align' => 'left');
- $fields['USR_UID'] = array( 'name' => 'USR_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_USR_UID') , 'width' => 80, 'align' => 'left', 'hidden' => true);
- $fields['PREVIOUS_USR_UID'] = array( 'name' => 'PREVIOUS_USR_UID' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_PREVIOUS_USR_UID') , 'width' => 80, 'align' => 'left', 'hidden' => true);
- $fields['APP_TITLE'] = array( 'name' => 'APP_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TITLE') , 'width' => 140, 'align' => 'left');
- $fields['APP_PRO_TITLE'] = array( 'name' => 'APP_PRO_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_PRO_TITLE') , 'width' => 140, 'align' => 'left');
- $fields['APP_TAS_TITLE'] = array( 'name' => 'APP_TAS_TITLE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TAS_TITLE') , 'width' => 140, 'align' => 'left');
- $fields['APP_DEL_PREVIOUS_USER'] = array( 'name' => 'APP_DEL_PREVIOUS_USER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DEL_PREVIOUS_USER') , 'width' => 120, 'align' => 'left');
- $fields['APP_CURRENT_USER'] = array( 'name' => 'APP_CURRENT_USER' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_CURRENT_USER') , 'width' => 120, 'align' => 'left');
- $fields['DEL_TASK_DUE_DATE'] = array( 'name' => 'DEL_TASK_DUE_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_TASK_DUE_DATE') , 'width' => 100, 'align' => 'left');
- $fields['APP_UPDATE_DATE'] = array( 'name' => 'APP_UPDATE_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_UPDATE_DATE') , 'width' => 100, 'align' => 'left');
- $fields['DEL_PRIORITY'] = array( 'name' => 'DEL_PRIORITY' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_DEL_PRIORITY') , 'width' => 80, 'align' => 'left');
- $fields['APP_STATUS'] = array( 'name' => 'APP_STATUS' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_STATUS') , 'width' => 80, 'align' => 'left');
- $fields['APP_FINISH_DATE'] = array( 'name' => 'APP_FINISH_DATE' , 'fieldType' => 'case field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_FINISH_DATE') , 'width' => 100, 'align' => 'left');
- $fields['APP_DELAY_UID'] = array( 'name' => 'APP_DELAY_UID' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DELAY_UID') , 'width' => 100, 'align' => 'left');
- $fields['APP_THREAD_INDEX'] = array( 'name' => 'APP_THREAD_INDEX' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_THREAD_INDEX') , 'width' => 100, 'align' => 'left');
- $fields['APP_DEL_INDEX'] = array( 'name' => 'APP_DEL_INDEX' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DEL_INDEX') , 'width' => 100, 'align' => 'left');
- $fields['APP_TYPE'] = array( 'name' => 'APP_TYPE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_TYPE') , 'width' => 100, 'align' => 'left');
- $fields['APP_DELEGATION_USER'] = array( 'name' => 'APP_DELEGATION_USER' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DELEGATION_USER') , 'width' => 100, 'align' => 'left');
- $fields['APP_ENABLE_ACTION_USER'] = array( 'name' => 'APP_ENABLE_ACTION_USER' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_ENABLE_ACTION_USER') , 'width' => 100, 'align' => 'left');
- $fields['APP_ENABLE_ACTION_DATE'] = array( 'name' => 'APP_ENABLE_ACTION_DATE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_AAPP_ENABLE_ACTION_DATE') , 'width' => 100, 'align' => 'left');
- $fields['APP_DISABLE_ACTION_USER'] = array( 'name' => 'APP_DISABLE_ACTION_USER', 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DISABLE_ACTION_USER') , 'width' => 100, 'align' => 'left');
- $fields['APP_DISABLE_ACTION_DATE'] = array( 'name' => 'APP_DISABLE_ACTION_DATE', 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_DISABLE_ACTION_DATE') , 'width' => 100, 'align' => 'left');
- $fields['APP_AUTOMATIC_DISABLED_DATE'] = array( 'name' => 'APP_AUTOMATIC_DISABLED_DATE' , 'fieldType' => 'delay field' , 'label' => G::loadTranslation('ID_CASESLIST_APP_AUTOMATIC_DISABLED_DATE') , 'width' => 100, 'align' => 'left');
- return $fields;
-
- }
-
- /**
- * this function return the default fields for a default case list
- * @param $action
- * @return an array with the default fields for an specific case list (action)
- */
- function getDefaultFields ( $action ) {
- $rows = array();
- switch ( $action ) {
- case 'todo' : // #, Case, task, process, sent by, due date, Last Modify, Priority
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['DEL_TASK_DUE_DATE'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['DEL_PRIORITY'];
- break;
-
- case 'draft' : //#, Case, task, process, due date, Last Modify, Priority },
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['DEL_TASK_DUE_DATE'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['DEL_PRIORITY'];
- break;
- case 'sent' : // #, Case, task, process, current user, sent by, Last Modify, Status
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['APP_CURRENT_USER'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['APP_STATUS'];
- break;
- case 'unassigned' : //#, Case, task, process, completed by user, finish date
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- break;
- case 'paused' : //#, Case, task, process, sent by
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['APP_THREAD_INDEX'];
- $rows[] = $fields['APP_DEL_INDEX'];
- break;
- case 'completed' : //#, Case, task, process, completed by user, finish date
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- break;
-
- case 'cancelled' : //#, Case, task, process, due date, Last Modify
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- break;
-
- case 'to_revise' : //#, Case, task, process, due date, Last Modify
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['APP_CURRENT_USER'];
- $rows[] = $fields['DEL_PRIORITY'];
- $rows[] = $fields['APP_STATUS'];
- break;
-
- case 'to_reassign' : //#, Case, task, process, due date, Last Modify
- $fields = setDefaultFields();
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['TAS_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_CURRENT_USER'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['APP_STATUS'];
-
-
- break;
-
- case 'all' : //#, Case, task, process, due date, Last Modify
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_CURRENT_USER'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['APP_STATUS'];
- break;
-
- case 'gral' : //#, Case, task, process, due date, Last Modify
- $fields = setDefaultFields();
- $rows[] = $fields['APP_UID'];
- $rows[] = $fields['DEL_INDEX'];
- $rows[] = $fields['USR_UID'];
- $rows[] = $fields['PREVIOUS_USR_UID'];
- $rows[] = $fields['APP_NUMBER'];
- $rows[] = $fields['APP_TITLE'];
- $rows[] = $fields['APP_PRO_TITLE'];
- $rows[] = $fields['APP_TAS_TITLE'];
- $rows[] = $fields['APP_CURRENT_USER'];
- $rows[] = $fields['APP_DEL_PREVIOUS_USER'];
- $rows[] = $fields['APP_UPDATE_DATE'];
- $rows[] = $fields['APP_STATUS'];
- break;
- }
- return $rows;
- }
-
- /**
- * set the generic Json Response, using two array for the grid stores and a string for the pmtable name
- * @param string $pmtable
- * @param array $first
- * @param array $second
- * @return $response a json string
- */
- function genericJsonResponse($pmtable, $first, $second, $rowsperpage, $dateFormat ) {
- $firstGrid['totalCount'] = count($first);
- $firstGrid['data'] = $first;
- $secondGrid['totalCount'] = count($second);
- $secondGrid['data'] = $second;
- $result = array();
- $result['first'] = $firstGrid;
- $result['second'] = $secondGrid;
- $result['PMTable'] = isset($pmtable) ? $pmtable : '';
- $result['rowsperpage'] = isset($rowsperpage) ? $rowsperpage : 20;
- $result['dateformat'] = isset($dateFormat) && $dateFormat != '' ? $dateFormat : 'M d, Y';
- return $result;
- }
-
- /**
- *
- * @param String $itemKey
- * @param array $fields
- * @return Boolean
- */
- function removeItem($itemKey,$fields) {
- $removedField = false;
- for ($i=0;$itemplate_dir = PATH_SKINS;
+ $smarty->template_dir = PATH_TPL;
$smarty->compile_dir = PATH_SMARTY_C;
$smarty->cache_dir = PATH_SMARTY_CACHE;
$smarty->config_dir = PATH_THIRDPARTY . 'smarty/configs';
@@ -550,4 +550,3 @@ if (isset($G_ENABLE_BLANK_SKIN) && $G_ENABLE_BLANK_SKIN) {
}
break;
}
-?>
diff --git a/workflow/engine/templates/home/appList.html b/workflow/engine/templates/home/appList.html
index 6481d11f0..f5aaa2632 100644
--- a/workflow/engine/templates/home/appList.html
+++ b/workflow/engine/templates/home/appList.html
@@ -23,6 +23,15 @@
background-color:#ECECEC;
}
+
+ #note_text {
+ width:100%;
+ height:52px;
+ }
+
+ .postitem:hover{
+ /*background:#EFEFEF;*/
+ }
+
+ $(document).ready(function(){
+ $("#loadmorebutton").click(function (){
+ $('#loadmorebutton').html('
');
+ $.ajax({
+ url: "getApps?start="+appListStart+"&limit="+appListLimit,
+ success: function(html){
+ appListStart += appListLimit;
+
+ if(html){
+ $("#commentlist").append(html);
+ $('#loadmorebutton').html('Load More');
+ }
+ else {
+ $('#loadmorebutton').replaceWith('No more posts to show.');
+ }
+ }
+ });
+
+ return false;
+ });
+ });
{/literal}
+
+ var appListLimit = {$appListLimit};
+ var appListStart = {$appListStart};
+
+
@@ -172,6 +165,6 @@
-
+
- - {$APP.APP_TITLE} - -
-{$APP.DEL_DELEGATE_DATE}
-{$APP.APP_PRO_TITLE} -
- -{$APP.APP_TAS_TITLE}
{$NOTE.USR_FIRSTNAME} {$NOTE.USR_LASTNAME} ({$NOTE.USR_USERNAME})
-{$NOTE.NOTE_CONTENT}- -