From 918a11a0b0ef665d3dafb1aecaab44dd926e14d3 Mon Sep 17 00:00:00 2001 From: aignatov-bio <47317017+aignatov-bio@users.noreply.github.com> Date: Wed, 20 Apr 2022 11:07:37 +0200 Subject: [PATCH] Fix decimal render function [SCI-6742] (#4037) Co-authored-by: Anton --- app/assets/javascripts/my_modules/stock.js | 7 +------ app/assets/javascripts/repositories/stock.js | 7 +------ app/assets/javascripts/sitewide/decimal_formatter.js | 9 +++++++++ 3 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 app/assets/javascripts/sitewide/decimal_formatter.js diff --git a/app/assets/javascripts/my_modules/stock.js b/app/assets/javascripts/my_modules/stock.js index 4fd0eb7fa..2b689ceef 100644 --- a/app/assets/javascripts/my_modules/stock.js +++ b/app/assets/javascripts/my_modules/stock.js @@ -1,13 +1,8 @@ -/* global SmartAnnotation I18n MyModuleRepositories GLOBAL_CONSTANTS */ +/* global SmartAnnotation I18n MyModuleRepositories GLOBAL_CONSTANTS formatDecimalValue */ var MyModuleStockConsumption = (function() { const CONSUMPTION_MODAL = '#consumeRepositoryStockValueModal'; const WARNING_MODAL = '#consumeRepositoryStockValueModalWarning'; - function formatDecimalValue(value, decimals) { - let regexp = decimals === 0 ? /[^0-9-]/g : /[^0-9.-]/g; - return value.replace(regexp, '').match(new RegExp(`^-?\\d*(\\.\\d{0,${decimals}})?`))[0]; - } - function focusStockConsumption() { // focus and move cursor to end of text var $stockConsumption = $('#stock_consumption'); diff --git a/app/assets/javascripts/repositories/stock.js b/app/assets/javascripts/repositories/stock.js index cbbff15fb..5bdc1d73e 100644 --- a/app/assets/javascripts/repositories/stock.js +++ b/app/assets/javascripts/repositories/stock.js @@ -1,13 +1,8 @@ -/* global dropdownSelector GLOBAL_CONSTANTS I18n SmartAnnotation */ +/* global dropdownSelector GLOBAL_CONSTANTS I18n SmartAnnotation formatDecimalValue */ var RepositoryStockValues = (function() { const UNIT_SELECTOR = '#repository-stock-value-units'; - function formatDecimalValue(value, decimals) { - let regexp = decimals === 0 ? /[^-0-9]/g : /[^-0-9.]/g; - return value.replace(regexp, '').match(new RegExp(`^-?\\d*(\\.\\d{0,${decimals}})?`))[0]; - } - function updateChangeAmount($element) { var currentAmount = parseFloat($element.data('currentAmount')); var inputAmount = parseFloat($element.val()); diff --git a/app/assets/javascripts/sitewide/decimal_formatter.js b/app/assets/javascripts/sitewide/decimal_formatter.js new file mode 100644 index 000000000..52a25b94f --- /dev/null +++ b/app/assets/javascripts/sitewide/decimal_formatter.js @@ -0,0 +1,9 @@ +/* eslint-disable no-unused-vars */ + +function formatDecimalValue(value, decimals) { + let decimalValue = value.replace(/[^-0-9.]/g, ''); + if (decimals === 0) { + return decimalValue.split('.')[0]; + } + return decimalValue.match(new RegExp(`^-?\\d*(\\.\\d{0,${decimals}})?`))[0]; +}