From a4c97479b612c93a37ed65afec1baff46c685526 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Wed, 28 Aug 2013 23:30:15 -0400 Subject: [PATCH] using an accordian to display per show logs. --- .../controllers/PlayouthistoryController.php | 23 ++--- .../application/services/HistoryService.php | 66 ++++++++------ .../views/scripts/playouthistory/index.phtml | 4 +- .../js/airtime/playouthistory/historytable.js | 90 +++++++++++++++++-- 4 files changed, 139 insertions(+), 44 deletions(-) diff --git a/airtime_mvc/application/controllers/PlayouthistoryController.php b/airtime_mvc/application/controllers/PlayouthistoryController.php index 89a2e2f4a..b6aadf568 100644 --- a/airtime_mvc/application/controllers/PlayouthistoryController.php +++ b/airtime_mvc/application/controllers/PlayouthistoryController.php @@ -53,7 +53,7 @@ class PlayouthistoryController extends Zend_Controller_Action $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.fnSetFilteringDelay.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/TableTools-2.1.5/js/ZeroClipboard.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/TableTools-2.1.5/js/TableTools.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); - + $offset = date("Z") * -1; $this->view->headScript()->appendScript("var serverTimezoneOffset = {$offset}; //in seconds"); $this->view->headScript()->appendFile($baseUrl.'js/timepicker/jquery.ui.timepicker.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -77,7 +77,7 @@ class PlayouthistoryController extends Zend_Controller_Action $columns = json_encode($historyService->getDatatablesFileSummaryColumns()); $script.= "localStorage.setItem( 'datatables-historyfile-aoColumns', JSON.stringify($columns) );"; $this->view->headScript()->appendScript($script); - + $user = Application_Model_User::getCurrentUser(); $this->view->userType = $user->getType(); } @@ -120,12 +120,13 @@ class PlayouthistoryController extends Zend_Controller_Action $starts_epoch = $request->getParam("start", $current_time - (60*60*24)); $ends_epoch = $request->getParam("end", $current_time); + $instance = $request->getParam("instance_id", null); $startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC")); $endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC")); $historyService = new Application_Service_HistoryService(); - $r = $historyService->getPlayedItemData($startsDT, $endsDT, $params); + $r = $historyService->getPlayedItemData($startsDT, $endsDT, $params, $instance); $this->view->sEcho = $r["sEcho"]; $this->view->iTotalDisplayRecords = $r["iTotalDisplayRecords"]; @@ -137,7 +138,7 @@ class PlayouthistoryController extends Zend_Controller_Action Logging::info($e->getMessage()); } } - + public function showHistoryFeedAction() { try { @@ -145,13 +146,13 @@ class PlayouthistoryController extends Zend_Controller_Action $current_time = time(); $starts_epoch = $request->getParam("start", $current_time - (60*60*24)); $ends_epoch = $request->getParam("end", $current_time); - + $startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC")); $endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC")); - + $historyService = new Application_Service_HistoryService(); $shows = $historyService->getShowList($startsDT, $endsDT); - + $this->_helper->json->sendJson($shows); } catch (Exception $e) { @@ -182,11 +183,11 @@ class PlayouthistoryController extends Zend_Controller_Action $historyService = new Application_Service_HistoryService(); $json = $historyService->createPlayedItem($params); - + if (isset($json["form"])) { $this->view->form = $json["form"]; $json["form"] = $this->view->render('playouthistory/dialog.phtml'); - + unset($this->view->form); } @@ -239,11 +240,11 @@ class PlayouthistoryController extends Zend_Controller_Action $historyService = new Application_Service_HistoryService(); $json = $historyService->editPlayedItem($params); - + if (isset($json["form"])) { $this->view->form = $json["form"]; $json["form"] = $this->view->render('playouthistory/dialog.phtml'); - + unset($this->view->form); } diff --git a/airtime_mvc/application/services/HistoryService.php b/airtime_mvc/application/services/HistoryService.php index 848fa0510..a7587d2d3 100644 --- a/airtime_mvc/application/services/HistoryService.php +++ b/airtime_mvc/application/services/HistoryService.php @@ -22,7 +22,7 @@ class Application_Service_HistoryService } //opts is from datatables. - public function getPlayedItemData($startDT, $endDT, $opts) + public function getPlayedItemData($startDT, $endDT, $opts, $instanceId=null) { $mainSqlQuery = ""; $paramMap = array(); @@ -59,7 +59,7 @@ class Application_Service_HistoryService } $historyRange = "(". - "SELECT history.starts, history.ends, history.id AS history_id". + "SELECT history.starts, history.ends, history.id AS history_id, history.instance_id". " FROM cc_playout_history as history". " WHERE history.starts >= :starts and history.starts < :ends". ") AS history_range"; @@ -71,7 +71,12 @@ class Application_Service_HistoryService " ) AS %KEY%". " ) AS %KEY%_filter"; - $mainSelect = array("history_range.starts", "history_range.ends", "history_range.history_id"); + $mainSelect = array( + "history_range.starts", + "history_range.ends", + "history_range.history_id", + "history_range.instance_id" + ); $mdFilters = array(); $numFileMdFields = count($fields_filemd); @@ -184,6 +189,17 @@ class Application_Service_HistoryService throw new Exception("Error: $msg"); } + //----------------------------------------------------------------------- + //Using the instance_id to filter the data. + + if (isset($instanceId)) { + + $mainSqlQuery.= + " WHERE history_range.instance_id = :instance"; + + $paramMap["instance"] = $instanceId; + } + //------------------------------------------------------------------------ //Using Datatables parameters to sort the data. @@ -422,44 +438,44 @@ class Application_Service_HistoryService "history" => $rows ); } - + public function getShowList($startDT, $endDT) { $user = Application_Model_User::getCurrentUser(); $shows = Application_Model_Show::getShows($startDT, $endDT); - + 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 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; @@ -469,7 +485,7 @@ class Application_Service_HistoryService else { $filteredShows = $shows; } - + return $filteredShows; } @@ -878,17 +894,17 @@ class Application_Service_HistoryService throw $e; } } - + /* id is an id in cc_playout_history */ public function deletePlayedItems($ids) { - + $this->con->beginTransaction(); - + try { - + $records = CcPlayoutHistoryQuery::create()->findPks($ids, $this->con); $records->delete($this->con); - + $this->con->commit(); } catch (Exception $e) { @@ -915,9 +931,9 @@ class Application_Service_HistoryService return $fields; } - + private function getPhpCasts() { - + $fields = array( TEMPLATE_DATE => "strval", TEMPLATE_TIME => "strval", @@ -927,7 +943,7 @@ class Application_Service_HistoryService TEMPLATE_INT => "intval", TEMPLATE_FLOAT => "floatval", ); - + return $fields; } diff --git a/airtime_mvc/application/views/scripts/playouthistory/index.phtml b/airtime_mvc/application/views/scripts/playouthistory/index.phtml index 67436947f..0dd7d706d 100644 --- a/airtime_mvc/application/views/scripts/playouthistory/index.phtml +++ b/airtime_mvc/application/views/scripts/playouthistory/index.phtml @@ -18,9 +18,7 @@
- +
diff --git a/airtime_mvc/public/js/airtime/playouthistory/historytable.js b/airtime_mvc/public/js/airtime/playouthistory/historytable.js index 0ad480c1f..6f71bf0a5 100644 --- a/airtime_mvc/public/js/airtime/playouthistory/historytable.js +++ b/airtime_mvc/public/js/airtime/playouthistory/historytable.js @@ -153,6 +153,9 @@ var AIRTIME = (function(AIRTIME) { if (fnServerData.hasOwnProperty("end")) { aoData.push( { name: "end", value: fnServerData.end} ); } + if (fnServerData.hasOwnProperty("instance")) { + aoData.push( { name: "instance_id", value: fnServerData.instance} ); + } aoData.push( { name: "format", value: "json"} ); @@ -165,6 +168,83 @@ var AIRTIME = (function(AIRTIME) { } ); } + //config: name, type, filemd, required + function createShowAccordSection(config) { + var template, + $el; + + /* + template = + "
  • " + + "<%= name %>" + + "<%= starts %>" + + "<%= ends %>" + + "
  • "; + */ + + template = + "

    " + + "" + + "<%= name %>" + + "<%= starts %>" + + "<%= ends %>" + + "" + + "

    " + + "
    First content panel
    "; + + template = _.template(template); + $el = $(template(config)); + + return $el; + } + + function drawShowList(oShows) { + var $showList = $historyContentDiv.find("#history_show_summary"), + i, + len, + $accordSection, + show; + + $showList.empty(); + + for (i = 0, len = oShows.length; i < len; i++) { + show = oShows[i]; + + $accordSection = createShowAccordSection({ + instance: show.instance_id, + name: show.name, + starts: show.starts, + ends: show.ends + }); + + $showList.append($accordSection); + } + + $showList.accordion({ + create: function( event, ui ) { + var $div = $showList.find(".ui-accordion-content-active"); + }, + change: function( event, ui ) { + var x; + }, + changestart: function( event, ui ) { + var x; + } + }); + } + + function drawShowTable() { + + } + function createToolbarButtons ($el) { var $menu = $("
    "); @@ -234,9 +314,9 @@ var AIRTIME = (function(AIRTIME) { return oTable; } - function itemHistoryTable() { + function itemHistoryTable(id) { var oTable, - $historyTableDiv = $historyContentDiv.find("#history_table_list"), + $historyTableDiv = $historyContentDiv.find("#"+id), $toolbar, columns, fnRowCallback, @@ -317,8 +397,8 @@ var AIRTIME = (function(AIRTIME) { end: oRange.end }; - $.post(url, data, function() { - var x; + $.post(url, data, function(json) { + drawShowList(json); }); } @@ -334,7 +414,7 @@ var AIRTIME = (function(AIRTIME) { { initialized: false, initialize: function() { - oTableItem = itemHistoryTable(); + oTableItem = itemHistoryTable("history_table_list"); } }, {