From 03918c8adad0db25db00a1f40d537879af1d125f Mon Sep 17 00:00:00 2001 From: yuri Date: Wed, 24 Apr 2019 11:37:03 +0300 Subject: [PATCH] charts si mul --- .../crm/src/views/dashlets/abstract/chart.js | 20 ++++++++++++++++--- .../views/dashlets/opportunities-by-stage.js | 4 ++-- .../crm/src/views/dashlets/sales-by-month.js | 4 ++-- .../crm/src/views/dashlets/sales-pipeline.js | 4 ++-- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/client/modules/crm/src/views/dashlets/abstract/chart.js b/client/modules/crm/src/views/dashlets/abstract/chart.js index 5901abc992..5c0801f52c 100644 --- a/client/modules/crm/src/views/dashlets/abstract/chart.js +++ b/client/modules/crm/src/views/dashlets/abstract/chart.js @@ -26,7 +26,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -Espo.define('crm:views/dashlets/abstract/chart', ['views/dashlets/abstract/base','lib!Flotr'], function (Dep, Flotr) { +define('crm:views/dashlets/abstract/chart', ['views/dashlets/abstract/base','lib!Flotr'], function (Dep, Flotr) { return Dep.extend({ @@ -109,11 +109,22 @@ Espo.define('crm:views/dashlets/abstract/chart', ['views/dashlets/abstract/base' }, this); }, - formatNumber: function (value, isCurrency) { + formatNumber: function (value, isCurrency, useSiMultiplier) { if (value !== null) { var maxDecimalPlaces = 2; var currencyDecimalPlaces = this.getConfig().get('currencyDecimalPlaces'); + var siSuffix = ''; + if (useSiMultiplier) { + if (value >= 1000000) { + siSuffix = 'M'; + value = value / 1000000; + } else if (value >= 1000) { + siSuffix = 'k'; + value = value / 1000; + } + } + if (isCurrency) { if (currencyDecimalPlaces === 0) { value = Math.round(value); @@ -124,6 +135,9 @@ Espo.define('crm:views/dashlets/abstract/chart', ['views/dashlets/abstract/base' } } else { var maxDecimalPlaces = 4; + if (useSiMultiplier) { + maxDecimalPlaces = 2; + } value = Math.round(value * Math.pow(10, maxDecimalPlaces)) / (Math.pow(10, maxDecimalPlaces)); } @@ -150,7 +164,7 @@ Espo.define('crm:views/dashlets/abstract/chart', ['views/dashlets/abstract/base' } } - var value = parts.join(this.decimalMark); + var value = parts.join(this.decimalMark) + siSuffix; return value; } return ''; diff --git a/client/modules/crm/src/views/dashlets/opportunities-by-stage.js b/client/modules/crm/src/views/dashlets/opportunities-by-stage.js index b09a4bd5d2..cf3dbd9db8 100644 --- a/client/modules/crm/src/views/dashlets/opportunities-by-stage.js +++ b/client/modules/crm/src/views/dashlets/opportunities-by-stage.js @@ -26,7 +26,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -Espo.define('crm:views/dashlets/opportunities-by-stage', 'crm:views/dashlets/abstract/chart', function (Dep) { +define('crm:views/dashlets/opportunities-by-stage', 'crm:views/dashlets/abstract/chart', function (Dep) { return Dep.extend({ @@ -134,7 +134,7 @@ Espo.define('crm:views/dashlets/opportunities-by-stage', 'crm:views/dashlets/abs if (value > self.max + 0.05 * this.max) { return ''; } - return self.currencySymbol + self.formatNumber(Math.floor(value)).toString(); + return self.currencySymbol + self.formatNumber(Math.floor(value), false, true).toString(); } return ''; } diff --git a/client/modules/crm/src/views/dashlets/sales-by-month.js b/client/modules/crm/src/views/dashlets/sales-by-month.js index ceb4bf8dfd..eee155fa73 100644 --- a/client/modules/crm/src/views/dashlets/sales-by-month.js +++ b/client/modules/crm/src/views/dashlets/sales-by-month.js @@ -26,7 +26,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -Espo.define('crm:views/dashlets/sales-by-month', 'crm:views/dashlets/abstract/chart', function (Dep) { +define('crm:views/dashlets/sales-by-month', 'crm:views/dashlets/abstract/chart', function (Dep) { return Dep.extend({ @@ -141,7 +141,7 @@ Espo.define('crm:views/dashlets/sales-by-month', 'crm:views/dashlets/abstract/ch return ''; } if (value % 1 == 0) { - return self.currencySymbol + self.formatNumber(Math.floor(value)).toString(); + return self.currencySymbol + self.formatNumber(Math.floor(value), false, true).toString(); } return ''; } diff --git a/client/modules/crm/src/views/dashlets/sales-pipeline.js b/client/modules/crm/src/views/dashlets/sales-pipeline.js index fa6c4154d7..263f01a928 100644 --- a/client/modules/crm/src/views/dashlets/sales-pipeline.js +++ b/client/modules/crm/src/views/dashlets/sales-pipeline.js @@ -26,7 +26,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -Espo.define('crm:views/dashlets/sales-pipeline', 'crm:views/dashlets/abstract/chart', function (Dep) { +define('crm:views/dashlets/sales-pipeline', 'crm:views/dashlets/abstract/chart', function (Dep) { return Dep.extend({ @@ -143,7 +143,7 @@ Espo.define('crm:views/dashlets/sales-pipeline', 'crm:views/dashlets/abstract/ch } if (value % 1 == 0) { - return self.currencySymbol + self.formatNumber(Math.floor(value)).toString(); + return self.currencySymbol + self.formatNumber(Math.floor(value), false, true).toString(); } return ''; }