From 550436f0841ea12d3c4673816df00b8c6c11e3ab Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 14 Nov 2011 15:00:07 +0100 Subject: [PATCH] [FIX] correctly apply user's date and time formatting settings lp bug: https://launchpad.net/bugs/886471 fixed bzr revid: xmo@openerp.com-20111114140007-7nz0pz9zkhqkt3ga --- addons/web/static/src/js/formats.js | 34 ++++++++++------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index d5fcdd35b62..78361fa9566 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -1,6 +1,6 @@ openerp.web.formats = function(openerp) { - +var _t = openerp.web._t; /** * Formats a single atomic value based on a field descriptor * @@ -43,29 +43,17 @@ openerp.web.format_value = function (value, descriptor, value_if_empty) { case 'datetime': if (typeof(value) == "string") value = openerp.web.auto_str_to_date(value); - try { - return value.toString(_.sprintf("%s %s", Date.CultureInfo.formatPatterns.shortDate, - Date.CultureInfo.formatPatterns.longTime)); - } catch (e) { - return value.format("%m/%d/%Y %H:%M:%S"); - } - return value; + + return value.format(_t.database.parameters.date_format + + ' ' + _t.database.parameters.time_format); case 'date': if (typeof(value) == "string") value = openerp.web.auto_str_to_date(value); - try { - return value.toString(Date.CultureInfo.formatPatterns.shortDate); - } catch (e) { - return value.format("%m/%d/%Y"); - } + return value.format(_t.database.parameters.date_format); case 'time': if (typeof(value) == "string") value = openerp.web.auto_str_to_date(value); - try { - return value.toString(Date.CultureInfo.formatPatterns.longTime); - } catch (e) { - return value.format("%H:%M:%S"); - } + return value.format(_t.database.parameters.time_format); case 'selection': // Each choice is [value, label] var result = _(descriptor.selection).detect(function (choice) { @@ -79,6 +67,8 @@ openerp.web.format_value = function (value, descriptor, value_if_empty) { }; openerp.web.parse_value = function (value, descriptor, value_if_empty) { + var date_pattern = Date.normalizeFormat(_t.database.parameters.date_format), + time_pattern = Date.normalizeFormat(_t.database.parameters.time_format); switch (value) { case false: case "": @@ -119,8 +109,8 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) { case 'progressbar': return openerp.web.parse_value(value, {type: "float"}); case 'datetime': - var datetime = Date.parseExact(value, _.sprintf("%s %s", Date.CultureInfo.formatPatterns.shortDate, - Date.CultureInfo.formatPatterns.longTime)); + var datetime = Date.parseExact( + value, (date_pattern + ' ' + time_pattern)); if (datetime !== null) return openerp.web.datetime_to_str(datetime); datetime = Date.parse(value); @@ -128,7 +118,7 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) { return openerp.web.datetime_to_str(datetime); throw new Error(value + " is not a valid datetime"); case 'date': - var date = Date.parseExact(value, Date.CultureInfo.formatPatterns.shortDate); + var date = Date.parseExact(value, date_pattern); if (date !== null) return openerp.web.date_to_str(date); date = Date.parse(value); @@ -136,7 +126,7 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) { return openerp.web.date_to_str(date); throw new Error(value + " is not a valid date"); case 'time': - var time = Date.parseExact(value, Date.CultureInfo.formatPatterns.longTime); + var time = Date.parseExact(value, time_pattern); if (time !== null) return openerp.web.time_to_str(time); time = Date.parse(value);