From be9d67f8876eef577925e4ca8458aa72fcc822e5 Mon Sep 17 00:00:00 2001
From: kolaente <k@knt.li>
Date: Thu, 18 Jul 2019 19:04:28 +0200
Subject: [PATCH] Added total count of contributions to heatmap (#7517)

* Added total count of contributions to heatmap

Signed-off-by: kolaente <k@knt.li>

* make css

Signed-off-by: kolaente <k@knt.li>
---
 public/css/index.css   | 1 +
 public/js/index.js     | 6 ++++--
 public/less/_base.less | 6 ++++++
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/public/css/index.css b/public/css/index.css
index 4a7dfb2824..96dfcb0e8b 100644
--- a/public/css/index.css
+++ b/public/css/index.css
@@ -200,6 +200,7 @@ footer .ui.left,footer .ui.right{line-height:40px}
 #user-heatmap svg:not(:root){overflow:inherit;padding:0!important}
 @media only screen and (max-width:1200px){#user-heatmap{display:none}
 }
+#user-heatmap .total-contributions{text-align:left;font-weight:500;margin-top:0}
 .heatmap-color-0{background-color:#f4f4f4}
 .heatmap-color-1{background-color:#d7e5db}
 .heatmap-color-2{background-color:#adc7ab}
diff --git a/public/js/index.js b/public/js/index.js
index d26764fcc7..afc894ca3b 100644
--- a/public/js/index.js
+++ b/public/js/index.js
@@ -2564,7 +2564,8 @@ function initHeatmap(appElementId, heatmapUser, locale) {
                 isLoading: true,
                 colorRange: [],
                 endDate: null,
-                values: []
+                values: [],
+                totalContributions: 0,
             };
         },
 
@@ -2587,6 +2588,7 @@ function initHeatmap(appElementId, heatmapUser, locale) {
                 $.get(this.suburl + '/api/v1/users/' + userName + '/heatmap', function(chartRawData) {
                     const chartData = [];
                     for (let i = 0; i < chartRawData.length; i++) {
+                        self.totalContributions += chartRawData[i].contributions;
                         chartData[i] = { date: new Date(chartRawData[i].timestamp * 1000), count: chartRawData[i].contributions };
                     }
                     self.values = chartData;
@@ -2607,7 +2609,7 @@ function initHeatmap(appElementId, heatmapUser, locale) {
             }
         },
 
-        template: '<div><div v-show="isLoading"><slot name="loading"></slot></div><calendar-heatmap v-show="!isLoading" :locale="locale" :no-data-text="locale.no_contributions" :tooltip-unit="locale.contributions" :end-date="endDate" :values="values" :range-color="colorRange" />'
+        template: '<div><div v-show="isLoading"><slot name="loading"></slot></div><h4 class="total-contributions" v-if="!isLoading"><span v-html="totalContributions"></span> total contributions in the last 12 months</h4><calendar-heatmap v-show="!isLoading" :locale="locale" :no-data-text="locale.no_contributions" :tooltip-unit="locale.contributions" :end-date="endDate" :values="values" :range-color="colorRange" />'
     });
 
     new Vue({
diff --git a/public/less/_base.less b/public/less/_base.less
index b9d9c88da5..ddf174cf47 100644
--- a/public/less/_base.less
+++ b/public/less/_base.less
@@ -842,6 +842,12 @@ footer {
             display: none;
         }
     }
+
+    .total-contributions {
+        text-align: left;
+        font-weight: 500;
+        margin-top: 0;
+    }
 }
 
 .heatmap-color-0 {