aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/datepicker/datepicker_options.js11
-rw-r--r--ui/ui.datepicker.js29
2 files changed, 28 insertions, 12 deletions
diff --git a/tests/unit/datepicker/datepicker_options.js b/tests/unit/datepicker/datepicker_options.js
index b03040913..412519a4b 100644
--- a/tests/unit/datepicker/datepicker_options.js
+++ b/tests/unit/datepicker/datepicker_options.js
@@ -18,6 +18,7 @@ test('setDefaults', function() {
test('option', function() {
var inp = init('#inp');
var inst = $.data(inp[0], PROP_NAME);
+ // Set option
equals(inst.settings.showOn, null, 'Initial setting showOn');
equals($.datepicker._get(inst, 'showOn'), 'focus', 'Initial instance showOn');
equals($.datepicker._defaults.showOn, 'focus', 'Initial default showOn');
@@ -33,6 +34,16 @@ test('option', function() {
equals(inst.settings.showOn, null, 'Clear setting showOn');
equals($.datepicker._get(inst, 'showOn'), 'focus', 'Restore instance showOn');
equals($.datepicker._defaults.showOn, 'focus', 'Retain default showOn');
+ // Get option
+ inp = init('#inp');
+ equals(inp.datepicker('option', 'showOn'), 'focus', 'Initial setting showOn');
+ inp.datepicker('option', 'showOn', 'button');
+ equals(inp.datepicker('option', 'showOn'), 'button', 'Change instance showOn');
+ inp.datepicker('option', 'showOn', undefined);
+ equals(inp.datepicker('option', 'showOn'), 'focus', 'Reset instance showOn');
+ same(inp.datepicker('option', 'all'), {duration: ''}, 'Get instance settings');
+ same(inp.datepicker('option', 'defaults'), $.datepicker._defaults,
+ 'Get default settings');
});
test('change', function() {
diff --git a/ui/ui.datepicker.js b/ui/ui.datepicker.js
index 947efc869..18b1aabf5 100644
--- a/ui/ui.datepicker.js
+++ b/ui/ui.datepicker.js
@@ -364,31 +364,33 @@ $.extend(Datepicker.prototype, {
}
},
- /* Update the settings for a date picker attached to an input field or division.
+ /* Update or retrieve the settings for a date picker attached to an input field or division.
@param target element - the target input field or division or span
@param name object - the new settings to update or
- string - the name of the setting to change or
- @param value any - the new value for the setting (omit if above is an object) */
+ string - the name of the setting to change or retrieve,
+ when retrieving also 'all' for all instance settings or
+ 'defaults' for all global defaults
+ @param value any - the new value for the setting
+ (omit if above is an object or to retrieve a value) */
_optionDatepicker: function(target, name, value) {
+ var inst = this._getInst(target);
+ if (arguments.length == 2 && typeof name == 'string') {
+ return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
+ (inst ? (name == 'all' ? $.extend({}, inst.settings) :
+ this._get(inst, name)) : null));
+ }
var settings = name || {};
if (typeof name == 'string') {
settings = {};
settings[name] = value;
}
- var inst = this._getInst(target);
if (inst) {
if (this._curInst == inst) {
this._hideDatepicker(null);
}
+ var date = this._getDateDatepicker(target);
extendRemove(inst.settings, settings);
- var date = new Date();
- extendRemove(inst, {rangeStart: null, // start of range
- endDay: null, endMonth: null, endYear: null, // end of range
- selectedDay: date.getDate(), selectedMonth: date.getMonth(),
- selectedYear: date.getFullYear(), // starting point
- currentDay: date.getDate(), currentMonth: date.getMonth(),
- currentYear: date.getFullYear(), // current selection
- drawMonth: date.getMonth(), drawYear: date.getFullYear()}); // month being drawn
+ this._setDateDatepicker(target, date);
this._updateDatepicker(inst);
}
},
@@ -1611,6 +1613,9 @@ $.fn.datepicker = function(options){
if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate'))
return $.datepicker['_' + options + 'Datepicker'].
apply($.datepicker, [this[0]].concat(otherArgs));
+ if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
+ return $.datepicker['_' + options + 'Datepicker'].
+ apply($.datepicker, [this[0]].concat(otherArgs));
return this.each(function() {
typeof options == 'string' ?
$.datepicker['_' + options + 'Datepicker'].