From d660726dfb3eb5e30f0c756e55e9cc4e65cf78d2 Mon Sep 17 00:00:00 2001 From: Loic Oudot Date: Mon, 13 Oct 2014 15:41:56 +0200 Subject: [PATCH 1/3] Update dateparser.js fix(dateparser): Optional loeading '0' in 'M' and 'd' dateparser --- src/dateparser/dateparser.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dateparser/dateparser.js b/src/dateparser/dateparser.js index 9d98bff2b7..2e3996cebf 100644 --- a/src/dateparser/dateparser.js +++ b/src/dateparser/dateparser.js @@ -30,7 +30,7 @@ angular.module('ui.bootstrap.dateparser', []) apply: function(value) { this.month = value - 1; } }, 'M': { - regex: '[1-9]|1[0-2]', + regex: '0?[1-9]|1[0-2]', apply: function(value) { this.month = value - 1; } }, 'dd': { @@ -38,7 +38,7 @@ angular.module('ui.bootstrap.dateparser', []) apply: function(value) { this.date = +value; } }, 'd': { - regex: '[1-2]?[0-9]{1}|3[0-1]{1}', + regex: '0?[1-2]?[0-9]{1}|3[0-1]{1}', apply: function(value) { this.date = +value; } }, 'EEEE': { From 95abaaf9a6d307de8157b777541013c2ab19bd0b Mon Sep 17 00:00:00 2001 From: Loic Oudot Date: Mon, 13 Oct 2014 15:43:40 +0200 Subject: [PATCH 2/3] Update dateparser.spec.js fix(dateparser): Optional leading '0' for 'M' and 'd' dateparser --- src/dateparser/test/dateparser.spec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/dateparser/test/dateparser.spec.js b/src/dateparser/test/dateparser.spec.js index 8bf233f241..6fdfcb1777 100644 --- a/src/dateparser/test/dateparser.spec.js +++ b/src/dateparser/test/dateparser.spec.js @@ -31,6 +31,7 @@ describe('date parser', function () { it('should work correctly for `M`', function() { expectParse('8/11/2013', 'M/dd/yyyy', new Date(2013, 7, 11, 0)); + expectParse('08/11/2013', 'M/dd/yyyy', new Date(2013, 7, 11, 0)); expectParse('07.11.05', 'dd.M.yy', new Date(2005, 10, 7, 0)); expectParse('02-5-11', 'dd-M-yy', new Date(2011, 4, 2, 0)); expectParse('2/05/1980', 'M/dd/yyyy', new Date(1980, 1, 5, 0)); @@ -55,6 +56,7 @@ describe('date parser', function () { it('should work correctly for `d`', function() { expectParse('17.November.13', 'd.MMMM.yy', new Date(2013, 10, 17, 0)); expectParse('8-March-1991', 'd-MMMM-yyyy', new Date(1991, 2, 8, 0)); + expectParse('08-March-1991', 'd-MMMM-yyyy', new Date(1991, 2, 8, 0)); expectParse('February/5/1980', 'MMMM/d/yyyy', new Date(1980, 1, 5, 0)); expectParse('1955/February/5', 'yyyy/MMMM/d', new Date(1955, 1, 5, 0)); expectParse('11-08-13', 'd-MM-yy', new Date(2013, 7, 11, 0)); From 7f272f4f09b72582f03ce4f901e45d86dd5d456a Mon Sep 17 00:00:00 2001 From: Loic Oudot Date: Mon, 13 Oct 2014 15:47:13 +0200 Subject: [PATCH 3/3] Update datepicker.js Appply patch for #2659 --- src/datepicker/datepicker.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/datepicker/datepicker.js b/src/datepicker/datepicker.js index 05784947d0..48e90409b7 100644 --- a/src/datepicker/datepicker.js +++ b/src/datepicker/datepicker.js @@ -524,6 +524,10 @@ function ($compile, $parse, $document, $position, dateFilter, dateParser, datepi } ngModel.$parsers.unshift(parseDate); + ngModel.$formatters.push(function (value) { + return ngModel.$isEmpty(value) ? value : dateFilter(value, dateFormat); + }); + // Inner change scope.dateSelection = function(dt) { if (angular.isDefined(dt)) { @@ -546,7 +550,7 @@ function ($compile, $parse, $document, $position, dateFilter, dateParser, datepi // Outter change ngModel.$render = function() { - var date = ngModel.$viewValue ? dateFilter(ngModel.$viewValue, dateFormat) : ''; + var date = ngModel.$viewValue ? dateFilter(ngModel.$modelValue, dateFormat) : ''; element.val(date); scope.date = parseDate( ngModel.$modelValue ); };