diff options
author | Thomas Müller <DeepDiver1975@users.noreply.github.com> | 2016-12-15 00:02:58 +0100 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2017-06-30 12:40:38 +0200 |
commit | 8bd3a7aea2037197305daeb260f8e3298ba351c0 (patch) | |
tree | 294953764723e0fca8d8e9c65af923884d3f77dc | |
parent | 06368d5f661009695e5683e349db505b7bc71617 (diff) |
* Allow selected year to be smaller then 1000 (#553)
* Allow text only input for dates - e.g. ca 1802
-rw-r--r-- | js/components/datepicker_directive.js | 12 | ||||
-rw-r--r-- | js/components/detailsItem/detailsItem_controller.js | 13 | ||||
-rw-r--r-- | templates/detailItems/date.html | 2 |
3 files changed, 25 insertions, 2 deletions
diff --git a/js/components/datepicker_directive.js b/js/components/datepicker_directive.js index 1a7480ed..a412c7e9 100644 --- a/js/components/datepicker_directive.js +++ b/js/components/datepicker_directive.js @@ -9,7 +9,17 @@ angular.module('contactsApp') dateFormat:'yy-mm-dd', minDate: null, maxDate: null, - onSelect:function (date) { + constrainInput: false, + onSelect:function (date, dp) { + if (dp.selectedYear < 1000) { + date = '0' + date; + } + if (dp.selectedYear < 100) { + date = '0' + date; + } + if (dp.selectedYear < 10) { + date = '0' + date; + } ngModelCtrl.$setViewValue(date); scope.$apply(); } diff --git a/js/components/detailsItem/detailsItem_controller.js b/js/components/detailsItem/detailsItem_controller.js index 9b5b8a6e..9c76367e 100644 --- a/js/components/detailsItem/detailsItem_controller.js +++ b/js/components/detailsItem/detailsItem_controller.js @@ -72,6 +72,19 @@ angular.module('contactsApp') ctrl.model.updateContact(); }; + ctrl.dateInputChanged = function () { + ctrl.data.meta = ctrl.data.meta || {}; + + var match = ctrl.data.value.match(/^(\d{4})-(\d{2})-(\d{2})$/); + if (match) { + ctrl.data.meta.value = []; + } else { + ctrl.data.meta.value = ctrl.data.meta.value || []; + ctrl.data.meta.value[0] = 'text'; + } + ctrl.model.updateContact(); + }; + ctrl.updateDetailedName = function () { var fn = ''; if (ctrl.data.value[3]) { diff --git a/templates/detailItems/date.html b/templates/detailItems/date.html index 4f6b05e0..bc538d51 100644 --- a/templates/detailItems/date.html +++ b/templates/detailItems/date.html @@ -1,7 +1,7 @@ <label for="details-{{ctrl.name}}-{{ctrl.index}}">{{ctrl.meta.readableName}}</label> <input type="text" id="details-{{ctrl.name}}-{{ctrl.index}}" name="{{ctrl.name}}" ng-model="ctrl.data.value" datepicker ng-model-options="{ debounce: 500 }" - ng-change="ctrl.model.updateContact()" value="" + ng-change="ctrl.dateInputChanged()" value="" focus-expression="$parent.ctrl.focus === ctrl.name" /> <button ng-click="ctrl.deleteField()" class="icon-delete" title="{{ctrl.t.delete}}"></button> |