1 Container Release Notes
5 Fixed the following bugs:
6 -------------------------
8 + Improved creation of the <iframe> element used to monitor changes to the
9 browser's font size so that:
11 - Safari's status bar no longer displays a "Loading..." message after the
14 - Firefox no longer reports duplicate cookie information.
16 - The browser scrollbars no longer flash on and off in Firefox.
18 + It is now possible to set the "button" configuration property of a
19 YAHOO.widget.Dialog instance after it has be rendered.
21 + Form elements appended to a YAHOO.widget.Dialog instance via the "setBody"
22 method are now automatically registered using the "registerForm" method.
24 + The "focusFirst" method of YAHOO.widget.Dialog will no longer result in a
25 JavaScript error in IE if the first element in the Dialog instance's form
28 + YAHOO.widget.Panel instances whose "draggable" property is set to "true" and
29 "width" property is set to "auto" are now able to be dragged in IE 6 (Quirks
30 and Strict Mode) and IE 7 Quirks Mode.
32 + Updated focus methods of YAHOO.widget.Dialog to prevent JavaScript errors
33 that result from trying to set focus to elements that hidden or disabled.
35 + Pressing the enter key will no longer result in a YAHOO.widget.Dialog
36 instance's "validate" method being called twice.
38 + Pressing the enter key while focused on a form field inside a Dialog will no
39 longer trigger the "click" event handler defined by the Dialog's default
40 button in IE and Firefox.
42 + Pressing the enter key when focused on a form field inside a
43 YAHOO.widget.Dialog instance with no buttons created via its "buttons"
44 configuration property will no longer result in a JavaScript error.
46 + Aqua scrollbars will no longer bleed through Container widgets in Firefox
49 + The "width" and "height" configuration properties of YAHOO.widget.Overlay
50 now supersede the "fixedcenter" and "context" configuration properties to
51 ensure correct positioning of Overlay instances using the "fixedcenter"
52 and "context" configuration properties.
54 + Calling the "destroy" method on a YAHOO.widget.Overlay instance no longer
55 results in a JavaScript error on the subsequent focus of another
58 + YAHOO.widget.Tooltip instances without a value specified for the "width"
59 configuration property will be rendered at a width equal to the offsetWidth
60 of their root <DIV/> element to prevent their width from being clipped or
61 constrained by their parent HTML element.
67 + Rendering of YAHOO.widget.Tooltip instances is now deferred using the
68 "onDOMReady" event handler of YAHOO.util.Event rather than waiting until
69 the "load" event of the Tooltip's parent window fires.
71 + Deprecated "browser" property of YAHOO.widget.Module in favor
74 + The "moveEvent" of a YAHOO.widget.Panel instance now also fires with the
75 "endDrag" event of the its YAHOO.util.DD instance.
77 + Updated modal functionality of YAHOO.widget.Panel:
79 - The creation of a Panel instance's modality mask is now deferred until it
80 is initially made visible.
82 - Showing a modal Panel instance will now result in the Panel and its
83 associated modality mask element having a higher z-index than all other
84 YAHOO.widget.Overlay instances and Overlay subclasses.
86 + Updated the "underlay" configuration property of YAHOO.widget.Panel:
88 - The creation of the underlay element is deferred until the Panel
89 instance is initially made visible.
91 - For Gecko-based browsers on Mac OS X the underlay elment is always
92 created as it is used as a shim to prevent Aqua scrollbars below a Panel
93 instance from poking through it.
95 - For IE 7 (Quirks Mode) and IE 6 (Quirks Mode and Standard Mode) the
96 underlay element is resized in response to a change to a Panel instance's
97 "width" or "height" configuration properties, a change to the browser's
98 font size or the firing of the contentChangedEvent (triggered by use of
99 the "setHeader," "appendToHeader," "setBody," "appendToBody,"
100 "setFooter," or "appendToFooter" methods).
102 + Updated the "iframe" configuration property of YAHOO.widget.Overlay:
104 - The creation of the <iframe> shim element is deferred until the Overlay
105 instance is initially made visible.
107 - The <iframe> shim element is resized when a change to an Overlay
108 instance's content is made at runtime via the "setHeader,"
109 "appendToHeader," "setBody," "appendToBody," "setFooter," or
110 "appendToFooter" methods.
112 + Updated the "buttons" configuration property of YAHOO.widget.Dialog:
114 - YAHOO.widget.Button is now an optional dependancy, and if included, each
115 button in a Dialog will be an instance of Button.
117 - The "text" property of each button now accepts HTML
119 - The "handler" property of each button can now be set to:
121 + A reference to a function that should fire when the button is
122 clicked. (In this case scope of this function is always its
125 + An object literal representing the code to be executed when the
126 button is clicked. The format is:
128 fn: Function (The handler to call when the event fires.),
129 obj: Object (An object to pass back to the handler.),
130 scope: Object (The object to use for the scope of the handler.)
134 Added the following features:
135 -----------------------------
137 + Added ability for YAHOO.widget.Tooltip instances to have shadow:
139 - The shadow for a Tooltip is implemented by appending a new element as the
140 last child of its root <DIV/> element:
143 <DIV class="bd"> ... </DIV>
144 <DIV class="yui-tt-shadow"/>
147 - The code that creates the shadow element resides inside the Tooltip's
148 public "onRender" prototype method. To disable the creation of a
149 Tooltip's shadow override the prototype of the "onRender" method:
151 YAHOO.widget.Tooltip.prototype.onRender = function () {};
153 - The actual creation of the shadow element is deferred until the Tooltip
154 is made visible for the first time.
156 - A Tooltip's shadow element can be styled via two CSS classes:
158 + "yui-tt-shadow" - Applied to the shadow element when it is created.
159 + "yui-tt-shadow-visible" - Applied to the shadow element when the
160 Tooltip is visible; it is removed the Tooltip is hidden.
162 - The shadow element is only styled when using the new "Sam" skin, for
163 the previous default skin its "display" property is set to "none."
165 + Prototype of all classes (Module, Overlay, Panel, Dialog, SimpleDialog,
166 Tooltip, Config, and ContainerEffect) are augmented with
167 YAHOO.util.EventProvider, facilitating subscribing to an instance's
168 Custom Events by name via a "subscribe" method that is a direct member of
169 the class. For example:
171 var oOverlay = new YAHOO.widget.Overlay("myoverlay");
173 oOverlay.subscribe("show", onShow);
175 + Added a new "bringToTop" method to YAHOO.widget.Overlay that places the
176 Overlay on top of all other Overlay instances.
178 + Added a new "bringToTop" method to YAHOO.widget.OverlayManager that places
179 the specified Overlay instance on top of all other Overlay instances. This
180 method is called on each Overlay instance that is registered with an
181 OverlayManager instance.
183 + Dialog instances are now able to upload files should the Dialog instance's
184 form contain <input type="file"/> elements. PLEASE NOTE: If a Dialog
185 instance will be handling asyncronous file uploads, its "callback" property
186 will need to be setup with an "upload" handler rather than the standard
187 "success" and, or "failure" handlers. For more information, see the
188 Connection Manager documenation on file uploads:
189 http://developer.yahoo.com/yui/connection/#file
191 + Added a new "getButtons" method to YAHOO.widget.Dialog that returns an array
192 containing each of the Dialog's buttons; by default an array of HTML <BUTTON>
193 elements. If the Dialog's buttons were created using the
194 YAHOO.widget.Button class (via the inclusion of the optional Button
195 dependancy on the page), an array of YAHOO.widget.Button instances
198 + Added a "destroy" method to YAHOO.util.Config that sets all properties to
199 null, unsubscribes all listeners from each property's change event and all
200 listeners from the configChangedEvent. The "destroy" method of
201 YAHOO.widget.Module now automatically calls the "destroy" method of its
204 + Added a "IFRAME_OFFSET" constant to YAHOO.widget.Overlay that controls how
205 much the <iframe> shim should be offset from each side of an
208 + Added a new "syncIframe" method to YAHOO.widget.Overlay that syncronizes the
209 size and position of the <iframe> shim to that of the Overlay.
211 + Added a "ICON_CSS_CLASSNAME" constant to YAHOO.widget.SimpleDialog that
212 represents the name of the CSS class applied to the element created by the
213 "icon" configuration property.
219 + "Sam" skin Panel missing left and right borders when declared with a height
220 ---------------------------------------------------------------------------
221 If the height of a Panel instance exceeds the total height of its header,
222 body and footer elements, the space not filled with content will lack a left
223 and right border. Therefore, to set a Panel instance to a fixed height
224 when using the "Sam" skin, apply the desired height to the body element,
225 taking into account the height of the header and footer elements. To set the
226 height of a Panel instance's body via CSS:
234 oMyPanel.body.style.height = "100px";
236 + Elements with scrollbars poke through Overlay instances floating above them
237 ---------------------------------------------------------------------------
238 There is a bug in Gecko-based browsers for Mac OS X where an element's
239 scrollbars will poke through absolutely positioned elements floating above
240 them. To fix this problem the "overflow" property of an Overlay instance's
241 root element is toggled between "hidden" and "auto" (through the application
242 and removal of the "hide-scrollbars" and "show-scrollbars" CSS classes) as its
243 "visibility" configuration property is toggled between "false" and "true."
247 1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are
248 applied only for Gecko on Mac OS X and are added/removed to/from the
249 Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and
250 "showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
252 2) For Panel (and its subclasses) it is the underlay element, not the root
253 element, whose "overflow" property is toggled between "hidden" and "auto."
254 The underlay element therefore acts as a shim to correct the
257 3) For Tooltip instances using the "Sam" skin it is the shadow element, not
258 the root element, whose "overflow" property is toggled between "hidden"
259 and "auto." The shadow element therefore acts as a shim to correct the
262 4) Once the fix is applied the bug will reappear if the window loses focus.
263 This can be remedied via Javascript by hiding and showing the Overlay
264 instance when the window receives focus:
266 YAHOO.util.Event.on(window, "focus", function () {
273 ** For more information see
274 https://bugzilla.mozilla.org/show_bug.cgi?id=187435
276 + Scrollbars remain visible after an Overlay is hidden
277 ----------------------------------------------------
278 There is a bug in Gecko-based browsers for Mac OS X where an element's
279 scrollbars and the scrollbars of its child nodes remain visible when its
280 "visibility" property property is set to "hidden." To fix this problem,
281 the "overflow" property of an Overlay instance's root element and child nodes
282 is toggled between "hidden" and "auto" (through the application and removal
283 of the "hide-scrollbars" and "show-scrollbars" CSS classes) as its
284 "visibility" configuration property is toggled between "false" and "true."
288 1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are
289 applied only for Gecko on Mac OS X and are added/removed to/from the
290 Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and
291 "showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
293 2) There may be instances where the CSS for a web page or application
294 contains style rules whose specificity override the rules implemented by
295 the Container CSS files to fix this bug. In such cases, is necessary to
296 leverage the provided "hide-scrollbars" and "show-scrollbars" classes to
297 write custom style rules to guard against this bug. For example:
299 To fix the scrollbars issue for an Overlay instance with an id of
300 "myoverlay" whose body element has scrollbars applied by default:
306 /* Apply scrollbars for all browsers. */
311 #myoverlay.hide-scrollbars .bd {
313 /* Hide scrollbars by default for Gecko on OS X */
318 #myoverlay.show-scrollbars .bd {
320 /* Show scrollbars for Gecko on OS X when the Overlay is visible */
325 To fix the scrollbars issue for a Panel instance with an id of "mypanel"
326 whose body element has scrollbars applied by default:
332 /* Apply scrollbars for all browsers. */
337 .yui-panel-container.hide-scrollbars #mypanel .bd {
339 /* Hide scrollbars by default for Gecko on OS X */
344 .yui-panel-container.show-scrollbars #mypanel .bd {
346 /* Show scrollbars for Gecko on OS X when the Panel is visible */
351 ** For more information see
352 https://bugzilla.mozilla.org/show_bug.cgi?id=187435
354 + Flash Movies appear on top of Overlay instances
355 -----------------------------------------------
356 Flash movies can appear on top of Overlay instances in IE and Gecko-based
357 browsers. To fix this problem, set the "wmode" of the Flash movie to either
358 "transparent" or "opaque" as indicated below:
360 Via the <object> tag:
363 <param name="wmode" value="opaque">
367 <param name="wmode" value="transparent">
372 <embed wmode="transparent"> ... </embed>
373 <embed wmode="opaque"> ... </embed>
375 ** For more information see
376 http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15523
378 + Overlay instances not rendered at correct z-index in IE
379 -------------------------------------------------------
380 In IE, when an Overlay instance is rendered inside a relatively positioned
381 element the z-index of the Overlay instance is now relative to its
382 relatively positioned parent element. This is not a bug in the
383 Overlay class, but rather a bug in IE where relatively positioned elements
384 establish a new stacking context for their child nodes. To avoid this
385 bug it is recommend that all Overlay instances that need to be able to float
386 above any other element in the document be made direct descendants of the
389 ** For more information see
390 http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html
392 + Header elements for Panel instances using "Sam" skin shrinkwrap in IE 7
393 -----------------------------------------------------------------------
394 In IE 7 (Standards Mode) if a Panel instance is created without specifying a
395 value for the "width" configuration property the width of the Panel's
396 header element will shrinkwrap to the width of its text node. To avoid
397 triggering this bug in IE always specify a value for the "width"
398 configuration property when using Panel.
400 + Panel instances render at 100% of the browser viewport
401 ------------------------------------------------------
402 In IE 7 (Quirks Mode) and IE 6 (Quirks Mode and Standards Mode) if any of the
403 child nodes of a Panel instance's root element have "layout"
404 (http://msdn2.microsoft.com/en-us/library/ms533776.aspx) and no value
405 has been specified for the "width" configuration property, the Panel will
406 render at 100% of the width of browser's viewport. This bug will manifest
407 when using the "Sam" skin as layout is applied to the header, body and
408 footer elements (by setting the CSS "zoom" property of the element to "1" )
409 in order to get the negative margins required for the rounded corners to
410 render correctly. To avoid triggering this bug in IE always specify a value
411 for the "width" configuration property when using Panel.
413 + Panel instances render at 2px wider when using "Sam" skin
414 ---------------------------------------------------------
415 For the "Sam" skin a Panel instance's rounded corners are created via the
416 application of negative 1px left and right margins on the header, body and
417 footer elements. These negative margins will cause a Panel instance to be
418 rendered at 2px wider than the value specified by the "width" configuration
419 property. Therefore, when using the "Sam" skin consider the negative left
420 and right margins and subtract 2 from the value passed to the "width"
421 configuration property in order to have the Panel render at the desired
422 width. For example, to render a Panel 300px wide, pass a value of "298px"
423 to the "width" configuration property.
426 *** version 2.2.2 ***
428 + Clicking the close button of a Panel (or any instance of a Panel subclass)
429 registered with an OverlayManager will no longer result in the Panel
432 + Overlay instances registered with an OverlayManager will now correctly
433 blur themselves when hidden.
435 + Calling the "destroy" method of an Overlay instance will now result in it
436 being removed from its OverlayManager instance(s).
438 + The DOM event listener for the event defined by the "focusevent"
439 configuration property of an OverlayManager instance is now removed from each
440 Overlay instance when it is removed from its OverlayManager.
442 + All subscribers for an Overlay instance's "focus" and "blur" events are
443 now unsubscribed when it is removed from its OverlayManager.
446 *** version 2.2.1 ***
448 + Made the default scope for all Custom Events published by Module, Overlay,
449 Panel, Tooltip, Dialog and SimpleDialog the widget instance. Previously the
450 default scope for Custom Events was inconsistent across classes; the default
451 scope for Custom Events published by Overlay was always the Overlay instance
452 whereas the Custom Events published by all of the other classes had no
455 + Added default scope for CustomEvents published by YAHOO.util.Config:
456 - Default scope for the "configChangedEvent" is now the Config instance.
457 - Default scope for Config property events is now the Config's owner (widget).
459 + Panel and Tooltip now always convert the value of a DOM element's "tagName"
460 property to uppercase before evaluating it. This improves
463 + Pressing the enter key while focused on a form field inside a Dialog will
464 now trigger the "click" event handler defined by the Dialog's default
465 button in IE and Firefox. Previously, this behavior only worked in Safari
468 + Added a "yui" prefix to the default CSS class name for Module to be
469 consistent with the other Container family widgets.
471 + Container/Panel's underlay shadow is now defined as partially-transparent
472 black rather than gray. This prevents the shadow from lightening the
473 background color of elements beneath it.
475 + Fixed memory leaks in Panel and Dialog.
477 + The Drag and Drop library is now a truly optional dependency for Panel and its
480 + Panel "focus" and "blur" events are now fired when Panels are focused and
481 blurred via the "focus" and "blurAll" methods of YAHOO.widget.OverlayManager.
483 + Panel instances rendered without setting the value for the "width"
484 configuration property will now have their "width" configuration
485 property set to the value of the Panel's element's "offsetWidth" property
486 when rendered. This fixes an issue in IE 6 and 7 where Panels that are
487 rendered without setting the "width" configuration property will only be
488 draggable by mousing down on the text inside the header, rather than anywhere
491 + Refactored the Container family including the Config class to improve
492 performance, especially when working with a large number of instances in IE6.
496 *** version 2.2.0 ***
499 - Removed hardcoded file paths for image roots. Affected properties
501 - YAHOO.widget.Module.IMG_ROOT
502 - YAHOO.widget.Module.IMG_ROOT_SSL
503 - HTML elements, created via createElement, now use lowercase.
506 - To shield against CSS class collision, the following references now
507 have a "yui-" prefix:
508 - YAHOO.widget.Panel.CSS_PANEL now references CSS class "yui-
510 - YAHOO.widget.Panel.CSS_PANEL_CONTAINER now references CSS class
511 "yui-panel-container".
512 - Close button can now be configured via the CSS class "container-
514 - HTML elements, created via createElement, now use lowercase.
517 - To shield against CSS class collision, the following references now
518 have a "yui-" prefix:
519 - YAHOO.widget.Dialog.CSS_DIALOG now references CSS class "yui-
521 - HTML elements, created via createElement, now use lowercase.
524 - Removed hardcoded file paths for SimpleDialog icons, which are now
526 - YAHOO.widget.SimpleDialog.ICON_BLOCK now references CSS class
528 - YAHOO.widget.SimpleDialog.ICON_ALARM now references CSS class
530 - YAHOO.widget.SimpleDialog.ICON_HELP now references CSS class
532 - YAHOO.widget.SimpleDialog.ICON_INFO now references CSS class
534 - YAHOO.widget.SimpleDialog.ICON_WARN now references CSS class
536 - YAHOO.widget.SimpleDialog.ICON_TIP now references CSS class
538 - To provide shield against CSS class collision the following
539 references now have a "yui-" prefix:
540 - YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG now references CSS
541 class "yui-simple-dialog";
544 - To shield against CSS class collision, the following references now
545 have a "yui-" prefix:
546 - YAHOO.widget.Tooltip.CSS_TOOLTIP now references CSS class "yui-
549 *** version 0.12.2 ***
552 - Corrected issue where listener was not properly removed from resize
553 monitor element when "monitorresize" is disabled
556 - Fixed issue that would sometimes prevent select lists from working
560 - Fixed error that would occur when trying to create a Dialog where
561 the first form element is set to "disabled"
562 - Modified "close" property handler for Dialog/SimpleDialog to call
563 "cancel" instead of "hide"
565 *** version 0.12.1 ***
568 - "monitorresize" property now functions in situations where
569 document.domain has been modified.
570 - YAHOO.widget.Module.textResizeEvent now fires when the font size is
571 changed (except for Opera, which uses "zoom" functionality that
573 - Event listeners attached to container elements are now properly
574 purged on destroy using YAHOO.util.Event.purgeElement
577 - Fixed issue where focus events were broken on the page when a modal
581 - Fixed bug where hitting "enter" on a Dialog was forcing the default
582 submission behavior of the form's action to execute
583 - Dialog no longer tries to give focus to hidden form elements.
584 - Replaced references in Panel with   for XHTML
586 - Fixed issue that was preventing Safari from successfully using the
592 - New documentation format implemented, and removed unnecessary
593 prototype null references previously used for generating
597 - Added 'undefined' check when reading initial properties for
599 - Fixed Firefox warning on .resetProperty()
600 - Fixed issue preventing resetProperty() from resetting values
604 - Removed unused "childNodesInDom" property
607 - Converted center() to use Dom utility
608 - Fixed configVisible() to properly detect actual visible/hidden
609 status in Internet Explorer, which reports "inherit" for all elements
611 - Updated onDomResize to properly reapply "context" property
612 - Unified scroll/resize handlers so that they fire properly (when the
613 event has completed) as opposed to constantly (as seen in Mozilla-
617 - Modified modality mask to show before Panel is shown (prior to any
619 - Modified buildWrapper to eliminate cloning of the initial markup
620 module, which fixes issues with select options not maintaining their
621 default selections in IE
622 - Modality mask is now z-indexed properly so that the mask z-index is
623 always one less than the Panel z-index
626 - Fixed Connection to get "action" attribute using getAttribute, to
627 allow for form fields named "action"
628 - Added support for "GET" by retrieving the form "method" rather than
629 always defaulting to "POST"
632 - Fixed to work properly with Safari 2.0 by matching against keyCode
635 *** version 0.11.4 ***
637 - Panel: Modality mask is now properly removed from DOM on Panel
640 *** version 0.11.3 ***
642 - Module: Fixed SSL warning issue in IE
643 - Overlay: Fixed memory leak related to iframe shim in IE
644 - Panel: No focusable elements under the mask can now be tabbed to
645 - Panel: Set Panel container overflow to hidden to fix scrolling issue
648 *** version 0.11.2 ***
650 - All: JsLint optimization
651 - Overlay: Fixed SSL issues with monitorresize property
652 - OverlayManager: Fixed z-index incrementing issues
653 - Dialog: Form elements called "name" will now function properly
654 - Dialog: Removed unnecessary scope:this reference
656 *** version 0.11.1 ***
658 - Tooltip: Removed incorrect logger statement
659 - Dialog: Corrected logic that was causing browser lockup in IE for
661 - Dialog: Fixed "firstButtom" typo
663 *** version 0.11.0 ***
665 - toString function added to all classes for easy logging
666 - YAHOO.extend is now being used for inheritance on all container
668 - Module: monitorresize feature now works on all browsers
669 - Module: Fixed bug with image root and isSecure
670 - Overlay: Fixed bugs related to IFRAME shim positioning
671 - Overlay: center() now works in quirks mode
672 - Overlay: Overlay now has a custom destroy() method that also removes
674 - OverlayManager: Fixed bug in the prototype that was preventing
675 multiple Managers on one page
676 - OverlayManager: focusEvent now fires at all appropriate times
677 - Tooltip: context can now be specified as an array, so Tooltips can be
678 reused across multiple context elements
679 - Tooltip: preventoverlap now functions properly for large context
680 elements (i.e, images)
681 - Tooltip: fixed bugs regarding setTimeout
682 - Tooltip: added mousemove event to allow for more accurate Tooltip
684 - Panel: added dragEvent for monitoring all event handlers for drag and
686 - Panel: modality mask is now resized on scroll
687 - Panel: KeyListeners are now properly destroyed when the Panel is
689 - Panel: Header is now sized properly in quirks mode
690 - Dialog: Blinking cursor issue is fixed for Firefox
691 - Dialog: callback object for Connection is now public (this.callback)
692 - Dialog: onsuccess/onfailure properties removed (as a result of the
693 public callback object)
694 - Dialog: Dialog is now invisible by default
695 - Dialog: Buttons are now properly cleaned up on destroy
697 *** version 0.10.0 ***