/** * * 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); $('input[name^="add_show_rebroadcast_absolute_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(){ $(this).next().toggle(); }); if(!form.find("#add_show_repeats").attr('checked')) { form.find("#schedule-show-when > fieldset:last").hide(); $("#add_show_rebroadcast_relative").hide(); } else { $("#add_show_rebroadcast_absolute").hide(); } 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("#add_show_rebroadcast_absolute").hide(); form.find("#add_show_rebroadcast_relative").show(); } else { form.find("#add_show_rebroadcast_absolute").show(); form.find("#add_show_rebroadcast_relative").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("#add_show_rebroadcast_absolute").show(); } else if($(this).attr('checked') && form.find("#add_show_repeats").attr('checked')) { form.find("#add_show_rebroadcast_relative").show(); } else { form.find("#schedule-record-rebroadcast > fieldset:not(:first-child)").hide(); } }); 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(); function endDateVisibility(){ if(form.find("#add_show_no_end").is(':checked')){ form.find("#add_show_end_date").hide(); } else { form.find("#add_show_end_date").show(); } } endDateVisibility(); form.find("#add_show_no_end").click(endDateVisibility); 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({ amPmText: ['', ''], defaultTime: '01:00' }); form.find('input[name^="add_show_rebroadcast_date_absolute"]').datepicker({ minDate: new Date(), dateFormat: 'yy-mm-dd' }); form.find('input[name^="add_show_rebroadcast_time"]').timepicker({ amPmText: ['', ''], defaultTime: '' }); form.find(".add_absolute_rebroadcast_day").click(function(){ var li = $(this).prev().find("li:visible:last").next(); li.show(); li = li.next(); if(li.length === 0) { $(this).hide(); } }); form.find('a[id^="remove_rebroadcast"]').click(function(){ var list = $(this).parent().parent(); var li_num = $(this).parent().index(); var num = list.find("li").length; var count = num - li_num; var curr = $(this).parent(); var next = curr.next(); for(var i=0; i<=count; i++) { var date = next.find('[name^="add_show_rebroadcast_date"]').val(); curr.find('[name^="add_show_rebroadcast_date"]').val(date); var time = next.find('[name^="add_show_rebroadcast_time"]').val(); curr.find('[name^="add_show_rebroadcast_time"]').val(time); curr = next; next = curr.next(); } list.find("li:visible:last") .find('[name^="add_show_rebroadcast_date"]') .val('') .end() .find('[name^="add_show_rebroadcast_time"]') .val('') .end() .hide(); list.next().show(); }); 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); } }); form.find("#add-show-close") .click(function(event){ event.stopPropagation(); event.preventDefault(); var y = $("#schedule_calendar").width(); var z = $("#schedule-add-show").width(); $("#schedule_calendar").width(y+z+50) .fullCalendar('render'); $("#add-show-form").hide(); $.get("/Schedule/get-form", {format:"json"}, function(json){ $("#add-show-form") .empty() .append(json.form); setAddShowEvents(); }); makeAddShowButton(); }); 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(); 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(); $.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() { 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(); } if($("#add_show_rebroadcast_absolute .errors").length > 0) { $("#schedule-record-rebroadcast").show(); $("#add_show_rebroadcast_absolute").show(); } if($("#add_show_rebroadcast_relative .errors").length > 0) { $("#schedule-record-rebroadcast").show(); $("#add_show_rebroadcast_relative").show(); } } $(document).ready(function() { //setAddShowEvents(); }); $(window).load(function() { setAddShowEvents(); });