Container Release Notes
*** version 2.6.0 ***
Changes:
--------
+ 1px rounded corners in Sam-Skin, added in 2.3.0, are no longer
rendered in IE6 or IE7.
hasLayout and relative positioning applied
to the header, body and footer elements to achieve the 1px
rounded corners had functional side effects (such as the inability
to shrink-wrap auto width containers, and the creation of invalid
stacking contexts)
1px rounded corners can be re-applied with a CSS patch if required,
as discussed on the container documentation web page.
+ We now attempt to focus the first focusable element inside a Panel,
when it is shown (as is done with Dialog).
+ Setting the "height" configuration property will now result in the
container's body element being resized to fill out any empty
vertical space. This behavior can be configured using the
"autofillheight" configuration property discussed below.
Added the following features:
-----------------------------
+ Added a new "preventcontextoverlap" configuration property used
to manage whether or not an Overlay instance should overlap its
context element (defined using the "context" configuration property)
when the "constraintoviewport" configuration property is set
to "true".
+ Added ability to specify event triggers when using the "context"
configuration property. The container wil re-align itself with
the context element in response to these trigger events.
See context configuration property documentation for usage details.
+ Added "autofillheight" configuration property, which is set to "body"
by default. This configuration property can be used to specify which
of the 3 container element - "header", "body", "footer" should be
resized to fill out any remaining vertical space when the container's
"height" configuration property is set.
The property can be set to false/null to disable the feature if
desired.
+ Panel now supports focusFirst and focusLast methods, as
well as tab, shift-tab looping when modal (similar to Dialog).
Fixed the following bugs:
-------------------------
+ Fixed issue with tooltip iframe remaining visible in situations
where the page was scrolled down.
+ Fixed OverlayManager.find to return null, if the Overlay cannot
be found.
+ OverlayManager no longer overwrites focus or blur methods on the
registered container, if they already exist (e.g. for Menu). Instead
it registers focus/blur event listeners to maintain OverlayManager
state in such situations.
+ Panels/Dialogs without a fixed width specified (auto width containers)
now shrink-wrap correctly in IE6, IE7 (see 1px rounded corner discussion
above)
+ Added text to the close icon, to enhance accessibility for screen
readers. Also changed the close icon element from a span, to an anchor
to facilate keyboard tab access.
+ Added title to text resize monitor iframe, to assist screen readers.
+ Fixed modal mask resizing when going from a larger to a smaller window
size.
+ hideMaskEvent is now fired after all modal mask relatd state changes
(including changes to the document.body) have taken place.
Originally it was fired before removing the "masked" class from
document.body.
+ Fixed Sam Skin look/feel for default Dialog buttons. Originally
disabled default buttons looked the same as enabled default buttons.
+ Fixed asynchronous Dialog submission failure for cases where the form
contained elements named "action" or "method".
+ Fixed Dialog button focus methods when using YUI Buttons.
+ Modal Dialogs buttons are now included in the tab, shift-tab flow.
Originally buttons in Modal dialogs were unreachable when tabbing.
+ Individual focus handlers attached to all non-container focusable
elements (used to enforce modality), resulted in poor performance
when showing/hiding modal Panels, especially in IE, on pages with
a large number of focusable elements.
Instead of individual listeners, Panel now registers a single
focus listener on the document to enforce modality, improving
performance and scalability for modal solutions.
+ Files for optional component dependencies (e.g. animation, dragdrop,
connection) can now be included after container's js files, without
breaking related functionality.
+ Fixed Config to remove (null out) current entry from the
config queue, before invoking fireEvent for the entry, to
keep it from being re-added to the end of the queue if
listeners were to set a property which superceded the entry.
*** version 2.5.2 ***
+ No change.
*** version 2.5.1 ***
Fixed the following bugs:
-------------------------
+ Module.setBody, setHeader and setFooter methods now accept
DocumentFragments. This feature was implicitly available
in versions prior to 2.5.0 and is now officially supported.
Changes:
--------
+ Optimized addition of Modality focus handlers on masked
elements (which are used to enforce modality) and added
ability to disable feature, to avoid timeout script errors
in IE if your page contains a very large number of focusable
elements.
Additionally changes to Event in 2.5.1 should allow
for increased scalability, when using Modal panels containing
large numbers of focusable elements on the page.
Added a YAHOO.widget.Panel.FOCUSABLE property, defining
the set of elements which should have focus handlers applied
when covered by the Modal mask.
If you wish to disable the addition of focus handlers to all
focusable elements on the page when a Modal Panel is displayed,
the property can be set to an empty array:
YAHOO.widget.Panel.FOCUSABLE = [];
NOTE: This will mean that elements under mask may still be
accessible using the keyboard, however the mask will still
prevent mouse access to elements.
*** version 2.5.0 ***
Fixed the following bugs:
-------------------------
+ We now add the text resize monitor iframe to the DOM in a timeout,
to help alleviate the perpetual loading indicator seen in
Firefox 2.0.0.8 (Gecko 1.8.1.8) and above on Windows.
+ Changed the closing script tag string used in the resize monitor, to
allow container-min.js, container_core-min.js content to be used inline.
+ Fixed problem with underlay size being too short in IE6 when setting up
an initially visible Dialog with buttons.
+ Removed overflow:auto applied to the modal mask for all browsers other
than gecko/MacOS to help avoid the "missing text cursor" Gecko bug.
Overflow:auto is still applied to for Gecko/MacOS to help avoid
scrollbar bleedthrough, another Gecko bug (discussed in Container's
known issues section).
Added the following features:
-----------------------------
+ Added a "hideaftersubmit" config property to Dialog, to allow the end
user to configure whether or not the Dialog should be hidden after
it has been submitted. By default it is set to false, to provide
backwards compatibility.
+ Added contextMouseOverEvent, contextMouseOutEvent and
contextTriggerEvent events to Tooltip, which provide access to the
context element when the user mouses over a context element, mouses
out of a context element, and before a tooltip is about to be
triggered (displayed) for a context element. See the API docs for
these events for futher details.
+ Added a "disabled" config property to Tooltip, to allow the user
to dynamically disable a tooltip.
Changes:
--------
+ Optimized constraintoviewport handling for Overlays which haven't
been specifically positioned, so that the constraint checks aren't
made before every show.
*** version 2.4.0 ***
Fixed the following bugs:
-------------------------
+ constraintoviewport and fixedcenter now handle Overlays which are
larger than the viewport. The Overlay will be positioned such that
it's top, left corner is in the viewport. Panel's draggable
behavior now also honors constraintoviewport, if the panel is
larger than the viewport.
+ constrainToViewport will now correctly constrain Overlays which
haven't been specifically positioned (don't have an XY value set).
+ Overlay/OverlayManager bringToTop methods will bring Overlays to
the top of the stack, even if their current zindex is the same as
other Overlays on the page.
+ Fixed double textResizeEvents fired on gecko based browsers (e.g
Firefox 2.x).
+ Panel underlay now resizes correctly in Safari 2.x, when the
content of the Panel is modified (e.g. when setBody() is called).
+ Tooltip "text" configuration property is no longer overridden by
the "title" attribute value on the context element if both are
set. The "text" configuration property takes precedence
(as indicated in the Tooltip documentation).
+ Transparent shadows no longer become opaque (black) in IE6/IE7
when a Panel with ContainerEffect.FADE is hidden and then
shown again. Also on IE6/IE7 transparent shadows no longer
appear opaque while animation is in progress.
+ An empty header is no longer created for non-draggable
Dialogs/SimpleDialogs which don't provide their own headers.
By design, an empty header is still created for draggable
Dialogs/SimpleDialogs which don't provide a header, in order
to provide a drag handle.
+ Select boxes inside Modal Panels on IE6 are no longer hidden.
+ In Sam Skin, Dialog/SimpleDialog default and non-default HTML
buttons (used when YUI Button is not included on the page) now
have a consistent look. Previously style properties intended
for default YUI Buttons, were being incorrectly applied to
default HTML buttons, giving them a look inconsistent with
non-default buttons.
Added the following features:
-----------------------------
+ Added "dragOnly" configuration property to Panel, to leverage
the "dragOnly" configuration property added to the DragDrop
utility for 2.4.0.
When the "dragOnly" configuration property is set to true,
the DD instance created for the Panel will not check for drop
targets on the page, improving performance during drag operations
which don't require drop target interaction.
The property is set to "false" by default to maintain backwards
compatibility with older 2.x releases, but should be set to "true"
if no drop targets for the Panel exist on the page.
See the DragDrop utilities 2.4.0 README for additional information.
*** version 2.3.1 ***
Fixed the following bugs:
-------------------------
+ To help reduce the occurrence of "Operation Aborted" errors in IE,
containers which are rendered to the document's BODY element (e.g.
myOverlay.render(document.body)) are now inserted before the first
child of the BODY element. This applies to both the container
element as well as the iframe shim if enabled.
Prior to 2.3.1, these two elements were appended as the last
children of the BODY element.
When rendering to any other element on the page, the behavior is
unchanged and both the container and shim are appended as the last
children of the element.
Upgrade Impact For Containers Rendered To Document.Body
-------------------------------------------------------
If you have an xy coordinate and non-zero z-index specified for
your container there should be no negative impact.
If you haven't specified an xy position, the fix could result
in a shift in your container position, depending on other elements
on the page.
If you haven't specified a z-index and are relying on DOM order to
stack the container, you may see a change in stacking order of
the container or iframe shim.
Both these changes can be resolved by setting a specific z-index
and position based on the layout of other elements on your page.
If you do need to revert to 2.3.0 behavior, a configuration property
"appendtodocumentbody" has been added to Module, which can be set to
true.
The change to stacking order is discussed in detail below in
relation to other z-index fixes made for 2.3.1.
+ Z-index is now applied correctly for Overlay/Panel elements, their
corresponding iframe shims, and modal masks (for Panels).
This fix applies to both the default z-index based on the CSS
for the Overlay/Panel and specific z-indices set using the
"zindex" configuration parameter.
Default z-index values are:
Overlay/Panel element: 2
Iframe shim: 1
Mask: 1
The iframe shim and modal mask z-index will always be set to one less
than the Overlay/Panel z-index.
PLEASE NOTE:
As a result of the fix to reduce "Operation Aborted" errors,
setting a z-index of 1 on an Overlay/Panel rendered to document.body
will result in its iframe shim and modal mask (which will have a
z-index of 0) being rendered behind other positioned elements in the
document.
This is because the Overlay/Panel, iframe shim and mask are
inserted as the first children of the BODY element and hence any
positioned elements with a z-index of 0 or auto which occur after
them in the document will be stacked on top of them as per W3C spec.
If you need to keep the Overlay/Panel above positioned elements on your
page, it's z-index needs to be set to 2 or more.
In general it's advisable to manage the z-index of positioned elements
on your page deliberately by setting a z-index, to avoid having their
order in the document define their stacking order.
For detailed stacking order information see:
- http://www.w3.org/TR/CSS21/visuren.html#layers
- http://developer.mozilla.org/en/docs/Understanding_CSS_z-index:The_st
acking_context
+ Module now correctly recognizes standard module header, body and footer
DIVs when they have extra CSS classes applied in addition to the
required hd, bd, and ft classes. e.g. <div class="bd news"></div>.
+ An empty header (set to $#160;) is created for draggable Panels which
don't have a header specified, to provide a drag handle. This fixes a
regression introduced in 2.3.0 so that 2.2.2 behavior is restored.
+ Dialog.destroy has been fixed to account for Dialog form elements which
may not be direct children of the standard module body ("bd") element.
+ SimpleDialog.destory now completes successfully if the optional
button-beta.js dependancy is not included on the page.
+ Destroying Overlays registered with the OverlayManager no longer results in a
JavaScript error. The Overlay is destroyed and removed from the
OverlayManager correctly.
+ Submitting a Dialog form directly (e.g. using a "submit" button, hitting
enter on a single text field form) no longer throws a JavaScript error.
Known Issues
------------
+ IE: Borders for tables with border-collapse:collapse remain visible
-------------------------------------------------------------------
If an Overlay, or any of its subclasses, contains a table with its
border-collapse CSS property set to "collapse" instead of the default
value of "separate", the borders of the table will remain visible, when
the Overlay is configured to be hidden initially. The table contents
will be hidden correctly.
This is due to an IE bug, reproducible by the basic test case below:
<style type="text/css">
.box {visibility:hidden;}
td {border:1px solid red;}
table {border-collapse:collapse;}
</style>
<div class="box">
<table>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
</div>
Setting the DIV elements "style.visibility" JS property fixes the
problem with the simple test case. NOTE: Setting the style in markup
using the DIV's style attribute does not.
Extending this to Container, the simplest workaround if you're not
using effects, is to use Overlay's hide() method to setup visibility.
This will set the Overlay's element "style.visibility" property. e.g.
// Start visible, then hide.
var ovr = YAHOO.widget.Overlay("ovr");
ovr.render();
ovr.hide();
You can also apply this workaround if you want to use effects by
setting the effect up after you hide. e.g.
// Start visible, but don't apply effects,
// to avoid initial animation.
var ovr = YAHOO.widget.Overlay("ovr");
ovr.render();
ovr.hide();
ovr.cfg.setProperty("effect", {effect:.....});
If initial flicker is a problem with the above, you can set the
visibility directly on the Overlay element after rendering e.g.
var ovr = YAHOO.widget.Overlay("ovr", {visible:false});
ovr.render();
YAHOO.util.Dom.setStyle(ovr.element, "visibility", "hidden");
but if possible one of the previous methods should be used since
they use the public API as opposed to manipulating the DOM directly.
*** version 2.3.0 ***
Fixed the following bugs:
-------------------------
+ Improved creation of the <iframe> element used to monitor changes to the
browser's font size so that:
- Safari's status bar no longer displays a "Loading..." message after the
page has loaded.
- Firefox no longer reports duplicate cookie information.
- The browser scrollbars no longer flash on and off in Firefox.
+ It is now possible to set the "button" configuration property of a
YAHOO.widget.Dialog instance after it has be rendered.
+ Form elements appended to a YAHOO.widget.Dialog instance via the "setBody"
method are now automatically registered using the "registerForm" method.
+ The "focusFirst" method of YAHOO.widget.Dialog will no longer result in a
JavaScript error in IE if the first element in the Dialog instance's form
is a radio button.
+ YAHOO.widget.Panel instances whose "draggable" property is set to "true" and
"width" property is set to "auto" are now able to be dragged in IE 6 (Quirks
and Strict Mode) and IE 7 Quirks Mode.
+ Updated focus methods of YAHOO.widget.Dialog to prevent JavaScript errors
that result from trying to set focus to elements that hidden or disabled.
+ Pressing the enter key will no longer result in a YAHOO.widget.Dialog
instance's "validate" method being called twice.
+ Pressing the enter key while focused on a form field inside a Dialog will no
longer trigger the "click" event handler defined by the Dialog's default
button in IE and Firefox.
+ Pressing the enter key when focused on a form field inside a
YAHOO.widget.Dialog instance with no buttons created via its "buttons"
configuration property will no longer result in a JavaScript error.
+ Aqua scrollbars will no longer bleed through Container widgets in Firefox
for Mac OS X.
+ The "width" and "height" configuration properties of YAHOO.widget.Overlay
now supersede the "fixedcenter" and "context" configuration properties to
ensure correct positioning of Overlay instances using the "fixedcenter"
and "context" configuration properties.
+ Calling the "destroy" method on a YAHOO.widget.Overlay instance no longer
results in a JavaScript error on the subsequent focus of another
Overlay instance.
+ YAHOO.widget.Tooltip instances without a value specified for the "width"
configuration property will be rendered at a width equal to the offsetWidth
of their root <DIV/> element to prevent their width from being clipped or
constrained by their parent HTML element.
Changes:
--------
+ Rendering of YAHOO.widget.Tooltip instances is now deferred using the
"onDOMReady" event handler of YAHOO.util.Event rather than waiting until
the "load" event of the Tooltip's parent window fires.
+ Deprecated "browser" property of YAHOO.widget.Module in favor
of YAHOO.env.ua.
+ The "moveEvent" of a YAHOO.widget.Panel instance now also fires with the
"endDrag" event of the its YAHOO.util.DD instance.
+ Updated modal functionality of YAHOO.widget.Panel:
- The creation of a Panel instance's modality mask is now deferred until it
is initially made visible.
- Showing a modal Panel instance will now result in the Panel and its
associated modality mask element having a higher z-index than all other
YAHOO.widget.Overlay instances and Overlay subclasses.
+ Updated the "underlay" configuration property of YAHOO.widget.Panel:
- The creation of the underlay element is deferred until the Panel
instance is initially made visible.
- For Gecko-based browsers on Mac OS X the underlay elment is always
created as it is used as a shim to prevent Aqua scrollbars below a Panel
instance from poking through it.
- For IE 7 (Quirks Mode) and IE 6 (Quirks Mode and Standard Mode) the
underlay element is resized in response to a change to a Panel instance's
"width" or "height" configuration properties, a change to the browser's
font size or the firing of the contentChangedEvent (triggered by use of
the "setHeader," "appendToHeader," "setBody," "appendToBody,"
"setFooter," or "appendToFooter" methods).
+ Updated the "iframe" configuration property of YAHOO.widget.Overlay:
- The creation of the <iframe> shim element is deferred until the Overlay
instance is initially made visible.
- The <iframe> shim element is resized when a change to an Overlay
instance's content is made at runtime via the "setHeader,"
"appendToHeader," "setBody," "appendToBody," "setFooter," or
"appendToFooter" methods.
+ Updated the "buttons" configuration property of YAHOO.widget.Dialog:
- YAHOO.widget.Button is now an optional dependancy, and if included, each
button in a Dialog will be an instance of Button.
- The "text" property of each button now accepts HTML
- The "handler" property of each button can now be set to:
+ A reference to a function that should fire when the button is
clicked. (In this case scope of this function is always its
Dialog instance.)
+ An object literal representing the code to be executed when the
button is clicked. The format is:
{
fn: Function (The handler to call when the event fires.),
obj: Object (An object to pass back to the handler.),
scope: Object (The object to use for the scope of the handler.)
}
Added the following features:
-----------------------------
+ Added ability for YAHOO.widget.Tooltip instances to have shadow:
- The shadow for a Tooltip is implemented by appending a new element as the
last child of its root <DIV/> element:
<DIV class="yui-tt">
<DIV class="bd"> ... </DIV>
<DIV class="yui-tt-shadow"/>
</DIV>
- The code that creates the shadow element resides inside the Tooltip's
public "onRender" prototype method. To disable the creation of a
Tooltip's shadow override the prototype of the "onRender" method:
YAHOO.widget.Tooltip.prototype.onRender = function () {};
- The actual creation of the shadow element is deferred until the Tooltip
is made visible for the first time.
- A Tooltip's shadow element can be styled via two CSS classes:
+ "yui-tt-shadow" - Applied to the shadow element when it is created.
+ "yui-tt-shadow-visible" - Applied to the shadow element when the
Tooltip is visible; it is removed the Tooltip is hidden.
- The shadow element is only styled when using the new "Sam" skin, for
the previous default skin its "display" property is set to "none."
+ Prototype of all classes (Module, Overlay, Panel, Dialog, SimpleDialog,
Tooltip, Config, and ContainerEffect) are augmented with
YAHOO.util.EventProvider, facilitating subscribing to an instance's
Custom Events by name via a "subscribe" method that is a direct member of
the class. For example:
var oOverlay = new YAHOO.widget.Overlay("myoverlay");
oOverlay.subscribe("show", onShow);
+ Added a new "bringToTop" method to YAHOO.widget.Overlay that places the
Overlay on top of all other Overlay instances.
+ Added a new "bringToTop" method to YAHOO.widget.OverlayManager that places
the specified Overlay instance on top of all other Overlay instances. This
method is called on each Overlay instance that is registered with an
OverlayManager instance.
+ Dialog instances are now able to upload files should the Dialog instance's
form contain <input type="file"/> elements. PLEASE NOTE: If a Dialog
instance will be handling asyncronous file uploads, its "callback" property
will need to be setup with an "upload" handler rather than the standard
"success" and, or "failure" handlers. For more information, see the
Connection Manager documenation on file uploads:
http://developer.yahoo.com/yui/connection/#file
+ Added a new "getButtons" method to YAHOO.widget.Dialog that returns an array
containing each of the Dialog's buttons; by default an array of HTML <BUTTON>
elements. If the Dialog's buttons were created using the
YAHOO.widget.Button class (via the inclusion of the optional Button
dependancy on the page), an array of YAHOO.widget.Button instances
is returned.
+ Added a "destroy" method to YAHOO.util.Config that sets all properties to
null, unsubscribes all listeners from each property's change event and all
listeners from the configChangedEvent. The "destroy" method of
YAHOO.widget.Module now automatically calls the "destroy" method of its
configuation object.
+ Added a "IFRAME_OFFSET" constant to YAHOO.widget.Overlay that controls how
much the <iframe> shim should be offset from each side of an
Overlay instance.
+ Added a new "syncIframe" method to YAHOO.widget.Overlay that syncronizes the
size and position of the <iframe> shim to that of the Overlay.
+ Added a "ICON_CSS_CLASSNAME" constant to YAHOO.widget.SimpleDialog that
represents the name of the CSS class applied to the element created by the
"icon" configuration property.
Known Issues
------------
+ "Sam" skin Panel missing left and right borders when declared with a height
---------------------------------------------------------------------------
If the height of a Panel instance exceeds the total height of its header,
body and footer elements, the space not filled with content will lack a left
and right border. Therefore, to set a Panel instance to a fixed height
when using the "Sam" skin, apply the desired height to the body element,
taking into account the height of the header and footer elements. To set the
height of a Panel instance's body via CSS:
#mypanel .bd {
height: 100px;
}
Or via JavaScript:
oMyPanel.body.style.height = "100px";
+ Elements with scrollbars poke through Overlay instances floating above them
---------------------------------------------------------------------------
There is a bug in Gecko-based browsers for Mac OS X where an element's
scrollbars will poke through absolutely positioned elements floating above
them. To fix this problem the "overflow" property of an Overlay instance's
root element is toggled between "hidden" and "auto" (through the application
and removal of the "hide-scrollbars" and "show-scrollbars" CSS classes) as its
"visibility" configuration property is toggled between "false" and "true."
PLEASE NOTE:
1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are
applied only for Gecko on Mac OS X and are added/removed to/from the
Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and
"showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
2) For Panel (and its subclasses) it is the underlay element, not the root
element, whose "overflow" property is toggled between "hidden" and "auto."
The underlay element therefore acts as a shim to correct the
scrollbar problem.
3) For Tooltip instances using the "Sam" skin it is the shadow element, not
the root element, whose "overflow" property is toggled between "hidden"
and "auto." The shadow element therefore acts as a shim to correct the
scrollbar problem.
4) Once the fix is applied the bug will reappear if the window loses focus.
This can be remedied via Javascript by hiding and showing the Overlay
instance when the window receives focus:
YAHOO.util.Event.on(window, "focus", function () {
oMyOverlay.hide();
oMyOverlay.show();
});
** For more information see
https://bugzilla.mozilla.org/show_bug.cgi?id=187435
+ Scrollbars remain visible after an Overlay is hidden
----------------------------------------------------
There is a bug in Gecko-based browsers for Mac OS X where an element's
scrollbars and the scrollbars of its child nodes remain visible when its
"visibility" property property is set to "hidden." To fix this problem,
the "overflow" property of an Overlay instance's root element and child nodes
is toggled between "hidden" and "auto" (through the application and removal
of the "hide-scrollbars" and "show-scrollbars" CSS classes) as its
"visibility" configuration property is toggled between "false" and "true."
PLEASE NOTE:
1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are
applied only for Gecko on Mac OS X and are added/removed to/from the
Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and
"showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
2) There may be instances where the CSS for a web page or application
contains style rules whose specificity override the rules implemented by
the Container CSS files to fix this bug. In such cases, is necessary to
leverage the provided "hide-scrollbars" and "show-scrollbars" classes to
write custom style rules to guard against this bug. For example:
To fix the scrollbars issue for an Overlay instance with an id of
"myoverlay" whose body element has scrollbars applied by default:
#myoverlay .bd {
height: 100px;
/* Apply scrollbars for all browsers. */
overflow: auto;
}
#myoverlay.hide-scrollbars .bd {
/* Hide scrollbars by default for Gecko on OS X */
overflow: hidden;
}
#myoverlay.show-scrollbars .bd {
/* Show scrollbars for Gecko on OS X when the Overlay is visible */
overflow: auto;
}
To fix the scrollbars issue for a Panel instance with an id of "mypanel"
whose body element has scrollbars applied by default:
#mypanel .bd {
height: 100px;
/* Apply scrollbars for all browsers. */
overflow: auto;
}
.yui-panel-container.hide-scrollbars #mypanel .bd {
/* Hide scrollbars by default for Gecko on OS X */
overflow: hidden;
}
.yui-panel-container.show-scrollbars #mypanel .bd {
/* Show scrollbars for Gecko on OS X when the Panel is visible */
overflow: auto;
}
** For more information see
https://bugzilla.mozilla.org/show_bug.cgi?id=187435
+ Flash Movies appear on top of Overlay instances
-----------------------------------------------
Flash movies can appear on top of Overlay instances in IE and Gecko-based
browsers. To fix this problem, set the "wmode" of the Flash movie to either
"transparent" or "opaque" as indicated below:
Via the <object> tag:
<object>
<param name="wmode" value="opaque">
</object>
<object>
<param name="wmode" value="transparent">
</object>
Via the <embed> tag:
<embed wmode="transparent"> ... </embed>
<embed wmode="opaque"> ... </embed>
** For more information see
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15523
+ Overlay instances not rendered at correct z-index in IE
-------------------------------------------------------
In IE, when an Overlay instance is rendered inside a relatively positioned
element the z-index of the Overlay instance is now relative to its
relatively positioned parent element. This is not a bug in the
Overlay class, but rather a bug in IE where relatively positioned elements
establish a new stacking context for their child nodes. To avoid this
bug it is recommend that all Overlay instances that need to be able to float
above any other element in the document be made direct descendants of the
<body> element.
** For more information see
http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html
+ Header elements for Panel instances using "Sam" skin shrinkwrap in IE 7
-----------------------------------------------------------------------
In IE 7 (Standards Mode) if a Panel instance is created without specifying a
value for the "width" configuration property the width of the Panel's
header element will shrinkwrap to the width of its text node. To avoid
triggering this bug in IE always specify a value for the "width"
configuration property when using Panel.
+ Panel instances render at 100% of the browser viewport
------------------------------------------------------
In IE 7 (Quirks Mode) and IE 6 (Quirks Mode and Standards Mode) if any of the
child nodes of a Panel instance's root element have "layout"
(http://msdn2.microsoft.com/en-us/library/ms533776.aspx) and no value
has been specified for the "width" configuration property, the Panel will
render at 100% of the width of browser's viewport. This bug will manifest
when using the "Sam" skin as layout is applied to the header, body and
footer elements (by setting the CSS "zoom" property of the element to "1" )
in order to get the negative margins required for the rounded corners to
render correctly. To avoid triggering this bug in IE always specify a value
for the "width" configuration property when using Panel.
+ Panel instances render at 2px wider when using "Sam" skin
---------------------------------------------------------
For the "Sam" skin a Panel instance's rounded corners are created via the
application of negative 1px left and right margins on the header, body and
footer elements. These negative margins will cause a Panel instance to be
rendered at 2px wider than the value specified by the "width" configuration
property. Therefore, when using the "Sam" skin consider the negative left
and right margins and subtract 2 from the value passed to the "width"
configuration property in order to have the Panel render at the desired
width. For example, to render a Panel 300px wide, pass a value of "298px"
to the "width" configuration property.
*** version 2.2.2 ***
+ Clicking the close button of a Panel (or any instance of a Panel subclass)
registered with an OverlayManager will no longer result in the Panel
receiving focus.
+ Overlay instances registered with an OverlayManager will now correctly
blur themselves when hidden.
+ Calling the "destroy" method of an Overlay instance will now result in it
being removed from its OverlayManager instance(s).
+ The DOM event listener for the event defined by the "focusevent"
configuration property of an OverlayManager instance is now removed from each
Overlay instance when it is removed from its OverlayManager.
+ All subscribers for an Overlay instance's "focus" and "blur" events are
now unsubscribed when it is removed from its OverlayManager.
*** version 2.2.1 ***
+ Made the default scope for all Custom Events published by Module, Overlay,
Panel, Tooltip, Dialog and SimpleDialog the widget instance. Previously the
default scope for Custom Events was inconsistent across classes; the default
scope for Custom Events published by Overlay was always the Overlay instance
whereas the Custom Events published by all of the other classes had no
default scope.
+ Added default scope for CustomEvents published by YAHOO.util.Config:
- Default scope for the "configChangedEvent" is now the Config instance.
- Default scope for Config property events is now the Config's owner (widget).
+ Panel and Tooltip now always convert the value of a DOM element's "tagName"
property to uppercase before evaluating it. This improves
XHTML compatibility.
+ Pressing the enter key while focused on a form field inside a Dialog will
now trigger the "click" event handler defined by the Dialog's default
button in IE and Firefox. Previously, this behavior only worked in Safari
and Opera.
+ Added a "yui" prefix to the default CSS class name for Module to be
consistent with the other Container family widgets.
+ Container/Panel's underlay shadow is now defined as partially-transparent
black rather than gray. This prevents the shadow from lightening the
background color of elements beneath it.
+ Fixed memory leaks in Panel and Dialog.
+ The Drag and Drop library is now a truly optional dependency for Panel and its
subclasses.
+ Panel "focus" and "blur" events are now fired when Panels are focused and
blurred via the "focus" and "blurAll" methods of YAHOO.widget.OverlayManager.
+ Panel instances rendered without setting the value for the "width"
configuration property will now have their "width" configuration
property set to the value of the Panel's element's "offsetWidth" property
when rendered. This fixes an issue in IE 6 and 7 where Panels that are
rendered without setting the "width" configuration property will only be
draggable by mousing down on the text inside the header, rather than anywhere
inside the header.
+ Refactored the Container family including the Config class to improve
performance, especially when working with a large number of instances in IE6.
*** version 2.2.0 ***
Module
- Removed hardcoded file paths for image roots. Affected properties
include:
- YAHOO.widget.Module.IMG_ROOT
- YAHOO.widget.Module.IMG_ROOT_SSL
- HTML elements, created via createElement, now use lowercase.
Panel
- To shield against CSS class collision, the following references now
have a "yui-" prefix:
- YAHOO.widget.Panel.CSS_PANEL now references CSS class "yui-
panel".
- YAHOO.widget.Panel.CSS_PANEL_CONTAINER now references CSS class
"yui-panel-container".
- Close button can now be configured via the CSS class "container-
close".
- HTML elements, created via createElement, now use lowercase.
Dialog
- To shield against CSS class collision, the following references now
have a "yui-" prefix:
- YAHOO.widget.Dialog.CSS_DIALOG now references CSS class "yui-
dialog".
- HTML elements, created via createElement, now use lowercase.
SimpleDialog
- Removed hardcoded file paths for SimpleDialog icons, which are now
configurable in CSS:
- YAHOO.widget.SimpleDialog.ICON_BLOCK now references CSS class
"blckicon".
- YAHOO.widget.SimpleDialog.ICON_ALARM now references CSS class
"alrticon".
- YAHOO.widget.SimpleDialog.ICON_HELP now references CSS class
"hlpicon".
- YAHOO.widget.SimpleDialog.ICON_INFO now references CSS class
"infoicon".
- YAHOO.widget.SimpleDialog.ICON_WARN now references CSS class
"warnicon".
- YAHOO.widget.SimpleDialog.ICON_TIP now references CSS class
"tipicon".
- To provide shield against CSS class collision the following
references now have a "yui-" prefix:
- YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG now references CSS
class "yui-simple-dialog";
Tooltip
- To shield against CSS class collision, the following references now
have a "yui-" prefix:
- YAHOO.widget.Tooltip.CSS_TOOLTIP now references CSS class "yui-
tipicon" "yui-tt";
*** version 0.12.2 ***
Module
- Corrected issue where listener was not properly removed from resize
monitor element when "monitorresize" is disabled
Panel
- Fixed issue that would sometimes prevent select lists from working
properly in Firefox
Dialog
- Fixed error that would occur when trying to create a Dialog where
the first form element is set to "disabled"
- Modified "close" property handler for Dialog/SimpleDialog to call
"cancel" instead of "hide"
*** version 0.12.1 ***
All Classes
- "monitorresize" property now functions in situations where
document.domain has been modified.
- YAHOO.widget.Module.textResizeEvent now fires when the font size is
changed (except for Opera, which uses "zoom" functionality that
prevents this)
- Event listeners attached to container elements are now properly
purged on destroy using YAHOO.util.Event.purgeElement
Panel
- Fixed issue where focus events were broken on the page when a modal
Panel was created
Dialog
- Fixed bug where hitting "enter" on a Dialog was forcing the default
submission behavior of the form's action to execute
- Dialog no longer tries to give focus to hidden form elements.
- Replaced references in Panel with   for XHTML
compliance.
- Fixed issue that was preventing Safari from successfully using the
getData() function
*** version 0.12 ***
All Classes
- New documentation format implemented, and removed unnecessary
prototype null references previously used for generating
documentation
Config
- Added 'undefined' check when reading initial properties for
.reset()
- Fixed Firefox warning on .resetProperty()
- Fixed issue preventing resetProperty() from resetting values
correctly
Module
- Removed unused "childNodesInDom" property
Overlay
- Converted center() to use Dom utility
- Fixed configVisible() to properly detect actual visible/hidden
status in Internet Explorer, which reports "inherit" for all elements
by default.
- Updated onDomResize to properly reapply "context" property
- Unified scroll/resize handlers so that they fire properly (when the
event has completed) as opposed to constantly (as seen in Mozilla-
based browsers)
Panel
- Modified modality mask to show before Panel is shown (prior to any
animation)
- Modified buildWrapper to eliminate cloning of the initial markup
module, which fixes issues with select options not maintaining their
default selections in IE
- Modality mask is now z-indexed properly so that the mask z-index is
always one less than the Panel z-index
Dialog
- Fixed Connection to get "action" attribute using getAttribute, to
allow for form fields named "action"
- Added support for "GET" by retrieving the form "method" rather than
always defaulting to "POST"
KeyListener
- Fixed to work properly with Safari 2.0 by matching against keyCode
or charCode
*** version 0.11.4 ***
- Panel: Modality mask is now properly removed from DOM on Panel
destroy.
*** version 0.11.3 ***
- Module: Fixed SSL warning issue in IE
- Overlay: Fixed memory leak related to iframe shim in IE
- Panel: No focusable elements under the mask can now be tabbed to
- Panel: Set Panel container overflow to hidden to fix scrolling issue
in Opera 9
*** version 0.11.2 ***
- All: JsLint optimization
- Overlay: Fixed SSL issues with monitorresize property
- OverlayManager: Fixed z-index incrementing issues
- Dialog: Form elements called "name" will now function properly
- Dialog: Removed unnecessary scope:this reference
*** version 0.11.1 ***
- Tooltip: Removed incorrect logger statement
- Dialog: Corrected logic that was causing browser lockup in IE for
SimpleDialog
- Dialog: Fixed "firstButtom" typo
*** version 0.11.0 ***
- toString function added to all classes for easy logging
- YAHOO.extend is now being used for inheritance on all container
classes
- Module: monitorresize feature now works on all browsers
- Module: Fixed bug with image root and isSecure
- Overlay: Fixed bugs related to IFRAME shim positioning
- Overlay: center() now works in quirks mode
- Overlay: Overlay now has a custom destroy() method that also removes
the IFRAME shim
- OverlayManager: Fixed bug in the prototype that was preventing
multiple Managers on one page
- OverlayManager: focusEvent now fires at all appropriate times
- Tooltip: context can now be specified as an array, so Tooltips can be
reused across multiple context elements
- Tooltip: preventoverlap now functions properly for large context
elements (i.e, images)
- Tooltip: fixed bugs regarding setTimeout
- Tooltip: added mousemove event to allow for more accurate Tooltip
positioning
- Panel: added dragEvent for monitoring all event handlers for drag and
drop
- Panel: modality mask is now resized on scroll
- Panel: KeyListeners are now properly destroyed when the Panel is
destroyed
- Panel: Header is now sized properly in quirks mode
- Dialog: Blinking cursor issue is fixed for Firefox
- Dialog: callback object for Connection is now public (this.callback)
- Dialog: onsuccess/onfailure properties removed (as a result of the
public callback object)
- Dialog: Dialog is now invisible by default
- Dialog: Buttons are now properly cleaned up on destroy
*** version 0.10.0 ***
* Initial release