diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index e3267cf09..99fdd923f 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -41,7 +41,7 @@ class LibraryController extends Zend_Controller_Action $user = new Application_Model_User($userInfo->id); //Open a jPlayer window and play the audio clip. - $menu["play"] = array("name"=> "Play", "icon" => "play"); + $menu["play"] = array("name"=> "Preview", "icon" => "play"); $isAdminOrPM = $user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)); diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index ccee5525c..a422b33f8 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -327,7 +327,10 @@ class Application_Model_StoredFile { throw new DeleteScheduledFileException(); } - if (file_exists($filepath)) { + $music_dir = Application_Model_MusicDir::getDirByPK($this->_file->getDbDirectory()); + $type = $music_dir->getType(); + + if (file_exists($filepath) && $type == "stor") { $data = array("filepath" => $filepath, "delete" => 1); Application_Model_RabbitMq::SendMessageToMediaMonitor("file_delete", $data); } diff --git a/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js b/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js index 1129bd020..d0be9d108 100644 --- a/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js +++ b/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js @@ -1,6 +1,6 @@ /** * -* Full Calendar callback methods. +* Full Calendar callback methods. * */ @@ -9,12 +9,12 @@ function scheduleRefetchEvents(json) { alert("The show instance doesn't exist anymore!"); } if(json.show_id) { - var dialog_id = parseInt($("#add_show_id").val(), 10); - - //if you've deleted the show you are currently editing, close the add show dialog. - if (dialog_id === json.show_id) { - $("#add-show-close").click(); - } + var dialog_id = parseInt($("#add_show_id").val(), 10); + + //if you've deleted the show you are currently editing, close the add show dialog. + if (dialog_id === json.show_id) { + $("#add-show-close").click(); + } } $("#schedule_calendar").fullCalendar( 'refetchEvents' ); } @@ -31,9 +31,9 @@ function openAddShowForm() { $("#schedule_calendar").fullCalendar('render'); } $("#schedule-show-what").show(0, function(){ - $add_show_name = $("#add_show_name"); - $add_show_name.focus(); - $add_show_name.select(); + $add_show_name = $("#add_show_name"); + $add_show_name.focus(); + $add_show_name.select(); }); } } @@ -59,16 +59,16 @@ function removeAddShowButton(){ } function makeTimeStamp(date){ - var sy, sm, sd, h, m, s, timestamp; - sy = date.getFullYear(); - sm = date.getMonth() + 1; - sd = date.getDate(); - h = date.getHours(); - m = date.getMinutes(); - s = date.getSeconds(); + var sy, sm, sd, h, m, s, timestamp; + sy = date.getFullYear(); + sm = date.getMonth() + 1; + sd = date.getDate(); + h = date.getHours(); + m = date.getMinutes(); + s = date.getSeconds(); - timestamp = sy+"-"+ pad(sm, 2) +"-"+ pad(sd, 2) +" "+ pad(h, 2) +":"+ pad(m, 2) +":"+ pad(s, 2); - return timestamp; + timestamp = sy+"-"+ pad(sm, 2) +"-"+ pad(sd, 2) +" "+ pad(h, 2) +":"+ pad(m, 2) +":"+ pad(s, 2); + return timestamp; } function dayClick(date, allDay, jsEvent, view){ @@ -76,9 +76,9 @@ function dayClick(date, allDay, jsEvent, view){ // Hence, if the user if DJ then it won't open anything. if(userType == "A" || userType == "P"){ var now, today, selected, chosenDate, chosenTime; - + now = adjustDateToServerDate(new Date(), serverTimezoneOffset); - + if(view.name === "month") { today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); selected = new Date(date.getFullYear(), date.getMonth(), date.getDate()); @@ -87,17 +87,17 @@ function dayClick(date, allDay, jsEvent, view){ today = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes()); selected = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes()); } - + if(selected >= today) { var addShow = $('.add-button'); - + //remove the +show button if it exists. if(addShow.length == 1){ var span = $(addShow).parent(); $(span).prev().remove(); $(span).remove(); } - + // get current duration value on the form var duration_string = $.trim($("#add_show_duration").val()); var duration_info = duration_string.split(" "); @@ -111,7 +111,7 @@ function dayClick(date, allDay, jsEvent, view){ } // duration in milisec var duration = (duration_h * 60 * 60 * 1000) + (duration_m * 60 * 1000); - + var startTime_string, startTime // get start time value on the form if(view.name === "month") { @@ -124,13 +124,13 @@ function dayClick(date, allDay, jsEvent, view){ startTime_string = pad(selected.getHours(),2)+":"+pad(selected.getMinutes(),2) startTime = 0 } - + // calculate endDateTime var endDateTime = new Date(selected.getTime() + startTime + duration); - + chosenDate = selected.getFullYear() + '-' + pad(selected.getMonth()+1,2) + '-' + pad(selected.getDate(),2); var endDateFormat = endDateTime.getFullYear() + '-' + pad(endDateTime.getMonth()+1,2) + '-' + pad(endDateTime.getDate(),2); - + $("#add_show_start_date").val(chosenDate); $("#add_show_end_date_no_repeat").val(endDateFormat); $("#add_show_end_date").val(endDateFormat); @@ -140,7 +140,7 @@ function dayClick(date, allDay, jsEvent, view){ $("#add_show_end_time").val(endTimeString) } $("#schedule-show-when").show(); - + openAddShowForm(); } } @@ -173,10 +173,10 @@ function viewDisplay( view ) { .fullCalendar('destroy') .fullCalendar(opt) .fullCalendar( 'gotoDate', date ); - + //save slotMin value to db var url = '/Schedule/set-time-interval/format/json'; - $.post(url, {timeInterval: slotMin}); + $.post(url, {timeInterval: slotMin}); }); var topLeft = $(view.element).find("table.fc-agenda-days > thead th:first"); @@ -192,146 +192,128 @@ function viewDisplay( view ) { } if(($("#add-show-form").length == 1) && ($("#add-show-form").css('display')=='none') && ($('.fc-header-left > span').length == 5)) { - + //userType is defined in bootstrap.php, and is derived from the currently logged in user. if(userType == "A" || userType == "P"){ makeAddShowButton(); } } - + //save view name to db var url = '/Schedule/set-time-scale/format/json'; $.post(url, {timeScale: view.name}); } function eventRender(event, element, view) { - - $(element).data("event", event); + + $(element).data("event", event); //only put progress bar on shows that aren't being recorded. - if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 0) { - var div = $('
'); - div - .height('5px') - .width('95%') - .css('margin-top', '1px') + if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 0) { + var div = $('
'); + div + .height('5px') + .width('95%') + .css('margin-top', '1px') .css('margin-left', 'auto') .css('margin-right', 'auto') - .progressbar({ - value: event.percent - }); + .progressbar({ + value: event.percent + }); - $(element).find(".fc-event-content").append(div); - } + $(element).find(".fc-event-content").append(div); + } - //add the record/rebroadcast icons if needed. - //record icon (only if not on soundcloud, will always be true for future events) + //add the record/rebroadcast/soundcloud icons if needed if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 1 && event.soundcloud_id === -1) { + $(element).find(".fc-event-time").before(''); + } else if ((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 1 && event.soundcloud_id > 0) { + $(element).find(".fc-event-time").before(''); + } else if ((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 1 && event.soundcloud_id === -2) { + $(element).find(".fc-event-time").before(''); + } else if ((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 1 && event.soundcloud_id === -3) { + $(element).find(".fc-event-time").before(''); + } - $(element).find(".fc-event-time").before(''); - } if(view.name === 'month' && event.record === 1 && event.soundcloud_id === -1) { + $(element).find(".fc-event-title").after(''); + } else if (view.name === 'month' && event.record === 1 && event.soundcloud_id > 0) { + $(element).find(".fc-event-title").after(''); + } else if (view.name === 'month' && event.record === 1 && event.soundcloud_id === -2) { + $(element).find(".fc-event-title").after(''); + } else if (view.name === 'month' && event.record === 1 && event.soundcloud_id === -3) { + $(element).find(".fc-event-title").after(''); + } - $(element).find(".fc-event-title").after(''); - } //rebroadcast icon if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.rebroadcast === 1) { - $(element).find(".fc-event-time").before(''); - } + $(element).find(".fc-event-time").before(''); + } if(view.name === 'month' && event.rebroadcast === 1) { - $(element).find(".fc-event-title").after(''); - } - //soundcloud icon - if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.soundcloud_id > 0 && event.record === 1) { - - $(element).find(".fc-event-time").before(''); - } - if(view.name === 'month' && event.soundcloud_id > 0 && event.record === 1) { - - $(element).find(".fc-event-title").after(''); - } - - //progress icon - if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.soundcloud_id === -2 && event.record === 1) { - - $(element).find(".fc-event-time").before(''); - } - if(view.name === 'month' && event.soundcloud_id === -2 && event.record === 1) { - - $(element).find(".fc-event-title").after(''); - } - - //error icon - if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.soundcloud_id === -3 && event.record === 1) { - - $(element).find(".fc-event-time").before(''); - } - if(view.name === 'month' && event.soundcloud_id === -3 && event.record === 1) { - - $(element).find(".fc-event-title").after(''); + $(element).find(".fc-event-title").after(''); } } function eventAfterRender( event, element, view ) { - + $(element).find(".small-icon").live('mouseover',function(){ addQtipToSCIcons($(this)); }); } function eventDrop(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) { - var url; + var url; - url = '/Schedule/move-show/format/json'; + url = '/Schedule/move-show/format/json'; - $.post(url, - {day: dayDelta, min: minuteDelta, showInstanceId: event.id}, - function(json){ - if(json.show_error == true){ + $.post(url, + {day: dayDelta, min: minuteDelta, showInstanceId: event.id}, + function(json){ + if(json.show_error == true){ alertShowErrorAndReload(); } - if(json.error) { + if(json.error) { alert(json.error); - revertFunc(); - } - }); + revertFunc(); + } + }); } function eventResize( event, dayDelta, minuteDelta, revertFunc, jsEvent, ui, view ) { - var url; + var url; - url = '/Schedule/resize-show/format/json'; + url = '/Schedule/resize-show/format/json'; - $.post(url, - {day: dayDelta, min: minuteDelta, showId: event.showId}, - function(json){ - if(json.show_error == true){ + $.post(url, + {day: dayDelta, min: minuteDelta, showId: event.showId}, + function(json){ + if(json.show_error == true){ alertShowErrorAndReload(); } - if(json.error) { + if(json.error) { alert(json.error); - revertFunc(); - } + revertFunc(); + } scheduleRefetchEvents(json); - }); + }); } function getFullCalendarEvents(start, end, callback) { - var url, start_date, end_date; + var url, start_date, end_date; - start_date = makeTimeStamp(start); - end_date = makeTimeStamp(end); + start_date = makeTimeStamp(start); + end_date = makeTimeStamp(end); - url = '/Schedule/event-feed'; + url = '/Schedule/event-feed'; - var d = new Date(); + var d = new Date(); - $.post(url, {format: "json", start: start_date, end: end_date, cachep: d.getTime()}, function(json){ - callback(json.events); - }); + $.post(url, {format: "json", start: start_date, end: end_date, cachep: d.getTime()}, function(json){ + callback(json.events); + }); } function checkSCUploadStatus(){ @@ -340,9 +322,9 @@ function checkSCUploadStatus(){ var id = $(this).attr("id"); $.post(url, {format: "json", id: id, type:"show"}, function(json){ if(json.sc_id > 0){ - $("span[id="+id+"]").removeClass("progress").addClass("soundcloud"); + $("span[id="+id+"]:not(.recording)").removeClass("progress").addClass("soundcloud"); }else if(json.sc_id == "-3"){ - $("span[id="+id+"]").removeClass("progress").addClass("sc-error"); + $("span[id="+id+"]:not(.recording)").removeClass("progress").addClass("sc-error"); } }); }); diff --git a/install_minimal/include/AirtimeInstall.php b/install_minimal/include/AirtimeInstall.php index e656bf983..d0c2ed3f7 100644 --- a/install_minimal/include/AirtimeInstall.php +++ b/install_minimal/include/AirtimeInstall.php @@ -321,6 +321,10 @@ class AirtimeInstall $con = Propel::getConnection(); // we need to run php as commandline because we want to get the timezone in cli php.ini file $defaultTimezone = exec("php -r 'echo date_default_timezone_get().PHP_EOL;'"); + $defaultTimezone = trim($defaultTimezone); + if((!in_array($defaultTimezone, DateTimeZone::listIdentifiers()))){ + $defaultTimezone = "UTC"; + } $sql = "INSERT INTO cc_pref (keystr, valstr) VALUES ('timezone', '$defaultTimezone')"; $result = $con->exec($sql); if ($result < 1) {