CC-3174 : showbuilder
adding add/remove to the context menu. airtimeline now has default set start/end times in the inputs.
This commit is contained in:
parent
fdd962f5ce
commit
941da1fe44
|
@ -198,20 +198,24 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$showStartLocalDT = Application_Model_DateHelper::ConvertToLocalDateTime($instance->getShowInstanceStart());
|
$showStartLocalDT = Application_Model_DateHelper::ConvertToLocalDateTime($instance->getShowInstanceStart());
|
||||||
$showEndLocalDT = Application_Model_DateHelper::ConvertToLocalDateTime($instance->getShowInstanceEnd());
|
$showEndLocalDT = Application_Model_DateHelper::ConvertToLocalDateTime($instance->getShowInstanceEnd());
|
||||||
|
|
||||||
|
if ($epochNow < $showStartLocalDT->getTimestamp()) {
|
||||||
|
|
||||||
|
if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER, UTYPE_HOST), $instance->getShowId())
|
||||||
|
&& !$instance->isRecorded()
|
||||||
|
&& !$instance->isRebroadcast()) {
|
||||||
|
|
||||||
|
$menu["schedule"] = array("name"=> "Add / Remove Content", "url" => "/showbuilder/index/");
|
||||||
|
|
||||||
|
$menu["clear"] = array("name"=> "Remove All Content", "icon" => "delete", "url" => "/schedule/clear-show");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if ($epochNow < $showStartDateHelper->getTimestamp()) {
|
|
||||||
|
|
||||||
if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER, UTYPE_HOST),$show->getShowId()) && !$show->isRecorded() && !$show->isRebroadcast()) {
|
|
||||||
|
|
||||||
$menu[] = array('action' => array('type' => 'ajax', 'url' => '/Schedule/schedule-show-dialog'.$params,
|
|
||||||
'callback' => 'window["buildScheduleDialog"]'), 'title' => 'Add / Remove Content');
|
|
||||||
|
|
||||||
$menu[] = array('action' => array('type' => 'ajax', 'url' => '/Schedule/clear-show'.$params,
|
$menu[] = array('action' => array('type' => 'ajax', 'url' => '/Schedule/clear-show'.$params,
|
||||||
'callback' => 'window["scheduleRefetchEvents"]'), 'title' => 'Remove All Content');
|
'callback' => 'window["scheduleRefetchEvents"]'), 'title' => 'Remove All Content');
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
if (!$instance->isRecorded()) {
|
if (!$instance->isRecorded()) {
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,20 @@ class ShowbuilderController extends Zend_Controller_Action
|
||||||
$request = $this->getRequest();
|
$request = $this->getRequest();
|
||||||
$baseUrl = $request->getBaseUrl();
|
$baseUrl = $request->getBaseUrl();
|
||||||
|
|
||||||
|
$now = time();
|
||||||
|
$from = $request->getParam("from", $now);
|
||||||
|
$to = $request->getParam("to", $now+(24*60*60));
|
||||||
|
|
||||||
|
$start = DateTime::createFromFormat("U", $from, new DateTimeZone("UTC"));
|
||||||
|
$start->setTimezone(new DateTimeZone(date_default_timezone_get()));
|
||||||
|
$end = DateTime::createFromFormat("U", $to, new DateTimeZone("UTC"));
|
||||||
|
$end->setTimezone(new DateTimeZone(date_default_timezone_get()));
|
||||||
|
|
||||||
|
$this->view->start_date = $start->format("Y-m-d");
|
||||||
|
$this->view->start_time = $start->format("H:i");
|
||||||
|
$this->view->end_date = $end->format("Y-m-d");
|
||||||
|
$this->view->end_time = $end->format("H:i");
|
||||||
|
|
||||||
$this->view->headScript()->appendScript("var serverTimezoneOffset = ".date("Z")."; //in seconds");
|
$this->view->headScript()->appendScript("var serverTimezoneOffset = ".date("Z")."; //in seconds");
|
||||||
$this->view->headScript()->appendFile($baseUrl.'/js/timepicker/jquery.ui.timepicker.js','text/javascript');
|
$this->view->headScript()->appendFile($baseUrl.'/js/timepicker/jquery.ui.timepicker.js','text/javascript');
|
||||||
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/showbuilder/builder.js','text/javascript');
|
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/showbuilder/builder.js','text/javascript');
|
||||||
|
|
|
@ -1527,13 +1527,15 @@ class Application_Model_Show {
|
||||||
$endDateTime = new DateTime($show["ends"], new DateTimeZone("UTC"));
|
$endDateTime = new DateTime($show["ends"], new DateTimeZone("UTC"));
|
||||||
$endDateTime->setTimezone(new DateTimeZone(date_default_timezone_get()));
|
$endDateTime->setTimezone(new DateTimeZone(date_default_timezone_get()));
|
||||||
|
|
||||||
$event["id"] = $show["instance_id"];
|
$event["id"] = intval($show["instance_id"]);
|
||||||
$event["title"] = $show["name"];
|
$event["title"] = $show["name"];
|
||||||
$event["start"] = $startDateTime->format("Y-m-d H:i:s");
|
$event["start"] = $startDateTime->format("Y-m-d H:i:s");
|
||||||
|
$event["startUnix"] = $startDateTime->format("U");
|
||||||
$event["end"] = $endDateTime->format("Y-m-d H:i:s");
|
$event["end"] = $endDateTime->format("Y-m-d H:i:s");
|
||||||
|
$event["endUnix"] = $endDateTime->format("U");
|
||||||
$event["allDay"] = false;
|
$event["allDay"] = false;
|
||||||
$event["description"] = $show["description"];
|
$event["description"] = $show["description"];
|
||||||
$event["showId"] = $show["show_id"];
|
$event["showId"] = intval($show["show_id"]);
|
||||||
$event["record"] = intval($show["record"]);
|
$event["record"] = intval($show["record"]);
|
||||||
$event["rebroadcast"] = intval($show["rebroadcast"]);
|
$event["rebroadcast"] = intval($show["rebroadcast"]);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<input type="text" id="show_builder_datepicker_start" class="input_text"></input>
|
<input type="text" id="show_builder_datepicker_start" class="input_text" value="<?php echo $this->start_date?>"></input>
|
||||||
<input type="text" id="show_builder_timepicker_start" class="input_text"></input>
|
<input type="text" id="show_builder_timepicker_start" class="input_text" value="<?php echo $this->start_time?>"></input>
|
||||||
<input type="text" id="show_builder_datepicker_end" class="input_text"></input>
|
<input type="text" id="show_builder_datepicker_end" class="input_text" value="<?php echo $this->end_date?>"></input>
|
||||||
<input type="text" id="show_builder_timepicker_end" class="input_text"></input>
|
<input type="text" id="show_builder_timepicker_end" class="input_text" value="<?php echo $this->end_time?>"></input>
|
||||||
<input type="button" id="show_builder_timerange_button" class="ui-button ui-state-default" value="GO"></input>
|
<input type="button" id="show_builder_timerange_button" class="ui-button ui-state-default" value="GO"></input>
|
||||||
<table id="show_builder_table" cellpadding="0" cellspacing="0" class="datatable"></table>
|
<table id="show_builder_table" cellpadding="0" cellspacing="0" class="datatable"></table>
|
||||||
|
|
|
@ -379,6 +379,26 @@ $(window).load(function() {
|
||||||
|
|
||||||
function processMenuItems(oItems) {
|
function processMenuItems(oItems) {
|
||||||
|
|
||||||
|
//define a schedule callback.
|
||||||
|
if (oItems.schedule !== undefined) {
|
||||||
|
|
||||||
|
callback = function() {
|
||||||
|
document.location = oItems.schedule.url + "from/" + data.startUnix + "/to/" + data.endUnix;
|
||||||
|
};
|
||||||
|
oItems.schedule.callback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
//define a clear callback.
|
||||||
|
if (oItems.clear !== undefined) {
|
||||||
|
|
||||||
|
callback = function() {
|
||||||
|
$.post(oItems.clear.url, {format: "json", id: data.id}, function(json){
|
||||||
|
scheduleRefetchEvents(json);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
oItems.clear.callback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
//define an edit callback.
|
//define an edit callback.
|
||||||
if (oItems.edit !== undefined) {
|
if (oItems.edit !== undefined) {
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,10 @@ $(document).ready(function() {
|
||||||
oBaseDatePickerSettings,
|
oBaseDatePickerSettings,
|
||||||
oBaseTimePickerSettings,
|
oBaseTimePickerSettings,
|
||||||
fnAddSelectedItems,
|
fnAddSelectedItems,
|
||||||
fnRemoveSelectedItems;
|
fnRemoveSelectedItems,
|
||||||
|
oRange,
|
||||||
|
fnServerData,
|
||||||
|
fnShowBuilderRowCallback;
|
||||||
|
|
||||||
oBaseDatePickerSettings = {
|
oBaseDatePickerSettings = {
|
||||||
dateFormat: 'yy-mm-dd',
|
dateFormat: 'yy-mm-dd',
|
||||||
|
@ -35,11 +38,9 @@ $(document).ready(function() {
|
||||||
* @return Number iTime
|
* @return Number iTime
|
||||||
*/
|
*/
|
||||||
function fnGetUIPickerUnixTimestamp(sDatePickerId, sTimePickerId) {
|
function fnGetUIPickerUnixTimestamp(sDatePickerId, sTimePickerId) {
|
||||||
var oDate,
|
var date,
|
||||||
oTimePicker = $( sTimePickerId ),
|
time,
|
||||||
iTime,
|
iTime,
|
||||||
iHour,
|
|
||||||
iMin,
|
|
||||||
iServerOffset,
|
iServerOffset,
|
||||||
iClientOffset;
|
iClientOffset;
|
||||||
|
|
||||||
|
@ -47,18 +48,16 @@ $(document).ready(function() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
oDate = $( sDatePickerId ).datepicker( "getDate" );
|
//string.split(separator, limit)
|
||||||
|
|
||||||
//nothing has been selected from this datepicker.
|
date = $(sDatePickerId).val();
|
||||||
if (oDate === null) {
|
time = $(sTimePickerId).val();
|
||||||
oDate = new Date();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
iHour = oTimePicker.timepicker('getHour');
|
|
||||||
iMin = oTimePicker.timepicker('getMinute');
|
|
||||||
|
|
||||||
oDate.setHours(iHour, iMin);
|
date = date.split("-");
|
||||||
}
|
time = time.split(":");
|
||||||
|
|
||||||
|
//0 based month in js.
|
||||||
|
oDate = new Date(date[0], date[1]-1, date[2], time[0], time[1]);
|
||||||
|
|
||||||
iTime = oDate.getTime(); //value is in millisec.
|
iTime = oDate.getTime(); //value is in millisec.
|
||||||
iTime = Math.round(iTime / 1000);
|
iTime = Math.round(iTime / 1000);
|
||||||
|
@ -98,7 +97,7 @@ $(document).ready(function() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var fnServerData = function ( sSource, aoData, fnCallback ) {
|
fnServerData = function ( sSource, aoData, fnCallback ) {
|
||||||
aoData.push( { name: "format", value: "json"} );
|
aoData.push( { name: "format", value: "json"} );
|
||||||
|
|
||||||
if (fnServerData.hasOwnProperty("start")) {
|
if (fnServerData.hasOwnProperty("start")) {
|
||||||
|
@ -117,7 +116,11 @@ $(document).ready(function() {
|
||||||
} );
|
} );
|
||||||
};
|
};
|
||||||
|
|
||||||
var fnShowBuilderRowCallback = function ( nRow, aData, iDisplayIndex, iDisplayIndexFull ){
|
oRange = fnGetScheduleRange();
|
||||||
|
fnServerData.start = oRange.start;
|
||||||
|
fnServerData.end = oRange.end;
|
||||||
|
|
||||||
|
fnShowBuilderRowCallback = function ( nRow, aData, iDisplayIndex, iDisplayIndexFull ){
|
||||||
var i,
|
var i,
|
||||||
sSeparatorHTML,
|
sSeparatorHTML,
|
||||||
fnPrepareSeparatorRow,
|
fnPrepareSeparatorRow,
|
||||||
|
|
Loading…
Reference in New Issue