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