sintonia/public/js/airtime/schedule/add-show.js

262 lines
7.2 KiB
JavaScript
Raw Normal View History

/**
*
* Schedule Dialog creation methods.
*
*/
//dateText mm-dd-yy
function startDpSelect(dateText, inst) {
var time, date;
time = dateText.split("-");
date = new Date(time[0], time[1] - 1, time[2]);
$("#add_show_end_date").datepicker("option", "minDate", date);
}
function endDpSelect(dateText, inst) {
var time, date;
time = dateText.split("-");
date = new Date(time[0], time[1] - 1, time[2]);
$("#add_show_start_date").datepicker( "option", "maxDate", date);
}
function createDateInput(el, onSelect) {
var date;
el.datepicker({
minDate: new Date(),
onSelect: onSelect,
dateFormat: 'yy-mm-dd'
});
}
function autoSelect(event, ui) {
$("#add_show_hosts-"+ui.item.value).attr("checked", "checked");
event.preventDefault();
}
function findHosts(request, callback) {
var search, url;
url = "/User/get-hosts";
search = request.term;
$.post(url,
{format: "json", term: search},
function(json) {
callback(json.hosts);
});
}
function setAddShowEvents() {
var form = $("#add-show-form");
form.find("h3").click(function(){
2011-02-10 00:10:46 +01:00
$(this).next().toggle();
});
2011-01-31 02:11:18 +01:00
if(!form.find("#add_show_repeats").attr('checked')) {
form.find("#schedule-show-when > fieldset:last").hide();
2011-01-31 02:11:18 +01:00
}
if(!form.find("#add_show_record").attr('checked')) {
form.find("#add_show_rebroadcast").hide();
}
if(!form.find("#add_show_rebroadcast").attr('checked')) {
form.find("#schedule-record-rebroadcast > fieldset:not(:first-child)").hide();
}
form.find("#add_show_repeats").click(function(){
$(this).blur();
form.find("#schedule-show-when > fieldset:last").toggle();
//must switch rebroadcast displays
if(form.find("#add_show_rebroadcast").attr('checked')) {
if($(this).attr('checked')){
form.find("#schedule-record-rebroadcast > fieldset:eq(1)").hide();
form.find("#schedule-record-rebroadcast > fieldset:last").show();
}
else {
form.find("#schedule-record-rebroadcast > fieldset:eq(1)").show();
form.find("#schedule-record-rebroadcast > fieldset:last").hide();
}
}
});
form.find("#add_show_record").click(function(){
$(this).blur();
form.find("#add_show_rebroadcast").toggle();
});
form.find("#add_show_rebroadcast").click(function(){
$(this).blur();
if($(this).attr('checked') && !form.find("#add_show_repeats").attr('checked')) {
form.find("#schedule-record-rebroadcast > fieldset:eq(1)").show();
}
else if($(this).attr('checked') && form.find("#add_show_repeats").attr('checked')) {
form.find("#schedule-record-rebroadcast > fieldset:last").show();
}
else {
form.find("#schedule-record-rebroadcast > fieldset:not(:first-child)").hide();
}
2011-01-31 02:11:18 +01:00
});
form.find("#add_show_repeat_type").change(function(){
if($(this).val() == 2) {
form.find("#add_show_day_check-label, #add_show_day_check-element").hide();
}
else {
form.find("#add_show_day_check-label, #add_show_day_check-element").show();
}
});
form.find("#add_show_day_check-label").addClass("block-display");
form.find("#add_show_day_check-element").addClass("block-display clearfix");
form.find("#add_show_day_check-element label").addClass("wrapp-label");
form.find("#add_show_day_check-element br").remove();
form.find("#add_show_no_end").click(function(){
form.find("#add_show_end_date").toggle();
});
createDateInput(form.find("#add_show_start_date"), startDpSelect);
createDateInput(form.find("#add_show_end_date"), endDpSelect);
form.find("#add_show_start_time").timepicker({
amPmText: ['', '']
});
form.find("#add_show_duration").timepicker({
2011-02-11 01:53:41 +01:00
amPmText: ['', ''],
defaultTime: '01:00'
});
2011-01-29 00:24:52 +01:00
form.find('input[name^="add_show_rebroadcast_absolute_date"]').datepicker({
//minDate: new Date(),
dateFormat: 'yy-mm-dd'
});
form.find('input[name^="add_show_rebroadcast_absolute_time"], input[name^="add_show_rebroadcast_time"]').timepicker({
amPmText: ['', ''],
defaultTime: ''
});
form.find("#add_show_hosts_autocomplete").autocomplete({
source: findHosts,
select: autoSelect,
delay: 200
});
form.find("#schedule-show-style input").ColorPicker({
onChange: function (hsb, hex, rgb, el) {
$(el).val(hex);
},
onSubmit: function(hsb, hex, rgb, el) {
$(el).val(hex);
$(el).ColorPickerHide();
},
onBeforeShow: function () {
$(this).ColorPickerSetColor(this.value);
}
});
2011-02-10 01:08:27 +01:00
form.find("#add-show-close")
2011-02-10 01:08:27 +01:00
.click(function(event){
event.stopPropagation();
event.preventDefault();
2011-02-10 06:17:07 +01:00
var y = $("#schedule_calendar").width();
var z = $("#schedule-add-show").width();
$("#schedule_calendar").width(y+z+50);
$("#schedule_calendar").fullCalendar('render');
2011-02-10 01:08:27 +01:00
$("#add-show-form").hide();
2011-02-11 04:27:22 +01:00
makeAddShowButton();
2011-02-10 01:08:27 +01:00
});
form.find(".add-show-submit")
.click(function(event){
var addShowButton = $(this);
if (!addShowButton.hasClass("disabled")){
addShowButton.addClass("disabled");
} else {
return;
}
event.preventDefault();
var data = $("form").serializeArray();
var hosts = $('#add_show_hosts-element input').map(function() {
if($(this).attr("checked")) {
return $(this).val();
}
}).get();
2011-02-11 00:40:30 +01:00
var days = $('#add_show_day_check-element input').map(function() {
if($(this).attr("checked")) {
return $(this).val();
}
}).get();
var start_date = $("#add_show_start_date").val();
var end_date = $("#add_show_end_date").val();
2011-02-11 00:40:30 +01:00
$.post("/Schedule/add-show", {format: "json", data: data, hosts: hosts, days: days}, function(json){
addShowButton.removeClass("disabled");
if(json.form) {
$("#add-show-form")
.empty()
.append(json.form);
setAddShowEvents();
$("#add_show_end_date").val(end_date);
$("#add_show_start_date").val(start_date);
showErrorSections();
}
else {
$("#add-show-form")
.empty()
.append(json.newForm);
setAddShowEvents();
scheduleRefetchEvents();
}
});
});
}
function showErrorSections() {
2011-02-11 17:16:15 +01:00
if($("#schedule-show-what .errors").length > 0) {
$("#schedule-show-what").show();
}
if($("#schedule-show-when .errors").length > 0) {
$("#schedule-show-when").show();
}
if($("#schedule-show-who .errors").length > 0) {
$("#schedule-show-who").show();
}
if($("#schedule-show-style .errors").length > 0) {
$("#schedule-show-style").show();
}
}
$(document).ready(function() {
//setAddShowEvents();
});
$(window).load(function() {
setAddShowEvents();
});