From 622f131c6bf0184abc706bbf4112806d1fedc146 Mon Sep 17 00:00:00 2001 From: Rahul Doshi Date: Fri, 20 Jun 2014 10:34:54 -0700 Subject: [PATCH 1/4] feat(currencyFilter): add fractionSize as optional parameter currencyFilter accepts number of decimals to round off to Closes #3642 --- src/ng/filter/filters.js | 9 +++++++-- test/ng/filter/filtersSpec.js | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js index 62d73c16c46a..6c03e0ddf183 100644 --- a/src/ng/filter/filters.js +++ b/src/ng/filter/filters.js @@ -11,6 +11,7 @@ * * @param {number} amount Input to filter. * @param {string=} symbol Currency symbol or identifier to be displayed. + * @param {number=} fractionSize Number of decimal places to round the amount to. * @returns {string} Formatted number. * * @@ -26,12 +27,14 @@
default currency symbol ($): {{amount | currency}}
custom currency identifier (USD$): {{amount | currency:"USD$"}} + no fractions (0): {{amount | currency:"USD$":0}} it('should init with 1234.56', function() { expect(element(by.id('currency-default')).getText()).toBe('$1,234.56'); expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('USD$1,234.56'); + expect(element(by.binding('amount | currency:"USD$":0')).getText()).toBe('USD$1,235'); }); it('should update', function() { if (browser.params.browser == 'safari') { @@ -43,6 +46,7 @@ element(by.model('amount')).sendKeys('-1234'); expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)'); expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('(USD$1,234.00)'); + expect(binding('amount | currency:"USD$":0')).toBe('(USD$1,234)'); }); @@ -50,9 +54,10 @@ currencyFilter.$inject = ['$locale']; function currencyFilter($locale) { var formats = $locale.NUMBER_FORMATS; - return function(amount, currencySymbol){ + return function(amount, currencySymbol, fractionSize){ if (isUndefined(currencySymbol)) currencySymbol = formats.CURRENCY_SYM; - return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, 2). + if (isUndefined(fractionSize) || isNaN(fractionSize) fractionSize = 2; + return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize). replace(/\u00A4/g, currencySymbol); }; } diff --git a/test/ng/filter/filtersSpec.js b/test/ng/filter/filtersSpec.js index b99f65e12afa..0a8c5401fe6d 100644 --- a/test/ng/filter/filtersSpec.js +++ b/test/ng/filter/filtersSpec.js @@ -95,6 +95,7 @@ describe('filters', function() { expect(currency(0)).toEqual('$0.00'); expect(currency(-999)).toEqual('($999.00)'); expect(currency(1234.5678, "USD$")).toEqual('USD$1,234.57'); + expect(currency(1234.5678, "USD$", 0)).toEqual('USD$1,235'); }); From 8dc07d7e9430b16a2d381f4b3a369c8694dd352c Mon Sep 17 00:00:00 2001 From: Rahul Doshi Date: Fri, 20 Jun 2014 10:34:54 -0700 Subject: [PATCH 2/4] feat(currencyFilter): add fractionSize as optional parameter currencyFilter accepts number of decimals to round off to Closes #3642 --- src/ng/filter/filters.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js index 6c03e0ddf183..a8c747052f8e 100644 --- a/src/ng/filter/filters.js +++ b/src/ng/filter/filters.js @@ -56,7 +56,7 @@ function currencyFilter($locale) { var formats = $locale.NUMBER_FORMATS; return function(amount, currencySymbol, fractionSize){ if (isUndefined(currencySymbol)) currencySymbol = formats.CURRENCY_SYM; - if (isUndefined(fractionSize) || isNaN(fractionSize) fractionSize = 2; + if (isUndefined(fractionSize) || isNaN(fractionSize)) fractionSize = 2; return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize). replace(/\u00A4/g, currencySymbol); }; From 08785e0f550ccf304356568655bdbafef118ace4 Mon Sep 17 00:00:00 2001 From: Rahul Doshi Date: Fri, 20 Jun 2014 10:34:54 -0700 Subject: [PATCH 3/4] feat(currencyFilter): add fractionSize as optional parameter currencyFilter accepts number of decimals to round off to Closes #3642 --- src/ng/filter/filters.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js index a8c747052f8e..5236ebdf482b 100644 --- a/src/ng/filter/filters.js +++ b/src/ng/filter/filters.js @@ -46,7 +46,7 @@ element(by.model('amount')).sendKeys('-1234'); expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)'); expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('(USD$1,234.00)'); - expect(binding('amount | currency:"USD$":0')).toBe('(USD$1,234)'); + expect(element(by,binding('amount | currency:"USD$":0')).getText()).toBe('(USD$1,234)'); }); From 597f9c06a02b1c5d58a72223a04f6998f20274fe Mon Sep 17 00:00:00 2001 From: Rahul Doshi Date: Fri, 20 Jun 2014 10:34:54 -0700 Subject: [PATCH 4/4] feat(currencyFilter): add fractionSize as optional parameter currencyFilter accepts number of decimals to round off to Closes #3642 --- src/ng/filter/filters.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js index 5236ebdf482b..4a470118066b 100644 --- a/src/ng/filter/filters.js +++ b/src/ng/filter/filters.js @@ -46,7 +46,7 @@ element(by.model('amount')).sendKeys('-1234'); expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)'); expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('(USD$1,234.00)'); - expect(element(by,binding('amount | currency:"USD$":0')).getText()).toBe('(USD$1,234)'); + expect(element(by.binding('amount | currency:"USD$":0')).getText()).toBe('(USD$1,234)'); });