diff --git a/source/ngComboDatePicker.js b/source/ngComboDatePicker.js index 0967a15..aad8c02 100644 --- a/source/ngComboDatePicker.js +++ b/source/ngComboDatePicker.js @@ -1,5 +1,5 @@ /* - * ngComboDatePicker v1.2.1 + * ngComboDatePicker v1.2.2 * http://github.com/jfmdev/ngComboDatePicker * «Copyright 2015 Jose F. Maldonado» * License: LGPLv3 (http://www.gnu.org/licenses/lgpl-3.0.html) @@ -201,8 +201,8 @@ angular.module("ngComboDatePicker", []) // When a combo box is changed, update the model and verify which values in the combo boxes for dates and months can be show. $scope.onChange = function(part) { - // Update model. - if($scope.date != null && $scope.month != null && $scope.year != null && $scope.date != '' && $scope.month != '' && $scope.year != '') { + // Update model. + if($scope.date != null && $scope.date != '' && !isNaN(parseInt($scope.month)) && $scope.year != null && $scope.year != '') { var maxDay = maxDate($scope.month+1, $scope.year); var hours = 0, minutes = 0, seconds = 0, milliseconds = 0; diff --git a/source/ngComboDatePicker.min.js b/source/ngComboDatePicker.min.js index 2af7844..d061d8a 100644 --- a/source/ngComboDatePicker.min.js +++ b/source/ngComboDatePicker.min.js @@ -1,7 +1,7 @@ /* - * ngComboDatePicker v1.2.1 + * ngComboDatePicker v1.2.2 * http://github.com/jfmdev/ngComboDatePicker * «Copyright 2015 Jose F. Maldonado» * License: LGPLv3 (http://www.gnu.org/licenses/lgpl-3.0.html) */ -angular.module("ngComboDatePicker",[]).directive("ngComboDatePicker",function(){return{restrict:"AEC",scope:{ngModel:"=",ngDate:"@",ngMinDate:"@",ngMaxDate:"@",ngMonths:"@",ngOrder:"@",ngAttrsDate:"@",ngAttrsMonth:"@",ngAttrsYear:"@",ngYearOrder:"@",ngTimezone:"@",ngPlaceholder:"@"},controller:["$scope",function(e){function n(e,n){var a=null;return void 0!==e&&null!==e&&(e instanceof Date?a=e:("number"==typeof e||"string"==typeof e)&&(a=new Date(isNaN(e)?e:parseInt(e,10)),a=t(a,n))),a}function t(e,n){var t=isNaN(n)?(new Date).getTimezoneOffset():60*parseFloat(n);return new Date(e.getTime()+60*t*1e3)}function a(e,n){var t=31;return null!=e&&((4==e||6==e||9==e||11==e)&&(t=30),null!=n&&2==e&&(t=n%4==0&&n%100!=0?29:28)),t}function l(e){var n=null;if(null!=e){try{n=JSON.parse(e)}catch(t){}if(null==n)try{n=JSON.parse(e.replace(/'/g,'"'))}catch(t){}}return n}e.ngModel=n(e.ngModel,e.ngTimezone),e.ngAttrsDate=l(e.ngAttrsDate),e.ngAttrsMonth=l(e.ngAttrsMonth),e.ngAttrsYear=l(e.ngAttrsYear);var r=n(e.ngDate,e.ngTimezone);if(null!=r&&(e.ngModel=r),"string"!=typeof e.ngOrder?e.ngOrder="dmy":e.ngOrder=e.ngOrder.toLowerCase(),e.minDate=n(e.ngMinDate,e.ngTimezone),null==e.ngMinDate){var o=t(new Date,e.ngTimezone);e.minDate=new Date(o.getFullYear()-100,o.getMonth(),o.getDate(),o.getHours(),o.getMinutes(),o.getSeconds(),o.getMilliseconds())}e.maxDate=n(e.ngMaxDate,e.ngTimezone),null==e.maxDate&&(e.maxDate=t(new Date,e.ngTimezone)),e.ngModele.maxDate&&(e.ngModel=e.maxDate);var g=null;if(void 0!==e.ngPlaceholder&&null!==e.ngPlaceholder&&("string"==typeof e.ngPlaceholder||Array.isArray(e.ngPlaceholder))){var d="string"==typeof e.ngPlaceholder?e.ngPlaceholder.split(","):e.ngPlaceholder;if(3==d.length){g=[];for(var s=0;s=a;a++)e.months.push({value:a,name:u[a]})},e.updateDateList=function(){var n=1;null!=e.ngModel&&e.ngModel.getMonth()==e.minDate.getMonth()&&e.ngModel.getFullYear()==e.minDate.getFullYear()&&(n=e.minDate.getDate());var t=null!=e.ngModel?a(e.ngModel.getMonth()+1,e.ngModel.getFullYear()):a(null,null);null!=e.ngModel&&e.ngModel.getMonth()==e.maxDate.getMonth()&&e.ngModel.getFullYear()==e.maxDate.getFullYear()&&(t=e.maxDate.getDate()),e.dates=[],g&&e.dates.push(g[2]);for(var l=n;t>=l;l++)e.dates.push({value:l,name:l})},e.modelUpdated=function(){e.date=null!=e.ngModel?e.ngModel.getDate():"",e.month=null!=e.ngModel?e.ngModel.getMonth():"",e.year=null!=e.ngModel?e.ngModel.getFullYear():"",e.updateMonthList(),e.updateDateList()},e.$watch("ngModel",function(){e.modelUpdated()}),e.onChange=function(n){if(null!=e.date&&null!=e.month&&null!=e.year&&""!=e.date&&""!=e.month&&""!=e.year){var t=a(e.month+1,e.year),l=0,r=0,o=0,d=0;null!=e.ngModel&&(l=e.ngModel.getHours(),r=e.ngModel.getMinutes(),o=e.ngModel.getSeconds(),d=e.ngModel.getMilliseconds()),e.ngModel=new Date(e.year,e.month,e.date>t?t:e.date,l,r,o,d)}g&&(""!=e.year&&(g[0].disabled=!0),""!=e.month&&(g[1].disabled=!0),""!=e.date&&(g[2].disabled=!0)),e.updateMonthList(),e.updateDateList()},e.getSomething=function(){return"color:red;"}}],link:function(e,n,t){var a=angular.element,l=a(n[0]).children(),r=e.ngOrder.split("");null!=e.ngAttrsDate&&a(l[0]).attr(e.ngAttrsDate),null!=e.ngAttrsMonth&&a(l[1]).attr(e.ngAttrsMonth),null!=e.ngAttrsYear&&a(l[2]).attr(e.ngAttrsYear);for(var o=0;o';return e}}}); +angular.module("ngComboDatePicker",[]).directive("ngComboDatePicker",function(){return{restrict:"AEC",scope:{ngModel:"=",ngDate:"@",ngMinDate:"@",ngMaxDate:"@",ngMonths:"@",ngOrder:"@",ngAttrsDate:"@",ngAttrsMonth:"@",ngAttrsYear:"@",ngYearOrder:"@",ngTimezone:"@",ngPlaceholder:"@"},controller:["$scope",function(e){function n(e,n){var a=null;return void 0!==e&&null!==e&&(e instanceof Date?a=e:("number"==typeof e||"string"==typeof e)&&(a=new Date(isNaN(e)?e:parseInt(e,10)),a=t(a,n))),a}function t(e,n){var t=isNaN(n)?(new Date).getTimezoneOffset():60*parseFloat(n);return new Date(e.getTime()+60*t*1e3)}function a(e,n){var t=31;return null!=e&&((4==e||6==e||9==e||11==e)&&(t=30),null!=n&&2==e&&(t=n%4==0&&n%100!=0?29:28)),t}function l(e){var n=null;if(null!=e){try{n=JSON.parse(e)}catch(t){}if(null==n)try{n=JSON.parse(e.replace(/'/g,'"'))}catch(t){}}return n}e.ngModel=n(e.ngModel,e.ngTimezone),e.ngAttrsDate=l(e.ngAttrsDate),e.ngAttrsMonth=l(e.ngAttrsMonth),e.ngAttrsYear=l(e.ngAttrsYear);var r=n(e.ngDate,e.ngTimezone);if(null!=r&&(e.ngModel=r),"string"!=typeof e.ngOrder?e.ngOrder="dmy":e.ngOrder=e.ngOrder.toLowerCase(),e.minDate=n(e.ngMinDate,e.ngTimezone),null==e.ngMinDate){var o=t(new Date,e.ngTimezone);e.minDate=new Date(o.getFullYear()-100,o.getMonth(),o.getDate(),o.getHours(),o.getMinutes(),o.getSeconds(),o.getMilliseconds())}e.maxDate=n(e.ngMaxDate,e.ngTimezone),null==e.maxDate&&(e.maxDate=t(new Date,e.ngTimezone)),e.ngModele.maxDate&&(e.ngModel=e.maxDate);var g=null;if(void 0!==e.ngPlaceholder&&null!==e.ngPlaceholder&&("string"==typeof e.ngPlaceholder||Array.isArray(e.ngPlaceholder))){var d="string"==typeof e.ngPlaceholder?e.ngPlaceholder.split(","):e.ngPlaceholder;if(3==d.length){g=[];for(var s=0;s=a;a++)e.months.push({value:a,name:u[a]})},e.updateDateList=function(){var n=1;null!=e.ngModel&&e.ngModel.getMonth()==e.minDate.getMonth()&&e.ngModel.getFullYear()==e.minDate.getFullYear()&&(n=e.minDate.getDate());var t=null!=e.ngModel?a(e.ngModel.getMonth()+1,e.ngModel.getFullYear()):a(null,null);null!=e.ngModel&&e.ngModel.getMonth()==e.maxDate.getMonth()&&e.ngModel.getFullYear()==e.maxDate.getFullYear()&&(t=e.maxDate.getDate()),e.dates=[],g&&e.dates.push(g[2]);for(var l=n;t>=l;l++)e.dates.push({value:l,name:l})},e.modelUpdated=function(){e.date=null!=e.ngModel?e.ngModel.getDate():"",e.month=null!=e.ngModel?e.ngModel.getMonth():"",e.year=null!=e.ngModel?e.ngModel.getFullYear():"",e.updateMonthList(),e.updateDateList()},e.$watch("ngModel",function(){e.modelUpdated()}),e.onChange=function(n){if(null!=e.date&&""!=e.date&&!isNaN(parseInt(e.month))&&null!=e.year&&""!=e.year){var t=a(e.month+1,e.year),l=0,r=0,o=0,d=0;null!=e.ngModel&&(l=e.ngModel.getHours(),r=e.ngModel.getMinutes(),o=e.ngModel.getSeconds(),d=e.ngModel.getMilliseconds()),e.ngModel=new Date(e.year,e.month,e.date>t?t:e.date,l,r,o,d)}g&&(""!=e.year&&(g[0].disabled=!0),""!=e.month&&(g[1].disabled=!0),""!=e.date&&(g[2].disabled=!0)),e.updateMonthList(),e.updateDateList()},e.getSomething=function(){return"color:red;"}}],link:function(e,n,t){var a=angular.element,l=a(n[0]).children(),r=e.ngOrder.split("");null!=e.ngAttrsDate&&a(l[0]).attr(e.ngAttrsDate),null!=e.ngAttrsMonth&&a(l[1]).attr(e.ngAttrsMonth),null!=e.ngAttrsYear&&a(l[2]).attr(e.ngAttrsYear);for(var o=0;o';return e}}});