diff --git a/workflow/engine/bin/cron_single.php b/workflow/engine/bin/cron_single.php
index 0e8b450fa..4446f633a 100755
--- a/workflow/engine/bin/cron_single.php
+++ b/workflow/engine/bin/cron_single.php
@@ -482,6 +482,8 @@ function saveLog($sSource, $sType, $sDescription)
G::verifyPath(PATH_DATA . 'log' . PATH_SEP, true);
+ //setExecutionMessage( PATH_DATA."log".PATH_SEP);
+
if ($sType == 'action') {
$oFile = @fopen(PATH_DATA . 'log' . PATH_SEP . 'cron.log', 'a+');
} else {
diff --git a/workflow/engine/classes/model/AppEvent.php b/workflow/engine/classes/model/AppEvent.php
index c282e6432..ac791e4b2 100755
--- a/workflow/engine/classes/model/AppEvent.php
+++ b/workflow/engine/classes/model/AppEvent.php
@@ -113,72 +113,80 @@ class AppEvent extends BaseAppEvent {
}
}
- function getAppEventsCriteria($sProcessUid, $sStatus = '', $EVN_ACTION='') {
- try {
- require_once 'classes/model/Event.php';
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(AppEventPeer::APP_UID);
- $oCriteria->addSelectColumn(AppEventPeer::DEL_INDEX);
- $oCriteria->addSelectColumn(AppEventPeer::EVN_UID);
- $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ACTION_DATE);
- $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ATTEMPTS);
- $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_LAST_EXECUTION_DATE);
- $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_STATUS);
- $oCriteria->addSelectColumn(EventPeer::PRO_UID);
- $oCriteria->addSelectColumn(EventPeer::EVN_WHEN_OCCURS);
- $oCriteria->addSelectColumn(EventPeer::EVN_ACTION);
- $oCriteria->addAsColumn('EVN_DESCRIPTION', 'C1.CON_VALUE');
- $oCriteria->addAsColumn('TAS_TITLE', 'C2.CON_VALUE');
- $oCriteria->addAsColumn('APP_TITLE', 'C3.CON_VALUE');
- $oCriteria->addAlias('C1', 'CONTENT');
- $oCriteria->addAlias('C2', 'CONTENT');
- $oCriteria->addAlias('C3', 'CONTENT');
- $oCriteria->addJoin(AppEventPeer::EVN_UID, EventPeer::EVN_UID, Criteria::LEFT_JOIN);
- $del = DBAdapter::getStringDelimiter();
- $aConditions = array();
- $aConditions[] = array(EventPeer::EVN_UID, 'C1.CON_ID');
- $aConditions[] = array('C1.CON_CATEGORY', $del . 'EVN_DESCRIPTION' . $del);
- $aConditions[] = array('C1.CON_LANG', $del . SYS_LANG . $del);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions[] = array(AppEventPeer::APP_UID, AppDelegationPeer::APP_UID);
- $aConditions[] = array(AppEventPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions[] = array(AppDelegationPeer::TAS_UID, 'C2.CON_ID');
- $aConditions[] = array('C2.CON_CATEGORY', $del . 'TAS_TITLE' . $del);
- $aConditions[] = array('C2.CON_LANG', $del . SYS_LANG . $del);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions[] = array(AppDelegationPeer::APP_UID, 'C3.CON_ID');
- $aConditions[] = array('C3.CON_CATEGORY', $del . 'APP_TITLE' . $del);
- $aConditions[] = array('C3.CON_LANG', $del . SYS_LANG . $del);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(AppEventPeer::EVN_UID, '', Criteria::NOT_EQUAL);
- $oCriteria->add(EventPeer::PRO_UID, $sProcessUid);
-
- if($EVN_ACTION != ''){
- $oCriteria->add(EventPeer::EVN_ACTION, $EVN_ACTION);
- }
-
- switch ($sStatus) {
- case '':
- //Nothing
- break;
- case 'PENDING':
- $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'OPEN');
- break;
- case 'COMPLETED':
- $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'CLOSE');
- break;
- }
- $oCriteria->addDescendingOrderByColumn(AppEventPeer::APP_EVN_ACTION_DATE);
- return $oCriteria;
+ function getAppEventsCriteria($sProcessUid='', $sStatus = '', $EVN_ACTION='') {
+ try {
+ require_once 'classes/model/Event.php';
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(AppEventPeer::APP_UID);
+ $oCriteria->addSelectColumn(AppEventPeer::DEL_INDEX);
+ $oCriteria->addSelectColumn(AppEventPeer::EVN_UID);
+ $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ACTION_DATE);
+ $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_ATTEMPTS);
+ $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_LAST_EXECUTION_DATE);
+ $oCriteria->addSelectColumn(AppEventPeer::APP_EVN_STATUS);
+ $oCriteria->addSelectColumn(EventPeer::PRO_UID);
+ $oCriteria->addSelectColumn(EventPeer::EVN_WHEN_OCCURS);
+ $oCriteria->addSelectColumn(EventPeer::EVN_ACTION);
+ $oCriteria->addAsColumn('EVN_DESCRIPTION', 'C1.CON_VALUE');
+ $oCriteria->addAsColumn('TAS_TITLE', 'C2.CON_VALUE');
+ $oCriteria->addAsColumn('APP_TITLE', 'C3.CON_VALUE');
+ $oCriteria->addAsColumn('PRO_TITLE', 'C4.CON_VALUE');
+ $oCriteria->addAlias('C1', 'CONTENT');
+ $oCriteria->addAlias('C2', 'CONTENT');
+ $oCriteria->addAlias('C3', 'CONTENT');
+ $oCriteria->addAlias('C4', 'CONTENT');
+ $oCriteria->addJoin(AppEventPeer::EVN_UID, EventPeer::EVN_UID, Criteria::LEFT_JOIN);
+ $del = DBAdapter::getStringDelimiter();
+ $aConditions = array();
+ $aConditions[] = array(EventPeer::EVN_UID, 'C1.CON_ID');
+ $aConditions[] = array('C1.CON_CATEGORY', $del . 'EVN_DESCRIPTION' . $del);
+ $aConditions[] = array('C1.CON_LANG', $del . SYS_LANG . $del);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions[] = array(AppEventPeer::APP_UID, AppDelegationPeer::APP_UID);
+ $aConditions[] = array(AppEventPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions[] = array(AppDelegationPeer::TAS_UID, 'C2.CON_ID');
+ $aConditions[] = array('C2.CON_CATEGORY', $del . 'TAS_TITLE' . $del);
+ $aConditions[] = array('C2.CON_LANG', $del . SYS_LANG . $del);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions[] = array(AppDelegationPeer::APP_UID, 'C3.CON_ID');
+ $aConditions[] = array('C3.CON_CATEGORY', $del . 'APP_TITLE' . $del);
+ $aConditions[] = array('C3.CON_LANG', $del . SYS_LANG . $del);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions[] = array(AppDelegationPeer::PRO_UID, 'C4.CON_ID');
+ $aConditions[] = array('C4.CON_CATEGORY', $del . 'PRO_TITLE' . $del);
+ $aConditions[] = array('C4.CON_LANG', $del . SYS_LANG . $del);
+
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(AppEventPeer::EVN_UID, '', Criteria::NOT_EQUAL);
+ if($sProcessUid != ''){
+ $oCriteria->add(EventPeer::PRO_UID, $sProcessUid);
+ }
+ if($EVN_ACTION != ''){
+ $oCriteria->add(EventPeer::EVN_ACTION, $EVN_ACTION);
+ }
+ switch ($sStatus) {
+ case '':
+ //Nothing
+ break;
+ case 'PENDING':
+ $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'OPEN');
+ break;
+ case 'COMPLETED':
+ $oCriteria->add(AppEventPeer::APP_EVN_STATUS, 'CLOSE');
+ break;
+ }
+ //$oCriteria->addDescendingOrderByColumn(AppEventPeer::APP_EVN_ACTION_DATE);
+ return $oCriteria;
+ }
+ catch (Exception $oError) {
+ throw($oError);
+ }
}
- catch (Exception $oError) {
- throw($oError);
- }
- }
function executeEvents($sNow, $debug=false, &$log=array()) {
diff --git a/workflow/engine/classes/model/CaseScheduler.php b/workflow/engine/classes/model/CaseScheduler.php
index 63739842d..4ac96a90c 100755
--- a/workflow/engine/classes/model/CaseScheduler.php
+++ b/workflow/engine/classes/model/CaseScheduler.php
@@ -346,6 +346,8 @@ class CaseScheduler extends BaseCaseScheduler {
case '4' :
$aRow ['SCH_STATE'] = 'PROCESSED';
break;
+ case '5' :
+ break;
}
@@ -505,7 +507,7 @@ class CaseScheduler extends BaseCaseScheduler {
$newCaseLog->saveLogParameters ( $paramsLog );
$newCaseLog->save ();
- if ($sOption != '4') {
+ if ($sOption != '4' && $sOption != '5') {
$nSchLastRunTime = $sActualTime;
$dEstimatedDate = $this->updateNextRun ( $sOption, $sValue, $sActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths );
@@ -521,12 +523,14 @@ class CaseScheduler extends BaseCaseScheduler {
$nSchTimeNextRun = $dEstimatedDate;
$this->updateDate ( $sSchedulerUid, $nSchTimeNextRun, $nSchLastRunTime );
- } else {
+ } elseif($sOption != '5'){
$Fields = $this->Load ( $sSchedulerUid );
$Fields ['SCH_LAST_STATE'] = $aRow ['SCH_STATE'];
$Fields ['SCH_LAST_RUN_TIME'] = $Fields ['SCH_TIME_NEXT_RUN'];
$Fields ['SCH_STATE'] = 'PROCESSED';
$this->Update ( $Fields );
+ } else {
+
}
} else if ($sActualDataHour == $dActualSysHour && $sActualDataMinutes <= $dActualSysMinutes) {
@@ -629,7 +633,7 @@ class CaseScheduler extends BaseCaseScheduler {
$newCaseLog->saveLogParameters ( $paramsLog );
$newCaseLog->save ();
- if ($sOption != '4') {
+ if ($sOption != '4' && $sOption != '5') {
$nSchLastRunTime = $sActualTime;
$dEstimatedDate = $this->updateNextRun ( $sOption, $sValue, $sActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths );
@@ -646,12 +650,24 @@ class CaseScheduler extends BaseCaseScheduler {
$nSchTimeNextRun = $dEstimatedDate;
$this->updateDate ( $sSchedulerUid, $nSchTimeNextRun, $nSchLastRunTime );
- } else {
+ } elseif ($sOption != '5'){
$Fields = $this->Load ( $sSchedulerUid );
$Fields ['SCH_LAST_STATE'] = $aRow ['SCH_STATE'];
$Fields ['SCH_LAST_RUN_TIME'] = $Fields ['SCH_TIME_NEXT_RUN'];
$Fields ['SCH_STATE'] = 'PROCESSED';
$this->Update ( $Fields );
+ } else {
+ $nSchLastRunTime = $sActualTime;
+ $Fields = $this->Load ( $sSchedulerUid );
+ $Fields ['SCH_LAST_RUN_TIME'] = $Fields ['SCH_TIME_NEXT_RUN'];
+
+ $nSchTimeNextRun = strtotime($Fields ['SCH_TIME_NEXT_RUN']);
+ $nextRun = $Fields ['SCH_REPEAT_EVERY']*60*60;
+ $nSchTimeNextRun += $nextRun;
+ $nSchTimeNextRun = date("Y-m-d H:i", $nSchTimeNextRun );
+
+
+ $this->updateDate ( $sSchedulerUid, $nSchTimeNextRun, $nSchLastRunTime );
}
}
diff --git a/workflow/engine/menus/setup.php b/workflow/engine/menus/setup.php
index 55228f116..adb669db4 100755
--- a/workflow/engine/menus/setup.php
+++ b/workflow/engine/menus/setup.php
@@ -58,7 +58,7 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1) {
$G_TMP_MENU->AddIdRawOption('PM_TABLES', '../pmTables', G::LoadTranslation('ID_ADDITIONAL_TABLES'), 'icon-tables.png','', 'settings');
$G_TMP_MENU->AddIdRawOption('WEBSERVICES', 'webServices', G::LoadTranslation('ID_WEB_SERVICES'), 'icon-webservices.png', '', 'settings');
- $G_TMP_MENU->AddIdRawOption('LOG_CASE_SCHEDULER', '../cases/cases_Scheduler_Log', G::LoadTranslation('ID_LOG_CASE_SCHEDULER'), "icon-logs-list.png",'', 'settings');
+ //$G_TMP_MENU->AddIdRawOption('LOG_CASE_SCHEDULER', '../cases/cases_Scheduler_Log', G::LoadTranslation('ID_LOG_CASE_SCHEDULER'), "icon-logs-list.png",'', 'settings');
$G_TMP_MENU->AddIdRawOption('LOGIN', 'loginSettings', G::LoadTranslation('LOGIN'), "",'', 'settings');
$G_TMP_MENU->AddIdRawOption('DASHBOARD', '../dashboard/dashletsList', ucfirst(G::LoadTranslation('ID_DASHBOARD')), '', '', 'settings');
}
@@ -82,4 +82,9 @@ if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1) {
$G_TMP_MENU->AddIdRawOption('SYSTEM', '../admin/system', G::LoadTranslation('ID_SYSTEM'), '', '', 'settings');
}
+if ($RBAC->userCanAccess('PM_SETUP') == 1) {
+ $G_TMP_MENU->AddIdRawOption('EVENT', '../events/eventList', G::LoadTranslation('ID_EVENTS'), '', '', 'logs');
+ $G_TMP_MENU->AddIdRawOption('LOG_CASE_SCHEDULER', '../cases/cases_Scheduler_Log', G::LoadTranslation('ID_LOG_CASE_SCHEDULER'), "icon-logs-list.png",'', 'logs');
+}
+
diff --git a/workflow/engine/methods/cases/cases_Scheduler_Save.php b/workflow/engine/methods/cases/cases_Scheduler_Save.php
index 4be825646..7435a1b1b 100755
--- a/workflow/engine/methods/cases/cases_Scheduler_Save.php
+++ b/workflow/engine/methods/cases/cases_Scheduler_Save.php
@@ -63,17 +63,19 @@ try {
$sOption = $_POST['form']['SCH_OPTION'];
$aData['SCH_OPTION'] = $sOption;
- if ($_POST['form']['SCH_START_DATE']!=''){
- $sDateTmp = $_POST['form']['SCH_START_DATE'];
- } else {
- $sDateTmp = date('Y-m-d');
- }
- $sTimeTmp = $_POST['form']['SCH_START_TIME'];
- $aData['SCH_START_TIME'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp));
- $aData['SCH_START_DATE'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp));
- $nActualTime = $_POST['form']['SCH_START_TIME']; // time();
- // $nActualDate = date("Y-m-d H:i:s", $nActualTime);
+
+ if ($_POST['form']['SCH_START_DATE']!=''){
+ $sDateTmp = $_POST['form']['SCH_START_DATE'];
+ } else {
+ $sDateTmp = date('Y-m-d');
+ }
+ $sTimeTmp = $_POST['form']['SCH_START_TIME'];
+ $aData['SCH_START_TIME'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp));
+ $aData['SCH_START_DATE'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp));
+
+ $nActualTime = $_POST['form']['SCH_START_TIME']; // time();
+ // $nActualDate = date("Y-m-d H:i:s", $nActualTime);
$sValue = '';
$sDaysPerformTask = '';
@@ -161,7 +163,8 @@ try {
}
- if(($sOption!='1') && ($sOption!='4')) {
+ echo "
sOption: ".$sOption;
+ if(($sOption!='1') && ($sOption!='4') && ($sOption!='5') ) {
if ($sStartDay==''){
$sStartDay = date('Y-m-d');
}
@@ -190,8 +193,17 @@ try {
$aData['SCH_END_DATE'] = $aData['SCH_START_TIME'];
}
$aData['SCH_TIME_NEXT_RUN'] = $aData['SCH_START_TIME'];
+ if ($sOption == 5) {
+ $aData['SCH_START_TIME'] = time();
+ $aData['SCH_START_DATE'] = $aData['SCH_START_TIME'];
+ $nextRun = $_POST['form']['SCH_REPEAT_EVERY']*60*60;
+ $aData['SCH_REPEAT_EVERY'] = $_POST['form']['SCH_REPEAT_EVERY'];
+ $date = $aData['SCH_START_TIME'];
+ $date += $nextRun;
+ $date = date("Y-m-d H:i", $date );
+ $aData['SCH_TIME_NEXT_RUN'] = $date;
+ }
}
-
if(trim($_POST['form']['SCH_END_DATE'])!=''){
$aData['SCH_END_DATE'] = $_POST['form']['SCH_END_DATE'];
}
diff --git a/workflow/engine/methods/cases/cases_Scheduler_Update.php b/workflow/engine/methods/cases/cases_Scheduler_Update.php
index 46ffbf845..ef3f7cbb7 100755
--- a/workflow/engine/methods/cases/cases_Scheduler_Update.php
+++ b/workflow/engine/methods/cases/cases_Scheduler_Update.php
@@ -46,7 +46,6 @@ try {
if (empty($_POST)) {
die('The information sended is empty!');
}
-
$aData['SCH_UID'] = $_POST['form']['SCH_UID'];
$aData['SCH_NAME'] = $_POST['form']['SCH_NAME'];
$aData['PRO_UID'] = $_POST['form']['PRO_UID'];
@@ -162,7 +161,7 @@ try {
$aData['SCH_END_DATE'] = $_POST['form']['SCH_END_DATE'];
}
// if the start date has changed then recalculate the next run time
- if ($_POST['form']['SCH_START_DATE']==$_POST['form']['PREV_SCH_START_DATE']){
+ if ($_POST['form']['SCH_START_DATE']==$_POST['form']['PREV_SCH_START_DATE']) {
$recalculateDate = false;
} else {
$recalculateDate = true;
@@ -177,7 +176,7 @@ try {
// var_dump($recalculateTime);
// die();
$nActualTime = $_POST['form']['SCH_START_TIME'];
- if(($sOption!='1') && ($sOption!='4')) {
+ if(($sOption!='1') && ($sOption!='4') && ($sOption!='5')) {
if ($sStartDay==''){
$sStartDay = date('Y-m-d');
}
@@ -230,6 +229,18 @@ try {
// var_dump($recalculateTime);
// var_dump($aData['SCH_TIME_NEXT_RUN']);
// die;
+ if ($sOption=='5') {
+ $date = $oCaseScheduler->getSchLastRunTime();
+ if ($date == null) {
+ $date = $oCaseScheduler->getSchStartTime();
+ }
+ $date = strtotime($date);
+ $nextRun = $_POST['form']['SCH_REPEAT_EVERY']*60*60;
+ $aData['SCH_REPEAT_EVERY'] = $_POST['form']['SCH_REPEAT_EVERY'];
+ $date += $nextRun;
+ $date = date("Y-m-d H:i", $date );
+ $aData['SCH_TIME_NEXT_RUN'] = $date;
+ }
}
if(!empty($_POST['form']['SCH_REPEAT_TASK_CHK'])){
diff --git a/workflow/engine/methods/events/eventList.php b/workflow/engine/methods/events/eventList.php
new file mode 100644
index 000000000..f59820ca0
--- /dev/null
+++ b/workflow/engine/methods/events/eventList.php
@@ -0,0 +1,95 @@
+.
+ *
+ * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
+ * Coral Gables, FL, 33134, USA, or email info@colosa.com.
+ *
+ */
+
+global $RBAC;
+if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') != 1) {
+ G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
+ G::header('location: ../login/login');
+ die;
+}
+
+G::LoadClass('configuration');
+$c = new Configurations();
+$configPage = $c->getConfiguration('eventList', 'pageSize','',$_SESSION['USER_LOGGED']);
+$Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20;
+
+$G_MAIN_MENU = 'processmaker';
+$G_SUB_MENU = 'logs';
+$G_ID_MENU_SELECTED = 'logs';
+$G_ID_SUB_MENU_SELECTED = 'EVENT';
+
+//get values for the comboBoxes
+$userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ?
+ $_SESSION['USER_LOGGED'] : null;
+$status = array(
+ array('', G::LoadTranslation('ID_ALL')),
+ array("PENDING",G::LoadTranslation('ID_OPEN')),
+ array("COMPLETED",G::LoadTranslation('ID_CLOSE')));
+$type = array(
+ array('', G::LoadTranslation('ID_ALL')),
+ array('SEND_MESSAGE',G::LoadTranslation('ID_EVENT_MESSAGE')),
+ array('EXECUTE_TRIGGER',G::LoadTranslation('ID_EVENT_TIMER')),
+ array('EXECUTE_CONDITIONAL_TRIGGER',G::LoadTranslation('ID_EVENT_CONDITIONAL')));
+$processes = getProcessArray($userUid );
+
+$G_PUBLISH = new Publisher;
+
+$oHeadPublisher =& headPublisher::getSingleton();
+$oHeadPublisher->addExtJsScript('events/eventList', false); //adding a javascript file .js
+$oHeadPublisher->addContent('events/eventList'); //adding a html file .html.
+//sending the columns to display in grid
+$oHeadPublisher->assign( 'typeValues', $type );
+$oHeadPublisher->assign( 'statusValues', $status );
+$oHeadPublisher->assign( 'processValues', $processes);
+
+function getProcessArray ( $userUid ) {
+ global $oAppCache;
+ require_once ( "classes/model/AppCacheView.php" );
+
+ $processes = Array();
+ $processes[] = array ( '', G::LoadTranslation('ID_ALL_PROCESS') );
+
+ $cProcess = new Criteria('workflow');
+ $cProcess->clearSelectColumns();
+ $cProcess->addSelectColumn(AppCacheViewPeer::PRO_UID);
+ $cProcess->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE);
+ $cProcess->setDistinct(AppCacheViewPeer::PRO_UID);
+
+ $cProcess->addAscendingOrderByColumn(AppCacheViewPeer::APP_PRO_TITLE);
+
+ $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;
+}
+
+G::RenderPage('publish', 'extJs');
+
diff --git a/workflow/engine/methods/events/eventsAjax.php b/workflow/engine/methods/events/eventsAjax.php
index 639d731d8..852204690 100755
--- a/workflow/engine/methods/events/eventsAjax.php
+++ b/workflow/engine/methods/events/eventsAjax.php
@@ -1,74 +1,74 @@
''";
- */
- $sDataBase = 'database_' . strtolower(DB_ADAPTER);
- if(G::LoadSystemExist($sDataBase)){
- G::LoadSystem($sDataBase);
- $oDataBase = new database();
- $sConcat = $oDataBase->concatString("USR_FIRSTNAME", "' '" , "USR_LASTNAME") ;
- }
- $sql = " SELECT USR_UID, USR_EMAIL, " .
- $sConcat .
- " AS USR_FULLNAME FROM USERS " .
- " WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''";
+ /*
+ $sql = "SELECT USR_UID, USR_EMAIL, CONCAT(USR_FIRSTNAME, ' ' , USR_LASTNAME) AS USR_FULLNAME FROM USERS WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''";
+ */
+ $sDataBase = 'database_' . strtolower(DB_ADAPTER);
+ if (G::LoadSystemExist($sDataBase)) {
+ G::LoadSystem($sDataBase);
+ $oDataBase = new database();
+ $sConcat = $oDataBase->concatString("USR_FIRSTNAME", "' '" , "USR_LASTNAME") ;
+ }
+ $sql = " SELECT USR_UID, USR_EMAIL, " .
+ $sConcat .
+ " AS USR_FULLNAME FROM USERS " .
+ " WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''";
- $oCriteria = new Criteria('workflow');
- $del = DBAdapter::getStringDelimiter();
+ $oCriteria = new Criteria('workflow');
+ $del = DBAdapter::getStringDelimiter();
- $con = Propel::getConnection("workflow");
- $stmt = $con->prepareStatement($sql);
- $rs = $stmt->executeQuery();
+ $con = Propel::getConnection("workflow");
+ $stmt = $con->prepareStatement($sql);
+ $rs = $stmt->executeQuery();
- $aRows[] = array('USR_UID'=>'char', 'USR_EMAIL'=>'char', 'USR_FULLNAME'=>'char');
- while($rs->next()){
- $aRows[] = array('USR_UID'=>$rs->getString('USR_UID'), 'USR_EMAIL'=>$rs->getString('USR_EMAIL'), 'USR_FULLNAME'=>$rs->getString('USR_FULLNAME'));
- }
- //echo '
'; print_r($aRows);
+ $aRows[] = array('USR_UID'=>'char', 'USR_EMAIL'=>'char', 'USR_FULLNAME'=>'char');
+ while($rs->next()){
+ $aRows[] = array('USR_UID'=>$rs->getString('USR_UID'), 'USR_EMAIL'=>$rs->getString('USR_EMAIL'), 'USR_FULLNAME'=>$rs->getString('USR_FULLNAME'));
+ }
+ //echo ''; print_r($aRows);
- global $_DBArray;
- $_DBArray['virtualtable'] = $aRows;
- $_SESSION['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('virtualtable');
+ global $_DBArray;
+ $_DBArray['virtualtable'] = $aRows;
+ $_SESSION['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('virtualtable');
- $G_PUBLISH = new Publisher();
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/usermailList', $oCriteria);
- G::RenderPage('publish', 'raw');
- break;
+ $G_PUBLISH = new Publisher();
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/usermailList', $oCriteria);
+ G::RenderPage('publish', 'raw');
+ break;
+ case 'showGroups':
+ G::LoadClass('groups');
+ $groups = new Groups();
+ $allGroups= $groups->getAllGroups();
- case 'showGroups':
+ $aRows[] = array('GRP_UID' => 'char', 'GROUP_TITLE' => 'char');
+ foreach ($allGroups as $group) {
+ $UID = htmlentities($group->getGrpUid());
+ $GROUP_TITLE = strip_tags($group->getGrpTitle());
+ $aRows[] = array('GRP_UID'=>$UID, 'GROUP_TITLE'=>$GROUP_TITLE);
+ }
- G::LoadClass('groups');
- $groups = new Groups();
- $allGroups= $groups->getAllGroups();
+ global $_DBArray;
+ $_DBArray['virtualtable'] = $aRows;
+ $_SESSION['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('virtualtable');
- $aRows[] = array('GRP_UID' => 'char', 'GROUP_TITLE' => 'char');
- foreach($allGroups as $group) {
- $UID = htmlentities($group->getGrpUid());
- $GROUP_TITLE = strip_tags($group->getGrpTitle());
- $aRows[] = array('GRP_UID'=>$UID, 'GROUP_TITLE'=>$GROUP_TITLE);
- }
-
- global $_DBArray;
- $_DBArray['virtualtable'] = $aRows;
- $_SESSION['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('virtualtable');
-
- $G_PUBLISH = new Publisher();
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/groupmailList', $oCriteria);
- G::RenderPage('publish', 'raw');
- break;
-
- case 'showDynavars':
+ $G_PUBLISH = new Publisher();
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/groupmailList', $oCriteria);
+ G::RenderPage('publish', 'raw');
+ break;
+ case 'showDynavars':
G::LoadClass('xmlfield_InputPM');
$dynaformFields = getDynaformsVars($_SESSION['PROCESS'], false, false);
$fields = array(array('id' => 'char', 'dynaform' => 'char', 'name' => 'char'));
@@ -78,15 +78,70 @@ switch($req){
'name' => '@#' . $dynaformField['sName'] . '', 'label' => $dynaformField['sLabel']);
}
- global $_DBArray;
- $_DBArray['virtualtable'] = $fields;
- $_SESSION['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('virtualtable');
+ global $_DBArray;
+ $_DBArray['virtualtable'] = $fields;
+ $_SESSION['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('virtualtable');
- $G_PUBLISH = new Publisher();
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/dynavarsList', $oCriteria);
- G::RenderPage('publish', 'raw');
- break;
+ $G_PUBLISH = new Publisher();
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'events/dynavarsList', $oCriteria);
+ G::RenderPage('publish', 'raw');
+ break;
+ case 'eventList':
+
+ $start = (isset($_REQUEST['start']))? $_REQUEST['start'] : '0';
+ $limit = (isset($_REQUEST['limit']))? $_REQUEST['limit'] : '25';
+ $proUid = (isset($_REQUEST['process']))? $_REQUEST['process'] : '';
+ $evenType = (isset($_REQUEST['type']))? $_REQUEST['type'] : '';
+ $evenStatus = (isset($_REQUEST['status']))? $_REQUEST['status'] : '';
+ $sort = isset($_REQUEST['sort']) ? $_REQUEST['sort'] : '';
+ $dir = isset($_REQUEST['dir']) ? $_REQUEST['dir'] : 'ASC';
+
+ require_once 'classes/model/AppEvent.php';
+ $oAppEvent = new AppEvent();
+ // Initialize response object
+ $response = new stdclass();
+ $response->status = 'OK';
+
+ $criteria = new Criteria();
+ $criteria = $oAppEvent->getAppEventsCriteria($proUid, $evenStatus, $evenType);
+ $result = AppEventPeer::doSelectRS($criteria);
+ $result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $data = Array();
+ while( $result->next() ) {
+ $data[] = $result->getRow();
+ }
+ $totalCount = count($data);
+
+ $criteria = new Criteria();
+ $criteria = $oAppEvent->getAppEventsCriteria($proUid, $evenStatus, $evenType);
+ if ($sort != '') {
+ if ($dir == 'ASC') {
+ $criteria->addAscendingOrderByColumn($sort);
+ }
+ else {
+ $criteria->addDescendingOrderByColumn($sort);
+ }
+ } else {
+ $oCriteria->addDescendingOrderByColumn(AppEventPeer::APP_EVN_ACTION_DATE);
+ }
+ if ($limit != '') {
+ $criteria->setLimit($limit);
+ $criteria->setOffset($start);
+ }
+ $result = AppEventPeer::doSelectRS($criteria);
+ $result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $data = Array();
+ $dataPro = array();
+ $index = 0;
+ while( $result->next() ) {
+ $data[] = $result->getRow();
+ }
+ $response = array();
+ $response['totalCount'] = $totalCount;
+ $response['data'] = $data;
+ die(G::json_encode($response));
+ break;
}
diff --git a/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css
index 177e8496c..82297b022 100755
--- a/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css
+++ b/workflow/engine/skinEngine/base/css/pmos-xtheme-gray.css
@@ -769,6 +769,12 @@ antes funcionaba.
background-position:0 -17011px !important;
}
+.ICON_EVENT{
+ /*ss_table_gear*/
+ background-image:url( /images/icons_silk/sprites.png) !important;
+ background-position:0 -15517px !important;
+}
+
.ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/
background-image:url( /images/icons_silk/sprites.png) !important;
diff --git a/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css
index 7c9008fdb..7d398f23c 100644
--- a/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css
+++ b/workflow/engine/skinEngine/uxmodern/css/pmos-xtheme-gray.css
@@ -793,6 +793,11 @@ antes funcionaba.
background-image:url( /images/icons_silk/sprites.png) !important;
background-position:0 -17011px !important;
}
+.ICON_EVENT{
+ /*ss_table_gear*/
+ background-image:url( /images/icons_silk/sprites.png) !important;
+ background-position:0 -15517px !important;
+}
.ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/
diff --git a/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css b/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css
index 8dfc9bf23..b8617724e 100644
--- a/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css
+++ b/workflow/engine/skinEngine/uxs/css/pmos-xtheme-gray.css
@@ -766,6 +766,12 @@ antes funcionaba.
background-position:0 -17011px !important;
}
+.ICON_EVENT{
+ /*ss_table_gear*/
+ background-image:url( /images/icons_silk/sprites.png) !important;
+ background-position:0 -15517px !important;
+}
+
.ICON_PROCESS_CATEGORY{
/*ss_sitemap_color*/
background-image:url( /images/icons_silk/sprites.png) !important;
diff --git a/workflow/engine/templates/events/eventList.html b/workflow/engine/templates/events/eventList.html
new file mode 100644
index 000000000..432f567b5
--- /dev/null
+++ b/workflow/engine/templates/events/eventList.html
@@ -0,0 +1,3 @@
+
diff --git a/workflow/engine/templates/events/eventList.js b/workflow/engine/templates/events/eventList.js
new file mode 100644
index 000000000..bac4cb99f
--- /dev/null
+++ b/workflow/engine/templates/events/eventList.js
@@ -0,0 +1,295 @@
+/*
+ * @author: Marco Antonio
+ * Agos 17st, 2012
+ */
+new Ext.KeyMap(document, [{
+ key: Ext.EventObject.F5,
+ fn: function(keycode, e) {
+ if (! e.ctrlKey) {
+ if (Ext.isIE) {
+ // IE6 doesn't allow cancellation of the F5 key, so trick it into
+ // thinking some other key was pressed (backspace in this case)
+ e.browserEvent.keyCode = 8;
+ }
+ e.stopEvent();
+ document.location = document.location;
+ } else {
+ Ext.Msg.alert('Refresh', 'You clicked: CTRL-F5');
+ }
+ }
+}
+]);
+
+var store;
+var cmodel;
+var eventsGrid;
+var actions;
+var filterStatus = '';
+
+Ext.onReady(function(){
+ Ext.QuickTips.init();
+ var resultTpl = new Ext.XTemplate(
+ '',
+ ' {APP_PRO_TITLE}',
+ '
'
+ );
+
+ var columnRenderer = function(data, metadata, record, rowIndex,columnIndex, store) {
+ var new_text = metadata.style.split(';');
+ var style = '';
+ if ( !record.data['APP_EVN_LAST_EXECUTION_DATE'] ){
+ record.data['APP_EVN_LAST_EXECUTION_DATE'] = ' - ';
+ }
+ switch (record.data['EVN_ACTION']) {
+ case 'EXECUTE_TRIGGER': record.data['EVN_ACTION'] = _('ID_EVENT_TIMER');
+ break
+ case 'EXECUTE_CONDITIONAL_TRIGGER': record.data['EVN_ACTION'] = _('ID_EVENT_CONDITIONAL');
+ break
+ case 'SEND_MESSAGE': record.data['EVN_ACTION'] = _('ID_EVENT_MESSAGE');
+ break
+ }
+ for (var i = 0; i < new_text.length -1 ; i++) {
+ var chain = new_text[i] +";";
+ if (chain.indexOf('width') == -1) {
+ style = style + chain;
+ }
+ }
+ metadata.attr = 'ext:qtip="' + data + '" style="'+ style +' white-space: normal; "';
+ return data;
+ };
+
+ // ComboBox Status
+ var comboStatus = new Ext.form.ComboBox({
+ width : 90,
+ boxMaxWidth : 90,
+ editable : false,
+ mode : 'local',
+ emptyText: _('ID_SELECT_STATUS'),
+ store : new Ext.data.ArrayStore({
+ fields: ['id', 'value'],
+ data : statusValues
+ }),
+ valueField : 'id',
+ displayField : 'value',
+ triggerAction : 'all',
+ listeners:{
+ scope: this,
+ 'select': function() {
+ filterStatus = comboStatus.value;
+ store.setBaseParam( 'status', filterStatus);
+ store.setBaseParam( 'start', 0);
+ store.setBaseParam( 'limit', 25);
+ store.load();
+ }
+ },
+ iconCls: 'no-icon'
+ });
+
+ // ComboBox Type
+ var comboType = new Ext.form.ComboBox({
+ width : 150,
+ boxMaxWidth : 150,
+ editable : false,
+ mode : 'local',
+ emptyText: _('ID_EMPTY_TYPE'),
+ store : new Ext.data.ArrayStore({
+ fields: ['id', 'value'],
+ data : typeValues
+ }),
+ valueField : 'id',
+ displayField : 'value',
+ triggerAction : 'all',
+ listeners:{
+ scope: this,
+ 'select': function() {
+ filterType = comboType.value;
+ store.setBaseParam( 'type', filterType);
+ store.setBaseParam( 'start', 0);
+ store.setBaseParam( 'limit', 25);
+ store.load();
+ }
+ },
+ iconCls: 'no-icon'
+ });
+
+ var comboProcess = new Ext.form.ComboBox({
+ width : 200,
+ boxMaxWidth : 200,
+ editable : true,
+ displayField : 'APP_PRO_TITLE',
+ valueField : 'PRO_UID',
+ forceSelection: false,
+ emptyText: _('ID_EMPTY_PROCESSES'),
+ selectOnFocus: true,
+ tpl: resultTpl,
+
+ typeAhead: true,
+ mode: 'local',
+ autocomplete: true,
+ triggerAction: 'all',
+
+ store : new Ext.data.ArrayStore({
+ fields : ['PRO_UID','APP_PRO_TITLE'],
+ data : processValues
+ }),
+ listeners:{
+ scope: this,
+ 'select': function() {
+ filterProcess = comboProcess.value;
+
+ store.setBaseParam('process', filterProcess);
+ store.setBaseParam( 'start', 0);
+ store.setBaseParam( 'limit', 25);
+ store.load();
+ }},
+ iconCls: 'no-icon'
+ });
+
+ actions = _addPluginActions([ {xtype: 'tbfill'}, _('ID_PROCESS'), comboProcess, '-', _('ID_TYPE'), comboType, '-', _('ID_STATUS'), comboStatus]);
+
+ var stepsFields = Ext.data.Record.create([
+ {name : 'APP_EVN_ACTION_DATE', type: 'string'},
+ {name : 'APP_EVN_ATTEMPTS', type: 'string'},
+ {name : 'APP_EVN_LAST_EXECUTION_DATE', type: 'string'},
+ {name : 'APP_EVN_STATUS', type: 'string'},
+ {name : 'PRO_TITLE', type: 'string'},
+ {name : 'EVN_ACTION', type: 'string'},
+ {name : 'EVN_DESCRIPTION', type: 'string'},
+ {name : 'TAS_TITLE', type: 'string'},
+ {name : 'APP_TITLE', type: 'string'}
+ ]);
+
+ store = new Ext.data.Store( {
+ proxy : new Ext.data.HttpProxy({
+ url: 'eventsAjax?request=eventList'
+ }),
+ remoteSort : true,
+ sortInfo : stepsFields,
+ reader : new Ext.data.JsonReader( {
+ root: 'data',
+ totalProperty: 'totalCount',
+ fields : [
+ {name : 'APP_UID'},
+ {name : 'DEL_INDEX'},
+ {name : 'EVN_UID'},
+ {name : 'APP_EVN_ACTION_DATE'},
+ {name : 'APP_EVN_ATTEMPTS'},
+ {name : 'APP_EVN_LAST_EXECUTION_DATE'},
+ {name : 'APP_EVN_STATUS'},
+ {name : 'PRO_UID'},
+ {name : 'PRO_TITLE'},
+ {name : 'EVN_WHEN_OCCURS'},
+ {name : 'EVN_ACTION'},
+ {name : 'EVN_DESCRIPTION'},
+ {name : 'TAS_TITLE'},
+ {name : 'APP_TITLE'}
+ ]
+ })
+ });
+ store.setDefaultSort('APP_EVN_ACTION_DATE', 'desc');
+
+ cmodel = new Ext.grid.ColumnModel({
+ defaults: {
+ width: 50
+ },
+ columns: [
+ {id:'APP_UID', dataIndex: 'APP_UID', hidden:true, hideable:false},
+ {header: 'PRO_UID', dataIndex: 'PRO_UID', hidden:true, hideable:false},
+ {header: 'EVN_UID', dataIndex: 'EVN_UID', hidden:true, hideable:false},
+ {header: _('ID_PROCESS'), dataIndex: 'PRO_TITLE', width: 150, hidden: false,renderer: columnRenderer, sortable: true},
+ {header: _('ID_TASKS'), dataIndex: 'TAS_TITLE', width: 150, hidden: false,renderer: columnRenderer, sortable: true},
+ {header: _('ID_CASE_TITLE'), dataIndex: 'APP_TITLE', width: 150, hidden: false,renderer: columnRenderer, sortable: true},
+ {header: _('ID_EVENT_ACTION_DATE'), dataIndex: 'APP_EVN_ACTION_DATE', width: 90, hidden: false,renderer: columnRenderer, sortable: true},
+ {header: _('ID_EVENT_LAST_EXECUTION_DATE'), dataIndex: 'APP_EVN_LAST_EXECUTION_DATE', width: 90, hidden: false ,renderer: columnRenderer, sortable: true},
+ {header: _('ID_EVENT_DESCRIPTION'), dataIndex: 'EVN_DESCRIPTION', width: 150, hidden: false,renderer: columnRenderer},
+ {header: _('ID_EVENT_ACTION'), dataIndex: 'EVN_ACTION', width: 100, hidden: false,renderer: columnRenderer},
+
+ {header: _('ID_DEL_INDEX'), dataIndex: 'DEL_INDEX', width: 40,hidden:true,hideable:false, renderer: columnRenderer},
+ {header: _('APP_EVN_ATTEMPTS'), dataIndex: 'APP_EVN_ATTEMPTS', width: 50, hidden: true,hideable:false,renderer: columnRenderer},
+ {header: _('ID_STATUS'), dataIndex: 'APP_EVN_STATUS', width: 40, hidden: false,renderer: columnRenderer}
+ ]
+ });
+
+ bbarpaging = new Ext.PagingToolbar({
+ pageSize : 25,
+ store : store,
+ displayInfo : true,
+ displayMsg : _('ID_GRID_PAGE_DISPLAYING_EVENT_MESSAGE') + ' ',
+ emptyMsg : _('ID_GRID_PAGE_NO_EVENT_MESSAGE')
+ });
+
+ eventsGrid = new Ext.grid.GridPanel({
+ region: 'center',
+ layout: 'fit',
+ id: 'eventsGrid',
+ height:100,
+ autoWidth : true,
+ stateful : true,
+ stateId : 'grid',
+ enableColumnResize: true,
+ enableHdMenu: true,
+ frame:false,
+ columnLines: false,
+ viewConfig: {
+ forceFit:true
+ },
+ title : _('ID_EVENTS'),
+ store: store,
+ cm: cmodel,
+ tbar: actions,
+ bbar: bbarpaging,
+ listeners: {
+ render: function(){
+ this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING_GRID')});
+ }
+ }
+ });
+
+ eventsGrid.store.load();
+
+ viewport = new Ext.Viewport({
+ layout: 'fit',
+ autoScroll: false,
+ items: [
+ eventsGrid
+ ]
+ });
+ });
+
+var _addPluginActions = function(defaultactions) {
+ try {
+ if (Ext.isArray(_pluginactions)) {
+ if (_pluginactions.length > 0) {
+ var positionToInsert = _tbfillPosition(defaultactions);
+ var leftactions = defaultactions.slice(0, positionToInsert);
+ var rightactions = defaultactions.slice(positionToInsert, defaultactions.length - 1);
+ return leftactions.concat(_pluginactions.concat(rightactions));
+ }
+ else {
+ return defaultactions;
+ }
+ }
+ else {
+ return defaultactions;
+ }
+ }
+ catch (error) {
+ return defaultactions;
+ }
+};
+
+var _tbfillPosition = function(actions) {
+ try {
+ for (var i = 0; i < actions.length; i++) {
+ if (Ext.isObject(actions[i])) {
+ if (actions[i].xtype == 'tbfill') {
+ return i;
+ }
+ }
+ }
+ return i;
+ }
+ catch (error) {
+ return 0;
+ }
+};
\ No newline at end of file
diff --git a/workflow/engine/xmlform/cases/cases_Scheduler_Edit.html b/workflow/engine/xmlform/cases/cases_Scheduler_Edit.html
index 19db2e8b2..c75080f25 100755
--- a/workflow/engine/xmlform/cases/cases_Scheduler_Edit.html
+++ b/workflow/engine/xmlform/cases/cases_Scheduler_Edit.html
@@ -96,8 +96,30 @@
- | * {$SCH_START_TIME} |
- {$form.SCH_START_TIME} |
+
+ {$form.SELECT_EVERY}
+ |
+
+
+
+
+
+
+ | * {$SCH_START_TIME} |
+ {$form.SCH_START_TIME} format 24 hrs. (HH:MM) |
+
+
+ |
+
+
+
+
+
+ | * {$SCH_REPEAT_EVERY} |
+ {$form.SCH_REPEAT_EVERY} hour(s). |
+
+
+ |
|
@@ -197,11 +219,11 @@
| {$form.SCH_REPEAT_TASK_CHK} |
- | {$SCH_REPEAT_EVERY} |
+
- | {$form.SCH_REPEAT_EVERY} |
+
{$form.SCH_REPEAT_EVERY_OPT} {$SCH_REPEAT_EVERY_OPT} |
diff --git a/workflow/engine/xmlform/cases/cases_Scheduler_Edit.xml b/workflow/engine/xmlform/cases/cases_Scheduler_Edit.xml
index f8542fe7e..e09931fc9 100755
--- a/workflow/engine/xmlform/cases/cases_Scheduler_Edit.xml
+++ b/workflow/engine/xmlform/cases/cases_Scheduler_Edit.xml
@@ -210,8 +210,14 @@ WHERE A.PRO_UID='@#PRO_UID' AND A.TAS_START = 'TRUE' ]]>
Repeat Task
-
-Every
+
+
+
+
+Record the time.
+
+
+Execute every
@@ -273,6 +279,8 @@ switch (getField('SCH_OPTION').value){
break;
case '4':
getField('SCH_OPTION_VIEW').value = 'One Time Only';
+ case '5':
+ getField('SCH_OPTION_VIEW').value = 'Every';
break;
}
@@ -289,7 +297,7 @@ function hideProperties(){
document.getElementById('form[PERFORM_TASK]').style.display='none';
document.getElementById('form[SELECT_TIME_DAY]').style.display='none';
document.getElementById('form[SELECT_PLUGIN]').style.display='none';
- document.getElementById('form[SELECT_PLUGIN]').style.display='none';
+ document.getElementById('form[SELECT_EVERY]').style.display='none';
// end of enabling
}
@@ -301,7 +309,7 @@ function showProperties(){
document.getElementById('form[EDIT_USER]').style.display='';
document.getElementById('form[PERFORM_TASK]').style.display='';
document.getElementById('form[SELECT_TIME_DAY]').style.display='';
-
+ document.getElementById('form[SELECT_EVERY]').style.display='';
}
@@ -327,7 +335,7 @@ if (getField('SCH_REPEAT_EVERY').value!=''){
function disableAdvanced(){
//disable(getField('SCH_END_DATE'));
- disable(getField('SCH_REPEAT_EVERY'));
+
disable(getField('SCH_REPEAT_EVERY_OPT'));
// disable(getField('SCH_REPEAT_UNTIL'));
// disable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
@@ -347,7 +355,11 @@ function hideAll() {
contractSubtitle('SELECT_1');
contractSubtitle('SELECT_2');
contractSubtitle('SELECT_3');
+ contractSubtitle('SELECT_EVERY');
+
//contractSubtitle('ADVANCED_4');
+ document.getElementById('startTime').style.display='none';
+ document.getElementById('everyTime').style.display='none';
}
function showPluginSelection(opt,pro_uid) {
@@ -408,7 +420,11 @@ function showSelection(opt) {
expandSubtitle('SELECT_1');
contractSubtitle('SELECT_2');
contractSubtitle('SELECT_3');
+
+ document.getElementById('form[SELECT_EVERY]').style.display='none';
document.getElementById('endDateTable').style.display='';
+ document.getElementById('startTime').style.display='';
+ document.getElementById('everyTime').style.display='none';
// SCH_START_DATE
break;
case '2' : contractSubtitle('SELECT_DATE');
@@ -416,13 +432,16 @@ function showSelection(opt) {
expandSubtitle('SELECT_2');
contractSubtitle('SELECT_3');
hideRow('SCH_EVERY_DAYS');
+
+ document.getElementById('form[SELECT_EVERY]').style.display='none';
document.getElementById('endDateTable').style.display='';
+ document.getElementById('startTime').style.display='';
+ document.getElementById('everyTime').style.display='none';
break;
case '3' : contractSubtitle('SELECT_DATE');
contractSubtitle('SELECT_1');
contractSubtitle('SELECT_2');
expandSubtitle('SELECT_3');
- document.getElementById('endDateTable').style.display='';
if (getField('SCH_START_DAY][1').checked){
getField('SCH_START_DAY_OPT_1').disabled=false;
getField('SCH_START_DAY_OPT_1').style.display="";
@@ -438,12 +457,32 @@ function showSelection(opt) {
getField('SCH_START_DAY_OPT_2_DAYS_WEEK').disabled=false;
getField('SCH_START_DAY_OPT_2_DAYS_WEEK').style.display="";
}
+
+ document.getElementById('form[SELECT_EVERY]').style.display='none';
+ document.getElementById('endDateTable').style.display='';
+ document.getElementById('startTime').style.display='';
+ document.getElementById('everyTime').style.display='none';
break;
- case '4' : expandSubtitle('SELECT_DATE');
+ case '4' : expandSubtitle('SELECT_DATE');
contractSubtitle('SELECT_1');
contractSubtitle('SELECT_2');
contractSubtitle('SELECT_3');
+
+ document.getElementById('form[SELECT_EVERY]').style.display='none';
+ document.getElementById('endDateTable').style.display='';
+ document.getElementById('startTime').style.display='';
+ document.getElementById('everyTime').style.display='none';
+ break;
+ case '5' : expandSubtitle('SELECT_EVERY');
+ contractSubtitle('SELECT_1');
+ contractSubtitle('SELECT_2');
+ contractSubtitle('SELECT_3');
+ enable(getField('SCH_REPEAT_EVERY'));
+
+ document.getElementById('form[SELECT_TIME_DAY]').style.display='none';
document.getElementById('endDateTable').style.display='none';
+ document.getElementById('startTime').style.display='none';
+ document.getElementById('everyTime').style.display='';
break;
}
@@ -531,8 +570,8 @@ leimnud.event.add(getField('SCH_REPEAT_TASK_CHK'), 'click', function() {
// enable(getField('SCH_REPEAT_UNTIL'));
// enable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
} else {
- disable(getField('SCH_REPEAT_EVERY'));
- disable(getField('SCH_REPEAT_EVERY_OPT'));
+
+
// disable(getField('SCH_REPEAT_UNTIL'));
// disable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
}
@@ -561,6 +600,24 @@ leimnud.event.add(getField('SCH_START_TIME'), 'change', function() {
}
});
+leimnud.event.add(getField('SCH_REPEAT_EVERY'), 'change', function() {
+ hours = getField('SCH_REPEAT_EVERY').value;
+ answer = hours;
+ var parties = answer.split('.');
+
+ if(parties[0]>23){
+ msgBox(G_STRINGS.ID_SCHEDULER_CANT_PUT_TIME, 'alert');
+ getField('SCH_REPEAT_EVERY').value='';
+ getField('UPDATE').focus();
+
+ }
+ if(parties[1]>99){
+ msgBox('The minutes can not be greater than 99', 'alert');
+ getField('SCH_REPEAT_EVERY').value='';
+ getField('UPDATE').focus();
+ }
+});
+
leimnud.event.add(getField('SCH_REPEAT_UNTIL'), 'change', function() {
@@ -741,6 +798,12 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
msgBox('The time format is invalid','alert');
return false;
}
+ if (document.getElementById('form[SCH_OPTION]').value == 5) {
+ if (document.getElementById('form[SCH_REPEAT_EVERY]').value==''){
+ requiredFields = requiredFields + 'Every,';
+ validFields = false;
+ }
+ }
switch(document.getElementById('form[SCH_OPTION]').value){
// daily
case '1':
@@ -818,6 +881,10 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
validFields = true;
break;
+ //run once
+ case '5':
+ validFields = true;
+ break;
default:
validFields = false;
break;
diff --git a/workflow/engine/xmlform/cases/cases_Scheduler_New.html b/workflow/engine/xmlform/cases/cases_Scheduler_New.html
index bd8e9686c..1954b2fbf 100755
--- a/workflow/engine/xmlform/cases/cases_Scheduler_New.html
+++ b/workflow/engine/xmlform/cases/cases_Scheduler_New.html
@@ -86,9 +86,26 @@
|
|
- | * {$SCH_START_TIME} |
- {$form.SCH_START_TIME} format 24 hrs. (HH:MM) |
+
+
+
+ | * {$SCH_START_TIME} |
+ {$form.SCH_START_TIME} format 24 hrs. (HH:MM) |
+
+
+ |
+
+
+
+
+ | * {$SCH_REPEAT_EVERY} |
+ {$form.SCH_REPEAT_EVERY} Hour(s). |
+
+
+ |
+
+
|
{$form.SELECT_DATE}
@@ -190,11 +207,11 @@
| {$form.SCH_REPEAT_TASK_CHK} |
- | {$SCH_REPEAT_EVERY} |
+
- | {$form.SCH_REPEAT_EVERY} |
+
{$form.SCH_REPEAT_EVERY_OPT} {$SCH_REPEAT_EVERY_OPT} |
diff --git a/workflow/engine/xmlform/cases/cases_Scheduler_New.xml b/workflow/engine/xmlform/cases/cases_Scheduler_New.xml
index f1da35627..c0b307d43 100755
--- a/workflow/engine/xmlform/cases/cases_Scheduler_New.xml
+++ b/workflow/engine/xmlform/cases/cases_Scheduler_New.xml
@@ -56,6 +56,7 @@
+
@@ -63,7 +64,7 @@
Select the date and time for case(s) to be initiated.
-
+
Execution time
@@ -103,6 +104,7 @@
Every
+
Select the day(s) of the week below
@@ -198,9 +200,16 @@
Repeat Task
-
-Every
+
+
+
+
+Execute every
+
+
+
+
@@ -286,7 +295,8 @@ contractSubtitle('SELECT_PLUGIN');
document.getElementById('form[SELECT_1]').style.display='none';
document.getElementById('form[SELECT_2]').style.display='none';
document.getElementById('form[SELECT_3]').style.display='none';
-
+ document.getElementById('startTime').style.display='none';
+ document.getElementById('everyTime').style.display='none';
}
@@ -352,7 +362,10 @@ function showSelection(opt) {
contractSubtitle('SELECT_3');
//document.getElementById('form[ADVANCED_4]').style.display='';
//expandSubtitle('ADVANCED_4');
+
document.getElementById('endDateTable').style.display='';
+ document.getElementById('startTime').style.display='';
+ document.getElementById('everyTime').style.display='none';
break;
case '2' : // Weekly
contractSubtitle('SELECT_DATE');
@@ -361,8 +374,11 @@ function showSelection(opt) {
contractSubtitle('SELECT_3');
//document.getElementById('form[ADVANCED_4]').style.display='';
hideRow('SCH_EVERY_DAYS');
- document.getElementById('endDateTable').style.display='';
//expandSubtitle('ADVANCED_4');
+
+ document.getElementById('endDateTable').style.display='';
+ document.getElementById('startTime').style.display='';
+ document.getElementById('everyTime').style.display='none';
break;
case '3' : // Monthly
contractSubtitle('SELECT_DATE');
@@ -376,20 +392,36 @@ function showSelection(opt) {
getField('SCH_START_DAY_OPT_2_WEEKS').style.display="none";
getField('SCH_START_DAY_OPT_2_DAYS_WEEK').disabled=true;
getField('SCH_START_DAY_OPT_2_DAYS_WEEK').style.display="none";
+
document.getElementById('endDateTable').style.display='';
+ document.getElementById('startTime').style.display='';
+ document.getElementById('everyTime').style.display='none';
//expandSubtitle('ADVANCED_4');
break;
- case '4' : // One time only
+ case '4' : // One time only
expandSubtitle('SELECT_DATE');
contractSubtitle('SELECT_1');
contractSubtitle('SELECT_2');
contractSubtitle('SELECT_3');
+
document.getElementById('endDateTable').style.display='none';
+ document.getElementById('startTime').style.display='';
+ document.getElementById('everyTime').style.display='none';
//document.getElementById('form[ADVANCED_4]').style.display='';
//expandSubtitle('ADVANCED_4');
break;
- }
+ case '5' : // Every
+ contractSubtitle('SELECT_DATE');
+ contractSubtitle('SELECT_1');
+ contractSubtitle('SELECT_2');
+ contractSubtitle('SELECT_3');
+
+ document.getElementById('endDateTable').style.display='none';
+ document.getElementById('startTime').style.display='none';
+ document.getElementById('everyTime').style.display='';
+ break;
+ }
}
@@ -497,6 +529,24 @@ leimnud.event.add(getField('SCH_START_TIME'), 'change', function() {
}
});
+leimnud.event.add(getField('SCH_REPEAT_EVERY'), 'change', function() {
+ hours = getField('SCH_REPEAT_EVERY').value;
+ answer = hours;
+ var parties = answer.split('.');
+
+ if(parties[0]>23){
+ msgBox(G_STRINGS.ID_SCHEDULER_CANT_PUT_TIME, 'alert');
+ getField('SCH_REPEAT_EVERY').value='';
+ getField('SAVE').focus();
+
+ }
+ if(parties[1]>99){
+ msgBox('The minutes can not be greater than 99', 'alert');
+ getField('SCH_REPEAT_EVERY').value='';
+ getField('SAVE').focus();
+ }
+});
+
/*
leimnud.event.add(getField('SCH_OPTION][1'), 'change', function() {
@@ -606,13 +656,20 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
// for time format hh:mm
var regExpString = "([0-1]\\d|2[0-3]):([0-5]\\d)";
var timeRegexp = new RegExp(regExpString);
- if (!timeRegexp.test(document.getElementById('form[SCH_START_TIME]').value)){
- msgBox('The time format is invalid','alert');
- return false;
- }
- if (document.getElementById('form[SCH_START_TIME]').value==''){
- requiredFields = requiredFields + 'Execution Time,';
- validFields = false;
+ if (document.getElementById('form[SCH_OPTION]').value != 5) {
+ if (!timeRegexp.test(document.getElementById('form[SCH_START_TIME]').value)){
+ msgBox('The time format is invalid','alert');
+ return false;
+ }
+ if (document.getElementById('form[SCH_START_TIME]').value==''){
+ requiredFields = requiredFields + 'Execution Time,';
+ validFields = false;
+ }
+ } else {
+ if (document.getElementById('form[SCH_REPEAT_EVERY]').value==''){
+ requiredFields = requiredFields + 'Every,';
+ validFields = false;
+ }
}
switch(document.getElementById('form[SCH_OPTION]').value){
// daily
@@ -689,6 +746,12 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
validFields = true;
+ break;
+ //run every
+ case '5':
+
+ validFields = true;
+
break;
default:
validFields = false;
@@ -745,8 +808,8 @@ leimnud.event.add(getField('SCH_REPEAT_TASK_CHK'), 'click', function() {
// enable(getField('SCH_REPEAT_UNTIL'));
// enable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
} else {
- disable(getField('SCH_REPEAT_EVERY'));
- disable(getField('SCH_REPEAT_EVERY_OPT'));
+
+
// disable(getField('SCH_REPEAT_UNTIL'));
// disable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
}
diff --git a/workflow/engine/xmlform/events/eventsOptions.xml b/workflow/engine/xmlform/events/eventsOptions.xml
index 632ed18df..1febf63d5 100755
--- a/workflow/engine/xmlform/events/eventsOptions.xml
+++ b/workflow/engine/xmlform/events/eventsOptions.xml
@@ -5,23 +5,11 @@
New
-
- Pending
-
-
-
- Completed
-
-
-
-
-
-
@@ -47,14 +35,6 @@ var eventsNew = function() {
popupWindow('@G::LoadTranslation(ID_NEW_EVENT)', '@G::encryptlink(@#eventsNew)?PRO_UID=@%PRO_UID&EVN_TYPE=@%EVN_TYPE' , 540, 500);
};
-var eventsPending = function() {
- popupWindow('@G::LoadTranslation(ID_PENDING)', '@G::encryptlink(@#eventsPending)?PRO_UID=@%PRO_UID&EVN_TYPE=@%EVN_TYPE' , 800, 400);
-};
-
-var eventsCompleted = function() {
- popupWindow('@G::LoadTranslation(ID_COMPLETED)', '@G::encryptlink(@#eventsCompleted)?PRO_UID=@%PRO_UID&EVN_TYPE=@%EVN_TYPE' , 800, 400);
-};
-
var eventsEdit = function(sUID) {
popupWindow('@G::LoadTranslation(ID_EDIT_EVENT)', '@G::encryptlink(@#eventsEdit)?EVN_UID=' + sUID , 540, 500);
};
|