- /**
- Settings Backbone > View
- @class AdStatsView
- @constructor
- @return {Object} instantiated AdStatsView
- **/
- define(['jquery', 'backbone', 'datatables', 'datatablestools', 'moment'], function ($, Backbone, datatables, datatablestools, moment) {
-
- var AdStatsView = Backbone.View.extend({
-
- /**
- Constructor
- @method initialize
- **/
- initialize: function () {
- var self = this;
-
- var now = moment();
- self.m_month = now.format('MM');
- self.m_year = now.format('YYYY');
- var thisMonth = now.format('MM/YYYY');
- var lastMonth = now.subtract(1, 'months').format('MM/YYYY');
- var beforeLastMonth = now.subtract(1, 'months').format('MM/YYYY');
-
- self._initDatatable();
- self._populateDateSelection(thisMonth, lastMonth, beforeLastMonth);
- self._listenDateSelection();
- self._loadReport(self.m_month, self.m_year);
- },
-
- /**
- Init the dt widget
- @method _initDatatable
- **/
- _initDatatable: function () {
- var self = this;
- self.m_dt = $(Elements.AD_STATS_DATATABLE).dataTable({
- dom: 'T<"clear">lfrtip',
- tableTools: {
- "sSwfPath": "_common/_js/datatables/extensions/TableTools/swf/copy_csv_xls_pdf.swf"
- }
- });
- },
-
- /**
- Load ad stats report
- @method _loadReport
- @param {Number} i_year
- @param {Number} i_month
- **/
- _loadReport: function (i_month, i_year) {
- var self = this;
- self.m_dt.fnClearTable();
- BB.Pepper.getProofOfPlayStats(i_year, i_month, function (report) {
- var ads = $(report).find('LocalStat');
- var data = [];
- if (ads.length < 2)
- return;
- _.each(ads, function (k, v) {
- if (v != 0) {
- var stats = $(k).text().split(',');
- var stationID = stats[0];
- var stationName = BB.Pepper.getStationNameSync(stationID);
- if (stationName.indexOf('Raj') > -1) {
- console.log('found ' + stats);
- }
- console.log(stationName);
- var adNames = BB.Pepper.getAdPackContNames(stats[1]);
- data.push([
- stationName,
- adNames.contentName,
- adNames.packageName,
- self.m_month + '/' + stats[2] + '/' + self.m_year,
- stats[3],
- stats[4],
- stats[5],
- stats[6],
- stats[7]
- ]);
- }
- });
- self.m_dt.fnAddData(data);
- });
- },
-
- /**
- Populate the date range selection for Ad report
- @method populateDateSelection
- **/
- _populateDateSelection: function (i_thisMonth, i_lastMonth, i_beforeLastMonth) {
- var self = this;
- $(Elements.SELECT_AD_REPORT_MONTH).append('<option>' + i_thisMonth + '</option>');
- $(Elements.SELECT_AD_REPORT_MONTH).append('<option>' + i_lastMonth + '</option>');
- $(Elements.SELECT_AD_REPORT_MONTH).append('<option>' + i_beforeLastMonth + '</option>');
- },
-
- /**
- Listen to change in date selection to run report
- @method _listenDateSelection
- **/
- _listenDateSelection: function () {
- var self = this;
- $(Elements.SELECT_AD_REPORT_MONTH).on('change', function (e) {
- var date = $(Elements.SELECT_AD_REPORT_MONTH + ' option:selected').val();
- self.m_month = date.split('/')[0];
- self.m_year = date.split('/')[1];
- self._loadReport(self.m_month, self.m_year);
- });
- }
- });
-
- return AdStatsView;
- });
-
-