Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Datepicker: Use Globalize 1.0.0
- Fix merge conflict in value method
- Fix common unit tests
- Fix calendar localization tests
- Fix rebase regression: labels update on refresh
- Add new pass through options
- lint fixes
  • Loading branch information
fnagel committed Apr 30, 2015
commit 6fe64f500fc32535c6fbcad62ef1d3b2a0cc22d6
8 changes: 7 additions & 1 deletion tests/unit/calendar/calendar_common.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
TestHelpers.commonWidgetTests( "calendar", {
defaults: {
buttons: [],
dateFormat: { date: "short" },
disabled: false,
eachDay: $.noop,
labels: {
"datePickerRole": "date picker",
"nextText": "Next",
"prevText": "Prev",
"weekHeader": "Wk"
},
locale: "en",
max: null,
min: null,
numberOfMonths: 1,
Expand Down
31 changes: 17 additions & 14 deletions tests/unit/calendar/calendar_core.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,18 @@ test( "base structure", function() {
test( "Localization", function() {
expect( 10 );

var defaultLocale = Globalize.locale(),
element = $( "#calendar" ),
var element = $( "#calendar" ),
date = new Date( 2014, 0, 1 ),
initCalendar = function() {
optionsDe = {
locale: "de",
labels: {
"nextText": "Vor",
"prevText": "Zurück"
}
},
initCalendar = function( options ) {
element
.calendar()
.calendar( options )
.calendar( "valueAsDate", date );
},
testLocalization = function( message ) {
Expand All @@ -105,26 +111,23 @@ test( "Localization", function() {
);
equal(
element.find( ".ui-calendar-prev" ).text(),
"<Zurück", message + "header prev"
"Zurück", message + "header prev"
);
equal(
element.find( ".ui-calendar-next" ).text(),
"Vor>", message + "header next"
"Vor", message + "header next"
);
};

Globalize.locale( "de" );
initCalendar();
initCalendar( optionsDe );
testLocalization( "Init: " );
element.calendar( "destroy" );

Globalize.locale( defaultLocale.locale );
initCalendar();
Globalize.locale( "de" );
element.calendar( "refresh" );
initCalendar( {} );
element
.calendar( "option", optionsDe )
.calendar( "refresh" );
testLocalization( "After init: " );

Globalize.locale( defaultLocale.locale );
});

asyncTest( "keyboard handling", function() {
Expand Down
8 changes: 7 additions & 1 deletion tests/unit/datepicker/datepicker_common.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@ TestHelpers.commonWidgetTests( "datepicker", {
defaults: {
appendTo: null,
buttons: [],
dateFormat: { date: "short" },
disabled: false,
eachDay: $.noop,
labels: {
"datePickerRole": "date picker",
"nextText": "Next",
"prevText": "Prev",
"weekHeader": "Wk"
},
locale: "en",
max: null,
min: null,
numberOfMonths: 1,
Expand Down
15 changes: 9 additions & 6 deletions ui/calendar.js
Original file line number Diff line number Diff line change
Expand Up @@ -180,16 +180,18 @@ return $.widget( "ui.calendar", {
var globalize = new Globalize( locale ),
weekdayShortFormatter = globalize.dateFormatter({ pattern: "EEEEEE" }),
weekdayNarrowFormatter = globalize.dateFormatter({ pattern: "EEEEE" });

this._format = globalize.dateFormatter({ date: "short" });
this._parse = globalize.dateParser({ date: "short" });
this._calendarDateOptions = {
firstDay: globalize.cldr.supplemental.weekData.firstDay(),
formatWeekdayShort: function( date ) {
firstDay: globalize.cldr.supplemental.weekData.firstDay(),
formatWeekdayShort: function( date ) {

// Return the short weekday if its length is < 3. Otherwise, its narrow form.
// Return the short weekday if its length is < 3. Otherwise, its narrow form.
var shortWeekday = weekdayShortFormatter( date );

return shortWeekday.length > 3 ? weekdayNarrowFormatter( date ) : shortWeekday;
},
},
formatWeekdayFull: globalize.dateFormatter({ pattern: "EEEE" }),
formatMonth: globalize.dateFormatter({ pattern: "MMMM" }),
formatWeekOfYear: globalize.dateFormatter({ pattern: "w" }),
Expand Down Expand Up @@ -325,7 +327,7 @@ return $.widget( "ui.calendar", {
if ( this.options.showWeek ) {
cells += "<th class='ui-calendar-week-col'>" + this._getTranslation( "weekHeader" ) + "</th>";
}
for ( i; i < weekDayLength; i++ ) {
for ( ; i < weekDayLength; i++ ) {
cells += this._buildGridHeaderCell( weekdays[ i ] );
}

Expand Down Expand Up @@ -492,6 +494,7 @@ return $.widget( "ui.calendar", {
// with the prev and next links would cause loss of focus issues because the links being
// interacted with will disappear while focused.
refresh: function() {
this.labels = this.options.labels;

// Determine which day gridcell to focus after refresh
// TODO: Prevent disabled cells from being focused
Expand Down Expand Up @@ -541,7 +544,7 @@ return $.widget( "ui.calendar", {

value: function( value ) {
if ( arguments.length ) {
this.valueAsDate( locale.parse( value ) );
this.valueAsDate( this._parse( value ) );
} else {
return this._format( this.option( "value" ) );
}
Expand Down
6 changes: 3 additions & 3 deletions ui/datepicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ var widget = $.widget( "ui.datepicker", {
version: "@VERSION",
options: {
appendTo: null,
locale: "en",
position: {
my: "left top",
at: "left bottom"
Expand All @@ -52,8 +51,8 @@ var widget = $.widget( "ui.datepicker", {
select: null
},

calendarOptions: [ "buttons", "dateFormat", "disabled", "eachDay", "max",
"min", "numberOfMonths", "showWeek" ],
calendarOptions: [ "buttons", "disabled", "eachDay", "labels", "locale",
"max", "min", "numberOfMonths", "showWeek" ],

_create: function() {
this.suppressExpandOnFocus = false;
Expand Down Expand Up @@ -283,6 +282,7 @@ var widget = $.widget( "ui.datepicker", {

_setLocale: function( locale ) {
var globalize = new Globalize( locale );

this._format = globalize.dateFormatter({ date: "short" });
this._parse = globalize.dateParser({ date: "short" });
this._parseYMD = globalize.dateParser({ pattern: "yyyy-MM-dd" });
Expand Down