Ssmith has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/177282

Change subject: Add donation count to donation amts chart
......................................................................

Add donation count to donation amts chart

Change-Id: Id2f894c12fdc28b8d79c46ff9c17bf22459c1cda
---
M src/components/boards/bigEnglish/bigEnglishBoard.html
M src/components/boards/bigEnglish/bigEnglishBoard.js
M src/components/widgets/totals-earned-chart/totals-earned-chart.js
3 files changed, 67 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/dash 
refs/changes/82/177282/1

diff --git a/src/components/boards/bigEnglish/bigEnglishBoard.html 
b/src/components/boards/bigEnglish/bigEnglishBoard.html
index 40146ea..d3a82c5 100644
--- a/src/components/boards/bigEnglish/bigEnglishBoard.html
+++ b/src/components/boards/bigEnglish/bigEnglishBoard.html
@@ -61,7 +61,7 @@
     </div>
 </div>
 
-<totals-earned-chart params="title: 'Donation Amounts by Day in December', 
dailyDataArray: dailyDataArray, dayObj: dayObj, dataChanged: 
dataChanged"></totals-earned-chart>
+<totals-earned-chart params="title: 'Donation Amounts by Day in December', 
dailyCountArray: dailyCountArray, dailyDataArray: dailyDataArray, dayObj: 
dayObj, dataChanged: dataChanged"></totals-earned-chart>
 
 <div class="row">
     <distance-to-goal-chart params="title: 'Distance To Goal', dailyDataArray: 
dailyDataArray, goal: goal, dataChanged: dataChanged"></distance-to-goal-chart>
diff --git a/src/components/boards/bigEnglish/bigEnglishBoard.js 
b/src/components/boards/bigEnglish/bigEnglishBoard.js
index 0bb7718..7e298a6 100644
--- a/src/components/boards/bigEnglish/bigEnglishBoard.js
+++ b/src/components/boards/bigEnglish/bigEnglishBoard.js
@@ -17,7 +17,6 @@
 
         // Reload the page
         self.reloadBigEnglish = function(){
-            console.log('reloading');
                        location.reload();
                };
         // Do it every 5 minutes as well
@@ -47,6 +46,16 @@
         //initialize day/hour data
         self.dayObj = [];
                self.dailyDataArray = ['Daily Total'];
+        self.dailyCountArray = ['Daily Count'];
+               for (var d = 1; d < 32; d++) {
+                       self.dailyDataArray[d] = 0;
+            self.dailyCountArray[d] = 0;
+                       self.dayObj[d] = [ 'Hourly Totals' ];
+                       for (var h = 1; h < 25; h++) {
+                               self.dayObj[d][h] = 0;
+                               self.secondsByHourDonationData[(d - 1) * 24 + 
h] = 0;
+                       }
+               }
 
                // Allows components in the board to subscribe to a single 
property
         // and get notified of any changes to the available data.
@@ -73,7 +82,7 @@
                        }
                        $.each(self.decemberData, function(el, i){
                                var d = self.decemberData[el].day, h = 
self.decemberData[el].hour;
-                               self.dayObj[d][h + 1] = 
self.decemberData[el].usd_total;
+                               self.dayObj[d][h + 1] = { total: 
self.decemberData[el].usd_total, count: self.decemberData[el].donations };
                                //get all seconds into seconds array
                                self.secondsByHourDonationData[(d - 1) * 24 + 
h+1] = self.decemberData[el].usd_per_second;
                                runningTotal += self.decemberData[el].usd_total;
@@ -88,15 +97,17 @@
 
                                //get data slice for days: donation amt
                                if(self.dailyDonationData[el.day]){
-                                       self.dailyDonationData[el.day] += 
el.usd_total;
+                                       
self.dailyDonationData[el.day]['amount'] += el.usd_total;
+                    self.dailyDonationData[el.day]['count'] += el.donations;
                                } else {
-                                       self.dailyDonationData[el.day] = 
el.usd_total;
+                                       self.dailyDonationData[el.day] = { 
amount: el.usd_total, count: el.donations};
                                }
 
                        });
 
                        $.each( self.dailyDonationData, function(el, i){
-                               self.dailyDataArray[parseInt(el, 10)] = 
self.dailyDonationData[el];
+                               self.dailyDataArray[parseInt(el, 10)] = 
self.dailyDonationData[el]['amount'];
+                self.dailyCountArray[parseInt(el, 10)] = 
self.dailyDonationData[el]['count'];
                        });
                        self.raised(runningTotal);
         });
diff --git a/src/components/widgets/totals-earned-chart/totals-earned-chart.js 
b/src/components/widgets/totals-earned-chart/totals-earned-chart.js
index 188450c..bc67e04 100644
--- a/src/components/widgets/totals-earned-chart/totals-earned-chart.js
+++ b/src/components/widgets/totals-earned-chart/totals-earned-chart.js
@@ -15,6 +15,13 @@
                });
                self.makeCharts = function() {
                        self.hourlyChart = function(d,i){
+                               var hourlyData = params.dayObj[d['x'] + 1 ],
+                                       hourlyCountArray = ['Hourly Count'],
+                                       hourlyTotalArray = ['Hourly Total'];
+                               for(var i=1; i<25; i++){
+                                       
hourlyCountArray.push(hourlyData[i]['count']);
+                                       
hourlyTotalArray.push(hourlyData[i]['total']);
+                               };
                                return {
                                        bindto: '#totalsEarnedChart',
                                        size: {
@@ -23,11 +30,15 @@
                                        },
                                        zoom: { enabled: true },
                                        data: {
-                                               columns: [ params.dayObj[d['x'] 
+ 1]],
+                                               columns: [ hourlyTotalArray, 
hourlyCountArray ],
                                                type: 'bar',
-                                               colors: { 'Hourly Totals': 
'rgb(92,184,92)'},
+                                               colors: { 'Hourly Total': 
'rgb(92,184,92)', 'Hourly Count': 'rgb(92,184,92)' },
                                                onclick: function (d, i) { 
c3.generate(self.dailyChart()) },
+                                               groups: [ [hourlyTotalArray[0], 
hourlyCountArray[0]] ]
                                        },
+                                       legend: {
+                                       show: false
+                                   },
                                        grid: {
                                                x: {
                                                        show: true
@@ -48,20 +59,30 @@
                                                },
                                                y: {
                                                        label: {
-                                                               text: 'Dollars'
+                                                               text: "Dollars"
                                                        },
                                                        tick: {
                                                                format: 
function(x){ return numeral(x).format('$0,0') }
                                                        }
                                                }
                                        },
-                                       bar: {
-                                               width: {
-                                                       ratio: 0.5
-                                               }
-                                       }
+                                       tooltip: {
+                                       format: {
+                                           title: function (d) { return 'Hour 
' + d; },
+                                           value: function (value, ratio, id) {
+                                               var display;
+                                               if(id === 'Hourly Total'){
+                                                       display = 
numeral(value).format('$0,0')
+                                               } else {
+                                                       display = 
numeral(value).format('0,0')
+                                               }
+                                               return display;
+                                           }
+                                       }
+                                   },
                                };
                        };
+
                        self.dailyChart = function(d,i){
                                return {
                                        bindto: '#totalsEarnedChart',
@@ -71,13 +92,17 @@
                                        },
                                        zoom: { enabled: true },
                                        data: {
-                                               columns: [ 
params.dailyDataArray ],
+                                               columns: [ 
params.dailyDataArray, params.dailyCountArray ],
                                                type: 'bar',
-                                               colors: { 'Daily Total': 
'rgb(49,176,213)'},
+                                               colors: { 'Daily Total': 
'rgb(49,176,213)', 'Daily Count': 'rgb(49,176,213)' },
                                                onclick: function (d, i) {
                                                        self.totalsEarnedChart 
= c3.generate(self.hourlyChart(d,i));
                                                },
+                                               groups: [ 
[params.dailyDataArray[0], params.dailyCountArray[0]] ]
                                        },
+                                       legend: {
+                                       show: false
+                                   },
                                        grid: {
                                                x: {
                                                        show: true
@@ -94,18 +119,27 @@
                                                },
                                                y: {
                                                        label: {
-                                                               text: 'Dollars'
+                                                               text: "Dollars"
                                                        },
                                                        tick: {
                                                                format: 
function(x){ return numeral(x).format('$0,0') }
                                                        }
                                                }
                                        },
-                                       bar: {
-                                               width: {
-                                                       ratio: 0.5
-                                               }
-                                       }
+                                       tooltip: {
+                                       format: {
+                                           title: function (d) { return 'Day ' 
+ (d+1); },
+                                           value: function (value, ratio, id) {
+                                               var display;
+                                               if(id === 'Daily Total'){
+                                                       display = 
numeral(value).format('$0,0')
+                                               } else {
+                                                       display = 
numeral(value).format('0,0')
+                                               }
+                                               return display;
+                                           }
+                                       }
+                                   },
                                };
                        };
                        self.totalsEarnedChart = c3.generate(self.dailyChart());

-- 
To view, visit https://gerrit.wikimedia.org/r/177282
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id2f894c12fdc28b8d79c46ff9c17bf22459c1cda
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/dash
Gerrit-Branch: master
Gerrit-Owner: Ssmith <ssm...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to