[PATCH] [Wok 0/3] Introduced converters in line-chart and formatMeasurement

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> 1) Added converters in line-chart widget to format data in generic way. 2) Replaced locale formatting with converter. 3) Renamed wok.datetimeLocaleConverters to wok.localeConverters to have all the locale specific converters in one place. Pooja Kulkarni (3): Introduced converters in formatMeasurement Introduced converters in wok.line-chart widget Replaced wok.dateTimeLocaleConverters to wok.localeConverters ui/js/src/wok.line-chart.js | 19 +++++++++++++++++-- ui/js/src/wok.utils.js | 33 +++++++++++++++++++++++++-------- ui/js/wok.user-log.js | 2 +- 3 files changed, 43 insertions(+), 11 deletions(-) -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> 1)Added converters in formatMeasurement which enables formatting of data to be displayed. 2)Renamed datetimeLocaleConverters to localeConverters in order to make it generic and added number converter. Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/src/wok.utils.js | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/ui/js/src/wok.utils.js b/ui/js/src/wok.utils.js index 74b623c..81e7c4f 100644 --- a/ui/js/src/wok.utils.js +++ b/ui/js/src/wok.utils.js @@ -140,7 +140,13 @@ wok.changetoProperUnit = function(numOrg, digits, base) { return new Formatted(number, unit); } - var n_locale = settings['locale'] || null; + // Introduce converter to format data. + // Converter's to function will be used for formatting. + // if not passed then 'to' formatting will not be done. + // e.g. formatMeasurement( 2, + // { .. , converter: wok.localeConverters["number-locale-converter"]}) + var converter = settings['converter'] || null; + var converter_to_fun = converter?converter['to']:'' var fixed = settings['fixed']; var unitMapping = unitBaseMapping[base]; @@ -154,14 +160,14 @@ wok.changetoProperUnit = function(numOrg, digits, base) { var formatted = number / startingValue; formatted = fixed ? formatted.toFixed(fixed) : formatted; - formatted = n_locale ? Number(formatted).toLocaleString(n_locale) : Number(formatted).toLocaleString() + formatted = converter_to_fun ? converter_to_fun(Number(formatted)) : formatted; return new Formatted(formatted, suffix + unit); } formatted = fixed ? number.toFixed(fixed) : number; - /* format the formatted number as per settings's locale, if not present format it with default locale. */ - formatted_locale = n_locale ? Number(formatted).toLocaleString(n_locale) : Number(formatted).toLocaleString() - return new Formatted(formatted_locale, unit); + /* format the formatted number as per settings's converter, if not present return as it is. */ + formatted_val = converter_to_fun ? converter_to_fun(Number(formatted)) : formatted; + return new Formatted(formatted_val, unit); }; wok.formatMeasurement = format; @@ -237,7 +243,13 @@ wok.timeLocaleConverter = function timeLocaleConverter(time_string, locale){ } -wok.dateTimeLocaleConverters = { +wok.numberLocaleConverter = function numberConverter(number, locale){ + number = (typeof(number)==='number')?number.toLocaleString(wok.lang.get_locale()):number; + return number; +} + + +wok.localeConverters = { "date-locale-converter": { to: function(date){ return wok.dateLocaleConverter(date, wok.lang.get_locale()); @@ -252,5 +264,10 @@ wok.dateTimeLocaleConverters = { to: function(datetime){ return wok.datetimeLocaleConverter(datetime, wok.lang.get_locale()); } - } - } + }, + "number-locale-converter":{ + to: function(number){ + return wok.numberLocaleConverter(number, wok.lang.get_locale()); + } + } +} -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> Added converters in wok.line-chart widget which enables formatting of data to be displayed. Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/src/wok.line-chart.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ui/js/src/wok.line-chart.js b/ui/js/src/wok.line-chart.js index 12744af..bb3578d 100644 --- a/ui/js/src/wok.line-chart.js +++ b/ui/js/src/wok.line-chart.js @@ -70,22 +70,29 @@ wok.widget.LineChart = function(params) { var seriesCount = 0; var singleSeries = data.length === 1; var firstSeries = data[0]; + var converters = params['converters']? params['converters']:''; // TODO: Multiple axes support. if(type === 'value') { $.each(data, function(i, series) { if(series['max'] > maxValue) { maxValue = series['max']; + // Intoduce converter to format data as per converter's to function + var converter = series['converter']; + if(converter){ + converter = converters[converter]?converters[converter]:''; + } formatSettings = { base: series['base'], unit: series['unit'], fixed: series['fixed'], - locale: series['locale'] + converter: converter }; } }); } + var defs = [ '<defs>', '<pattern id="patternbg" x="0" y="0" width="6" height="6" patternUnits="userSpaceOnUse">', @@ -199,6 +206,7 @@ wok.widget.LineChart = function(params) { var base = data[i]['base']; var latestPoint = data[i]['points'].slice(-1).pop(); var latestValue = latestPoint['y']; + if(type === 'value') { latestValue = wok.formatMeasurement( latestValue, @@ -206,7 +214,14 @@ wok.widget.LineChart = function(params) { ); } else { - latestValue = { v: latestValue, s: '%' }; + // Format value if converter is passed. + converter = data[i]['converter']; + var converter_to = '' + if(converter){ + converter_to = converters[converter]?converters[converter]['to']:''; + } + + latestValue = { v: converter_to?converter_to(latestValue):latestValue, s: '%' }; } $('<div class="latest-value"><span class="number">' + latestValue.v + '</span></div>').appendTo(wrapper); $('<span class="legend-label">'+ latestValue.s +'</span><span class="legend-string">'+ label + '</span>').appendTo(wrapper[0].children[1]); -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/wok.user-log.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/js/wok.user-log.js b/ui/js/wok.user-log.js index ad90687..dd61748 100644 --- a/ui/js/wok.user-log.js +++ b/ui/js/wok.user-log.js @@ -108,7 +108,7 @@ wok.listUserLogConfig = function() { ]; wok.opts_user_log['gridFields'] = JSON.stringify(gridFields); - wok.opts_user_log['converters'] = wok.dateTimeLocaleConverters; + wok.opts_user_log['converters'] = wok.localeConverters; ulGrid = wok.createBootgrid(wok.opts_user_log); wok.hideBootgridLoading(wok.opts_user_log); -- 2.1.0
participants (2)
-
Aline Manera
-
pkulkark@in.ibm.com