Added show listener stats page needs data display still
This commit is contained in:
parent
b8b656d8ca
commit
fafc599780
|
@ -26,6 +26,7 @@ $ccAcl->add(new Zend_Acl_Resource('library'))
|
|||
->add(new Zend_Acl_Resource('playouthistory'))
|
||||
->add(new Zend_Acl_Resource('playouthistorytemplate'))
|
||||
->add(new Zend_Acl_Resource('listenerstat'))
|
||||
->add(new Zend_Acl_Resource('showlistenerstat'))
|
||||
->add(new Zend_Acl_Resource('usersettings'))
|
||||
->add(new Zend_Acl_Resource('audiopreview'))
|
||||
->add(new Zend_Acl_Resource('webstream'))
|
||||
|
@ -84,6 +85,7 @@ $ccAcl->allow('G', 'index')
|
|||
->allow('H', 'playlist')
|
||||
->allow('H', 'playouthistory')
|
||||
->allow('H', 'listenerstat')
|
||||
->allow('H', 'showlistenerstat')
|
||||
->allow('A', 'playouthistorytemplate')
|
||||
->allow('A', 'user')
|
||||
->allow('A', 'systemstatus')
|
||||
|
|
|
@ -138,6 +138,14 @@ $pages[] = array(
|
|||
'action' => 'index',
|
||||
'resource' => 'listenerstat'
|
||||
),
|
||||
array(
|
||||
'label' => _('Show Listener Stats'),
|
||||
'module' => 'default',
|
||||
'controller' => 'listenerstat',
|
||||
'action' => 'show',
|
||||
'resource' => 'showlistenerstat'
|
||||
),
|
||||
|
||||
)
|
||||
);
|
||||
if (LIBRETIME_ENABLE_BILLING === true) {
|
||||
|
|
|
@ -56,6 +56,39 @@ class ListenerstatController extends Zend_Controller_Action
|
|||
$this->view->errorStatus = $out;
|
||||
$this->view->date_form = $form;
|
||||
}
|
||||
public function showAction() {
|
||||
$CC_CONFIG = Config::getConfig();
|
||||
|
||||
$request = $this->getRequest();
|
||||
$baseUrl = Application_Common_OsPath::getBaseDir();
|
||||
Zend_Layout::getMvcInstance()->assign('parent_page', 'Analytics');
|
||||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/listenerstat/showlistenerstat.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
$this->view->headScript()->appendFile($baseUrl.'js/timepicker/jquery.ui.timepicker.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/buttons/buttons.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
$this->view->headScript()->appendFile($baseUrl.'js/datatables/js/jquery.dataTables.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.pluginAPI.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/utilities/utilities.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||
|
||||
$this->view->headLink()->appendStylesheet($baseUrl.'css/jquery.ui.timepicker.css?'.$CC_CONFIG['airtime_version']);
|
||||
$user = Application_Model_User::getCurrentUser();
|
||||
if ($user->isUserType(array(UTYPE_SUPERADMIN, UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) {
|
||||
$this->view->showAllShows = true;
|
||||
}
|
||||
$form = new Application_Form_ShowBuilder();
|
||||
|
||||
list($startsDT, $endsDT) = Application_Common_HTTPHelper::getStartEndFromRequest($request);
|
||||
$userTimezone = new DateTimeZone(Application_Model_Preference::GetUserTimezone());
|
||||
$startsDT->setTimezone($userTimezone);
|
||||
$endsDT->setTimezone($userTimezone);
|
||||
$form->populate(array(
|
||||
'sb_date_start' => $startsDT->format("Y-m-d"),
|
||||
'sb_time_start' => $startsDT->format("H:i"),
|
||||
'sb_date_end' => $endsDT->format("Y-m-d"),
|
||||
'sb_time_end' => $endsDT->format("H:i")
|
||||
));
|
||||
|
||||
$this->view->sb_form = $form;
|
||||
}
|
||||
|
||||
public function getDataAction(){
|
||||
list($startsDT, $endsDT) = Application_Common_HTTPHelper::getStartEndFromRequest($this->getRequest());
|
||||
|
@ -67,8 +100,6 @@ class ListenerstatController extends Zend_Controller_Action
|
|||
public function getShowDataAction(){
|
||||
list($startsDT, $endsDT) = Application_Common_HTTPHelper::getStartEndFromRequest($this->getRequest());
|
||||
$show_id = $this->getRequest()->getParam("show_id", null);
|
||||
Logging::info($this->getRequest()->getParam("show_id", null));
|
||||
Logging::info($show_id);
|
||||
$data = Application_Model_ListenerStat::getShowDataPointsWithinRange($startsDT->format(DEFAULT_TIMESTAMP_FORMAT),
|
||||
$endsDT->format(DEFAULT_TIMESTAMP_FORMAT),$show_id);
|
||||
$this->_helper->json->sendJson($data);
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
$(document).ready(function() {
|
||||
showlistenerstat_content = $("#showlistenerstat_content")
|
||||
dateStartId = "#sb_date_start",
|
||||
timeStartId = "#sb_time_start",
|
||||
dateEndId = "#sb_date_end",
|
||||
timeEndId = "#sb_time_end",
|
||||
show_id = "#sb_show_filter";
|
||||
|
||||
console.log(show_id);
|
||||
// set width dynamically
|
||||
var width = $("#showlistenerstat_content").width();
|
||||
width = width * .91;
|
||||
showlistenerstat_content.find("#sb_submit").click(function(){
|
||||
var show_id = $("#sb_show_filter").val();
|
||||
console.log(show_id);
|
||||
var oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
|
||||
var start = oRange.start;
|
||||
var end = oRange.end;
|
||||
getShowData(start, end, show_id);
|
||||
});
|
||||
});
|
||||
|
||||
function getShowData(startTimestamp, endTimestamp, show_id) {
|
||||
// get data
|
||||
$.get(baseUrl+'Listenerstat/get-show-data', {start: startTimestamp, end: endTimestamp, show_id: show_id}, function(data) {
|
||||
return data;
|
||||
});
|
||||
}
|
||||
|
||||
function brokeDataTable() {
|
||||
var oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId);
|
||||
var start = oRange.start;
|
||||
var end = oRange.end;
|
||||
var show_id = $("#sb_show_filter").val();
|
||||
var dt = $('#show_stats_datatable');
|
||||
dt.dataTable({
|
||||
"bProcessing": true,
|
||||
"bServerSide": true,
|
||||
"sAjaxSource": baseUrl + "Listenerstat/get-show-data",
|
||||
"fnServerParams": function (aoData) {
|
||||
aoData.push({start: start, end: end, show_id: show_id});
|
||||
},
|
||||
"fnAddData": function (sSource, aoData, fnCallback) {
|
||||
$.ajax({
|
||||
"dataType": 'json',
|
||||
"type": "POST",
|
||||
"url": sSource,
|
||||
"data": aoData,
|
||||
"success": fnCallback
|
||||
});
|
||||
},
|
||||
"aoColumns": [
|
||||
/* first name */ {"sName": "show", "mDataProp": "show"},
|
||||
/* air date */ {"sName": "time", "mDataProp": "time"},
|
||||
/* last name */ {"sName": "average_number_of_listeners", "mDataProp": "average_number_of_listeners"},
|
||||
/* last name */ {"sName": "max_number_of_listeners", "mDataProp": "max_number_of_listeners"},
|
||||
/* del button */ {
|
||||
"sName": "null as delete",
|
||||
"bSearchable": false,
|
||||
"bSortable": false,
|
||||
"mDataProp": "delete"
|
||||
}
|
||||
],
|
||||
"bJQueryUI": true,
|
||||
"bAutoWidth": false,
|
||||
"bLengthChange": false,
|
||||
"oLanguage": getDatatablesStrings({
|
||||
"sEmptyTable": $.i18n._("No Show Records Found"),
|
||||
"sEmptyTable": $.i18n._("No show found"),
|
||||
"sZeroRecords": $.i18n._("No show statistics found"),
|
||||
"sInfo": $.i18n._("Showing _START_ to _END_ of _TOTAL_ users"),
|
||||
"sInfoEmpty": $.i18n._("Showing 0 to 0 of 0 users"),
|
||||
"sInfoFiltered": $.i18n._("(filtered from _MAX_ total users)"),
|
||||
}),
|
||||
"sDom": '<"H"lf<"dt-process-rel"r>><"#user_list_inner_wrapper"t><"F"ip>'
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue