diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php
index f3b6e4eab..7cca7456e 100755
--- a/workflow/engine/classes/class.case.php
+++ b/workflow/engine/classes/class.case.php
@@ -83,7 +83,7 @@ class Cases
* @param string $sUIDUser
* @return boolean
*/
- public function canStartCase($sUIDUser = '')
+ public function canStartCase($sUIDUser = '', $processUid = '')
{
$c = new Criteria();
$c->clearSelectColumns();
@@ -93,6 +93,9 @@ class Cases
$c->add(ProcessPeer::PRO_STATUS, 'ACTIVE');
$c->add(TaskPeer::TAS_START, 'TRUE');
$c->add(TaskUserPeer::USR_UID, $sUIDUser);
+ if ($processUid != '') {
+ $c->add(TaskPeer::PRO_UID, $processUid);
+ }
$rs = TaskPeer::doSelectRS($c);
$rs->next();
@@ -115,6 +118,9 @@ class Cases
$c->add(ProcessPeer::PRO_STATUS, 'ACTIVE');
$c->add(TaskPeer::TAS_START, 'TRUE');
$c->add(TaskUserPeer::USR_UID, $aGroups, Criteria::IN);
+ if ($processUid != '') {
+ $c->add(TaskPeer::PRO_UID, $processUid);
+ }
$rs = TaskPeer::doSelectRS($c);
$rs->next();
diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php
index 41725cef4..8dc96cde9 100755
--- a/workflow/engine/classes/class.wsBase.php
+++ b/workflow/engine/classes/class.wsBase.php
@@ -103,6 +103,7 @@ class wsBase
$uid = $RBAC->VerifyLogin($userid , $password);
switch ($uid) {
+ case '':
case -1: //The user doesn't exist
$wsResponse = new wsResponse(3, G::loadTranslation('ID_USER_NOT_REGISTERED'));
break;
@@ -116,7 +117,7 @@ class wsBase
break;
}
- if ($uid < 0 ) {
+ if ($uid < 0 || $uid == '') {
throw (new Exception(serialize($wsResponse)));
}
diff --git a/workflow/engine/methods/cases/cases_SchedulerValidateUser.php b/workflow/engine/methods/cases/cases_SchedulerValidateUser.php
index fcce79e8e..146c805f9 100755
--- a/workflow/engine/methods/cases/cases_SchedulerValidateUser.php
+++ b/workflow/engine/methods/cases/cases_SchedulerValidateUser.php
@@ -45,29 +45,27 @@ $endpoint = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG .
$user = $sWS_USER;
$pass = $sWS_PASS;
-$params = array ('userid' => $user, 'password' => $pass );
-$result = $client->__SoapCall ( 'login', array ($params ) );
+$params = array('userid' => $user, 'password' => $pass);
+$result = $client->__SoapCall('login', array($params));
+if ($result->status_code == 0) {
+ if (!class_exists('Users')) {
+ require ("classes/model/UsersPeer.php");
+ }
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('USR_UID');
+ $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER);
+ $resultSet = UsersPeer::doSelectRS($oCriteria);
+ $resultSet->next();
+ $user_id = $resultSet->getRow();
+ $result->message = $user_id[0];
+ G::LoadClass('case');
+ $caseInstance = new Cases();
+ if (!$caseInstance->canStartCase($result->message, $_REQUEST['PRO_UID'])) {
+ $result->status_code = -1000;
+ $result->message = G::LoadTranslation('ID_USER_CASES_NOT_START');
+ }
+}
-$fields ['status_code'] = $result->status_code;
-$fields ['message'] = 'ProcessMaker WebService version: ' . $result->version . "\n" . $result->message;
-$fields ['version'] = $result->version;
-$fields ['time_stamp'] = $result->timestamp;
-$messageCode = $result->message;
-if($result->status_code == 0){
- if(!class_exists('Users')) {
- require ("classes/model/UsersPeer.php");
- }
-
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('USR_UID');
- $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER);
- $resultSet = UsersPeer::doSelectRS($oCriteria);
- $resultSet->next();
- $user_id = $resultSet->getRow();
-
- $messageCode = $user_id[0];
- }
-echo ($messageCode);
-?>
+die(G::json_encode($result));
diff --git a/workflow/engine/xmlform/cases/cases_Scheduler_Edit.xml b/workflow/engine/xmlform/cases/cases_Scheduler_Edit.xml
index e09931fc9..767e434fc 100755
--- a/workflow/engine/xmlform/cases/cases_Scheduler_Edit.xml
+++ b/workflow/engine/xmlform/cases/cases_Scheduler_Edit.xml
@@ -8,7 +8,7 @@
General Information
-Enter the username and password for the user who will be assigned to the initial task in the case(s).
+Enter the username and password of the user who will be assigned to the initial task in the case.
@@ -356,7 +356,7 @@ function hideAll() {
contractSubtitle('SELECT_2');
contractSubtitle('SELECT_3');
contractSubtitle('SELECT_EVERY');
-
+
//contractSubtitle('ADVANCED_4');
document.getElementById('startTime').style.display='none';
document.getElementById('everyTime').style.display='none';
@@ -420,7 +420,7 @@ 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='';
@@ -432,7 +432,7 @@ 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='';
@@ -457,7 +457,7 @@ 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='';
@@ -467,7 +467,7 @@ function showSelection(opt) {
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='';
@@ -478,7 +478,7 @@ function showSelection(opt) {
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';
@@ -647,22 +647,25 @@ leimnud.event.add(getField('SCH_REPEAT_UNTIL'), 'change', function() {
* @return void
*/
function case_userSchedulerValidate(username, password) {
- //G.alert(username);
- //G.alert(password);
var user_uid;
var oRPC = new leimnud.module.rpc.xmlhttp({
url : '../cases/cases_SchedulerValidateUser',
async : true,
method: 'POST',
- args : "USERNAME="+username+"&PASSWORD="+password
+ args : "USERNAME="+username+"&PASSWORD="+password+"&PRO_UID="+$_GET('PRO_UID')
});
oRPC.callback = function(rpc){
- //msgBox(rpc.xmlhttp.responseText,"alert");
- getField('SCH_USER_UID').value = rpc.xmlhttp.responseText;
- user_uid = rpc.xmlhttp.responseText;
- //alert(user_uid);
+ sresponse = rpc.xmlhttp.responseText.parseJSON();
+
+ if (sresponse.status_code != 0) {
+ msgBox(sresponse.message, "alert");
+ return false;
+ }
+
+ getField('SCH_USER_UID').value = sresponse.message;
+ user_uid = sresponse.message;
var oRPCProcess = new leimnud.module.rpc.xmlhttp({
url : '../cases/cases_SchedulerGetProcesses',
@@ -684,15 +687,7 @@ function case_userSchedulerValidate(username, password) {
oRPCProcess.make();
- /* if(rpc.xmlhttp.responseText>=1){
- //getField('SEARCH').disabled = false;
- msgBox("User successfully logged","alert");
- getField('SCH_USR_UID').value = rpc.xmlhttp.responseText;
- } else {
- //getField('SEARCH').disabled = true;
- msgBox(rpc.xmlhttp.responseText,"alert");
- }
- */
+
}.extend(this);
oRPC.make();
diff --git a/workflow/engine/xmlform/cases/cases_Scheduler_New.xml b/workflow/engine/xmlform/cases/cases_Scheduler_New.xml
index c0b307d43..a79c8ec05 100755
--- a/workflow/engine/xmlform/cases/cases_Scheduler_New.xml
+++ b/workflow/engine/xmlform/cases/cases_Scheduler_New.xml
@@ -1,852 +1,844 @@
-
-
-
-
-
-
-
-General Information
-
-
-
-Enter the username and password for the user who will be assigned to the initial task in the case(s).
-
-
-
-
-
-
-
-
-
-
-
-User Name
-
-
-Password
-
-
-
- Test User
-
-
- Edit User
-
-
-
-Properties
-
-
-
-
-
-
-Task
-
-
-
-Description
-
-
-
-Perform this task
-
-
-
-
-
-
-
-
-
-
-Select the date and time for case(s) to be initiated.
-
-
-
-Execution time
-
-
-
-Select date
-
-
-
-Start date
-
-
-
- Daily
-
-
-
-
-
-
- Weekly
-
-
-
-Every
-
-
-
-Select the day(s) of the week below
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Monthly
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Of the month(s)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-End Date
-
-
-Repeat Task
-
-
-
-
-
-Execute every
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Start a case based on following registered Plugin.
-
-
-
-Save
-
-
-
-Cancel
-
-
-=1 && days<=365)){
- msgBox('Days must be between 1 and 365', 'alert'); // confirm, info
- getField('SCH_DAYS_PERFORM_TASK_OPT_3').value = '1';
- }
-});
-
-leimnud.event.add(getField('SCH_EVERY_DAYS'), 'change', function() {
- days = getField('SCH_EVERY_DAYS').value;
- if(!(days>=1 && days<=52) ) {
- msgBox('Weeks must be between 1 and 52', 'alert');
- getField('SCH_EVERY_DAYS').value = '';
- }
-});
-
-leimnud.event.add(getField('SCH_START_DAY_OPT_1'), 'change', function() {
- days = getField('SCH_START_DAY_OPT_1').value;
- if(!(days>=1 && days<=31) ) {
- msgBox('The days must be between 1 and 31', 'alert');
- getField('SCH_START_DAY_OPT_1').value = '1';
- }
-});
-
-leimnud.event.add(getField('SCH_START_TIME'), 'keyup', function() {
- if (getField('SCH_START_TIME').value.charAt(0)) {
- if (isNaN(getField('SCH_START_TIME').value.charAt(0)) == true) {
- getField('SCH_START_TIME').value = getField('SCH_START_TIME').value.slice(0, -1);
- }
- }
- if (getField('SCH_START_TIME').value.charAt(1)) {
- if (isNaN(getField('SCH_START_TIME').value.charAt(1)) == true) {
- getField('SCH_START_TIME').value = getField('SCH_START_TIME').value.slice(0, -1);
- }
- }
- var oVar = getField('SCH_START_TIME').value.charAt(2);
- if (isNaN(oVar) == true) {
- if (! getField('SCH_START_TIME').value.charAt(3)) {
- getField('SCH_START_TIME').value = getField('SCH_START_TIME').value.slice(0, -1);
- }
- if (getField('SCH_START_TIME').value.charAt(4)) {
- if (isNaN(getField('SCH_START_TIME').value.charAt(4)) == true) {
- getField('SCH_START_TIME').value = getField('SCH_START_TIME').value.slice(0, -1);
- }
- }
- }
-});
-
-leimnud.event.add(getField('SCH_START_TIME'), 'change', function() {
- hours = getField('SCH_START_TIME').value;
- answer = hours;
- var parties = answer.split(':');
-
- if(parties[0]>23){
- msgBox(G_STRINGS.ID_SCHEDULER_CANT_PUT_TIME, 'alert');
- getField('SCH_START_TIME').value='';
- //getField('SCH_REPEAT_UNTIL').value='';
- //getField('SCH_REPEAT_UNTIL').focus();
- getField('SAVE').focus();
-
- }
- if(parties[1]>59){
- msgBox('The minutes can not be greater than 59', 'alert');
- getField('SCH_START_TIME').value='';
- //getField('SCH_REPEAT_UNTIL').value='';
- //getField('SCH_REPEAT_UNTIL').focus();
- getField('SAVE').focus();
- }
-});
-
-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() {
- showSelection('1');
-});
-leimnud.event.add(getField('SCH_OPTION][2'), 'change', function() {
- showSelection('2');
-});
-leimnud.event.add(getField('SCH_OPTION][3'), 'change', function() {
- showSelection('3');
-});
-leimnud.event.add(getField('SCH_OPTION][4'), 'change', function() {
- showSelection('4');
-});
-*/
-
-function case_userSchedulerValidate(username, password) {
- //G.alert(username);
- //G.alert(password);
- var user_uid;
-
- if(username=='' || password==''){
- msgBox(G_STRINGS.ID_CASE_SCHEDULER_VALIDATE_ALERT, "alert");
- return false;
- }
-
- var oRPC = new leimnud.module.rpc.xmlhttp({
- url : '../cases/cases_SchedulerValidateUser',
- async : true,
- method: 'POST',
- args : "USERNAME="+username+"&PASSWORD="+password
- });
-
- oRPC.callback = function(rpc){
- //msgBox(rpc.xmlhttp.responseText,"alert");
- sresponse = rpc.xmlhttp.responseText;
-
- switch(sresponse){
- case "User does not have access to the system":
- case "Wrong password":
- case "User inactive!":
- msgBox(rpc.xmlhttp.responseText,"alert");
- getField('BTNCANCEL').focus();
- return false;
- break
- }
-
- getField('SCH_USER_UID').value = rpc.xmlhttp.responseText;
- user_uid = rpc.xmlhttp.responseText;
- //alert(user_uid);
-
- var oRPCProcess = new leimnud.module.rpc.xmlhttp({
- url : '../cases/cases_SchedulerGetProcesses',
- async : true,
- method: 'POST',
- args : "USR_UID="+user_uid+"&PRO_UID="+$_GET('PRO_UID')
- });
-
- oRPCProcess.callback = function(rpc){
- if (getField('PRO_UID')!=null){
- var process_uid = getField('PRO_UID').value;
- } else {
- var process_uid = gup('PRO_UID');
- }
- loadTasksDropdown(process_uid,user_uid);
-
- }.extend(this);
-
- oRPCProcess.make();
-
-
- }.extend(this);
- oRPC.make();
-
-
-}
-/*
- * @function validateSchedulerFields
- * @author gustavo cruz gustavo[at]colsoa[dot]com
- * @desc This function validates the special cases for the scheduler data fields.
- * @return true/false boolean
- */
-
-function validateSchedulerFields(){
-var validFields = true;
-var requiredFields = '';
-var badFormatFields = '';
-var startDate = document.getElementById('form[SCH_START_DATE]').value;
-var endDate = document.getElementById('form[SCH_END_DATE]').value;
-
-startDate = startDate.split("-");
-endDate = endDate.split("-");
-startDate = new Date(startDate[0],startDate[1],startDate[2]);
-endDate = new Date(endDate[0],endDate[1],endDate[2]);
-
- if (document.getElementById('form[SCH_START_DATE]').value==''){
- requiredFields = requiredFields + 'Start Date,';
- validFields = false;
- } else {
- if (document.getElementById('form[SCH_END_DATE]').value!='')
- if (startDate>endDate){
- badFormatFields = badFormatFields + 'Start Date can\'t be greater than End Date';
- validFields = false;
- }
- }
- // check if the field time is compliant with the regular expression
- // for time format hh:mm
- var regExpString = "([0-1]\\d|2[0-3]):([0-5]\\d)";
- var timeRegexp = new RegExp(regExpString);
- 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
- case '1':
- //if(document.getElementById('form[SCH_DAYS_PERFORM_TASK][1]').checked==true||document.getElementById('form[SCH_DAYS_PERFORM_TASK][2]').checked==true||document.getElementById('form[SCH_DAYS_PERFORM_TASK][3]').checked==true){
- if(document.getElementById('form[SCH_DAYS_PERFORM_TASK]').value!=''){
- validFields = true;
- } else {
- requiredFields = requiredFields + 'Weekdays,';
- validFields = false;
- }
-
- break;
- // weekly
- case '2':
- if (document.getElementById('form[SCH_EVERY_DAYS]').value==''){
- requiredFields = requiredFields + 'Number of Weeks,';
- validFields = false;
- } else {
- for (week=1;week<=4;week++){
- weekIdOne = 'form[SCH_WEEK_DAYS]['+week+']';
- if (document.getElementById(weekIdOne).checked==true){
- validFields = true;
- break;
- } else {
- validFields = false;
- }
- }
- if (!validFields){
- for (week=1;week<=3;week++){
- weekIdTwo = 'form[SCH_WEEK_DAYS_2]['+(week+4)+']';
- if (document.getElementById(weekIdTwo).checked==true){
- validFields = true;
- break;
- } else {
- validFields = false;
- }
- }
- }
- if (!validFields){
- requiredFields = requiredFields + 'Weeks,';
- validFields = false;
- }
- }
- break;
- //monthly
- case '3':
- if (document.getElementById('form[SCH_START_DAY][1]').checked==true||document.getElementById('form[SCH_START_DAY][2]').checked==true){
- for (month=1;month<=4;month++){
- monthIdOne = 'form[SCH_MONTHS]['+month+']';
- monthIdTwo = 'form[SCH_MONTHS_2]['+(month+4)+']';
- monthIdThree = 'form[SCH_MONTHS_3]['+(month+8)+']';
-
- if (document.getElementById(monthIdOne).checked==true||document.getElementById(monthIdTwo).checked==true||document.getElementById(monthIdThree).checked==true){
- validFields = true;
- break;
- } else {
- validFields = false;
- }
- }
- if (!validFields){
- requiredFields = requiredFields + 'Months,';
- validFields = false;
- }
- } else {
- requiredFields = requiredFields + 'Start Day,';
- validFields = false;
- }
-
-
- break;
- //run once
- case '4':
-
- validFields = true;
-
- break;
- //run every
- case '5':
-
- validFields = true;
-
- break;
- default:
- validFields = false;
- break;
- }
- if (requiredFields!='') {
- var message = "The fields "+requiredFields+" can\'t be empty";
- msgBox(message, 'alert');
- return false;
- } else {
- if (badFormatFields!=''){
- var message = badFormatFields;
- msgBox(message, 'alert');
- return false;
- } else {
- return true;
- }
- }
-}
-
-function resetForm(){
-document.getElementById('form[SCH_USER_NAME]').readOnly=false;
-document.getElementById('form[SCH_USER_PASSWORD]').readOnly=false;
-document.getElementById('form[TEST_CONNECTION]').style.display='';
-hideAll();
-hideProperties();
-}
-
-function loadTasksDropdown(process,user_uid){
- //alert(process);
- var oRPCTasks = new leimnud.module.rpc.xmlhttp({
- url : '../cases/cases_SchedulerGetTasks',
- async : true,
- method: 'POST',
- args : "USR_UID="+user_uid+"&PRO_UID="+process
- });
-
- oRPCTasks.callback = function(rpc){
- document.getElementById("taskListDropdown").innerHTML = rpc.xmlhttp.responseText;
- // if the user is assigned to the task the default task value will be diferent than char
-
- if (getField('TAS_UID').value!='char'){
- showProperties();
- } else {
- msgBox("The User login data seems to be invalid.","alert");
- }
- }.extend(this);
- oRPCTasks.make();
-}
-leimnud.event.add(getField('SCH_REPEAT_TASK_CHK'), 'click', function() {
- if(getField('SCH_REPEAT_TASK_CHK').checked){
- enable(getField('SCH_REPEAT_EVERY'));
- enable(getField('SCH_REPEAT_EVERY_OPT'));
- // enable(getField('SCH_REPEAT_UNTIL'));
- // enable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
- } else {
-
-
- // disable(getField('SCH_REPEAT_UNTIL'));
- // disable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
- }
-
-});
-
-
-function collapseAdvancedOptions(){
- var flag = document.getElementById('EditLogAdvancedOptions').innerHTML;
- if (flag=='visible'){
- //contractSubtitle('ADVANCED_4');
- document.getElementById('EditLogAdvancedOptions').innerHTML = 'hidden';
- document.getElementById('checkAdvanced').checked = false;
-
- //document.getElementById('form[SCH_END_DATE]').value = '';
- document.getElementById('form[SCH_END_DATE][div]').innerHTML = '';
- document.getElementById('form[SCH_REPEAT_TASK_CHK]').checked = false;
-
-
- } else {
- //expandSubtitle('ADVANCED_4');
- document.getElementById('checkAdvanced').checked = true;
- document.getElementById('EditLogAdvancedOptions').innerHTML = 'visible';
- }
-}
-
-function gup( name )
-{
- name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
- var regexS = "[\\?&]"+name+"=([^]*)";
- var regex = new RegExp( regexS );
- var results = regex.exec( window.location.href );
- if( results == null )
- return "";
- else
- return results[1];
-}
-
-]]>
-
+
+
+
+
+
+
+
+General Information
+
+
+
+Enter the username and password of the user who will be assigned to the initial task in the case.
+
+
+
+
+
+
+
+
+
+
+
+User Name
+
+
+Password
+
+
+
+ Test User
+
+
+ Edit User
+
+
+
+Properties
+
+
+
+
+
+
+Task
+
+
+
+Description
+
+
+
+Perform this task
+
+
+
+
+
+
+
+
+
+
+Select the date and time for case(s) to be initiated.
+
+
+
+Execution time
+
+
+
+Select date
+
+
+
+Start date
+
+
+
+ Daily
+
+
+
+
+
+
+ Weekly
+
+
+
+Every
+
+
+
+Select the day(s) of the week below
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Monthly
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Of the month(s)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+End Date
+
+
+Repeat Task
+
+
+
+
+
+Execute every
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Start a case based on following registered Plugin.
+
+
+
+Save
+
+
+
+Cancel
+
+
+=1 && days<=365)){
+ msgBox('Days must be between 1 and 365', 'alert'); // confirm, info
+ getField('SCH_DAYS_PERFORM_TASK_OPT_3').value = '1';
+ }
+});
+
+leimnud.event.add(getField('SCH_EVERY_DAYS'), 'change', function() {
+ days = getField('SCH_EVERY_DAYS').value;
+ if(!(days>=1 && days<=52) ) {
+ msgBox('Weeks must be between 1 and 52', 'alert');
+ getField('SCH_EVERY_DAYS').value = '';
+ }
+});
+
+leimnud.event.add(getField('SCH_START_DAY_OPT_1'), 'change', function() {
+ days = getField('SCH_START_DAY_OPT_1').value;
+ if(!(days>=1 && days<=31) ) {
+ msgBox('The days must be between 1 and 31', 'alert');
+ getField('SCH_START_DAY_OPT_1').value = '1';
+ }
+});
+
+leimnud.event.add(getField('SCH_START_TIME'), 'keyup', function() {
+ if (getField('SCH_START_TIME').value.charAt(0)) {
+ if (isNaN(getField('SCH_START_TIME').value.charAt(0)) == true) {
+ getField('SCH_START_TIME').value = getField('SCH_START_TIME').value.slice(0, -1);
+ }
+ }
+ if (getField('SCH_START_TIME').value.charAt(1)) {
+ if (isNaN(getField('SCH_START_TIME').value.charAt(1)) == true) {
+ getField('SCH_START_TIME').value = getField('SCH_START_TIME').value.slice(0, -1);
+ }
+ }
+ var oVar = getField('SCH_START_TIME').value.charAt(2);
+ if (isNaN(oVar) == true) {
+ if (! getField('SCH_START_TIME').value.charAt(3)) {
+ getField('SCH_START_TIME').value = getField('SCH_START_TIME').value.slice(0, -1);
+ }
+ if (getField('SCH_START_TIME').value.charAt(4)) {
+ if (isNaN(getField('SCH_START_TIME').value.charAt(4)) == true) {
+ getField('SCH_START_TIME').value = getField('SCH_START_TIME').value.slice(0, -1);
+ }
+ }
+ }
+});
+
+leimnud.event.add(getField('SCH_START_TIME'), 'change', function() {
+ hours = getField('SCH_START_TIME').value;
+ answer = hours;
+ var parties = answer.split(':');
+
+ if(parties[0]>23){
+ msgBox(G_STRINGS.ID_SCHEDULER_CANT_PUT_TIME, 'alert');
+ getField('SCH_START_TIME').value='';
+ //getField('SCH_REPEAT_UNTIL').value='';
+ //getField('SCH_REPEAT_UNTIL').focus();
+ getField('SAVE').focus();
+
+ }
+ if(parties[1]>59){
+ msgBox('The minutes can not be greater than 59', 'alert');
+ getField('SCH_START_TIME').value='';
+ //getField('SCH_REPEAT_UNTIL').value='';
+ //getField('SCH_REPEAT_UNTIL').focus();
+ getField('SAVE').focus();
+ }
+});
+
+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() {
+ showSelection('1');
+});
+leimnud.event.add(getField('SCH_OPTION][2'), 'change', function() {
+ showSelection('2');
+});
+leimnud.event.add(getField('SCH_OPTION][3'), 'change', function() {
+ showSelection('3');
+});
+leimnud.event.add(getField('SCH_OPTION][4'), 'change', function() {
+ showSelection('4');
+});
+*/
+
+function case_userSchedulerValidate(username, password) {
+ var user_uid;
+
+ if(username=='' || password==''){
+ msgBox(G_STRINGS.ID_CASE_SCHEDULER_VALIDATE_ALERT, "alert");
+ return false;
+ }
+
+ var oRPC = new leimnud.module.rpc.xmlhttp({
+ url : '../cases/cases_SchedulerValidateUser',
+ async : true,
+ method: 'POST',
+ args : "USERNAME="+username+"&PASSWORD="+password+"&PRO_UID="+$_GET('PRO_UID')
+ });
+
+ oRPC.callback = function(rpc){
+ sresponse = rpc.xmlhttp.responseText.parseJSON();
+
+ if (sresponse.status_code != 0) {
+ msgBox(sresponse.message, "alert");
+ getField('BTNCANCEL').focus();
+ return false;
+ }
+
+ getField('SCH_USER_UID').value = sresponse.message;
+ user_uid = sresponse.message;
+
+ var oRPCProcess = new leimnud.module.rpc.xmlhttp({
+ url : '../cases/cases_SchedulerGetProcesses',
+ async : true,
+ method: 'POST',
+ args : "USR_UID="+user_uid+"&PRO_UID="+$_GET('PRO_UID')
+ });
+
+ oRPCProcess.callback = function(rpc){
+ if (getField('PRO_UID')!=null){
+ var process_uid = getField('PRO_UID').value;
+ } else {
+ var process_uid = gup('PRO_UID');
+ }
+ loadTasksDropdown(process_uid,user_uid);
+
+ }.extend(this);
+
+ oRPCProcess.make();
+
+
+ }.extend(this);
+ oRPC.make();
+
+
+}
+/*
+ * @function validateSchedulerFields
+ * @author gustavo cruz gustavo[at]colsoa[dot]com
+ * @desc This function validates the special cases for the scheduler data fields.
+ * @return true/false boolean
+ */
+
+function validateSchedulerFields(){
+var validFields = true;
+var requiredFields = '';
+var badFormatFields = '';
+var startDate = document.getElementById('form[SCH_START_DATE]').value;
+var endDate = document.getElementById('form[SCH_END_DATE]').value;
+
+startDate = startDate.split("-");
+endDate = endDate.split("-");
+startDate = new Date(startDate[0],startDate[1],startDate[2]);
+endDate = new Date(endDate[0],endDate[1],endDate[2]);
+
+ if (document.getElementById('form[SCH_START_DATE]').value==''){
+ requiredFields = requiredFields + 'Start Date,';
+ validFields = false;
+ } else {
+ if (document.getElementById('form[SCH_END_DATE]').value!='')
+ if (startDate>endDate){
+ badFormatFields = badFormatFields + 'Start Date can\'t be greater than End Date';
+ validFields = false;
+ }
+ }
+ // check if the field time is compliant with the regular expression
+ // for time format hh:mm
+ var regExpString = "([0-1]\\d|2[0-3]):([0-5]\\d)";
+ var timeRegexp = new RegExp(regExpString);
+ 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
+ case '1':
+ //if(document.getElementById('form[SCH_DAYS_PERFORM_TASK][1]').checked==true||document.getElementById('form[SCH_DAYS_PERFORM_TASK][2]').checked==true||document.getElementById('form[SCH_DAYS_PERFORM_TASK][3]').checked==true){
+ if(document.getElementById('form[SCH_DAYS_PERFORM_TASK]').value!=''){
+ validFields = true;
+ } else {
+ requiredFields = requiredFields + 'Weekdays,';
+ validFields = false;
+ }
+
+ break;
+ // weekly
+ case '2':
+ if (document.getElementById('form[SCH_EVERY_DAYS]').value==''){
+ requiredFields = requiredFields + 'Number of Weeks,';
+ validFields = false;
+ } else {
+ for (week=1;week<=4;week++){
+ weekIdOne = 'form[SCH_WEEK_DAYS]['+week+']';
+ if (document.getElementById(weekIdOne).checked==true){
+ validFields = true;
+ break;
+ } else {
+ validFields = false;
+ }
+ }
+ if (!validFields){
+ for (week=1;week<=3;week++){
+ weekIdTwo = 'form[SCH_WEEK_DAYS_2]['+(week+4)+']';
+ if (document.getElementById(weekIdTwo).checked==true){
+ validFields = true;
+ break;
+ } else {
+ validFields = false;
+ }
+ }
+ }
+ if (!validFields){
+ requiredFields = requiredFields + 'Weeks,';
+ validFields = false;
+ }
+ }
+ break;
+ //monthly
+ case '3':
+ if (document.getElementById('form[SCH_START_DAY][1]').checked==true||document.getElementById('form[SCH_START_DAY][2]').checked==true){
+ for (month=1;month<=4;month++){
+ monthIdOne = 'form[SCH_MONTHS]['+month+']';
+ monthIdTwo = 'form[SCH_MONTHS_2]['+(month+4)+']';
+ monthIdThree = 'form[SCH_MONTHS_3]['+(month+8)+']';
+
+ if (document.getElementById(monthIdOne).checked==true||document.getElementById(monthIdTwo).checked==true||document.getElementById(monthIdThree).checked==true){
+ validFields = true;
+ break;
+ } else {
+ validFields = false;
+ }
+ }
+ if (!validFields){
+ requiredFields = requiredFields + 'Months,';
+ validFields = false;
+ }
+ } else {
+ requiredFields = requiredFields + 'Start Day,';
+ validFields = false;
+ }
+
+
+ break;
+ //run once
+ case '4':
+
+ validFields = true;
+
+ break;
+ //run every
+ case '5':
+
+ validFields = true;
+
+ break;
+ default:
+ validFields = false;
+ break;
+ }
+ if (requiredFields!='') {
+ var message = "The fields "+requiredFields+" can\'t be empty";
+ msgBox(message, 'alert');
+ return false;
+ } else {
+ if (badFormatFields!=''){
+ var message = badFormatFields;
+ msgBox(message, 'alert');
+ return false;
+ } else {
+ return true;
+ }
+ }
+}
+
+function resetForm(){
+document.getElementById('form[SCH_USER_NAME]').readOnly=false;
+document.getElementById('form[SCH_USER_PASSWORD]').readOnly=false;
+document.getElementById('form[TEST_CONNECTION]').style.display='';
+hideAll();
+hideProperties();
+}
+
+function loadTasksDropdown(process,user_uid){
+ //alert(process);
+ var oRPCTasks = new leimnud.module.rpc.xmlhttp({
+ url : '../cases/cases_SchedulerGetTasks',
+ async : true,
+ method: 'POST',
+ args : "USR_UID="+user_uid+"&PRO_UID="+process
+ });
+
+ oRPCTasks.callback = function(rpc){
+ document.getElementById("taskListDropdown").innerHTML = rpc.xmlhttp.responseText;
+ // if the user is assigned to the task the default task value will be diferent than char
+
+ if (getField('TAS_UID').value!='char'){
+ showProperties();
+ } else {
+ msgBox("The User login data seems to be invalid.","alert");
+ }
+ }.extend(this);
+ oRPCTasks.make();
+}
+leimnud.event.add(getField('SCH_REPEAT_TASK_CHK'), 'click', function() {
+ if(getField('SCH_REPEAT_TASK_CHK').checked){
+ enable(getField('SCH_REPEAT_EVERY'));
+ enable(getField('SCH_REPEAT_EVERY_OPT'));
+ // enable(getField('SCH_REPEAT_UNTIL'));
+ // enable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
+ } else {
+
+
+ // disable(getField('SCH_REPEAT_UNTIL'));
+ // disable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
+ }
+
+});
+
+
+function collapseAdvancedOptions(){
+ var flag = document.getElementById('EditLogAdvancedOptions').innerHTML;
+ if (flag=='visible'){
+ //contractSubtitle('ADVANCED_4');
+ document.getElementById('EditLogAdvancedOptions').innerHTML = 'hidden';
+ document.getElementById('checkAdvanced').checked = false;
+
+ //document.getElementById('form[SCH_END_DATE]').value = '';
+ document.getElementById('form[SCH_END_DATE][div]').innerHTML = '';
+ document.getElementById('form[SCH_REPEAT_TASK_CHK]').checked = false;
+
+
+ } else {
+ //expandSubtitle('ADVANCED_4');
+ document.getElementById('checkAdvanced').checked = true;
+ document.getElementById('EditLogAdvancedOptions').innerHTML = 'visible';
+ }
+}
+
+function gup( name )
+{
+ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
+ var regexS = "[\\?&]"+name+"=([^]*)";
+ var regex = new RegExp( regexS );
+ var results = regex.exec( window.location.href );
+ if( results == null )
+ return "";
+ else
+ return results[1];
+}
+
+]]>
+