128 lines
4.0 KiB
PHP
128 lines
4.0 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;
|
|
}
|
|
} |