1
Container Release Notes
8
+ Added a "yui-overlay-hidden" class to hidden Overlays (and derived widgets).
9
This class can be used to define CSS properties to work around bugs in
10
IE6 and IE7's handling of tables with captions, or tables with border-collapse
13
In IE6 and IE7, if the overlay contains tables with captions, the
14
user will not be able to interact with element which lie underneath
15
the table, even when the overlay is hidden.
17
The above marker class can be used to hide tables when the overlay is hidden
18
to workaround the IE bug:
20
#containerWithTable.yui-overlay-hidden table {
21
// Display is used here as an example, you could also
22
// set the height, or margin, or position for the table to
23
// hide it if required.
27
Also, in IE6 and IE7, if the overlay contains tables with border-collapse
28
set to "collapse", as is the case for the YUI Calendar's default Sam skin,
29
the borders will remain visible even when the overlay is hidden.
31
The above marker class can be used to flip the tables border-collapse setting,
32
to workaround the IE bug:
34
#containerWithTable.yui-overlay-hidden table {
35
// IE hides the border correctly if it is set to "separate"
36
border-collapse:separate;
39
+ Added tab-index = -1, to iframe shim to take it out of tab flow.
41
+ Module id is generated using Dom.generateId, if the element
42
passed to the constructor does not have an id set.
44
+ Added Module.forceDocumentRedraw method which can be used to
45
fix occasional content dependant rendering glitches in Opera.
47
+ Resize monitor is now only positioned offset top, instead of both
48
offset top and offset left, to avoid scrollbars in RTL pages. A buffer
49
constant (Module.RESIZE_MONITOR_BUFFER) is also provided, to add a buffer
50
amount to the offscreen position.
55
+ Fixed focusFirst behavior to give the default button priority over
56
the first button if defined.
58
+ Fixed erratic scrolling when clicking on the scrollbar in IE when a
59
modal panel is visible.
61
+ Removed suppressEvent from autofillheight in overlay, was causing
62
"autofillheight" to not be honored in Panel.
64
+ Added < 0 check for "autofillheight".
66
+ Fixed "autofillheight", so that it only takes effect if a non "auto"
67
height has been set on the container.
69
+ Fixed shadow in IE6 not being resized correctly when autofillheight
70
is set, and text is resized.
72
+ Fixed opacity flash seen when a tooltip with ContainerEffect.FADE
75
+ Fixed incorrect tooltip width, for the case where the width is
76
set dynamically (see Tooltip's width configuration property),
77
and the user moves from one of the Tooltip's context elements
78
to another, without the tooltip being hidden.
80
+ Autofillheight if enabled, is recalculated whenever content
81
changes, to account for changes in section height.
83
+ Fixed faulty repaint on Safari 3.2/MacOS 10.5, when using fixed
84
center, by forcing redraw after centering.
89
+ Dialog now supports a "postdata" configuration parameter which can be
90
used to define post data to be sent along with any data mined from the
91
form, for async post requests.
93
+ Dialog now provides the connection object, as the first argument to
94
subscribers of the "asyncSubmit" event.
96
+ Added support for fixedcenter:"contained", which acts like
97
fixedcenter:true, enabling the user to keep the Overlay centered in
98
the viewport when scrolling or resizing the window.
100
However when fixedcenter is set to "contained", if the Overlay is
101
too big for the viewport, re-centering on scroll will be disabled
102
until the viewport is large enough to contain the Overlay
103
completely. This allows the user to scroll the viewport to
104
access sections of the Overlay outside the current viewport.
106
*** version 2.6.0 ***
111
+ 1px rounded corners in Sam-Skin, added in 2.3.0, are no longer
112
rendered in IE6 or IE7.
114
hasLayout and relative positioning applied
115
to the header, body and footer elements to achieve the 1px
116
rounded corners had functional side effects (such as the inability
117
to shrink-wrap auto width containers, and the creation of invalid
120
1px rounded corners can be re-applied with a CSS patch if required,
121
as discussed on the container documentation web page.
123
+ We now attempt to focus the first focusable element inside a Panel,
124
when it is shown (as is done with Dialog).
126
+ Setting the "height" configuration property will now result in the
127
container's body element being resized to fill out any empty
128
vertical space. This behavior can be configured using the
129
"autofillheight" configuration property discussed below.
134
+ Added a new "preventcontextoverlap" configuration property used
135
to manage whether or not an Overlay instance should overlap its
136
context element (defined using the "context" configuration property)
137
when the "constraintoviewport" configuration property is set
140
+ Added ability to specify event triggers when using the "context"
141
configuration property. The container wil re-align itself with
142
the context element in response to these trigger events.
144
See context configuration property documentation for usage details.
146
+ Added "autofillheight" configuration property, which is set to "body"
147
by default. This configuration property can be used to specify which
148
of the 3 container element - "header", "body", "footer" should be
149
resized to fill out any remaining vertical space when the container's
150
"height" configuration property is set.
152
The property can be set to false/null to disable the feature if
155
+ Panel now supports focusFirst and focusLast methods, as
156
well as tab, shift-tab looping when modal (similar to Dialog).
159
-------------------------
161
+ Fixed issue with tooltip iframe remaining visible in situations
162
where the page was scrolled down.
164
+ Fixed OverlayManager.find to return null, if the Overlay cannot
167
+ OverlayManager no longer overwrites focus or blur methods on the
168
registered container, if they already exist (e.g. for Menu). Instead
169
it registers focus/blur event listeners to maintain OverlayManager
170
state in such situations.
172
+ Panels/Dialogs without a fixed width specified (auto width containers)
173
now shrink-wrap correctly in IE6, IE7 (see 1px rounded corner discussion
176
+ Added text to the close icon, to enhance accessibility for screen
177
readers. Also changed the close icon element from a span, to an anchor
178
to facilate keyboard tab access.
180
+ Added title to text resize monitor iframe, to assist screen readers.
182
+ Fixed modal mask resizing when going from a larger to a smaller window
185
+ hideMaskEvent is now fired after all modal mask relatd state changes
186
(including changes to the document.body) have taken place.
188
Originally it was fired before removing the "masked" class from
191
+ Fixed Sam Skin look/feel for default Dialog buttons. Originally
192
disabled default buttons looked the same as enabled default buttons.
194
+ Fixed asynchronous Dialog submission failure for cases where the form
195
contained elements named "action" or "method".
197
+ Fixed Dialog button focus methods when using YUI Buttons.
199
+ Modal Dialogs buttons are now included in the tab, shift-tab flow.
200
Originally buttons in Modal dialogs were unreachable when tabbing.
202
+ Individual focus handlers attached to all non-container focusable
203
elements (used to enforce modality), resulted in poor performance
204
when showing/hiding modal Panels, especially in IE, on pages with
205
a large number of focusable elements.
207
Instead of individual listeners, Panel now registers a single
208
focus listener on the document to enforce modality, improving
209
performance and scalability for modal solutions.
211
+ Files for optional component dependencies (e.g. animation, dragdrop,
212
connection) can now be included after container's js files, without
213
breaking related functionality.
215
+ Fixed Config to remove (null out) current entry from the
216
config queue, before invoking fireEvent for the entry, to
217
keep it from being re-added to the end of the queue if
218
listeners were to set a property which superceded the entry.
220
*** version 2.5.2 ***
224
*** version 2.5.1 ***
227
-------------------------
229
+ Module.setBody, setHeader and setFooter methods now accept
230
DocumentFragments. This feature was implicitly available
231
in versions prior to 2.5.0 and is now officially supported.
236
+ Optimized addition of Modality focus handlers on masked
237
elements (which are used to enforce modality) and added
238
ability to disable feature, to avoid timeout script errors
239
in IE if your page contains a very large number of focusable
242
Additionally changes to Event in 2.5.1 should allow
243
for increased scalability, when using Modal panels containing
244
large numbers of focusable elements on the page.
246
Added a YAHOO.widget.Panel.FOCUSABLE property, defining
247
the set of elements which should have focus handlers applied
248
when covered by the Modal mask.
250
If you wish to disable the addition of focus handlers to all
251
focusable elements on the page when a Modal Panel is displayed,
252
the property can be set to an empty array:
254
YAHOO.widget.Panel.FOCUSABLE = [];
256
NOTE: This will mean that elements under mask may still be
257
accessible using the keyboard, however the mask will still
258
prevent mouse access to elements.
260
*** version 2.5.0 ***
263
-------------------------
265
+ We now add the text resize monitor iframe to the DOM in a timeout,
266
to help alleviate the perpetual loading indicator seen in
267
Firefox 2.0.0.8 (Gecko 1.8.1.8) and above on Windows.
269
+ Changed the closing script tag string used in the resize monitor, to
270
allow container-min.js, container_core-min.js content to be used inline.
272
+ Fixed problem with underlay size being too short in IE6 when setting up
273
an initially visible Dialog with buttons.
275
+ Removed overflow:auto applied to the modal mask for all browsers other
276
than gecko/MacOS to help avoid the "missing text cursor" Gecko bug.
277
Overflow:auto is still applied to for Gecko/MacOS to help avoid
278
scrollbar bleedthrough, another Gecko bug (discussed in Container's
279
known issues section).
282
-----------------------------
284
+ Added a "hideaftersubmit" config property to Dialog, to allow the end
285
user to configure whether or not the Dialog should be hidden after
286
it has been submitted. By default it is set to false, to provide
287
backwards compatibility.
289
+ Added contextMouseOverEvent, contextMouseOutEvent and
290
contextTriggerEvent events to Tooltip, which provide access to the
291
context element when the user mouses over a context element, mouses
292
out of a context element, and before a tooltip is about to be
293
triggered (displayed) for a context element. See the API docs for
294
these events for futher details.
296
+ Added a "disabled" config property to Tooltip, to allow the user
297
to dynamically disable a tooltip.
302
+ Optimized constraintoviewport handling for Overlays which haven't
303
been specifically positioned, so that the constraint checks aren't
304
made before every show.
306
*** version 2.4.0 ***
309
-------------------------
311
+ constraintoviewport and fixedcenter now handle Overlays which are
312
larger than the viewport. The Overlay will be positioned such that
313
it's top, left corner is in the viewport. Panel's draggable
314
behavior now also honors constraintoviewport, if the panel is
315
larger than the viewport.
317
+ constrainToViewport will now correctly constrain Overlays which
318
haven't been specifically positioned (don't have an XY value set).
320
+ Overlay/OverlayManager bringToTop methods will bring Overlays to
321
the top of the stack, even if their current zindex is the same as
322
other Overlays on the page.
324
+ Fixed double textResizeEvents fired on gecko based browsers (e.g
327
+ Panel underlay now resizes correctly in Safari 2.x, when the
328
content of the Panel is modified (e.g. when setBody() is called).
330
+ Tooltip "text" configuration property is no longer overridden by
331
the "title" attribute value on the context element if both are
332
set. The "text" configuration property takes precedence
333
(as indicated in the Tooltip documentation).
335
+ Transparent shadows no longer become opaque (black) in IE6/IE7
336
when a Panel with ContainerEffect.FADE is hidden and then
337
shown again. Also on IE6/IE7 transparent shadows no longer
338
appear opaque while animation is in progress.
340
+ An empty header is no longer created for non-draggable
341
Dialogs/SimpleDialogs which don't provide their own headers.
342
By design, an empty header is still created for draggable
343
Dialogs/SimpleDialogs which don't provide a header, in order
344
to provide a drag handle.
346
+ Select boxes inside Modal Panels on IE6 are no longer hidden.
348
+ In Sam Skin, Dialog/SimpleDialog default and non-default HTML
349
buttons (used when YUI Button is not included on the page) now
350
have a consistent look. Previously style properties intended
351
for default YUI Buttons, were being incorrectly applied to
352
default HTML buttons, giving them a look inconsistent with
356
-----------------------------
358
+ Added "dragOnly" configuration property to Panel, to leverage
359
the "dragOnly" configuration property added to the DragDrop
362
When the "dragOnly" configuration property is set to true,
363
the DD instance created for the Panel will not check for drop
364
targets on the page, improving performance during drag operations
365
which don't require drop target interaction.
367
The property is set to "false" by default to maintain backwards
368
compatibility with older 2.x releases, but should be set to "true"
369
if no drop targets for the Panel exist on the page.
371
See the DragDrop utilities 2.4.0 README for additional information.
373
*** version 2.3.1 ***
376
-------------------------
378
+ To help reduce the occurrence of "Operation Aborted" errors in IE,
379
containers which are rendered to the document's BODY element (e.g.
380
myOverlay.render(document.body)) are now inserted before the first
381
child of the BODY element. This applies to both the container
382
element as well as the iframe shim if enabled.
384
Prior to 2.3.1, these two elements were appended as the last
385
children of the BODY element.
387
When rendering to any other element on the page, the behavior is
388
unchanged and both the container and shim are appended as the last
389
children of the element.
391
Upgrade Impact For Containers Rendered To Document.Body
392
-------------------------------------------------------
393
If you have an xy coordinate and non-zero z-index specified for
394
your container there should be no negative impact.
396
If you haven't specified an xy position, the fix could result
397
in a shift in your container position, depending on other elements
400
If you haven't specified a z-index and are relying on DOM order to
401
stack the container, you may see a change in stacking order of
402
the container or iframe shim.
404
Both these changes can be resolved by setting a specific z-index
405
and position based on the layout of other elements on your page.
407
If you do need to revert to 2.3.0 behavior, a configuration property
408
"appendtodocumentbody" has been added to Module, which can be set to
411
The change to stacking order is discussed in detail below in
412
relation to other z-index fixes made for 2.3.1.
414
+ Z-index is now applied correctly for Overlay/Panel elements, their
415
corresponding iframe shims, and modal masks (for Panels).
416
This fix applies to both the default z-index based on the CSS
417
for the Overlay/Panel and specific z-indices set using the
418
"zindex" configuration parameter.
420
Default z-index values are:
422
Overlay/Panel element: 2
426
The iframe shim and modal mask z-index will always be set to one less
427
than the Overlay/Panel z-index.
431
As a result of the fix to reduce "Operation Aborted" errors,
432
setting a z-index of 1 on an Overlay/Panel rendered to document.body
433
will result in its iframe shim and modal mask (which will have a
434
z-index of 0) being rendered behind other positioned elements in the
437
This is because the Overlay/Panel, iframe shim and mask are
438
inserted as the first children of the BODY element and hence any
439
positioned elements with a z-index of 0 or auto which occur after
440
them in the document will be stacked on top of them as per W3C spec.
442
If you need to keep the Overlay/Panel above positioned elements on your
443
page, it's z-index needs to be set to 2 or more.
445
In general it's advisable to manage the z-index of positioned elements
446
on your page deliberately by setting a z-index, to avoid having their
447
order in the document define their stacking order.
449
For detailed stacking order information see:
450
- http://www.w3.org/TR/CSS21/visuren.html#layers
451
- http://developer.mozilla.org/en/docs/Understanding_CSS_z-index:The_st
454
+ Module now correctly recognizes standard module header, body and footer
455
DIVs when they have extra CSS classes applied in addition to the
456
required hd, bd, and ft classes. e.g. <div class="bd news"></div>.
458
+ An empty header (set to $#160;) is created for draggable Panels which
459
don't have a header specified, to provide a drag handle. This fixes a
460
regression introduced in 2.3.0 so that 2.2.2 behavior is restored.
462
+ Dialog.destroy has been fixed to account for Dialog form elements which
463
may not be direct children of the standard module body ("bd") element.
465
+ SimpleDialog.destory now completes successfully if the optional
466
button-beta.js dependancy is not included on the page.
468
+ Destroying Overlays registered with the OverlayManager no longer results in a
469
JavaScript error. The Overlay is destroyed and removed from the
470
OverlayManager correctly.
472
+ Submitting a Dialog form directly (e.g. using a "submit" button, hitting
473
enter on a single text field form) no longer throws a JavaScript error.
478
+ IE: Borders for tables with border-collapse:collapse remain visible
479
-------------------------------------------------------------------
480
If an Overlay, or any of its subclasses, contains a table with its
481
border-collapse CSS property set to "collapse" instead of the default
482
value of "separate", the borders of the table will remain visible, when
483
the Overlay is configured to be hidden initially. The table contents
484
will be hidden correctly.
486
This is due to an IE bug, reproducible by the basic test case below:
488
<style type="text/css">
489
.box {visibility:hidden;}
490
td {border:1px solid red;}
491
table {border-collapse:collapse;}
503
Setting the DIV elements "style.visibility" JS property fixes the
504
problem with the simple test case. NOTE: Setting the style in markup
505
using the DIV's style attribute does not.
507
Extending this to Container, the simplest workaround if you're not
508
using effects, is to use Overlay's hide() method to setup visibility.
509
This will set the Overlay's element "style.visibility" property. e.g.
511
// Start visible, then hide.
512
var ovr = YAHOO.widget.Overlay("ovr");
516
You can also apply this workaround if you want to use effects by
517
setting the effect up after you hide. e.g.
519
// Start visible, but don't apply effects,
520
// to avoid initial animation.
521
var ovr = YAHOO.widget.Overlay("ovr");
524
ovr.cfg.setProperty("effect", {effect:.....});
526
If initial flicker is a problem with the above, you can set the
527
visibility directly on the Overlay element after rendering e.g.
529
var ovr = YAHOO.widget.Overlay("ovr", {visible:false});
531
YAHOO.util.Dom.setStyle(ovr.element, "visibility", "hidden");
533
but if possible one of the previous methods should be used since
534
they use the public API as opposed to manipulating the DOM directly.
536
*** version 2.3.0 ***
539
-------------------------
541
+ Improved creation of the <iframe> element used to monitor changes to the
542
browser's font size so that:
544
- Safari's status bar no longer displays a "Loading..." message after the
547
- Firefox no longer reports duplicate cookie information.
549
- The browser scrollbars no longer flash on and off in Firefox.
551
+ It is now possible to set the "button" configuration property of a
552
YAHOO.widget.Dialog instance after it has be rendered.
554
+ Form elements appended to a YAHOO.widget.Dialog instance via the "setBody"
555
method are now automatically registered using the "registerForm" method.
557
+ The "focusFirst" method of YAHOO.widget.Dialog will no longer result in a
558
JavaScript error in IE if the first element in the Dialog instance's form
561
+ YAHOO.widget.Panel instances whose "draggable" property is set to "true" and
562
"width" property is set to "auto" are now able to be dragged in IE 6 (Quirks
563
and Strict Mode) and IE 7 Quirks Mode.
565
+ Updated focus methods of YAHOO.widget.Dialog to prevent JavaScript errors
566
that result from trying to set focus to elements that hidden or disabled.
568
+ Pressing the enter key will no longer result in a YAHOO.widget.Dialog
569
instance's "validate" method being called twice.
571
+ Pressing the enter key while focused on a form field inside a Dialog will no
572
longer trigger the "click" event handler defined by the Dialog's default
573
button in IE and Firefox.
575
+ Pressing the enter key when focused on a form field inside a
576
YAHOO.widget.Dialog instance with no buttons created via its "buttons"
577
configuration property will no longer result in a JavaScript error.
579
+ Aqua scrollbars will no longer bleed through Container widgets in Firefox
582
+ The "width" and "height" configuration properties of YAHOO.widget.Overlay
583
now supersede the "fixedcenter" and "context" configuration properties to
584
ensure correct positioning of Overlay instances using the "fixedcenter"
585
and "context" configuration properties.
587
+ Calling the "destroy" method on a YAHOO.widget.Overlay instance no longer
588
results in a JavaScript error on the subsequent focus of another
591
+ YAHOO.widget.Tooltip instances without a value specified for the "width"
592
configuration property will be rendered at a width equal to the offsetWidth
593
of their root <DIV/> element to prevent their width from being clipped or
594
constrained by their parent HTML element.
600
+ Rendering of YAHOO.widget.Tooltip instances is now deferred using the
601
"onDOMReady" event handler of YAHOO.util.Event rather than waiting until
602
the "load" event of the Tooltip's parent window fires.
604
+ Deprecated "browser" property of YAHOO.widget.Module in favor
607
+ The "moveEvent" of a YAHOO.widget.Panel instance now also fires with the
608
"endDrag" event of the its YAHOO.util.DD instance.
610
+ Updated modal functionality of YAHOO.widget.Panel:
612
- The creation of a Panel instance's modality mask is now deferred until it
613
is initially made visible.
615
- Showing a modal Panel instance will now result in the Panel and its
616
associated modality mask element having a higher z-index than all other
617
YAHOO.widget.Overlay instances and Overlay subclasses.
619
+ Updated the "underlay" configuration property of YAHOO.widget.Panel:
621
- The creation of the underlay element is deferred until the Panel
622
instance is initially made visible.
624
- For Gecko-based browsers on Mac OS X the underlay elment is always
625
created as it is used as a shim to prevent Aqua scrollbars below a Panel
626
instance from poking through it.
628
- For IE 7 (Quirks Mode) and IE 6 (Quirks Mode and Standard Mode) the
629
underlay element is resized in response to a change to a Panel instance's
630
"width" or "height" configuration properties, a change to the browser's
631
font size or the firing of the contentChangedEvent (triggered by use of
632
the "setHeader," "appendToHeader," "setBody," "appendToBody,"
633
"setFooter," or "appendToFooter" methods).
635
+ Updated the "iframe" configuration property of YAHOO.widget.Overlay:
637
- The creation of the <iframe> shim element is deferred until the Overlay
638
instance is initially made visible.
640
- The <iframe> shim element is resized when a change to an Overlay
641
instance's content is made at runtime via the "setHeader,"
642
"appendToHeader," "setBody," "appendToBody," "setFooter," or
643
"appendToFooter" methods.
645
+ Updated the "buttons" configuration property of YAHOO.widget.Dialog:
647
- YAHOO.widget.Button is now an optional dependancy, and if included, each
648
button in a Dialog will be an instance of Button.
650
- The "text" property of each button now accepts HTML
652
- The "handler" property of each button can now be set to:
654
+ A reference to a function that should fire when the button is
655
clicked. (In this case scope of this function is always its
658
+ An object literal representing the code to be executed when the
659
button is clicked. The format is:
661
fn: Function (The handler to call when the event fires.),
662
obj: Object (An object to pass back to the handler.),
663
scope: Object (The object to use for the scope of the handler.)
668
-----------------------------
670
+ Added ability for YAHOO.widget.Tooltip instances to have shadow:
672
- The shadow for a Tooltip is implemented by appending a new element as the
673
last child of its root <DIV/> element:
676
<DIV class="bd"> ... </DIV>
677
<DIV class="yui-tt-shadow"/>
680
- The code that creates the shadow element resides inside the Tooltip's
681
public "onRender" prototype method. To disable the creation of a
682
Tooltip's shadow override the prototype of the "onRender" method:
684
YAHOO.widget.Tooltip.prototype.onRender = function () {};
686
- The actual creation of the shadow element is deferred until the Tooltip
687
is made visible for the first time.
689
- A Tooltip's shadow element can be styled via two CSS classes:
691
+ "yui-tt-shadow" - Applied to the shadow element when it is created.
692
+ "yui-tt-shadow-visible" - Applied to the shadow element when the
693
Tooltip is visible; it is removed the Tooltip is hidden.
695
- The shadow element is only styled when using the new "Sam" skin, for
696
the previous default skin its "display" property is set to "none."
698
+ Prototype of all classes (Module, Overlay, Panel, Dialog, SimpleDialog,
699
Tooltip, Config, and ContainerEffect) are augmented with
700
YAHOO.util.EventProvider, facilitating subscribing to an instance's
701
Custom Events by name via a "subscribe" method that is a direct member of
702
the class. For example:
704
var oOverlay = new YAHOO.widget.Overlay("myoverlay");
706
oOverlay.subscribe("show", onShow);
708
+ Added a new "bringToTop" method to YAHOO.widget.Overlay that places the
709
Overlay on top of all other Overlay instances.
711
+ Added a new "bringToTop" method to YAHOO.widget.OverlayManager that places
712
the specified Overlay instance on top of all other Overlay instances. This
713
method is called on each Overlay instance that is registered with an
714
OverlayManager instance.
716
+ Dialog instances are now able to upload files should the Dialog instance's
717
form contain <input type="file"/> elements. PLEASE NOTE: If a Dialog
718
instance will be handling asyncronous file uploads, its "callback" property
719
will need to be setup with an "upload" handler rather than the standard
720
"success" and, or "failure" handlers. For more information, see the
721
Connection Manager documenation on file uploads:
722
http://developer.yahoo.com/yui/connection/#file
724
+ Added a new "getButtons" method to YAHOO.widget.Dialog that returns an array
725
containing each of the Dialog's buttons; by default an array of HTML <BUTTON>
726
elements. If the Dialog's buttons were created using the
727
YAHOO.widget.Button class (via the inclusion of the optional Button
728
dependancy on the page), an array of YAHOO.widget.Button instances
731
+ Added a "destroy" method to YAHOO.util.Config that sets all properties to
732
null, unsubscribes all listeners from each property's change event and all
733
listeners from the configChangedEvent. The "destroy" method of
734
YAHOO.widget.Module now automatically calls the "destroy" method of its
737
+ Added a "IFRAME_OFFSET" constant to YAHOO.widget.Overlay that controls how
738
much the <iframe> shim should be offset from each side of an
741
+ Added a new "syncIframe" method to YAHOO.widget.Overlay that syncronizes the
742
size and position of the <iframe> shim to that of the Overlay.
744
+ Added a "ICON_CSS_CLASSNAME" constant to YAHOO.widget.SimpleDialog that
745
represents the name of the CSS class applied to the element created by the
746
"icon" configuration property.
752
+ "Sam" skin Panel missing left and right borders when declared with a height
753
---------------------------------------------------------------------------
754
If the height of a Panel instance exceeds the total height of its header,
755
body and footer elements, the space not filled with content will lack a left
756
and right border. Therefore, to set a Panel instance to a fixed height
757
when using the "Sam" skin, apply the desired height to the body element,
758
taking into account the height of the header and footer elements. To set the
759
height of a Panel instance's body via CSS:
767
oMyPanel.body.style.height = "100px";
769
+ Elements with scrollbars poke through Overlay instances floating above them
770
---------------------------------------------------------------------------
771
There is a bug in Gecko-based browsers for Mac OS X where an element's
772
scrollbars will poke through absolutely positioned elements floating above
773
them. To fix this problem the "overflow" property of an Overlay instance's
774
root element is toggled between "hidden" and "auto" (through the application
775
and removal of the "hide-scrollbars" and "show-scrollbars" CSS classes) as its
776
"visibility" configuration property is toggled between "false" and "true."
780
1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are
781
applied only for Gecko on Mac OS X and are added/removed to/from the
782
Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and
783
"showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
785
2) For Panel (and its subclasses) it is the underlay element, not the root
786
element, whose "overflow" property is toggled between "hidden" and "auto."
787
The underlay element therefore acts as a shim to correct the
790
3) For Tooltip instances using the "Sam" skin it is the shadow element, not
791
the root element, whose "overflow" property is toggled between "hidden"
792
and "auto." The shadow element therefore acts as a shim to correct the
795
4) Once the fix is applied the bug will reappear if the window loses focus.
796
This can be remedied via Javascript by hiding and showing the Overlay
797
instance when the window receives focus:
799
YAHOO.util.Event.on(window, "focus", function () {
806
** For more information see
807
https://bugzilla.mozilla.org/show_bug.cgi?id=187435
809
+ Scrollbars remain visible after an Overlay is hidden
810
----------------------------------------------------
811
There is a bug in Gecko-based browsers for Mac OS X where an element's
812
scrollbars and the scrollbars of its child nodes remain visible when its
813
"visibility" property property is set to "hidden." To fix this problem,
814
the "overflow" property of an Overlay instance's root element and child nodes
815
is toggled between "hidden" and "auto" (through the application and removal
816
of the "hide-scrollbars" and "show-scrollbars" CSS classes) as its
817
"visibility" configuration property is toggled between "false" and "true."
821
1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are
822
applied only for Gecko on Mac OS X and are added/removed to/from the
823
Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and
824
"showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
826
2) There may be instances where the CSS for a web page or application
827
contains style rules whose specificity override the rules implemented by
828
the Container CSS files to fix this bug. In such cases, is necessary to
829
leverage the provided "hide-scrollbars" and "show-scrollbars" classes to
830
write custom style rules to guard against this bug. For example:
832
To fix the scrollbars issue for an Overlay instance with an id of
833
"myoverlay" whose body element has scrollbars applied by default:
839
/* Apply scrollbars for all browsers. */
844
#myoverlay.hide-scrollbars .bd {
846
/* Hide scrollbars by default for Gecko on OS X */
851
#myoverlay.show-scrollbars .bd {
853
/* Show scrollbars for Gecko on OS X when the Overlay is visible */
858
To fix the scrollbars issue for a Panel instance with an id of "mypanel"
859
whose body element has scrollbars applied by default:
865
/* Apply scrollbars for all browsers. */
870
.yui-panel-container.hide-scrollbars #mypanel .bd {
872
/* Hide scrollbars by default for Gecko on OS X */
877
.yui-panel-container.show-scrollbars #mypanel .bd {
879
/* Show scrollbars for Gecko on OS X when the Panel is visible */
884
** For more information see
885
https://bugzilla.mozilla.org/show_bug.cgi?id=187435
887
+ Flash Movies appear on top of Overlay instances
888
-----------------------------------------------
889
Flash movies can appear on top of Overlay instances in IE and Gecko-based
890
browsers. To fix this problem, set the "wmode" of the Flash movie to either
891
"transparent" or "opaque" as indicated below:
893
Via the <object> tag:
896
<param name="wmode" value="opaque">
900
<param name="wmode" value="transparent">
905
<embed wmode="transparent"> ... </embed>
906
<embed wmode="opaque"> ... </embed>
908
** For more information see
909
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15523
911
+ Overlay instances not rendered at correct z-index in IE
912
-------------------------------------------------------
913
In IE, when an Overlay instance is rendered inside a relatively positioned
914
element the z-index of the Overlay instance is now relative to its
915
relatively positioned parent element. This is not a bug in the
916
Overlay class, but rather a bug in IE where relatively positioned elements
917
establish a new stacking context for their child nodes. To avoid this
918
bug it is recommend that all Overlay instances that need to be able to float
919
above any other element in the document be made direct descendants of the
922
** For more information see
923
http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html
925
+ Header elements for Panel instances using "Sam" skin shrinkwrap in IE 7
926
-----------------------------------------------------------------------
927
In IE 7 (Standards Mode) if a Panel instance is created without specifying a
928
value for the "width" configuration property the width of the Panel's
929
header element will shrinkwrap to the width of its text node. To avoid
930
triggering this bug in IE always specify a value for the "width"
931
configuration property when using Panel.
933
+ Panel instances render at 100% of the browser viewport
934
------------------------------------------------------
935
In IE 7 (Quirks Mode) and IE 6 (Quirks Mode and Standards Mode) if any of the
936
child nodes of a Panel instance's root element have "layout"
937
(http://msdn2.microsoft.com/en-us/library/ms533776.aspx) and no value
938
has been specified for the "width" configuration property, the Panel will
939
render at 100% of the width of browser's viewport. This bug will manifest
940
when using the "Sam" skin as layout is applied to the header, body and
941
footer elements (by setting the CSS "zoom" property of the element to "1" )
942
in order to get the negative margins required for the rounded corners to
943
render correctly. To avoid triggering this bug in IE always specify a value
944
for the "width" configuration property when using Panel.
946
+ Panel instances render at 2px wider when using "Sam" skin
947
---------------------------------------------------------
948
For the "Sam" skin a Panel instance's rounded corners are created via the
949
application of negative 1px left and right margins on the header, body and
950
footer elements. These negative margins will cause a Panel instance to be
951
rendered at 2px wider than the value specified by the "width" configuration
952
property. Therefore, when using the "Sam" skin consider the negative left
953
and right margins and subtract 2 from the value passed to the "width"
954
configuration property in order to have the Panel render at the desired
955
width. For example, to render a Panel 300px wide, pass a value of "298px"
956
to the "width" configuration property.
959
*** version 2.2.2 ***
961
+ Clicking the close button of a Panel (or any instance of a Panel subclass)
962
registered with an OverlayManager will no longer result in the Panel
965
+ Overlay instances registered with an OverlayManager will now correctly
966
blur themselves when hidden.
968
+ Calling the "destroy" method of an Overlay instance will now result in it
969
being removed from its OverlayManager instance(s).
971
+ The DOM event listener for the event defined by the "focusevent"
972
configuration property of an OverlayManager instance is now removed from each
973
Overlay instance when it is removed from its OverlayManager.
975
+ All subscribers for an Overlay instance's "focus" and "blur" events are
976
now unsubscribed when it is removed from its OverlayManager.
979
*** version 2.2.1 ***
981
+ Made the default scope for all Custom Events published by Module, Overlay,
982
Panel, Tooltip, Dialog and SimpleDialog the widget instance. Previously the
983
default scope for Custom Events was inconsistent across classes; the default
984
scope for Custom Events published by Overlay was always the Overlay instance
985
whereas the Custom Events published by all of the other classes had no
988
+ Added default scope for CustomEvents published by YAHOO.util.Config:
989
- Default scope for the "configChangedEvent" is now the Config instance.
990
- Default scope for Config property events is now the Config's owner (widget).
992
+ Panel and Tooltip now always convert the value of a DOM element's "tagName"
993
property to uppercase before evaluating it. This improves
996
+ Pressing the enter key while focused on a form field inside a Dialog will
997
now trigger the "click" event handler defined by the Dialog's default
998
button in IE and Firefox. Previously, this behavior only worked in Safari
1001
+ Added a "yui" prefix to the default CSS class name for Module to be
1002
consistent with the other Container family widgets.
1004
+ Container/Panel's underlay shadow is now defined as partially-transparent
1005
black rather than gray. This prevents the shadow from lightening the
1006
background color of elements beneath it.
1008
+ Fixed memory leaks in Panel and Dialog.
1010
+ The Drag and Drop library is now a truly optional dependency for Panel and its
1013
+ Panel "focus" and "blur" events are now fired when Panels are focused and
1014
blurred via the "focus" and "blurAll" methods of YAHOO.widget.OverlayManager.
1016
+ Panel instances rendered without setting the value for the "width"
1017
configuration property will now have their "width" configuration
1018
property set to the value of the Panel's element's "offsetWidth" property
1019
when rendered. This fixes an issue in IE 6 and 7 where Panels that are
1020
rendered without setting the "width" configuration property will only be
1021
draggable by mousing down on the text inside the header, rather than anywhere
1024
+ Refactored the Container family including the Config class to improve
1025
performance, especially when working with a large number of instances in IE6.
1029
*** version 2.2.0 ***
1032
- Removed hardcoded file paths for image roots. Affected properties
1034
- YAHOO.widget.Module.IMG_ROOT
1035
- YAHOO.widget.Module.IMG_ROOT_SSL
1036
- HTML elements, created via createElement, now use lowercase.
1039
- To shield against CSS class collision, the following references now
1040
have a "yui-" prefix:
1041
- YAHOO.widget.Panel.CSS_PANEL now references CSS class "yui-
1043
- YAHOO.widget.Panel.CSS_PANEL_CONTAINER now references CSS class
1044
"yui-panel-container".
1045
- Close button can now be configured via the CSS class "container-
1047
- HTML elements, created via createElement, now use lowercase.
1050
- To shield against CSS class collision, the following references now
1051
have a "yui-" prefix:
1052
- YAHOO.widget.Dialog.CSS_DIALOG now references CSS class "yui-
1054
- HTML elements, created via createElement, now use lowercase.
1057
- Removed hardcoded file paths for SimpleDialog icons, which are now
1058
configurable in CSS:
1059
- YAHOO.widget.SimpleDialog.ICON_BLOCK now references CSS class
1061
- YAHOO.widget.SimpleDialog.ICON_ALARM now references CSS class
1063
- YAHOO.widget.SimpleDialog.ICON_HELP now references CSS class
1065
- YAHOO.widget.SimpleDialog.ICON_INFO now references CSS class
1067
- YAHOO.widget.SimpleDialog.ICON_WARN now references CSS class
1069
- YAHOO.widget.SimpleDialog.ICON_TIP now references CSS class
1071
- To provide shield against CSS class collision the following
1072
references now have a "yui-" prefix:
1073
- YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG now references CSS
1074
class "yui-simple-dialog";
1077
- To shield against CSS class collision, the following references now
1078
have a "yui-" prefix:
1079
- YAHOO.widget.Tooltip.CSS_TOOLTIP now references CSS class "yui-
1082
*** version 0.12.2 ***
1085
- Corrected issue where listener was not properly removed from resize
1086
monitor element when "monitorresize" is disabled
1089
- Fixed issue that would sometimes prevent select lists from working
1093
- Fixed error that would occur when trying to create a Dialog where
1094
the first form element is set to "disabled"
1095
- Modified "close" property handler for Dialog/SimpleDialog to call
1096
"cancel" instead of "hide"
1098
*** version 0.12.1 ***
1101
- "monitorresize" property now functions in situations where
1102
document.domain has been modified.
1103
- YAHOO.widget.Module.textResizeEvent now fires when the font size is
1104
changed (except for Opera, which uses "zoom" functionality that
1106
- Event listeners attached to container elements are now properly
1107
purged on destroy using YAHOO.util.Event.purgeElement
1110
- Fixed issue where focus events were broken on the page when a modal
1114
- Fixed bug where hitting "enter" on a Dialog was forcing the default
1115
submission behavior of the form's action to execute
1116
- Dialog no longer tries to give focus to hidden form elements.
1117
- Replaced references in Panel with   for XHTML
1119
- Fixed issue that was preventing Safari from successfully using the
1122
*** version 0.12 ***
1125
- New documentation format implemented, and removed unnecessary
1126
prototype null references previously used for generating
1130
- Added 'undefined' check when reading initial properties for
1132
- Fixed Firefox warning on .resetProperty()
1133
- Fixed issue preventing resetProperty() from resetting values
1137
- Removed unused "childNodesInDom" property
1140
- Converted center() to use Dom utility
1141
- Fixed configVisible() to properly detect actual visible/hidden
1142
status in Internet Explorer, which reports "inherit" for all elements
1144
- Updated onDomResize to properly reapply "context" property
1145
- Unified scroll/resize handlers so that they fire properly (when the
1146
event has completed) as opposed to constantly (as seen in Mozilla-
1150
- Modified modality mask to show before Panel is shown (prior to any
1152
- Modified buildWrapper to eliminate cloning of the initial markup
1153
module, which fixes issues with select options not maintaining their
1154
default selections in IE
1155
- Modality mask is now z-indexed properly so that the mask z-index is
1156
always one less than the Panel z-index
1159
- Fixed Connection to get "action" attribute using getAttribute, to
1160
allow for form fields named "action"
1161
- Added support for "GET" by retrieving the form "method" rather than
1162
always defaulting to "POST"
1165
- Fixed to work properly with Safari 2.0 by matching against keyCode
1168
*** version 0.11.4 ***
1170
- Panel: Modality mask is now properly removed from DOM on Panel
1173
*** version 0.11.3 ***
1175
- Module: Fixed SSL warning issue in IE
1176
- Overlay: Fixed memory leak related to iframe shim in IE
1177
- Panel: No focusable elements under the mask can now be tabbed to
1178
- Panel: Set Panel container overflow to hidden to fix scrolling issue
1181
*** version 0.11.2 ***
1183
- All: JsLint optimization
1184
- Overlay: Fixed SSL issues with monitorresize property
1185
- OverlayManager: Fixed z-index incrementing issues
1186
- Dialog: Form elements called "name" will now function properly
1187
- Dialog: Removed unnecessary scope:this reference
1189
*** version 0.11.1 ***
1191
- Tooltip: Removed incorrect logger statement
1192
- Dialog: Corrected logic that was causing browser lockup in IE for
1194
- Dialog: Fixed "firstButtom" typo
1196
*** version 0.11.0 ***
1198
- toString function added to all classes for easy logging
1199
- YAHOO.extend is now being used for inheritance on all container
1201
- Module: monitorresize feature now works on all browsers
1202
- Module: Fixed bug with image root and isSecure
1203
- Overlay: Fixed bugs related to IFRAME shim positioning
1204
- Overlay: center() now works in quirks mode
1205
- Overlay: Overlay now has a custom destroy() method that also removes
1207
- OverlayManager: Fixed bug in the prototype that was preventing
1208
multiple Managers on one page
1209
- OverlayManager: focusEvent now fires at all appropriate times
1210
- Tooltip: context can now be specified as an array, so Tooltips can be
1211
reused across multiple context elements
1212
- Tooltip: preventoverlap now functions properly for large context
1213
elements (i.e, images)
1214
- Tooltip: fixed bugs regarding setTimeout
1215
- Tooltip: added mousemove event to allow for more accurate Tooltip
1217
- Panel: added dragEvent for monitoring all event handlers for drag and
1219
- Panel: modality mask is now resized on scroll
1220
- Panel: KeyListeners are now properly destroyed when the Panel is
1222
- Panel: Header is now sized properly in quirks mode
1223
- Dialog: Blinking cursor issue is fixed for Firefox
1224
- Dialog: callback object for Connection is now public (this.callback)
1225
- Dialog: onsuccess/onfailure properties removed (as a result of the
1226
public callback object)
1227
- Dialog: Dialog is now invisible by default
1228
- Dialog: Buttons are now properly cleaned up on destroy
1230
*** version 0.10.0 ***