darg into and drag around in the timeline is now working. need to change schedule table to not have auto incrementing ids to preserve an item's id for REST. (might find another way)
128 lines
No EOL
4 KiB
PHP
128 lines
No EOL
4 KiB
PHP
<?php
|
|
|
|
class ShowbuilderController extends Zend_Controller_Action
|
|
{
|
|
|
|
public function init()
|
|
{
|
|
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
|
$ajaxContext->addActionContext('schedule-move', 'json')
|
|
->addActionContext('schedule-add', 'json')
|
|
->addActionContext('schedule-remove', 'json')
|
|
->addActionContext('builder-feed', 'json')
|
|
->initContext();
|
|
}
|
|
|
|
public function indexAction() {
|
|
|
|
$this->_helper->layout->setLayout('builder');
|
|
|
|
$this->view->headScript()->appendFile($this->view->baseUrl('/js/airtime/library/events/library_showbuilder.js'),'text/javascript');
|
|
|
|
$this->_helper->actionStack('library', 'library');
|
|
$this->_helper->actionStack('builder', 'showbuilder');
|
|
}
|
|
|
|
public function builderAction() {
|
|
|
|
$request = $this->getRequest();
|
|
$baseUrl = $request->getBaseUrl();
|
|
|
|
$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/airtime/showbuilder/builder.js','text/javascript');
|
|
|
|
$this->view->headLink()->appendStylesheet($baseUrl.'/css/jquery.ui.timepicker.css');
|
|
$this->view->headLink()->appendStylesheet($baseUrl.'/css/showbuilder.css');
|
|
|
|
$this->_helper->viewRenderer->setResponseSegment('builder');
|
|
}
|
|
|
|
public function builderFeedAction() {
|
|
|
|
$request = $this->getRequest();
|
|
$current_time = time();
|
|
|
|
$starts_epoch = $request->getParam("start", $current_time);
|
|
//default ends is 24 hours after starts.
|
|
$ends_epoch = $request->getParam("end", $current_time + (60*60*24));
|
|
|
|
$startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC"));
|
|
$endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC"));
|
|
|
|
Logging::log("showbuilder starts {$startsDT->format("Y-m-d H:i:s")}");
|
|
Logging::log("showbuilder ends {$endsDT->format("Y-m-d H:i:s")}");
|
|
|
|
$showBuilder = new Application_Model_ShowBuilder($startsDT, $endsDT);
|
|
|
|
$this->view->schedule = $showBuilder->GetItems();
|
|
}
|
|
|
|
public function scheduleAddAction() {
|
|
|
|
$request = $this->getRequest();
|
|
|
|
$mediaItems = $request->getParam("mediaIds", null);
|
|
$scheduledIds = $request->getParam("schedIds", null);
|
|
|
|
$json = array();
|
|
|
|
try {
|
|
$scheduler = new Application_Model_Scheduler();
|
|
$scheduler->scheduleAfter($scheduledIds, $mediaItems);
|
|
|
|
$json["message"]="success... maybe";
|
|
}
|
|
catch (Exception $e) {
|
|
$json["message"]=$e->getMessage();
|
|
Logging::log($e->getMessage());
|
|
}
|
|
|
|
$this->view->data = $json;
|
|
}
|
|
|
|
public function scheduleRemoveAction()
|
|
{
|
|
$request = $this->getRequest();
|
|
|
|
$ids = $request->getParam("ids", null);
|
|
|
|
$json = array();
|
|
|
|
try {
|
|
$scheduler = new Application_Model_Scheduler();
|
|
$scheduler->removeItems($ids);
|
|
|
|
$json["message"]="success... maybe";
|
|
}
|
|
catch (Exception $e) {
|
|
$json["message"]=$e->getMessage();
|
|
Logging::log($e->getMessage());
|
|
}
|
|
|
|
$this->view->data = $json;
|
|
}
|
|
|
|
public function scheduleMoveAction() {
|
|
|
|
$request = $this->getRequest();
|
|
|
|
$selectedItem = $request->getParam("selectedItem");
|
|
$afterItem = $request->getParam("afterItem");
|
|
|
|
$json = array();
|
|
|
|
try {
|
|
$scheduler = new Application_Model_Scheduler();
|
|
$scheduler->moveItem($selectedItem, $afterItem);
|
|
|
|
$json["message"]="success... maybe";
|
|
}
|
|
catch (Exception $e) {
|
|
$json["message"]=$e->getMessage();
|
|
Logging::log($e->getMessage());
|
|
}
|
|
|
|
$this->view->data = $json;
|
|
}
|
|
} |