Skip to content
Permalink
Browse files

Datepicker: fixed #4301 - option dateFormat getter does not return sa…

…me value as setter
  • Loading branch information
Keith Wood
Keith Wood committed Apr 1, 2009
1 parent 73abb29 commit 4d5f8d4ae07826aa6e118e2c6b2ef81ae00d57ff
Showing with 28 additions and 12 deletions.
  1. +11 −0 tests/unit/datepicker/datepicker_options.js
  2. +17 −12 ui/ui.datepicker.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() {
@@ -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'].

0 comments on commit 4d5f8d4

Please sign in to comment.
You can’t perform that action at this time.