update to combodate 1.0.3
This commit is contained in:
parent
901f77e052
commit
ccdd4c5746
@ -4,6 +4,7 @@ X-editable changelog
|
|||||||
|
|
||||||
Version 1.4.4 wip
|
Version 1.4.4 wip
|
||||||
----------------------------
|
----------------------------
|
||||||
|
[enh] update to combodate 1.0.3 with yearDescending and roundTime options (vitalets)
|
||||||
[enh] add 'use strict' directive (vitalets)
|
[enh] add 'use strict' directive (vitalets)
|
||||||
[enh #202] allow pk=0 (mdeweerd)
|
[enh #202] allow pk=0 (mdeweerd)
|
||||||
[enh #183] move datepicker icon to center of button (vitalets)
|
[enh #183] move datepicker icon to center of button (vitalets)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Combodate - 1.0.2
|
* Combodate - 1.0.3
|
||||||
* Dropdown date and time picker.
|
* Dropdown date and time picker.
|
||||||
* Converts text input into dropdowns to pick day, month, year, hour, minute and second.
|
* Converts text input into dropdowns to pick day, month, year, hour, minute and second.
|
||||||
* Uses momentjs as datetime library http://momentjs.com.
|
* Uses momentjs as datetime library http://momentjs.com.
|
||||||
@ -106,7 +106,7 @@
|
|||||||
relTime;
|
relTime;
|
||||||
|
|
||||||
if(this.options.firstItem === 'name') {
|
if(this.options.firstItem === 'name') {
|
||||||
//need both to suuport moment ver < 2 and >= 2
|
//need both to support moment ver < 2 and >= 2
|
||||||
relTime = moment.relativeTime || moment.langData()._relativeTime;
|
relTime = moment.relativeTime || moment.langData()._relativeTime;
|
||||||
var header = typeof relTime[key] === 'function' ? relTime[key](1, true, key, false) : relTime[key];
|
var header = typeof relTime[key] === 'function' ? relTime[key](1, true, key, false) : relTime[key];
|
||||||
//take last entry (see momentjs lang files structure)
|
//take last entry (see momentjs lang files structure)
|
||||||
@ -171,13 +171,16 @@
|
|||||||
fill year
|
fill year
|
||||||
*/
|
*/
|
||||||
fillYear: function() {
|
fillYear: function() {
|
||||||
var items = this.initItems('y'), name, i,
|
var items = [], name, i,
|
||||||
longNames = this.options.template.indexOf('YYYY') !== -1;
|
longNames = this.options.template.indexOf('YYYY') !== -1;
|
||||||
|
|
||||||
for(i=this.options.maxYear; i>=this.options.minYear; i--) {
|
for(i=this.options.maxYear; i>=this.options.minYear; i--) {
|
||||||
name = longNames ? i : (i+'').substring(2);
|
name = longNames ? i : (i+'').substring(2);
|
||||||
items.push([i, name]);
|
items[this.options.yearDescending ? 'push' : 'unshift']([i, name]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
items = this.initItems('y').concat(items);
|
||||||
|
|
||||||
return items;
|
return items;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -299,6 +302,22 @@
|
|||||||
that = this,
|
that = this,
|
||||||
values = {};
|
values = {};
|
||||||
|
|
||||||
|
//function to find nearest value in select options
|
||||||
|
function getNearest($select, value) {
|
||||||
|
var delta = {};
|
||||||
|
$select.children('option').each(function(i, opt){
|
||||||
|
var optValue = $(opt).attr('value'),
|
||||||
|
distance;
|
||||||
|
|
||||||
|
if(optValue === '') return;
|
||||||
|
distance = Math.abs(optValue - value);
|
||||||
|
if(typeof delta.distance === 'undefined' || distance < delta.distance) {
|
||||||
|
delta = {value: optValue, distance: distance};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return delta.value;
|
||||||
|
}
|
||||||
|
|
||||||
if(dt.isValid()) {
|
if(dt.isValid()) {
|
||||||
//read values from date object
|
//read values from date object
|
||||||
$.each(this.map, function(k, v) {
|
$.each(this.map, function(k, v) {
|
||||||
@ -318,7 +337,17 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$.each(values, function(k, v) {
|
$.each(values, function(k, v) {
|
||||||
|
//call val() for each existing combo, e.g. this.$hour.val()
|
||||||
if(that['$'+k]) {
|
if(that['$'+k]) {
|
||||||
|
|
||||||
|
if(k === 'minute' && that.options.minuteStep > 1 && that.options.roundTime) {
|
||||||
|
v = getNearest(that['$'+k], v);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(k === 'second' && that.options.secondStep > 1 && that.options.roundTime) {
|
||||||
|
v = getNearest(that['$'+k], v);
|
||||||
|
}
|
||||||
|
|
||||||
that['$'+k].val(v);
|
that['$'+k].val(v);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -393,10 +422,12 @@
|
|||||||
value: null,
|
value: null,
|
||||||
minYear: 1970,
|
minYear: 1970,
|
||||||
maxYear: 2015,
|
maxYear: 2015,
|
||||||
|
yearDescending: true,
|
||||||
minuteStep: 5,
|
minuteStep: 5,
|
||||||
secondStep: 1,
|
secondStep: 1,
|
||||||
firstItem: 'empty', //'name', 'empty', 'none'
|
firstItem: 'empty', //'name', 'empty', 'none'
|
||||||
errorClass: null
|
errorClass: null,
|
||||||
|
roundTime: true //whether to round minutes and seconds if step > 1
|
||||||
};
|
};
|
||||||
|
|
||||||
}(window.jQuery));
|
}(window.jQuery));
|
Loading…
x
Reference in New Issue
Block a user