From 770eeefcf25275947dbe9e3b94fd74cd45fe5409 Mon Sep 17 00:00:00 2001 From: Jose Date: Wed, 14 Jun 2017 22:20:40 -0300 Subject: [PATCH] Fix bug when setting the minimum date but not defining the model --- bower.json | 2 +- package.json | 2 +- source/ngComboDatePicker.js | 6 +++--- source/ngComboDatePicker.min.js | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bower.json b/bower.json index 2f7fbb1..f0856c9 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "ngComboDatePicker", - "version": "1.5.0", + "version": "1.5.1", "authors": [ "jfmdev " ], diff --git a/package.json b/package.json index 3726784..13d268a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ng-combo-date-picker", - "version": "1.5.0", + "version": "1.5.1", "description": "An Angular directive to select dates using combo boxes", "main": "source/ngComboDatePicker.js", "scripts": { diff --git a/source/ngComboDatePicker.js b/source/ngComboDatePicker.js index bfe7a5b..3cd0715 100644 --- a/source/ngComboDatePicker.js +++ b/source/ngComboDatePicker.js @@ -1,5 +1,5 @@ /* - * ngComboDatePicker v1.5.0 + * ngComboDatePicker v1.5.1 * http://github.com/jfmdev/ngComboDatePicker * «Copyright 2015 Jose F. Maldonado» * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -145,8 +145,8 @@ angular.module("ngComboDatePicker", []) } // Verify if selected date is in the valid range. - if($scope.ngMinModel &&$scope.ngModel < $scope.ngMinModel) $scope.ngModel = $scope.ngMinModel; - if($scope.ngMaxModel && $scope.ngModel > $scope.ngMaxModel) $scope.ngModel = $scope.ngMaxModel; + if($scope.ngModel && $scope.ngMinModel && $scope.ngModel < $scope.ngMinModel) $scope.ngModel = $scope.ngMinModel; + if($scope.ngModel && $scope.ngMaxModel && $scope.ngModel > $scope.ngMaxModel) $scope.ngModel = $scope.ngMaxModel; }); // Initialize place holders. diff --git a/source/ngComboDatePicker.min.js b/source/ngComboDatePicker.min.js index 8bf7a50..41c4202 100644 --- a/source/ngComboDatePicker.min.js +++ b/source/ngComboDatePicker.min.js @@ -1,7 +1,7 @@ /* - * ngComboDatePicker v1.5.0 + * ngComboDatePicker v1.5.1 * http://github.com/jfmdev/ngComboDatePicker * «Copyright 2015 Jose F. Maldonado» * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -angular.module("ngComboDatePicker",[]).directive("ngComboDatePicker",function(){function maxDate(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||n%400==0?29:28)),t}function adjustTimezone(e,n){var t=isNaN(n)?(new Date).getTimezoneOffset():60*parseFloat(n);return new Date(e.getTime()+60*t*1e3)}function parseDate(e,n){var t=null;return void 0!==e&&null!==e&&(e instanceof Date?t=e:"number"!=typeof e&&"string"!=typeof e||(t=new Date(isNaN(e)?e:parseInt(e,10)),t=adjustTimezone(t,n))),t}function parseIntStrict(e){return null!==e&&""!==e&&NaN!=parseInt(e)?parseInt(e):null}function parseJsonPlus(e){var n=null;if(null!=e){try{n=JSON.parse(e)}catch(e){}if(null==n)try{n=JSON.parse(e.replace(/'/g,'"'))}catch(e){}}return n}return{restrict:"AEC",scope:{ngModel:"=",ngDate:"@",ngMinDate:"@",ngMaxDate:"@",ngMinModel:"=?",ngMaxModel:"=?",ngMonths:"@",ngTimezone:"@",ngOrder:"@",ngAttrsDate:"@",ngAttrsMonth:"@",ngAttrsYear:"@",ngDisabled:"=?",ngYearOrder:"@",ngPlaceholder:"@",ngPlaceholderEnabled:"@",ngRequired:"@"},require:"ngModel",controller:["$scope",function(e){e.ngModel=parseDate(e.ngModel,e.ngTimezone),e.ngMinModel=parseDate(e.ngMinModel,e.ngTimezone),e.ngMaxModel=parseDate(e.ngMaxModel,e.ngTimezone),e.ngAttrsDate=parseJsonPlus(e.ngAttrsDate),e.ngAttrsMonth=parseJsonPlus(e.ngAttrsMonth),e.ngAttrsYear=parseJsonPlus(e.ngAttrsYear);var n=parseDate(e.ngDate,e.ngTimezone);if(null!=n&&(e.ngModel=n),"string"!=typeof e.ngOrder?e.ngOrder="dmy":e.ngOrder=e.ngOrder.toLowerCase(),e.ngMinDate&&(e.ngMinModel=parseDate(e.ngMinDate,e.ngTimezone)),!e.ngMinModel){var t=new Date;e.ngMinModel=new Date(t.getFullYear()-100,t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds())}if(e.ngMaxDate&&(e.ngMaxModel=parseDate(e.ngMaxDate,e.ngTimezone)),e.ngMaxModel||(e.ngMaxModel=new Date),e.$watch("[ngMinModel, ngMaxModel]",function(){if(e.ngMinModel&&e.ngMaxModel){e.years=[];for(var n=e.ngMinModel.getFullYear();n<=e.ngMaxModel.getFullYear();n++)e.years.push({value:n,name:n});"string"==typeof e.ngYearOrder&&0==e.ngYearOrder.indexOf("des")&&e.years.reverse(),e.placeHolders&&e.years.unshift(e.placeHolders[0])}e.ngMinModel&&e.ngModele.ngMaxModel&&(e.ngModel=e.ngMaxModel)}),e.placeHolders=null,void 0!==e.ngPlaceholder&&null!==e.ngPlaceholder&&("string"==typeof e.ngPlaceholder||Array.isArray(e.ngPlaceholder))){var a="string"==typeof e.ngPlaceholder?e.ngPlaceholder.split(","):e.ngPlaceholder;if(3==a.length){e.placeHolders=[];for(var l=0;la?a:n.date,l,r,o,s)}return e.placeHolders&&angular.isUndefined(e.ngPlaceholderEnabled)&&(""!=e.year&&(e.placeHolders[0].disabled=!0),""!=e.month&&(e.placeHolders[1].disabled=!0),""!=e.date&&(e.placeHolders[2].disabled=!0)),e.updateMonthList(n.year),e.updateDateList(n.month,n.year),t}),e.touched=function(){a.$touched=!0,a.$untouched=!1}},template:function(element,attrs){for(var strAttrs=["","",""],attrNames=["ngAttrsDate","ngAttrsMonth","ngAttrsYear"],i=0;i<3;i++)try{if(attrs&&attrs[attrNames[i]]){eval("var attrsAux= "+attrs[attrNames[i]]);for(var key in attrsAux){var value=attrsAux[key];"boolean"==typeof value?value&&(strAttrs[i]+=key+" "):("string"==typeof value&&value.indexOf('"')>0&&(value=value.replace(/"/g,""")),strAttrs[i]+=key+'="'+value+'" ')}}}catch(e){console.log(e)}var html='';return html}}}); \ No newline at end of file +angular.module("ngComboDatePicker",[]).directive("ngComboDatePicker",function(){function maxDate(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||n%400==0?29:28)),t}function adjustTimezone(e,n){var t=isNaN(n)?(new Date).getTimezoneOffset():60*parseFloat(n);return new Date(e.getTime()+60*t*1e3)}function parseDate(e,n){var t=null;return void 0!==e&&null!==e&&(e instanceof Date?t=e:"number"!=typeof e&&"string"!=typeof e||(t=new Date(isNaN(e)?e:parseInt(e,10)),t=adjustTimezone(t,n))),t}function parseIntStrict(e){return null!==e&&""!==e&&NaN!=parseInt(e)?parseInt(e):null}function parseJsonPlus(e){var n=null;if(null!=e){try{n=JSON.parse(e)}catch(e){}if(null==n)try{n=JSON.parse(e.replace(/'/g,'"'))}catch(e){}}return n}return{restrict:"AEC",scope:{ngModel:"=",ngDate:"@",ngMinDate:"@",ngMaxDate:"@",ngMinModel:"=?",ngMaxModel:"=?",ngMonths:"@",ngTimezone:"@",ngOrder:"@",ngAttrsDate:"@",ngAttrsMonth:"@",ngAttrsYear:"@",ngDisabled:"=?",ngYearOrder:"@",ngPlaceholder:"@",ngPlaceholderEnabled:"@",ngRequired:"@"},require:"ngModel",controller:["$scope",function(e){e.ngModel=parseDate(e.ngModel,e.ngTimezone),e.ngMinModel=parseDate(e.ngMinModel,e.ngTimezone),e.ngMaxModel=parseDate(e.ngMaxModel,e.ngTimezone),e.ngAttrsDate=parseJsonPlus(e.ngAttrsDate),e.ngAttrsMonth=parseJsonPlus(e.ngAttrsMonth),e.ngAttrsYear=parseJsonPlus(e.ngAttrsYear);var n=parseDate(e.ngDate,e.ngTimezone);if(null!=n&&(e.ngModel=n),"string"!=typeof e.ngOrder?e.ngOrder="dmy":e.ngOrder=e.ngOrder.toLowerCase(),e.ngMinDate&&(e.ngMinModel=parseDate(e.ngMinDate,e.ngTimezone)),!e.ngMinModel){var t=new Date;e.ngMinModel=new Date(t.getFullYear()-100,t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds())}if(e.ngMaxDate&&(e.ngMaxModel=parseDate(e.ngMaxDate,e.ngTimezone)),e.ngMaxModel||(e.ngMaxModel=new Date),e.$watch("[ngMinModel, ngMaxModel]",function(){if(e.ngMinModel&&e.ngMaxModel){e.years=[];for(var n=e.ngMinModel.getFullYear();n<=e.ngMaxModel.getFullYear();n++)e.years.push({value:n,name:n});"string"==typeof e.ngYearOrder&&0==e.ngYearOrder.indexOf("des")&&e.years.reverse(),e.placeHolders&&e.years.unshift(e.placeHolders[0])}e.ngModel&&e.ngMinModel&&e.ngModele.ngMaxModel&&(e.ngModel=e.ngMaxModel)}),e.placeHolders=null,void 0!==e.ngPlaceholder&&null!==e.ngPlaceholder&&("string"==typeof e.ngPlaceholder||Array.isArray(e.ngPlaceholder))){var a="string"==typeof e.ngPlaceholder?e.ngPlaceholder.split(","):e.ngPlaceholder;if(3==a.length){e.placeHolders=[];for(var l=0;la?a:n.date,l,r,o,s)}return e.placeHolders&&angular.isUndefined(e.ngPlaceholderEnabled)&&(""!=e.year&&(e.placeHolders[0].disabled=!0),""!=e.month&&(e.placeHolders[1].disabled=!0),""!=e.date&&(e.placeHolders[2].disabled=!0)),e.updateMonthList(n.year),e.updateDateList(n.month,n.year),t}),e.touched=function(){a.$touched=!0,a.$untouched=!1}},template:function(element,attrs){for(var strAttrs=["","",""],attrNames=["ngAttrsDate","ngAttrsMonth","ngAttrsYear"],i=0;i<3;i++)try{if(attrs&&attrs[attrNames[i]]){eval("var attrsAux= "+attrs[attrNames[i]]);for(var key in attrsAux){var value=attrsAux[key];"boolean"==typeof value?value&&(strAttrs[i]+=key+" "):("string"==typeof value&&value.indexOf('"')>0&&(value=value.replace(/"/g,""")),strAttrs[i]+=key+'="'+value+'" ')}}}catch(e){console.log(e)}var html='';return html}}}); \ No newline at end of file