1Calendar Release Notes
2
3*** 2.9.0 ***
4
5+ Fixed renderStack application when multiple renderers applied to
6 the same date.
7
8+ Removed Opera Width Fix. No longer required. Opera handles floats
9 correclty
10
11+ Allow calendar to be rendered into a (iframe) document, different
12 from the instance.
13
14+ Added OOM selection support, driven by the "oom_select" config
15 property. When oom_select is enabled, OOM dates will also accept
16 custom renderers.
17
18 Based on patches provided by Joshua Flynn (flynnjandm) and
19 Pranav (unohoo) in tickets #1755642, #2528933
20
21+ APIDocs updated to identify string parameters and
22 properties, which get added to the DOM as HTML.
23
24 These string values should be escaped by the implementor,
25 if they come from an untrusted external source.
26
27*** version 2.8.2 ***
28
29+ No changes
30
31*** version 2.8.1 ***
32
33+ No changes
34
35*** version 2.8.0 ***
36
37+ DateMath extracted to standalone module. However, it continues to
38 be included in the calendar module, so no change is required to
39 existing pages which use calendar.
40
41+ Made default configuration property values (DEFAULT_CONFIG) public.
42
43+ Made default class names (STYLES) used for CSS classes, public.
44
45+ Changed the few remaining hardcoded CSS class names to use default
46 STYLES configuration.
47
48+ The cells property is now populated by searching for tds by class
49 name ("calcell") under the calendar's table element, as opposed to
50 blindly picking up all td elements under the div container.
51
52 This fixes incorrect selection state related bugs in custom calendars,
53 where the customization introduces additional tables to the default
54 calendar markup.
55
56+ Added prevDate and newDate arguments to the changePage event. These
57 are accessible through the arguments array (as with all custom events
58 created using the default LIST signature):
59
60 e.g:
61
62 changePageEvent.subscribe(function(type, args) {
63
64 var prevDate = args[0];
65 var newDate = args[1];
66
67 if (YAHOO.widget.DateMath.before(newDate, prevDate) {
68 // Moving back in time
69 } else {
70 // Moving forward in time
71 }
72
73 });
74
75+ Added "year_offset" configuration property.
76
77 This can be used for locales which follow the Gregorian calendar,
78 but have the year offset by a fixed amount. For example the Thai
79 (th_TH) calendar, for which the year is a positive 543 year offset
80 from the Gregorian calendar.
81
82 The offset is applied to any output year strings, such as the year
83 label, or the year CSS marker class and to any input strings, such as
84 date selection strings or the pageDate value string.
85
86 NOTE: Any JavaScript Date objects which Calendar accepts as input,
87 should reflect the Gregorian calendar state (that is, the year should be
88 set to the Gregorian year), in order to maintain consistent state for other
89 fields such as weekday, month and date. Similarly, any JavaScript Date
90 objects returned by the Calendar, will be set to the Gregorian year.
91
92+ Added "today" configuration property, allowing the user to configure the
93 date which represents "today" in the Calendar.
94
95*** version 2.7.0 ***
96
97+ Fixed CalendarGroup page construction, so that the intial pagedate for
98 each Calendar page instance is set in it's constructor, as opposed to
99 setting it in 2 passes, as was done before (setting all the pages to the
100 same pagedate during construction, and then incrementing them to the
101 correct pagedate for page). This fixes a bug in reset(), where all the
102 Calendar pages were being reset to the same month.
103
104+ Fixed the argument for the delectEvent fired from deselectCell
105 to be an array of date fields arrays (e.g. [[2009, 1, 21]]) as opposed to
106 just a date field array (e.g. [2009, 1, 21]), so that the argument
107 structure is consistent for both select and deselect events, regardless
108 of where they are fired from, and whether they have one or more date
109 field arrays.
110
111*** version 2.6.0 ***
112
113+ Fixed incorrect cell index parsing from cell id attribute, when
114 Calendar id contained "cell".
115
116+ Added text to previous month, next month and close icons, to
117 enhance accessibility for screen-readers.
118
119+ Fixed issue with bubbled previous month, next month click events
120 missing target information in certain browsers (due to replaced HTML),
121 by delaying click event handling through a setTimeout.
122
123+ Added destroy method to Calendar/CalendarGroup
124
125+ Fixed incorrect clear method behavior for CalendarGroup where all
126 pages would be set to the same month.
127
128+ Refactored code to reduce minified Kweight.
129
130*** version 2.5.2 ***
131
132+ CalendarGroup toDate method no longer throws javascript exception
133
134*** version 2.5.1 ***
135
136+ Fixed bug with mindate, maxdate being applied incorrectly if
137 set to a day on which time change took place (DST, E.U Summertime)
138 and the day is not the first day of the week.
139
140+ Fixed DateMath.getWeekNumber implementation to return correct
141 week numbers. The older implementation would return Week 0 for
142 certain weeks (e.g. the week starting Sun Dec 28th 2008)
143
144 To suppor the fix, DateMath.getWeekNumber has a signature
145 change in 2.5.1 and can now support U.S Week calculations based
146 on Jan 1st identifying the first week of the year, as well as
147 ISO8601 week calculations based on Jan 4th identifying the first
148 week of the year
149
150 The arguments which the method expected prior to 2.5.1 were not
151 being used in calculating the week number. The new signature is:
152
153 DateMath.getWeekNumber(Date dt, Number firstDayOfWeek, Number janDate)
154
155 Where:
156
157 dt is the date for which week number is required
158
159 firstDayOfWeek is the day index identifying the first
160 day of the week. Default is 0 (Sunday).
161
162 janDate is the date in the first week of January, which
163 identifies the first week of the year.
164
165 Default is YAHOO.widget.DateMath.WEEK_ONE_JAN_DATE (1)
166
167 NOTE: Calendar instances themselves do not currently expose a
168 configuration property to change the week numbering system
169 used. A "janDate" value is not passed to the getWeekNumber
170 method, when used by Calendar, resulting in it using the default value.
171
172 Therefore, ISO8601 week numbering can be generated for Calendars
173 by setting the value of YAHOO.widget.DateMath.WEEK_ONE_JAN_DATE
174 to 4.
175
176*** version 2.5.0 ***
177
178+ Prevent default event handling in CalendarNavigator enter key
179 listener, to prevent automatic form submission when using Calendar
180 inside a form.
181
182+ Added workaround to DateMath.add and subtract for Safari 2 (webkit)
183 bug in Date.setDate(n) which doesn't handle value of n less than -128
184 or greater than 127 correctly.
185
186 See: http://brianary.blogspot.com/2006/03/safari-date-bug.html
187
188+ Added border, padding and margin rules to Calendar Sam Skin to
189 protect Sam Skin's look and feel when Calendar is used with
190 YUI base.css
191
192*** version 2.4.0 ***
193
194+ Added CalendarNavigator (year selector) feature to allow the user to
195 jump to a year/month directly without having to scroll through months
196 sequentially.
197
198 The feature is enabled/configured using the "navigator" configuration
199 property.
200
201+ Added Custom Events:
202
203 showNav/beforeShowNav
204 hideNav/beforeHideNav,
205 renderNav/beforeRenderNav
206
207 To Calendar/CalendarGroup, in support of the CalendarNavigator
208 functionality.
209
210+ Added Custom Events:
211
212 show/beforeShow
213 hide/beforeHide
214
215 To Calendar and CalendarGroup. Returning false from a
216 beforeShow/beforeHide listener can be used to prevent the Calendar
217 from being shown/hidden respectively.
218
219+ Added Public Methods:
220
221 getCellIndex(date) [ Calendar ]
222 getCalendarPage(date) [ CalendarGroup ]
223 toDate(dateArray) [ Calendar/CalendarGroup ]
224 removeRenderers() [ Calendar/CalendarGroup ]
225
226+ The Calendar/CalendarGroup constructor is now more flexible:
227
228 * It no longer requires an "id" argument.
229
230 In it's simplest form, a Calendar/CalendarGroup can be
231 constructed by simply providing a container id or reference.
232
233 var cal = new YAHOO.widget.Calendar("container");
234 -or-
235 var containerDiv = YAHOO.util.Dom.get("container");
236 var cal = new YAHOO.widget.Calendar(containerDiv);
237
238 An id for the Calendar does not need to be provided, and will be
239 generated from the container id by appending an "_t" suffix to the
240 container id if only the container is provided.
241
242 * The container argument can be either a string, representing the
243 id of the container, or an HTMLElement referring to the container
244 element itself, as suggested in the example above.
245
246 * If an HTMLElement is provided for the container argument and the
247 element does not have an id, one will be generated for it using
248 YAHOO.util.Dom.generateId().
249
250 * The older form of Calendar/CalendarGroup signature, expecting
251 both an id and containerId is still supported and works as it did
252 prior to 2.4.0.
253
254+ Fixed performance issue, where the same custom renderer was being
255 applied multiple times to the same cell.
256
257+ Added getDate(year, month, date) factory method to the DateMath utility,
258 which can be used to create JavaScript Date instances for years less
259 than 100.
260
261 The default Date(year, month, date) constructor implementations across
262 browsers, assume that if year < 100, the caller is referring to the
263 nineteen hundreds, and the year is set to 19xx instead of xx (as with
264 the deprecated setYear method). However Date.setFullYear(xx) can
265 be used to set dates below 100. The above factory method provides a
266 construction mechanism consistent with setFullYear.
267
268+ Changed Calendar/CalendarGroup/DateMath code to use the DateMath.getDate
269 method, so that 2 digit years are not assumed to be in the 1900's.
270
271 NOTE: Calendar's API already expects 4 digit date strings when referring
272 to years after 999.
273
274*** version 2.3.1 ***
275
276+ Changed Calendar/CalendarGroup to render an empty title bar element
277 when "close" is set to true, but "title" has not been set, to allow Sam
278 Skin to render a title bar correctly.
279
280*** version 2.3.0 ***
281
282+ Added checks to select, selectCell, deselect and deselectCell methods
283 to ensure the Calendar/Calendar group was not set to an invalid state
284 by programmatically selecting unselectable dates or cells.
285
286+ Added new locale configuration properties for the Month/Year label
287 used in the Calendar header (MY_LABEL_MONTH_POSITION,
288 MY_LABEL_YEAR_POSITION, MY_LABEL_YEAR_SUFFIX, MY_LABEL_MONTH_SUFFIX).
289 Japan is an example locale, where customization of the Month/Year
290 label is required.
291
292+ Changed "first", "last" class names to "first-of-type", "last-of-type",
293 to avoid collision with YUI Grids' use of the "first" class name.
294
295+ Added public isDateOOB method, to check if a given date is outside of
296 the minimum/maximum configuration dates of the Calendar.
297
298+ Deprecated YAHOO.widget.Calendar.browser, refactored to use
299 YAHOO.env.ua instead.
300
301+ Removed overflow:hidden from default Calendar/CalendarGroup container
302 for non-IE6 browsers to fix clipping issue with IE7 when CalendarGroup
303 was inside a box with a specific width. overflow:hidden is still
304 required for IE6 with an iframe shim.
305
306+ Added Opera container width calculation fix to CalendarGroup.show
307 method, to fix incorrect wrapping when using a CalendarGroup which is
308 initially rendered hidden (display:none). Previously this fix was
309 only applied on render.
310
311*** version 2.2.2 ***
312
313+ Fixed problem with selected dates being shared across instances, when
314 more than one Calendar/CalendarGroup was on the page
315
316*** version 2.2.1 ***
317
318+ Fixed problem with selectCell adding duplicate selected date entries
319 for dates which were already selected
320
321+ Fixed problem with CalendarGroup iframe shim not covering the
322 CalendarGroup title area
323
324+ Removed javascript:void(null) from close button and cell links which
325 was interrupting form submission and firing onbeforeunload in IE
326
327+ Fixed problem with CalendarGroup getSelectedDates returning invalid
328 results, when used in conjunction with the "selected" Config property
329 (either passed in the constructor config argument or set seperately
330 after construction)
331
332+ Refactored Calendar and CalendarGroup to improve performance,
333 especially when working with a large number of instances in
334 IE6
335
336*** version 2.2.0 ***
337
338+ Image customization can now be done through CSS. Images for Close,
339 Left and Right Arrows are now pulled in using CSS defined in
340 calendar.css and by default use relative paths to the images in
341 the same directory as calendar.css.
342
343+ Deprecated Calendar.IMG_ROOT and NAV_ARROW_LEFT, NAV_ARROW_RIGHT
344 configuration properties. Customizations based on older releases
345 which set these properties will still function as expected.
346
347+ Deprecated CalendarGroup.CSS_2UPCLOSE. Calendar's Style.CSS_CLOSE
348 property now represents the new default CSS class (calclose) for
349 the close button. CSS_2UPCLOSE is still applied along with
350 CSS_CLOSE to the new markup for the close button to support existing
351 customizations of the CSS_2UPCLOSE CSS class (close-icon)
352
353+ Fixed problem with Safari setting Calendar pages to incorrect dates
354 if the pages spanned a year boundary in CalendarGroups with 3 or more
355 pages, due to a bug in Safari's implementation of Date setMonth
356
357+ Fixed problem with CalendarGroup setMonth rendering Calendar pages
358 with incorrect dates in all browsers if current pages spanned year
359 boundary
360
361+ Fixed incorrect CalendarGroup logging statement in calendar-debug.js
362
363+ Fixed domEventMap support for Safari versions prior to 2.0.2,
364 caused by hasOwnProperty not being supported
365
366+ Removed unused private property : _pageDate from Calendar class
367
368*** version 0.12.2 ***
369
370+ Corrected documentation for clearTime function to reflect the
371 change from midnight to noon
372
373*** version 0.12.1 ***
374
375+ Calendar and CalendarGroup now automatically parse the argument
376 passed to setMonth and setYear into an integer, eliminating
377 potential concatenation bugs.
378
379*** version 0.12 ***
380
381+ New documentation format implemented
382
383+ Calendar2up and Calendar_Core are now deprecated. Now, Calendar alone
384 represents the single Calendar instance, and CalendarGroup represents
385 an n-up instance, defaulting to 2up
386
387+ Added semantic style classes to Calendar elements to allow for
388 custom styling solely using CSS.
389
390+ Remapped all configuration properties to use the Config object
391 (familiar to those who use the Container collection of controls).
392 Property names are the same as their previous counterparts, but
393 wrapped into Calendar.cfg, allowing for runtime reconfiguration of
394 most properties
395
396+ Added "title" property for setting the Calendar title
397
398+ Added "close" property for enabling and disabling the close icon
399
400+ Added "iframe" property for enabling an iframe shim in Internet
401 Explorer 6 and below to fix the select bleed-through bug
402
403+ pageDate moved to property: "pagedate"
404
405+ selectedDates moved to property: "selected"
406
407+ minDate moved to property : "mindate", which accepts a JavaScript
408 Date object like its predecessor, but also supports string dates
409
410+ maxDate moved to property : "maxdate", which accepts a JavaScript
411 Date object like its predecessor, but also supports string dates
412
413+ Moved style declarations to initStyles function
414
415+ Optimized event handling in doSelectCell/doCellMouseOver/
416 doCellMouseOut by only attaching the listener to the outer
417 Calendar container, and only reacting to events on cells with
418 the "selectable" CSS class.
419
420+ Added domEventMap field for applying DOM event listeners to cells
421 containing specific class and tag combinations.
422
423+ Moved all cell DOM event attachment to applyListeners function
424
425+ Added getDateByCellId / getDateFieldsByCellId helper functions
426
427+ Corrected DateMath.getWeekNumber to comply with ISO week number
428 handling
429
430+ Separated renderCellDefault style portions into styleCellDefault
431 function for easy extension
432
433+ Deprecated onBeforeSelect. Created beforeSelectEvent which
434 automatically subscribes to its deprecated predecessor.
435
436+ Deprecated onSelect. Created selectEvent, which automatically
437 subscribes to its deprecated predecessor.
438
439+ Deprecated onBeforeDeselect. Created beforeSelectEvent which
440 automatically subscribes to its deprecated predecessor.
441
442+ Deprecated onDeselect. Created beforeDeselectEvent, which
443 automatically subscribes to its deprecated predecessor.
444
445+ Deprecated onChangePage. Created changePageEvent, which automatically
446 subscribes to its deprecated predecessor.
447
448+ Deprecated onRender. Created renderEvent, which automatically
449 subscribes to its deprecated predecessor.
450
451+ Deprecated onReset. Created resetEvent, which automatically
452 subscribes to its deprecated predecessor.
453
454+ Deprecated onClear. Created clearEvent, which automatically
455 subscribes to its deprecated predecessor.
456
457+ Corrected setMonth documentation to refer to 0-11 indexed months.
458
459+ Added show and hide methods to Calendar for setting the Calendar's
460 display property.
461
462+ Optimized internal render classes to use innerHTML and string buffers
463
464+ Removed wireCustomEvents function
465
466+ Removed wireDefaultEvents function
467
468+ Removed doNextMonth / doPreviousMonth
469
470+ Removed all buildShell (header, body, footer) functions, since
471 the Calendar shell is now built dynamically on each render
472
473+ Wired all CalendarGroup events and configuration properties to
474 be properly delegated to Calendar
475
476+ Augmented CalendarGroup with all built-in renderers, label functions,
477 hide, show, and initStyles, creating API transparency between Calendar
478 and CalendarGroup.
479
480+ Made all tagName, createElement, and entity references XHTML compliant
481
482+ Fixed Daylight Saving Time bug for Brazilian time zone
483
484*** version 0.11.3 ***
485
486+ Calendar_Core: Added arguments for selected/deselected dates to
487 onSelect/onDeselect
488
489+ CalendarGroup: Fixed bug where selected dates passed to constructor
490 were not represented in selectedDates
491
492+ Calendar2up: Now displays correctly in Opera 9
493
494*** version 0.11.0 ***
495
496+ DateMath: DateMath.add now properly adds weeks
497
498+ DateMath: between() function added
499
500+ DateMath: getWeekNumber() fixed to take starting day of week into
501 account
502
503+ All references to Calendar's built in CSS class handlers are
504 removed, replaced with calls to Dom utility (addClass, removeClass)
505
506+ Several CSS class constants now have clearer names
507
508+ All CSS classes are now properly namespaced to avoid CSS conflicts
509
510+ Fixed table:hover bug in CSS
511
512+ Calendar no longer requires the container ID and variable name to
513 match in order for month navigation to function properly
514
515+ Calendar month navigation arrows are now represented as
516 background images
517
518*** version 0.10.0 ***
519
520+ Major performance improvements from attaching DOM events to
521 associated table cells only once, when the Calendar shell is built
522
523+ DOM events for mouseover/mouseout are now fired for all browsers
524 (not just Internet Explorer)
525
526+ Reset functionality bug fixed for 2-up Calendar view
527
528*** version 0.9.0 ***
529
530* Initial release
531