BUG-11275 Error en la creacion de Case Scheduler SOLVED

- no validation.
- was add validation for name case scheduler.
This commit is contained in:
Marco Antonio Nina
2013-05-28 12:54:50 -04:00
parent ce301258c7
commit c34f00d961
6 changed files with 215 additions and 174 deletions

View File

@@ -125,6 +125,12 @@ try {
$aFields['PHP_START_DATE'] = date( 'Y-m-d' ); $aFields['PHP_START_DATE'] = date( 'Y-m-d' );
$aFields['PHP_END_DATE'] = date( 'Y-m-d', mktime( 0, 0, 0, date( 'm' ), date( 'd' ), date( 'Y' ) + 5 ) ); $aFields['PHP_END_DATE'] = date( 'Y-m-d', mktime( 0, 0, 0, date( 'm' ), date( 'd' ), date( 'Y' ) + 5 ) );
$aFields['SCH_LIST'] = '';
foreach ($_SESSION['_DBArray']['cases_scheduler'] as $key => $item) {
$aFields['SCH_LIST'] .= ($item['SCH_UID'] != $_GET['SCH_UID']) ? $item['SCH_NAME'] . '|' : '' ;
}
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_Scheduler_Edit.xml', '', $aFields, 'cases_Scheduler_Update' ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_Scheduler_Edit.xml', '', $aFields, 'cases_Scheduler_Update' );
G::RenderPage( 'publishBlank', 'blank' ); G::RenderPage( 'publishBlank', 'blank' );

View File

@@ -86,6 +86,11 @@ try {
$aFields['UID_SCHEDULER'] = "scheduler"; $aFields['UID_SCHEDULER'] = "scheduler";
$aFields['SCH_LIST'] = '';
foreach ($_SESSION['_DBArray']['cases_scheduler'] as $key => $item) {
$aFields['SCH_LIST'] .= $item['SCH_NAME'] . '|';
}
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_Scheduler_New.xml', '', $aFields, 'cases_Scheduler_Save' ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_Scheduler_New.xml', '', $aFields, 'cases_Scheduler_Save' );
G::RenderPage( 'publishBlank', 'blank' ); G::RenderPage( 'publishBlank', 'blank' );

View File

@@ -22,6 +22,9 @@
<tr style="display: none;"> <tr style="display: none;">
<td colspan="2">{$form.SCH_UID}</td> <td colspan="2">{$form.SCH_UID}</td>
</tr> </tr>
<tr style="display: none;">
<td colspan="2">{$form.SCH_LIST}</td>
</tr>
<tr style="display: none"> <tr style="display: none">
<td colspan="2">{$form.SCH_ADVANCED}</td> <td colspan="2">{$form.SCH_ADVANCED}</td>
</tr> </tr>

View File

@@ -13,6 +13,8 @@
<SCH_UID type="hidden" > <SCH_UID type="hidden" >
<en></en> <en></en>
</SCH_UID> </SCH_UID>
<SCH_LIST type="hidden" >
</SCH_LIST>
<PREV_SCH_END_DATE type="hidden" > <PREV_SCH_END_DATE type="hidden" >
<en></en> <en></en>
</PREV_SCH_END_DATE> </PREV_SCH_END_DATE>
@@ -247,7 +249,7 @@ WHERE A.PRO_UID='@#PRO_UID' AND A.TAS_START = 'TRUE' ]]>
</CASE_SH_PLUGIN_UID> </CASE_SH_PLUGIN_UID>
<UPDATE type="submit" onClick="if(validateSchedulerFields()) {return true;} else {return false;}"> <UPDATE type="button" onClick="validateSchedulerFields(this.form)">
<en>Update</en> <en>Update</en>
</UPDATE> </UPDATE>
@@ -758,18 +760,36 @@ function collapseAdvancedOptions(){
* @return true/false boolean * @return true/false boolean
*/ */
function validateSchedulerFields(){ function validateSchedulerFields(oForm) {
var validFields = true; var schedulerTitle = document.getElementById('form[SCH_NAME]').value;
var requiredFields = ''; schedulerTitle = schedulerTitle.replace(/^\s*|\s*$/g,"");
var badFormatFields = ''; if (schedulerTitle == '') {
var startDate = document.getElementById('form[SCH_START_DATE]').value; document.getElementById('form[SCH_NAME]').focus();
var endDate = document.getElementById('form[SCH_END_DATE]').value; msgBox("@G::LoadTranslation(ID_REQUIRED_NAME_CASE_SCHEDULER)", 'alert');
return false;
}
var listNames = document.getElementById('form[SCH_LIST]').value;
listNames = listNames.split("|");
for (var i= 1; i<listNames.length; i++) {
if (schedulerTitle == listNames[i]) {
document.getElementById('form[SCH_NAME]').focus();
msgBox("@G::LoadTranslation(ID_DUPLICATE_CASE_SCHEDULER_NAME)", 'alert');
return false;
}
}
getField("SCH_NAME").value = schedulerTitle;
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("-"); startDate = startDate.split("-");
endDate = endDate.split("-"); endDate = endDate.split("-");
startDate = new Date(startDate[0],startDate[1],startDate[2]); startDate = new Date(startDate[0],startDate[1],startDate[2]);
endDate = new Date(endDate[0],endDate[1],endDate[2]); endDate = new Date(endDate[0],endDate[1],endDate[2]);
if (document.getElementById('form[SCH_START_DATE]').value==''){ if (document.getElementById('form[SCH_START_DATE]').value==''){
requiredFields = requiredFields + 'Start Date,'; requiredFields = requiredFields + 'Start Date,';
@@ -782,7 +802,7 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
} }
} }
if (document.getElementById('form[SCH_START_TIME]').value==''){ if (document.getElementById('form[SCH_START_TIME]').value=='') {
requiredFields = requiredFields + 'Start Time,'; requiredFields = requiredFields + 'Start Time,';
validFields = false; validFields = false;
} }
@@ -790,38 +810,36 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
// for time format hh:mm // for time format hh:mm
var regExpString = "([0-1]\\d|2[0-3]):([0-5]\\d)"; var regExpString = "([0-1]\\d|2[0-3]):([0-5]\\d)";
var timeRegexp = new RegExp(regExpString); var timeRegexp = new RegExp(regExpString);
if (!timeRegexp.test(document.getElementById('form[SCH_START_TIME]').value)){ if (!timeRegexp.test(document.getElementById('form[SCH_START_TIME]').value)) {
msgBox('The time format is invalid','alert'); msgBox('The time format is invalid','alert');
return false; return false;
} }
if (document.getElementById('form[SCH_OPTION]').value == 5) { if (document.getElementById('form[SCH_OPTION]').value == 5) {
if (document.getElementById('form[SCH_REPEAT_EVERY]').value==''){ if (document.getElementById('form[SCH_REPEAT_EVERY]').value=='') {
requiredFields = requiredFields + 'Every,'; requiredFields = requiredFields + 'Every,';
validFields = false; validFields = false;
} }
} }
switch(document.getElementById('form[SCH_OPTION]').value){ switch(document.getElementById('form[SCH_OPTION]').value) {
// daily
case '1': case '1':
// daily
// 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][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!=''){ if(document.getElementById('form[SCH_DAYS_PERFORM_TASK]').value!=''){
validFields = true; validFields = true;
} else { } else {
requiredFields = requiredFields + 'Weekdays,'; requiredFields = requiredFields + 'Weekdays,';
validFields = false; validFields = false;
} }
break;
break;
// weekly
case '2': case '2':
if (document.getElementById('form[SCH_EVERY_DAYS]').value==''){ // weekly
if (document.getElementById('form[SCH_EVERY_DAYS]').value=='') {
requiredFields = requiredFields + 'Number of Weeks,'; requiredFields = requiredFields + 'Number of Weeks,';
validFields = false; validFields = false;
} else { } else {
for (week=1;week<=4;week++){ for (week=1;week<=4;week++) {
weekIdOne = 'form[SCH_WEEK_DAYS]['+week+']'; weekIdOne = 'form[SCH_WEEK_DAYS]['+week+']';
if (document.getElementById(weekIdOne).checked==true){ if (document.getElementById(weekIdOne).checked==true) {
validFields = true; validFields = true;
break; break;
} else { } else {
@@ -829,9 +847,9 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
} }
} }
if (!validFields){ if (!validFields){
for (week=1;week<=3;week++){ for (week=1;week<=3;week++) {
weekIdTwo = 'form[SCH_WEEK_DAYS_2]['+(week+4)+']'; weekIdTwo = 'form[SCH_WEEK_DAYS_2]['+(week+4)+']';
if (document.getElementById(weekIdTwo).checked==true){ if (document.getElementById(weekIdTwo).checked==true) {
validFields = true; validFields = true;
break; break;
} else { } else {
@@ -839,28 +857,27 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
} }
} }
} }
if (!validFields){ if (!validFields) {
requiredFields = requiredFields + 'Weeks,'; requiredFields = requiredFields + 'Weeks,';
validFields = false; validFields = false;
} }
} }
break; break;
//monthly
case '3': case '3':
if (document.getElementById('form[SCH_START_DAY][1]').checked==true||document.getElementById('form[SCH_START_DAY][2]').checked==true){ //monthly
for (month=1;month<=4;month++){ 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+']'; monthIdOne = 'form[SCH_MONTHS]['+month+']';
monthIdTwo = 'form[SCH_MONTHS_2]['+(month+4)+']'; monthIdTwo = 'form[SCH_MONTHS_2]['+(month+4)+']';
monthIdThree = 'form[SCH_MONTHS_3]['+(month+8)+']'; monthIdThree = 'form[SCH_MONTHS_3]['+(month+8)+']';
if (document.getElementById(monthIdOne).checked==true||document.getElementById(monthIdTwo).checked==true||document.getElementById(monthIdThree).checked==true) {
if (document.getElementById(monthIdOne).checked==true||document.getElementById(monthIdTwo).checked==true||document.getElementById(monthIdThree).checked==true){
validFields = true; validFields = true;
break; break;
} else { } else {
validFields = false; validFields = false;
} }
} }
if (!validFields){ if (!validFields) {
requiredFields = requiredFields + 'Months,'; requiredFields = requiredFields + 'Months,';
validFields = false; validFields = false;
} }
@@ -868,22 +885,18 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
requiredFields = requiredFields + 'Start Day,'; requiredFields = requiredFields + 'Start Day,';
validFields = false; validFields = false;
} }
break;
break;
//run once
case '4': case '4':
//run once
validFields = true; validFields = true;
break;
break;
//run once
case '5': case '5':
validFields = true; //run once
break; validFields = true;
break;
default: default:
validFields = false; validFields = false;
break; break;
} }
if (requiredFields!='') { if (requiredFields!='') {
var message = "The fields "+requiredFields+" can\'t be empty"; var message = "The fields "+requiredFields+" can\'t be empty";
@@ -895,7 +908,7 @@ endDate = new Date(endDate[0],endDate[1],endDate[2]);
msgBox(message, 'alert'); msgBox(message, 'alert');
return false; return false;
} else { } else {
return true; oForm.submit();
} }
} }
} }

View File

@@ -24,6 +24,9 @@
<tr style="display: none;"> <tr style="display: none;">
<td colspan="2">{$form.SCH_UID}</td> <td colspan="2">{$form.SCH_UID}</td>
</tr> </tr>
<tr style="display: none;">
<td colspan="2">{$form.SCH_LIST}</td>
</tr>
<tr style="display: none;"> <tr style="display: none;">
<td colspan="2">{$form.SCH_USER_UID}</td> <td colspan="2">{$form.SCH_USER_UID}</td>
</tr> </tr>

View File

@@ -16,7 +16,8 @@
<![CDATA[ SELECT count( * )+1 AS UID FROM CASE_SCHEDULER ]]> <![CDATA[ SELECT count( * )+1 AS UID FROM CASE_SCHEDULER ]]>
<en></en> <en></en>
</SCH_UID> </SCH_UID>
<SCH_LIST type="hidden" >
</SCH_LIST>
<PHP_CURRENT_DATE type="hidden" > <PHP_CURRENT_DATE type="hidden" >
</PHP_CURRENT_DATE> </PHP_CURRENT_DATE>
@@ -230,7 +231,7 @@
<en>Start a case based on following registered Plugin.</en> <en>Start a case based on following registered Plugin.</en>
</SELECT_PLUGIN> </SELECT_PLUGIN>
<SAVE type="submit" onClick="if(validateSchedulerFields()) {return true;} else {return false;}"> <SAVE type="button" onClick="validateSchedulerFields(this.form)">
<en>Save</en> <en>Save</en>
</SAVE> </SAVE>
@@ -243,7 +244,6 @@ hideAll();
hideProperties(); hideProperties();
function $_GET(q,s) { function $_GET(q,s) {
s = (s) ? s : self.location.search; s = (s) ? s : self.location.search;
var re = new RegExp('&'+q+'=([^&]*)','i'); var re = new RegExp('&'+q+'=([^&]*)','i');
@@ -622,149 +622,160 @@ function case_userSchedulerValidate(username, password) {
* @return true/false boolean * @return true/false boolean
*/ */
function validateSchedulerFields(){ function validateSchedulerFields(oForm) {
getField("SCH_NAME").value = getField("SCH_NAME").value.trim(); var schedulerTitle = document.getElementById('form[SCH_NAME]').value;
schedulerTitle = schedulerTitle.replace(/^\s*|\s*$/g,"");
if (schedulerTitle == '') {
document.getElementById('form[SCH_NAME]').focus();
msgBox("@G::LoadTranslation(ID_REQUIRED_NAME_CASE_SCHEDULER)", 'alert');
return false;
}
var listNames = document.getElementById('form[SCH_LIST]').value;
listNames = listNames.split("|");
for (var i= 1; i<listNames.length; i++) {
if (schedulerTitle == listNames[i]) {
document.getElementById('form[SCH_NAME]').focus();
msgBox("@G::LoadTranslation(ID_DUPLICATE_CASE_SCHEDULER_NAME)", 'alert');
return false;
}
}
getField("SCH_NAME").value = schedulerTitle;
var validFields = true; var validFields = true;
var requiredFields = ''; var requiredFields = '';
var badFormatFields = ''; var badFormatFields = '';
var startDate = document.getElementById('form[SCH_START_DATE]').value; var startDate = document.getElementById('form[SCH_START_DATE]').value;
var endDate = document.getElementById('form[SCH_END_DATE]').value; var endDate = document.getElementById('form[SCH_END_DATE]').value;
startDate = startDate.split("-"); startDate = startDate.split("-");
endDate = endDate.split("-"); endDate = endDate.split("-");
startDate = new Date(startDate[0],startDate[1],startDate[2]); startDate = new Date(startDate[0],startDate[1],startDate[2]);
endDate = new Date(endDate[0],endDate[1],endDate[2]); endDate = new Date(endDate[0],endDate[1],endDate[2]);
if (document.getElementById('form[SCH_START_DATE]').value==''){ if (document.getElementById('form[SCH_START_DATE]').value=='') {
requiredFields = requiredFields + 'Start Date,'; requiredFields = requiredFields + 'Start Date,';
validFields = false; validFields = false;
} else { } else {
if (document.getElementById('form[SCH_END_DATE]').value!='') if (document.getElementById('form[SCH_END_DATE]').value!='') {
if (startDate>endDate){ if (startDate>endDate) {
badFormatFields = badFormatFields + 'Start Date can\'t be greater than End Date'; 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; validFields = false;
} }
} } else {
// check if the field time is compliant with the regular expression if (document.getElementById('form[SCH_REPEAT_EVERY]').value=='') {
// for time format hh:mm requiredFields = requiredFields + 'Every,';
var regExpString = "([0-1]\\d|2[0-3]):([0-5]\\d)"; validFields = false;
var timeRegexp = new RegExp(regExpString); }
if (document.getElementById('form[SCH_OPTION]').value != 5) { }
if (!timeRegexp.test(document.getElementById('form[SCH_START_TIME]').value)){ switch (document.getElementById('form[SCH_OPTION]').value) {
msgBox('The time format is invalid','alert'); // daily
return false; 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_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!=''){ if(document.getElementById('form[SCH_DAYS_PERFORM_TASK]').value!=''){
validFields = true; validFields = true;
} else { } else {
requiredFields = requiredFields + 'Weekdays,'; requiredFields = requiredFields + 'Weekdays,';
validFields = false; validFields = false;
} }
break;
break; // weekly
// weekly case '2':
case '2': if (document.getElementById('form[SCH_EVERY_DAYS]').value=='') {
if (document.getElementById('form[SCH_EVERY_DAYS]').value==''){ requiredFields = requiredFields + 'Number of Weeks,';
requiredFields = requiredFields + 'Number of Weeks,'; validFields = false;
validFields = false; } else {
} else { for (week=1;week<=4;week++) {
for (week=1;week<=4;week++){ weekIdOne = 'form[SCH_WEEK_DAYS]['+week+']';
weekIdOne = 'form[SCH_WEEK_DAYS]['+week+']'; if (document.getElementById(weekIdOne).checked==true) {
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; validFields = true;
break; break;
} else { } else {
validFields = false; validFields = false;
} }
} }
} if (!validFields){
if (!validFields){ for (week=1;week<=3;week++){
requiredFields = requiredFields + 'Weeks,'; weekIdTwo = 'form[SCH_WEEK_DAYS_2]['+(week+4)+']';
validFields = false; if (document.getElementById(weekIdTwo).checked==true) {
} validFields = true;
} break;
break; } else {
//monthly validFields = false;
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+']'; if (!validFields){
monthIdTwo = 'form[SCH_MONTHS_2]['+(month+4)+']'; requiredFields = requiredFields + 'Weeks,';
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; validFields = false;
} }
} }
if (!validFields){ break;
requiredFields = requiredFields + 'Months,'; //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; validFields = false;
} }
} else { break;
requiredFields = requiredFields + 'Start Day,'; //run once
case '4':
validFields = true;
break;
//run every
case '5':
validFields = true;
break;
default:
validFields = false; validFields = false;
} break;
}
if (requiredFields!='') {
break; var message = "The fields "+requiredFields+" can\'t be empty";
//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'); msgBox(message, 'alert');
return false; return false;
} else { } else {
return true; if (badFormatFields!='') {
var message = badFormatFields;
msgBox(message, 'alert');
return false;
} else {
oForm.submit();
}
} }
}
} }
function resetForm(){ function resetForm(){