CC-3822 : NowPlaying-> Time filter is allowing Start_Time be greater than the End_Time

This commit is contained in:
Naomi 2013-05-27 14:37:16 -04:00
parent 63b0d4194a
commit 408ecc530d
3 changed files with 74 additions and 34 deletions

View file

@ -105,6 +105,10 @@ div.sb-timerange input#sb_date_start {
margin-left: 30px; margin-left: 30px;
} }
div.sb-timerange input.error {
background-color: rgba(255,0,0,0.2);
}
.sb-starts, .sb-starts,
.sb-ends { .sb-ends {
text-align: center; text-align: center;

View file

@ -35,7 +35,8 @@ AIRTIME = (function(AIRTIME) {
dayNamesMin: i18n_days_short, dayNamesMin: i18n_days_short,
onClick: function(sDate, oDatePicker) { onClick: function(sDate, oDatePicker) {
$(this).datepicker( "setDate", sDate ); $(this).datepicker( "setDate", sDate );
} },
onClose: validateTimeRange
}; };
oBaseTimePickerSettings = { oBaseTimePickerSettings = {
@ -90,32 +91,61 @@ AIRTIME = (function(AIRTIME) {
} }
} }
function validateTimeRange() {
var oRange,
inputs = $('.sb-timerange > input'),
start, end;
oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
start = oRange.start;
end = oRange.end;
if (end >= start) {
inputs.removeClass('error');
}
else {
if (!inputs.hasClass('error')) {
inputs.addClass('error');
}
}
return {
start: start,
end: end,
isValid: end >= start
};
}
function showSearchSubmit() { function showSearchSubmit() {
var fn, var fn,
oRange,
op, op,
oTable = $('#show_builder_table').dataTable(); oTable = $('#show_builder_table').dataTable(),
check;
//reset timestamp value since input values could have changed.
AIRTIME.showbuilder.resetTimestamp(); check = validateTimeRange();
oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId); if (check.isValid) {
fn = oTable.fnSettings().fnServerData; //reset timestamp value since input values could have changed.
fn.start = oRange.start; AIRTIME.showbuilder.resetTimestamp();
fn.end = oRange.end;
fn = oTable.fnSettings().fnServerData;
op = $("div.sb-advanced-options"); fn.start = check.start;
if (op.is(":visible")) { fn.end = check.end;
if (fn.ops === undefined) { op = $("div.sb-advanced-options");
fn.ops = {}; if (op.is(":visible")) {
}
fn.ops.showFilter = op.find("#sb_show_filter").val(); if (fn.ops === undefined) {
fn.ops.myShows = op.find("#sb_my_shows").is(":checked") ? 1 : 0; fn.ops = {};
}
fn.ops.showFilter = op.find("#sb_show_filter").val();
fn.ops.myShows = op.find("#sb_my_shows").is(":checked") ? 1 : 0;
}
oTable.fnDraw();
} }
oTable.fnDraw();
} }
mod.onReady = function() { mod.onReady = function() {
@ -134,10 +164,22 @@ AIRTIME = (function(AIRTIME) {
$(this).removeClass("ui-state-hover"); $(this).removeClass("ui-state-hover");
}); });
$builder.find(dateStartId).datepicker(oBaseDatePickerSettings); $builder.find(dateStartId)
$builder.find(timeStartId).timepicker(oBaseTimePickerSettings); .datepicker(oBaseDatePickerSettings)
$builder.find(dateEndId).datepicker(oBaseDatePickerSettings); .blur(validateTimeRange);
$builder.find(timeEndId).timepicker(oBaseTimePickerSettings);
$builder.find(timeStartId)
.timepicker(oBaseTimePickerSettings)
.blur(validateTimeRange);
$builder.find(dateEndId)
.datepicker(oBaseDatePickerSettings)
.blur(validateTimeRange);
$builder.find(timeEndId)
.timepicker(oBaseTimePickerSettings)
.blur(validateTimeRange);
oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId,
dateEndId, timeEndId); dateEndId, timeEndId);

View file

@ -88,19 +88,13 @@ var AIRTIME = (function(AIRTIME){
mod.fnGetScheduleRange = function(dateStart, timeStart, dateEnd, timeEnd) { mod.fnGetScheduleRange = function(dateStart, timeStart, dateEnd, timeEnd) {
var iStart, var iStart,
iEnd, iEnd,
iRange, iRange;
DEFAULT_RANGE = 60*60*24;
iStart = AIRTIME.utilities.fnGetTimestamp(dateStart, timeStart); iStart = AIRTIME.utilities.fnGetTimestamp(dateStart, timeStart);
iEnd = AIRTIME.utilities.fnGetTimestamp(dateEnd, timeEnd); iEnd = AIRTIME.utilities.fnGetTimestamp(dateEnd, timeEnd);
iRange = iEnd - iStart; iRange = iEnd - iStart;
if (iEnd < iStart) {
iEnd = iStart + DEFAULT_RANGE;
iRange = DEFAULT_RANGE;
}
return { return {
start: iStart, start: iStart,
end: iEnd, end: iEnd,