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
Description
Task
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
Monthly
Of the month(s)
Advanced Options
End Date
End Date
Repeat Task
Record the time.
Execute every
Start a case based on following registered Plugin.
Update
disable(getField('SCH_REPEAT_EVERY_OPT'));
// disable(getField('SCH_REPEAT_UNTIL'));
// disable(getField('SCH_REPEAT_STOP_IF_RUNNING'));
getField('UPDATE').disabled=true;
document.getElementById('form[SELECT_DATE]').style.display='none';
document.getElementById('form[SELECT_1]').style.display='none';
document.getElementById('form[SELECT_2]').style.display='none';
document.getElementById('form[SELECT_3]').style.display='none';
}
function hideAll() {
contractSubtitle('SELECT_PLUGIN');
contractSubtitle('SELECT_TIME_DAY');
contractSubtitle('SELECT_DATE');
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) {
document.getElementById("pluginsListContent").innerHTML ="";
if(opt!=""){
var oRPCProcess = new leimnud.module.rpc.xmlhttp({
url : '../cases/cases_SchedulerGetPlugins',
async : true,
method: 'POST',
args : "action=pluginCaseSchedulerForm&selectedOption="+opt+"&sch_uid="+getField('SCH_UID').value+"&pro_uid="+pro_uid
});
oRPCProcess.callback = function(rpc){
//alert(rpc.xmlhttp.responseText);
if(rpc.xmlhttp.responseText!=""){
document.getElementById("pluginsListContent").innerHTML = rpc.xmlhttp.responseText;
}
}.extend(this);
oRPCProcess.make();
}
}
function showSelection(opt) {
if (opt!=0) {
expandSubtitle('SELECT_TIME_DAY');
getField('UPDATE').disabled=false;
plgUid=getField('CASE_SH_PLUGIN_UID').value;
var oRPCProcess = new leimnud.module.rpc.xmlhttp({
url : '../cases/cases_SchedulerGetPlugins',
async : true,
method: 'POST',
args : "action=pluginsList&sch_uid="+getField('SCH_UID').value+"&plg_uid="+getField('CASE_SH_PLUGIN_UID').value
});
oRPCProcess.callback = function(rpc){
//alert(rpc.xmlhttp.responseText);
if(rpc.xmlhttp.responseText!=""){
document.getElementById('form[SELECT_PLUGIN]').style.display='';
expandSubtitle('SELECT_PLUGIN');
document.getElementById("pluginsListDropdown").innerHTML = rpc.xmlhttp.responseText;
showPluginSelection(plgUid,getField('PRO_UID').value);
}
}.extend(this);
oRPCProcess.make();
} else {
contractSubtitle('SELECT_TIME_DAY');
getField('UPDATE').disabled=true;
}
switch(opt){
case '0' : hideAll();
break;
case '1' : expandSubtitle('SELECT_DATE');
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');
contractSubtitle('SELECT_1');
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');
if (getField('SCH_START_DAY][1').checked){
getField('SCH_START_DAY_OPT_1').disabled=false;
getField('SCH_START_DAY_OPT_1').style.display="";
getField('SCH_START_DAY_OPT_2_WEEKS').disabled=true;
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";
} else {
getField('SCH_START_DAY_OPT_1').disabled=true;
getField('SCH_START_DAY_OPT_1').style.display="none";
getField('SCH_START_DAY_OPT_2_WEEKS').disabled=false;
getField('SCH_START_DAY_OPT_2_WEEKS').style.display="";
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');
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;
}
}
leimnud.event.add(getField('SCH_OPTION'), 'change', function() {
var opt = getField('SCH_OPTION').value;
showSelection(opt);
});
leimnud.event.add(getField('SCH_START_DAY][1'), 'click', function() {
getField('SCH_START_DAY_OPT_1').disabled=false;
getField('SCH_START_DAY_OPT_1').style.display="";
getField('SCH_START_DAY_OPT_2_WEEKS').disabled=true;
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";
});
leimnud.event.add(getField('SCH_START_DAY][2'), 'click', function() {
getField('SCH_START_DAY_OPT_1').disabled=true;
getField('SCH_START_DAY_OPT_1').style.display="none";
getField('SCH_START_DAY_OPT_2_WEEKS').disabled=false;
getField('SCH_START_DAY_OPT_2_WEEKS').style.display="";
getField('SCH_START_DAY_OPT_2_DAYS_WEEK').disabled=false;
getField('SCH_START_DAY_OPT_2_DAYS_WEEK').style.display="";
});
leimnud.event.add(getField('SCH_DAYS_PERFORM_TASK][1'), 'change', function() {
getField('SCH_DAYS_PERFORM_TASK_OPT_3').disabled=true;
});
leimnud.event.add(getField('SCH_DAYS_PERFORM_TASK][2'), 'change', function() {
getField('SCH_DAYS_PERFORM_TASK_OPT_3').disabled=true;
});
leimnud.event.add(getField('SCH_DAYS_PERFORM_TASK][3'), 'change', function() {
getField('SCH_DAYS_PERFORM_TASK_OPT_3').disabled=false;
});
leimnud.event.add(getField('SCH_DAYS_PERFORM_TASK_OPT_3'), 'change', function() {
days = getField('SCH_DAYS_PERFORM_TASK_OPT_3').value;
if(!(days>=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() {
weeks = getField('SCH_EVERY_DAYS').value;
if(!(weeks>=1 && weeks<=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';
}
});
// for advanced
leimnud.event.add(getField('SCH_END_DATE_CHK'), 'click', function() {
if(getField('SCH_END_DATE_CHK').checked){
enable(getField('SCH_END_DATE'));
}
else {
document.getElementById('form[SCH_END_DATE]').value = '';
document.getElementById('form[SCH_END_DATE][div]').innerHTML = '';
disable(getField('SCH_END_DATE'));
}
});
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'));
}
});
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('UPDATE').focus();
}
if(parties[1]>59){
msgBox(G_STRINGS.ID_SCHEDULER_CANT_PUT_MINUTES, 'alert');
getField('SCH_START_TIME').value='';
//getField('SCH_REPEAT_UNTIL').value='';
//getField('SCH_REPEAT_UNTIL').focus();
getField('UPDATE').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('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() {
hours = getField('SCH_REPEAT_UNTIL').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('UPDATE').focus();
}
if(parties[1]>59){
msgBox(G_STRINGS.ID_SCHEDULER_CANT_PUT_MINUTES, 'alert');
//getField('SCH_REPEAT_UNTIL').value='';
//getField('SCH_REPEAT_UNTIL').focus();
getField('UPDATE').focus();
}
});
/*
* @function case_userSchedulerValidate
* @author gustavo cruz gustavo[at]colsoa[dot]com
* @desc This function makes an Ajax call in order to validate if a user is registered in the system.
* @return void
*/
function case_userSchedulerValidate(username, password) {
var user_uid;
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");
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
});
oRPCProcess.callback = function(rpc){
if (getField('PRO_UID')!=null){
var process_uid = getField('PRO_UID').value;
loadTasksDropdown(process_uid,user_uid);
document.getElementById('form[UPDATE]').disabled=false;
showProperties();
} else {
msgBox("The User login data seems to be invalid.","alert");
}
}.extend(this);
oRPCProcess.make();
}.extend(this);
oRPC.make();
}
function resetForm(){
document.getElementById('form[UPDATE]').disabled=true;
document.getElementById('form[SCH_USER_NAME]').readOnly=false;
document.getElementById('form[SCH_USER_PASSWORD]').readOnly=false;
document.getElementById('form[SCH_USER_PASSWORD]').value='';
document.getElementById('form[TEST_CONNECTION]').style.display='';
document.getElementById('form[EDIT_USER]').style.display='none';
//hideAll();
//hideProperties();
}
/**
* @desc Load Tasks Dropdown
* @author gustavo cruz gustavo[at]colosa[dot]com
* @desc This function loads the Task Dropdown filtered by process.
* @return void
*/
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;
}.extend(this);
oRPCTasks.make();
}
/*
* @function collapseAdvancedOption
* @author gustavo cruz gustavo[at]colsoa[dot]com
* @desc This function collapses the Advanced Options Fields.
* @return void
*/
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_CHK]').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 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;
}
}
if (document.getElementById('form[SCH_START_TIME]').value==''){
requiredFields = requiredFields + 'Start Time,';
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 (!timeRegexp.test(document.getElementById('form[SCH_START_TIME]').value)){
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':
// 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 once
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;
}
}
}
]]>