From b33917db3c6b46841e98482863a48ab86e67b994 Mon Sep 17 00:00:00 2001
From: sgiehl <stefan@piwik.org>
Date: Sun, 11 Oct 2015 00:24:48 +0200
Subject: [PATCH] use number formats for row evolution popover

---
 core/NumberFormatter.php                      | 23 +++++++++++--------
 .../DataTableRowAction/RowEvolution.php       | 12 ++++++++--
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/core/NumberFormatter.php b/core/NumberFormatter.php
index f4b446daee..f294508185 100644
--- a/core/NumberFormatter.php
+++ b/core/NumberFormatter.php
@@ -82,7 +82,7 @@ class NumberFormatter extends Singleton
     }
 
     /**
-     * Formats a given number
+     * Formats a given number or percent value (if $value starts or ends with a %)
      *
      * @param string|int|float $value
      * @param int $maximumFractionDigits
@@ -91,15 +91,11 @@ class NumberFormatter extends Singleton
      */
     public function format($value, $maximumFractionDigits=0, $minimumFractionDigits=0)
     {
-        static $positivePattern, $negativePattern;
-
-        if (empty($positivePatter) || empty($negativePattern)) {
-            list($positivePattern, $negativePattern) = $this->parsePattern($this->patternNumber);
+        if (trim($value, '%') != $value) {
+            return $this->formatPercent($value);
         }
-        $negative = (bccomp('0', $value, 12) == 1);
-        $pattern = $negative ? $negativePattern : $positivePattern;
 
-        return $this->formatNumberWithPattern($pattern, $value, $maximumFractionDigits, $minimumFractionDigits);
+        return $this->formatNumber($value, $maximumFractionDigits, $minimumFractionDigits);
     }
 
     /**
@@ -114,7 +110,16 @@ class NumberFormatter extends Singleton
      */
     public function formatNumber($value, $maximumFractionDigits=0, $minimumFractionDigits=0)
     {
-        return $this->format($value, $maximumFractionDigits, $minimumFractionDigits);
+
+        static $positivePattern, $negativePattern;
+
+        if (empty($positivePatter) || empty($negativePattern)) {
+            list($positivePattern, $negativePattern) = $this->parsePattern($this->patternNumber);
+        }
+        $negative = (bccomp('0', $value, 12) == 1);
+        $pattern = $negative ? $negativePattern : $positivePattern;
+
+        return $this->formatNumberWithPattern($pattern, $value, $maximumFractionDigits, $minimumFractionDigits);
     }
 
     /**
diff --git a/plugins/CoreHome/DataTableRowAction/RowEvolution.php b/plugins/CoreHome/DataTableRowAction/RowEvolution.php
index 9b80f92c87..d73c5c2158 100644
--- a/plugins/CoreHome/DataTableRowAction/RowEvolution.php
+++ b/plugins/CoreHome/DataTableRowAction/RowEvolution.php
@@ -15,6 +15,7 @@ use Piwik\Common;
 use Piwik\DataTable;
 use Piwik\Date;
 use Piwik\Metrics;
+use Piwik\NumberFormatter;
 use Piwik\Period\Factory as PeriodFactory;
 use Piwik\Piwik;
 use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Evolution as EvolutionViz;
@@ -231,7 +232,10 @@ class RowEvolution
             $change = isset($metricData['change']) ? $metricData['change'] : false;
 
             list($first, $last) = $this->getFirstAndLastDataPointsForMetric($metric);
-            $details = Piwik::translate('RowEvolution_MetricBetweenText', array($first, $last));
+            $details = Piwik::translate('RowEvolution_MetricBetweenText', array(
+                NumberFormatter::getInstance()->format($first),
+                NumberFormatter::getInstance()->format($last)
+            ));
 
             if ($change !== false) {
                 $lowerIsBetter = Metrics::isLowerValueBetter($metric);
@@ -258,7 +262,11 @@ class RowEvolution
             $min = isset($metricData['min']) ? $metricData['min'] : 0;
             $min .= $unit;
             $max .= $unit;
-            $minmax = Piwik::translate('RowEvolution_MetricMinMax', array($metricData['name'], $min, $max));
+            $minmax = Piwik::translate('RowEvolution_MetricMinMax', array(
+                $metricData['name'],
+                NumberFormatter::getInstance()->formatNumber($min),
+                NumberFormatter::getInstance()->formatNumber($max)
+            ));
 
             $newMetric = array(
                 'label'     => $metricData['name'],
-- 
GitLab