filtering by a host's show so they can edit their own playout history.

This commit is contained in:
Naomi 2013-08-28 19:37:46 -04:00
parent 653a6384b9
commit 429cdeeffb
6 changed files with 218 additions and 156 deletions

View File

@ -39,9 +39,9 @@ define('UI_MDATA_VALUE_FORMAT_FILE' , 'File');
define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream'); define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream');
//User types //User types
define('UTYPE_HOST' , 'H'); define('UTYPE_HOST' , 'H');
define('UTYPE_ADMIN' , 'A'); define('UTYPE_ADMIN' , 'A');
define('UTYPE_GUEST' , 'G'); define('UTYPE_GUEST' , 'G');
define('UTYPE_PROGRAM_MANAGER' , 'P'); define('UTYPE_PROGRAM_MANAGER' , 'P');
//Constants for playout history template fields //Constants for playout history template fields

View File

@ -138,25 +138,26 @@ class PlayouthistoryController extends Zend_Controller_Action
} }
} }
public function showHistoryFeedAction() public function showHistoryFeedAction()
{ {
try { try {
$request = $this->getRequest(); $request = $this->getRequest();
$current_time = time(); $current_time = time();
$starts_epoch = $request->getParam("start", $current_time - (60*60*24)); $starts_epoch = $request->getParam("start", $current_time - (60*60*24));
$ends_epoch = $request->getParam("end", $current_time); $ends_epoch = $request->getParam("end", $current_time);
$startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC")); $startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC"));
$endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC")); $endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC"));
$historyService = new Application_Service_HistoryService(); $historyService = new Application_Service_HistoryService();
$r = $historyService->getShowList($startsDT, $endsDT); $shows = $historyService->getShowList($startsDT, $endsDT);
} $this->_helper->json->sendJson($shows);
catch (Exception $e) { }
Logging::info($e); catch (Exception $e) {
Logging::info($e->getMessage()); Logging::info($e);
} Logging::info($e->getMessage());
}
} }
public function editFileItemAction() public function editFileItemAction()

View File

@ -13,131 +13,131 @@ class PlayouthistorytemplateController extends Zend_Controller_Action
->initContext(); ->initContext();
} }
public function indexAction() public function indexAction()
{ {
$CC_CONFIG = Config::getConfig(); $CC_CONFIG = Config::getConfig();
$baseUrl = Application_Common_OsPath::getBaseDir(); $baseUrl = Application_Common_OsPath::getBaseDir();
$this->view->headScript()->appendFile($baseUrl.'js/airtime/playouthistory/template.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/airtime/playouthistory/template.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headLink()->appendStylesheet($baseUrl.'css/history_styles.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'css/history_styles.css?'.$CC_CONFIG['airtime_version']);
$historyService = new Application_Service_HistoryService(); $historyService = new Application_Service_HistoryService();
$this->view->template_list = $historyService->getListItemTemplates(); $this->view->template_list = $historyService->getListItemTemplates();
$this->view->template_file = $historyService->getFileTemplates(); $this->view->template_file = $historyService->getFileTemplates();
$this->view->configured = $historyService->getConfiguredTemplateIds(); $this->view->configured = $historyService->getConfiguredTemplateIds();
} }
public function configureTemplateAction() { public function configureTemplateAction() {
$CC_CONFIG = Config::getConfig(); $CC_CONFIG = Config::getConfig();
$baseUrl = Application_Common_OsPath::getBaseDir(); $baseUrl = Application_Common_OsPath::getBaseDir();
$this->view->headScript()->appendFile($baseUrl.'js/airtime/playouthistory/configuretemplate.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/airtime/playouthistory/configuretemplate.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headLink()->appendStylesheet($baseUrl.'css/history_styles.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'css/history_styles.css?'.$CC_CONFIG['airtime_version']);
try { try {
$templateId = $this->_getParam('id'); $templateId = $this->_getParam('id');
$historyService = new Application_Service_HistoryService(); $historyService = new Application_Service_HistoryService();
$template = $historyService->loadTemplate($templateId); $template = $historyService->loadTemplate($templateId);
$templateType = $template["type"]; $templateType = $template["type"];
$supportedTypes = $historyService->getSupportedTemplateTypes(); $supportedTypes = $historyService->getSupportedTemplateTypes();
if (!in_array($templateType, $supportedTypes)) { if (!in_array($templateType, $supportedTypes)) {
throw new Exception("Error: $templateType is not supported."); throw new Exception("Error: $templateType is not supported.");
} }
$getMandatoryFields = "mandatory".ucfirst($templateType)."Fields"; $getMandatoryFields = "mandatory".ucfirst($templateType)."Fields";
$mandatoryFields = $historyService->$getMandatoryFields(); $mandatoryFields = $historyService->$getMandatoryFields();
$this->view->template_id = $templateId; $this->view->template_id = $templateId;
$this->view->template_name = $template["name"]; $this->view->template_name = $template["name"];
$this->view->template_fields = $template["fields"]; $this->view->template_fields = $template["fields"];
$this->view->template_type = $templateType; $this->view->template_type = $templateType;
$this->view->fileMD = $historyService->getFileMetadataTypes(); $this->view->fileMD = $historyService->getFileMetadataTypes();
$this->view->fields = $historyService->getFieldTypes(); $this->view->fields = $historyService->getFieldTypes();
$this->view->required_fields = $mandatoryFields; $this->view->required_fields = $mandatoryFields;
$this->view->configured = $historyService->getConfiguredTemplateIds(); $this->view->configured = $historyService->getConfiguredTemplateIds();
} }
catch (Exception $e) { catch (Exception $e) {
Logging::info("Error?"); Logging::info("Error?");
Logging::info($e); Logging::info($e);
Logging::info($e->getMessage()); Logging::info($e->getMessage());
$this->_forward('index', 'playouthistorytemplate'); $this->_forward('index', 'playouthistorytemplate');
} }
} }
public function createTemplateAction() public function createTemplateAction()
{ {
$templateType = $this->_getParam('type', null); $templateType = $this->_getParam('type', null);
$request = $this->getRequest(); $request = $this->getRequest();
$params = $request->getPost(); $params = $request->getPost();
try { try {
$historyService = new Application_Service_HistoryService(); $historyService = new Application_Service_HistoryService();
$supportedTypes = $historyService->getSupportedTemplateTypes(); $supportedTypes = $historyService->getSupportedTemplateTypes();
if (!in_array($templateType, $supportedTypes)) { if (!in_array($templateType, $supportedTypes)) {
throw new Exception("Error: $templateType is not supported."); throw new Exception("Error: $templateType is not supported.");
} }
$id = $historyService->createTemplate($params); $id = $historyService->createTemplate($params);
$this->view->url = $this->view->baseUrl("Playouthistorytemplate/configure-template/id/{$id}"); $this->view->url = $this->view->baseUrl("Playouthistorytemplate/configure-template/id/{$id}");
} }
catch (Exception $e) { catch (Exception $e) {
Logging::info($e); Logging::info($e);
Logging::info($e->getMessage()); Logging::info($e->getMessage());
$this->view->error = $e->getMessage(); $this->view->error = $e->getMessage();
} }
} }
public function setTemplateDefaultAction() public function setTemplateDefaultAction()
{ {
$templateId = $this->_getParam('id', null); $templateId = $this->_getParam('id', null);
try { try {
$historyService = new Application_Service_HistoryService(); $historyService = new Application_Service_HistoryService();
$historyService->setConfiguredTemplate($templateId); $historyService->setConfiguredTemplate($templateId);
} }
catch (Exception $e) { catch (Exception $e) {
Logging::info($e); Logging::info($e);
Logging::info($e->getMessage()); Logging::info($e->getMessage());
} }
} }
public function updateTemplateAction() public function updateTemplateAction()
{ {
$templateId = $this->_getParam('id', null); $templateId = $this->_getParam('id', null);
$name = $this->_getParam('name', null); $name = $this->_getParam('name', null);
$fields = $this->_getParam('fields', array()); $fields = $this->_getParam('fields', array());
try { try {
$historyService = new Application_Service_HistoryService(); $historyService = new Application_Service_HistoryService();
$historyService->updateItemTemplate($templateId, $name, $fields); $historyService->updateItemTemplate($templateId, $name, $fields);
} }
catch (Exception $e) { catch (Exception $e) {
Logging::info($e); Logging::info($e);
Logging::info($e->getMessage()); Logging::info($e->getMessage());
} }
} }
public function deleteTemplateAction() public function deleteTemplateAction()
{ {
$templateId = $this->_getParam('id'); $templateId = $this->_getParam('id');
try { try {
$historyService = new Application_Service_HistoryService(); $historyService = new Application_Service_HistoryService();
$historyService->deleteTemplate($templateId); $historyService->deleteTemplate($templateId);
} }
catch (Exception $e) { catch (Exception $e) {
Logging::info($e); Logging::info($e);
Logging::info($e->getMessage()); Logging::info($e->getMessage());
} }
} }
} }

View File

@ -426,15 +426,51 @@ class Application_Service_HistoryService
public function getShowList($startDT, $endDT) public function getShowList($startDT, $endDT)
{ {
$user = Application_Model_User::getCurrentUser(); $user = Application_Model_User::getCurrentUser();
$shows = Application_Model_Show::getShows($startDT, $endDT); $shows = Application_Model_Show::getShows($startDT, $endDT);
Loggin::info($shows); Logging::info($startDT->format("Y-m-d H:i:s"));
Logging::info($endDT->format("Y-m-d H:i:s"));
Logging::info($shows);
//need to filter the list to only their shows //need to filter the list to only their shows
if ($user->isHost()) { if ($user->isHost()) {
$showIds = array();
foreach ($shows as $show) {
$showIds[] = $show["show_id"];
}
$showIds = array_unique($showIds);
Logging::info($showIds);
$hostRecords = CcShowHostsQuery::create()
->filterByDbHost($user->getId())
->filterByDbShow($showIds)
->find($this->con);
$filteredShowIds = array();
foreach($hostRecords as $record) {
$filteredShowIds[] = $record->getDbShow();
}
Logging::info($filteredShowIds);
$filteredShows = array();
foreach($shows as $show) {
if (in_array($show["show_id"], $filteredShowIds)) {
$filteredShows[] = $show;
}
}
} }
else {
$filteredShows = $shows;
}
return $filteredShows;
} }
public function insertPlayedItem($schedId) { public function insertPlayedItem($schedId) {

View File

@ -18,7 +18,9 @@
</div> </div>
<?php endif; ?> <?php endif; ?>
<div id="his-tabs-3"> <div id="his-tabs-3">
<span>Show Summary</span> <ul id="history_show_summary">
<li>Show Summary</li>
</ul>
</div> </div>
</div> </div>

View File

@ -50,6 +50,11 @@ var AIRTIME = (function(AIRTIME) {
var selectedLogItems = {}; var selectedLogItems = {};
var dateStartId = "#his_date_start",
timeStartId = "#his_time_start",
dateEndId = "#his_date_end",
timeEndId = "#his_time_end";
function getSelectedLogItems() { function getSelectedLogItems() {
var items = Object.keys(selectedLogItems); var items = Object.keys(selectedLogItems);
@ -303,16 +308,26 @@ var AIRTIME = (function(AIRTIME) {
return oTable; return oTable;
} }
function showSummaryList() {
var url = baseUrl+"playouthistory/show-history-feed",
oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId),
data = {
format: "json",
start: oRange.start,
end: oRange.end
};
$.post(url, data, function() {
var x;
});
}
mod.onReady = function() { mod.onReady = function() {
var oBaseDatePickerSettings, var oBaseDatePickerSettings,
oBaseTimePickerSettings, oBaseTimePickerSettings,
oTableAgg, oTableAgg,
oTableItem, oTableItem,
dateStartId = "#his_date_start",
timeStartId = "#his_time_start",
dateEndId = "#his_date_end",
timeEndId = "#his_time_end",
$hisDialogEl, $hisDialogEl,
tabsInit = [ tabsInit = [
@ -327,6 +342,12 @@ var AIRTIME = (function(AIRTIME) {
initialize: function() { initialize: function() {
oTableAgg = aggregateHistoryTable(); oTableAgg = aggregateHistoryTable();
} }
},
{
initialized: false,
initialize: function() {
showSummaryList();
}
} }
]; ];
@ -514,7 +535,9 @@ var AIRTIME = (function(AIRTIME) {
$historyContentDiv.find("#his-tabs").tabs({ $historyContentDiv.find("#his-tabs").tabs({
show: function( event, ui ) { show: function( event, ui ) {
var tab = tabsInit[ui.index]; var href = $(ui.tab).attr("href");
var index = href.split('-').pop();
var tab = tabsInit[index-1];
if (!tab.initialized) { if (!tab.initialized) {
tab.initialize(); tab.initialize();