summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <DeepDiver1975@users.noreply.github.com>2016-12-15 00:02:58 +0100
committerJoas Schilling <coding@schilljs.com>2017-06-30 12:40:38 +0200
commit8bd3a7aea2037197305daeb260f8e3298ba351c0 (patch)
tree294953764723e0fca8d8e9c65af923884d3f77dc
parent06368d5f661009695e5683e349db505b7bc71617 (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.js12
-rw-r--r--js/components/detailsItem/detailsItem_controller.js13
-rw-r--r--templates/detailItems/date.html2
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>