CC-3952: Calendar: Create/Edit Show's End time manually and keep date picker
open, the change will not take effect - fixed
This commit is contained in:
parent
57397312f2
commit
032637049d
1 changed files with 89 additions and 70 deletions
|
@ -12,7 +12,7 @@ function startDpSelect(dateText, inst) {
|
||||||
date = new Date(time[0], time[1] - 1, time[2]);
|
date = new Date(time[0], time[1] - 1, time[2]);
|
||||||
|
|
||||||
if (inst.input)
|
if (inst.input)
|
||||||
inst.input.trigger('change');
|
inst.input.trigger('input');
|
||||||
}
|
}
|
||||||
|
|
||||||
function endDpSelect(dateText, inst) {
|
function endDpSelect(dateText, inst) {
|
||||||
|
@ -22,19 +22,19 @@ function endDpSelect(dateText, inst) {
|
||||||
date = new Date(time[0], time[1] - 1, time[2]);
|
date = new Date(time[0], time[1] - 1, time[2]);
|
||||||
|
|
||||||
if (inst.input)
|
if (inst.input)
|
||||||
inst.input.trigger('change');
|
inst.input.trigger('input');
|
||||||
}
|
}
|
||||||
|
|
||||||
function createDateInput(el, onSelect) {
|
function createDateInput(el, onSelect) {
|
||||||
var date;
|
var date;
|
||||||
|
|
||||||
el.datepicker({
|
el.datepicker({
|
||||||
minDate: adjustDateToServerDate(new Date(), timezoneOffset),
|
minDate: adjustDateToServerDate(new Date(), timezoneOffset),
|
||||||
onSelect: onSelect,
|
onSelect: onSelect,
|
||||||
dateFormat: 'yy-mm-dd',
|
dateFormat: 'yy-mm-dd',
|
||||||
closeText: 'Close',
|
closeText: 'Close',
|
||||||
showButtonPanel: true,
|
showButtonPanel: true,
|
||||||
firstDay: weekStart
|
firstDay: weekStart
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,6 +83,14 @@ function beginEditShow(data){
|
||||||
openAddShowForm();
|
openAddShowForm();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onStartTimeSelect(){
|
||||||
|
$("#add_show_start_time").trigger('input');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onEndTimeSelect(){
|
||||||
|
$("#add_show_end_time").trigger('input');
|
||||||
|
}
|
||||||
|
|
||||||
function setAddShowEvents() {
|
function setAddShowEvents() {
|
||||||
|
|
||||||
var form = $("#add-show-form");
|
var form = $("#add-show-form");
|
||||||
|
@ -255,12 +263,14 @@ function setAddShowEvents() {
|
||||||
createDateInput(form.find("#add_show_end_date_no_repeat"), endDpSelect);
|
createDateInput(form.find("#add_show_end_date_no_repeat"), endDpSelect);
|
||||||
createDateInput(form.find("#add_show_end_date"), endDpSelect);
|
createDateInput(form.find("#add_show_end_date"), endDpSelect);
|
||||||
|
|
||||||
form.find("#add_show_start_time").timepicker({
|
$("#add_show_start_time").timepicker({
|
||||||
amPmText: ['', ''],
|
amPmText: ['', ''],
|
||||||
defaultTime: '00:00'
|
defaultTime: '00:00',
|
||||||
|
onSelect: onStartTimeSelect
|
||||||
});
|
});
|
||||||
form.find("#add_show_end_time").timepicker({
|
$("#add_show_end_time").timepicker({
|
||||||
amPmText: ['', '']
|
amPmText: ['', ''],
|
||||||
|
onSelect: onEndTimeSelect
|
||||||
});
|
});
|
||||||
|
|
||||||
form.find('input[name^="add_show_rebroadcast_date_absolute"]').datepicker({
|
form.find('input[name^="add_show_rebroadcast_date_absolute"]').datepicker({
|
||||||
|
@ -438,72 +448,81 @@ function setAddShowEvents() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var regDate = new RegExp(/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]/);
|
||||||
|
var regTime = new RegExp(/^[0-2][0-9]:[0-5][0-9]/);
|
||||||
|
|
||||||
// when start date/time changes, set end date/time to start date/time+1 hr
|
// when start date/time changes, set end date/time to start date/time+1 hr
|
||||||
$('#add_show_start_date, #add_show_start_time').change(function(){
|
$('#add_show_start_date, #add_show_start_time').bind('input', 'change', function(){
|
||||||
var startDateString = $('#add_show_start_date').val();
|
var startDateString = $('#add_show_start_date').val();
|
||||||
var startTimeString = $('#add_show_start_time').val();
|
var startTimeString = $('#add_show_start_time').val();
|
||||||
var startDate = startDateString.split('-');
|
|
||||||
var startTime = startTimeString.split(':');
|
if(regDate.test(startDateString) && regTime.test(startTimeString)){
|
||||||
var startDateTime = new Date(startDate[0], parseInt(startDate[1], 10)-1, startDate[2], startTime[0], startTime[1], 0, 0);
|
var startDate = startDateString.split('-');
|
||||||
|
var startTime = startTimeString.split(':');
|
||||||
var endDateString = $('#add_show_end_date_no_repeat').val();
|
var startDateTime = new Date(startDate[0], parseInt(startDate[1], 10)-1, startDate[2], startTime[0], startTime[1], 0, 0);
|
||||||
var endTimeString = $('#add_show_end_time').val()
|
|
||||||
var endDate = endDateString.split('-');
|
var endDateString = $('#add_show_end_date_no_repeat').val();
|
||||||
var endTime = endTimeString.split(':');
|
var endTimeString = $('#add_show_end_time').val()
|
||||||
var endDateTime = new Date(endDate[0], parseInt(endDate[1], 10)-1, endDate[2], endTime[0], endTime[1], 0, 0);
|
var endDate = endDateString.split('-');
|
||||||
|
var endTime = endTimeString.split(':');
|
||||||
if(startDateTime.getTime() >= endDateTime.getTime()){
|
var endDateTime = new Date(endDate[0], parseInt(endDate[1], 10)-1, endDate[2], endTime[0], endTime[1], 0, 0);
|
||||||
var duration = $('#add_show_duration').val();
|
|
||||||
// parse duration
|
if(startDateTime.getTime() >= endDateTime.getTime()){
|
||||||
var time = 0;
|
var duration = $('#add_show_duration').val();
|
||||||
var info = duration.split(' ');
|
// parse duration
|
||||||
var h = parseInt(info[0], 10);
|
var time = 0;
|
||||||
time += h * 60 * 60* 1000;
|
var info = duration.split(' ');
|
||||||
if(info.length >1 && $.trim(info[1]) !== ''){
|
var h = parseInt(info[0], 10);
|
||||||
var m = parseInt(info[1], 10);
|
time += h * 60 * 60* 1000;
|
||||||
time += m * 60 * 1000;
|
if(info.length >1 && $.trim(info[1]) !== ''){
|
||||||
}
|
var m = parseInt(info[1], 10);
|
||||||
endDateTime = new Date(startDateTime.getTime() + time);
|
time += m * 60 * 1000;
|
||||||
}
|
}
|
||||||
|
endDateTime = new Date(startDateTime.getTime() + time);
|
||||||
var endDateFormat = endDateTime.getFullYear() + '-' + pad(endDateTime.getMonth()+1,2) + '-' + pad(endDateTime.getDate(),2);
|
}
|
||||||
var endTimeFormat = pad(endDateTime.getHours(),2) + ':' + pad(endDateTime.getMinutes(),2);
|
|
||||||
|
var endDateFormat = endDateTime.getFullYear() + '-' + pad(endDateTime.getMonth()+1,2) + '-' + pad(endDateTime.getDate(),2);
|
||||||
$('#add_show_end_date_no_repeat').val(endDateFormat);
|
var endTimeFormat = pad(endDateTime.getHours(),2) + ':' + pad(endDateTime.getMinutes(),2);
|
||||||
$('#add_show_end_time').val(endTimeFormat);
|
|
||||||
|
$('#add_show_end_date_no_repeat').val(endDateFormat);
|
||||||
// calculate duration
|
$('#add_show_end_time').val(endTimeFormat);
|
||||||
var startDateTimeString = startDateString + " " + startTimeString;
|
|
||||||
var endDateTimeString = $('#add_show_end_date_no_repeat').val() + " " + $('#add_show_end_time').val();
|
// calculate duration
|
||||||
calculateDuration(startDateTimeString, endDateTimeString);
|
var startDateTimeString = startDateString + " " + startTimeString;
|
||||||
|
var endDateTimeString = $('#add_show_end_date_no_repeat').val() + " " + $('#add_show_end_time').val();
|
||||||
|
calculateDuration(startDateTimeString, endDateTimeString);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// when end date/time changes, check if the changed date is in past of start date/time
|
// when end date/time changes, check if the changed date is in past of start date/time
|
||||||
$('#add_show_end_date_no_repeat, #add_show_end_time').change(function(){
|
$('#add_show_end_date_no_repeat, #add_show_end_time').bind('input', 'change', function(){
|
||||||
var startDateString = $('#add_show_start_date').val();
|
var endDateString = $('#add_show_end_date_no_repeat').val();
|
||||||
var startTimeString = $('#add_show_start_time').val();
|
|
||||||
var startDate = startDateString.split('-');
|
|
||||||
var startTime = startTimeString.split(':');
|
|
||||||
var startDateTime = new Date(startDate[0], parseInt(startDate[1], 10)-1, startDate[2], startTime[0], startTime[1], 0, 0);
|
|
||||||
|
|
||||||
var endDateString = $('#add_show_end_date_no_repeat').val();
|
|
||||||
var endTimeString = $('#add_show_end_time').val()
|
var endTimeString = $('#add_show_end_time').val()
|
||||||
var endDate = endDateString.split('-');
|
|
||||||
var endTime = endTimeString.split(':');
|
if(regDate.test(endDateString) && regTime.test(endTimeString)){
|
||||||
var endDateTime = new Date(endDate[0], parseInt(endDate[1], 10)-1, endDate[2], endTime[0], endTime[1], 0, 0);
|
var startDateString = $('#add_show_start_date').val();
|
||||||
|
var startTimeString = $('#add_show_start_time').val();
|
||||||
|
var startDate = startDateString.split('-');
|
||||||
|
var startTime = startTimeString.split(':');
|
||||||
|
var startDateTime = new Date(startDate[0], parseInt(startDate[1], 10)-1, startDate[2], startTime[0], startTime[1], 0, 0);
|
||||||
|
|
||||||
if(startDateTime.getTime() > endDateTime.getTime()){
|
var endDate = endDateString.split('-');
|
||||||
$('#add_show_end_date_no_repeat').css('background-color', '#F49C9C');
|
var endTime = endTimeString.split(':');
|
||||||
$('#add_show_end_time').css('background-color', '#F49C9C');
|
var endDateTime = new Date(endDate[0], parseInt(endDate[1], 10)-1, endDate[2], endTime[0], endTime[1], 0, 0);
|
||||||
}else{
|
|
||||||
$('#add_show_end_date_no_repeat').css('background-color', '');
|
if(startDateTime.getTime() > endDateTime.getTime()){
|
||||||
$('#add_show_end_time').css('background-color', '');
|
$('#add_show_end_date_no_repeat').css('background-color', '#F49C9C');
|
||||||
}
|
$('#add_show_end_time').css('background-color', '#F49C9C');
|
||||||
|
}else{
|
||||||
// calculate duration
|
$('#add_show_end_date_no_repeat').css('background-color', '');
|
||||||
var startDateTimeString = startDateString + " " + startTimeString;
|
$('#add_show_end_time').css('background-color', '');
|
||||||
var endDateTimeString = endDateString + " " + endTimeString;
|
}
|
||||||
calculateDuration(startDateTimeString, endDateTimeString);
|
|
||||||
|
// calculate duration
|
||||||
|
var startDateTimeString = startDateString + " " + startTimeString;
|
||||||
|
var endDateTimeString = endDateString + " " + endTimeString;
|
||||||
|
calculateDuration(startDateTimeString, endDateTimeString);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if($('#cb_custom_auth').attr('checked')){
|
if($('#cb_custom_auth').attr('checked')){
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue