From c8d77f93e5a857acd22025f4a8d4d42d674479d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Mon, 8 May 2017 10:55:46 +0200 Subject: [FIX] web: display empty input fields properly Before this commit, it was not possible to see the difference between an unset float field (with a 'false' value) and a set field (for ex, with value 0) This was due to the fact that the formatFloat/formatMonetary functions format false values as the number 0, unlike many other formatting functions. --- addons/web/static/src/js/fields/field_utils.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'addons/web/static/src/js/fields/field_utils.js') diff --git a/addons/web/static/src/js/fields/field_utils.js b/addons/web/static/src/js/fields/field_utils.js index 9a683954e7e..ed3014d9bb6 100644 --- a/addons/web/static/src/js/fields/field_utils.js +++ b/addons/web/static/src/js/fields/field_utils.js @@ -71,7 +71,7 @@ function formatChar(value) { * @returns {string} */ function formatDate(value, field, options) { - if (!value) { + if (value === false) { return ""; } if (!options || !('timezone' in options) || options.timezone) { @@ -96,7 +96,7 @@ function formatDate(value, field, options) { * @returns {string} */ function formatDateTime(value, field, options) { - if (!value) { + if (value === false) { return ""; } if (!options || !('timezone' in options) || options.timezone) { @@ -113,7 +113,7 @@ function formatDateTime(value, field, options) { * Returns a string representing a float. The result takes into account the * user settings (to display the correct decimal separator). * - * @param {float} value the value that should be formatted + * @param {float|false} value the value that should be formatted * @param {Object} [field] a description of the field (returned by fields_get * for example). It may contain a description of the number of digits that * should be used. @@ -124,6 +124,9 @@ function formatDateTime(value, field, options) { * @returns {string} */ function formatFloat(value, field, options) { + if (value === false) { + return ""; + } var l10n = core._t.database.parameters; var precision; if (options && options.digits) { @@ -213,7 +216,7 @@ function formatX2Many(value) { * Returns a string representing a monetary value. The result takes into account * the user settings (to display the correct decimal separator, currency, ...). * - * @param {float} value the value that should be formatted + * @param {float|false} value the value that should be formatted * @param {Object} [field] * a description of the field (returned by fields_get for example). It * may contain a description of the number of digits that should be used. @@ -238,6 +241,9 @@ function formatX2Many(value) { * @returns {string} */ function formatMonetary(value, field, options) { + if (value === false) { + return ""; + } options = options || {}; var currency = options.currency; -- cgit v1.2.3