APIs

Show:
  1. /**
  2. Settings Backbone > View
  3. @class AdStatsView
  4. @constructor
  5. @return {Object} instantiated AdStatsView
  6. **/
  7. define(['jquery', 'backbone', 'datatables', 'datatablestools', 'moment'], function ($, Backbone, datatables, datatablestools, moment) {
  8.  
  9. var AdStatsView = Backbone.View.extend({
  10.  
  11. /**
  12. Constructor
  13. @method initialize
  14. **/
  15. initialize: function () {
  16. var self = this;
  17.  
  18. var now = moment();
  19. self.m_month = now.format('MM');
  20. self.m_year = now.format('YYYY');
  21. var thisMonth = now.format('MM/YYYY');
  22. var lastMonth = now.subtract(1, 'months').format('MM/YYYY');
  23. var beforeLastMonth = now.subtract(1, 'months').format('MM/YYYY');
  24.  
  25. self._initDatatable();
  26. self._populateDateSelection(thisMonth, lastMonth, beforeLastMonth);
  27. self._listenDateSelection();
  28. self._loadReport(self.m_month, self.m_year);
  29. },
  30.  
  31. /**
  32. Init the dt widget
  33. @method _initDatatable
  34. **/
  35. _initDatatable: function () {
  36. var self = this;
  37. self.m_dt = $(Elements.AD_STATS_DATATABLE).dataTable({
  38. dom: 'T<"clear">lfrtip',
  39. tableTools: {
  40. "sSwfPath": "_common/_js/datatables/extensions/TableTools/swf/copy_csv_xls_pdf.swf"
  41. }
  42. });
  43. },
  44.  
  45. /**
  46. Load ad stats report
  47. @method _loadReport
  48. @param {Number} i_year
  49. @param {Number} i_month
  50. **/
  51. _loadReport: function (i_month, i_year) {
  52. var self = this;
  53. self.m_dt.fnClearTable();
  54. BB.Pepper.getProofOfPlayStats(i_year, i_month, function (report) {
  55. var ads = $(report).find('LocalStat');
  56. var data = [];
  57. if (ads.length < 2)
  58. return;
  59. _.each(ads, function (k, v) {
  60. if (v != 0) {
  61. var stats = $(k).text().split(',');
  62. var stationID = stats[0];
  63. var stationName = BB.Pepper.getStationNameSync(stationID);
  64. if (stationName.indexOf('Raj') > -1) {
  65. console.log('found ' + stats);
  66. }
  67. console.log(stationName);
  68. var adNames = BB.Pepper.getAdPackContNames(stats[1]);
  69. data.push([
  70. stationName,
  71. adNames.contentName,
  72. adNames.packageName,
  73. self.m_month + '/' + stats[2] + '/' + self.m_year,
  74. stats[3],
  75. stats[4],
  76. stats[5],
  77. stats[6],
  78. stats[7]
  79. ]);
  80. }
  81. });
  82. self.m_dt.fnAddData(data);
  83. });
  84. },
  85.  
  86. /**
  87. Populate the date range selection for Ad report
  88. @method populateDateSelection
  89. **/
  90. _populateDateSelection: function (i_thisMonth, i_lastMonth, i_beforeLastMonth) {
  91. var self = this;
  92. $(Elements.SELECT_AD_REPORT_MONTH).append('<option>' + i_thisMonth + '</option>');
  93. $(Elements.SELECT_AD_REPORT_MONTH).append('<option>' + i_lastMonth + '</option>');
  94. $(Elements.SELECT_AD_REPORT_MONTH).append('<option>' + i_beforeLastMonth + '</option>');
  95. },
  96.  
  97. /**
  98. Listen to change in date selection to run report
  99. @method _listenDateSelection
  100. **/
  101. _listenDateSelection: function () {
  102. var self = this;
  103. $(Elements.SELECT_AD_REPORT_MONTH).on('change', function (e) {
  104. var date = $(Elements.SELECT_AD_REPORT_MONTH + ' option:selected').val();
  105. self.m_month = date.split('/')[0];
  106. self.m_year = date.split('/')[1];
  107. self._loadReport(self.m_month, self.m_year);
  108. });
  109. }
  110. });
  111.  
  112. return AdStatsView;
  113. });
  114.