Version 1.6 About
What's new?
Glow 1.6.0 contains over 30 bug fixes, optimisations and new features. A summary of the most important are below, but for the full list see the changelog below.
We have focused on implementing the most popular requests from our users and fixing a whole raft of bugs that should make this one of the most stable releases of Glow ever.
The biggest change is the addition of our new internationalisation module; glow.i18n. This enables full localisation of Glow widgets & modules, and you can also use it to localise your own applications. Language is automatically detected per page, but can also be overridden. You can find out more about using the internationalisation module in the user guide. Our thanks go to Richard Hubbard for working hard to get this new feature into Glow.
The Carousel has improved keyboard navigation, tabbing through elements on a carousel will now automatically move the items so the focused item is in view.
Another small keyboard enhancement has been added to Overlay (and therefore Panel and InfoPanel). The option "closeOnEsc" can be set to make a focused panel close then the user presses ESC. This isn't set by default for compatibility reasons, but expect it to be a default in Glow 2.0.
As requested, we've added support for "mouseenter" and "mouseleave" events. Unlike "mouseover" and "mouseout" they don't bubble, making them more useful for roll-over effects.
You can now fire events on multiple DOM nodes at once. For instance, if you want to fire "click" listeners on all links in the page, you can use glow.dom.fire("a", "click"). Note, this will only fire the listeners attached using Glow, it won't actually click the link.
glow.dom.create now provides a short cut to glow.lang.interpolate, allowing you to easily add in strings to an HTML template. This is especially useful for inserting test from an object generated by glow.i18n.
Multiple styles can be added at once using NodeList#css (thanks to George Adamson for suggesting this), e.g.
glow.dom.get("#menu").css({ width: 300, background: "red", padding: 0
});In previous versions of Glow we used an unload listener to clean up events to prevent memory leaks in IE. However, this prevented Gecko & Webkit quickly switching between pages when the back / forward buttons were used. We've now restricted this clean-up to IE, so back / forward is much faster in other browsers.
NodeList#prop has been introduced as an alternative to NodeList#attr. Rather than getting / setting node attributes, it gets / sets node properties.
Changelog
1.6.1
- glow.widgets.Sortable - Fixed negative margin issue
- glow.widgets.Carousel - Fixed edge case where original element was floated
- glow.widgets.Carousel - Fixed issue with visibleIndexes misreporting
- glow.widgets.Editor - Fixed issue with 'commit' event firing too often
- glow.widgets.Carousel, glow.widgets.Editor, glow.widgets.Timetable - Documentation updates
- glow.dom.NodeList#offset - Fixed for browsers that don't support getBoundingClientRect
- glow.dom.NodeList#css - Fix to real-to-absolute unit convertor for IE
- glow.forms.Form - Better error reporting when form has an element with name='submit'
1.6.0
- glow.widgets.Carousel - Fixed issues with tabbing naviagation
- glow.widgets.Carousel - Making itemClick event preventable
- glow.widgets.Mask - Fixing issues where Mask didn't dover the whole page
- glow.widgets.Overlay - Fixed issue where hideWhileShown was hiding items inside the overlay
- glow.widgets.Overlay - Fixed returnTo focus
- glow.widgets.NodeList - Fixed setting val() for select items in Firefox
1.6.0-rc2
- glow.widgets.AutoSuggest - Improved interface when using keys to navigate suggestions, esc now restores the original value
- glow.widgets.AutoSuggest - Added new 'filter' option to allow user to modify results before they are displayed
- glow.widgets.Carousel - Fixed bug that caused Next and Previous text to be visible in Opera when images were on
- glow.widgets.AutoSuggest - Fixed bug that caused position of suggestion list to be wrong when text was zoomed in recent webkit browsers
- glow core - Fix bug in domReady code that prevented ready / onDomReady working in some browsers (eg, PS3 NetFront)
1.6.0-rc1
- glow.widgets.Timetable - Fixing bug that may result in item sizes less than 0
- glow.forms - Allow more control over ajax tests
- glow.widgets - Improving CSS load detection for widgets.css
- glow.anim - Improved memory usage for animation shortcuts
- glow.events - Added 'mouseenter' and 'mouseleave' events which don't bubble
- glow.net.Response#xml - Works in IE for application/(whatever)-xml content-type
- glow.widgets.Sortable - Better position & margin handling
- glow.dom.NodeList#position - For getting the position relative to the positioned parent
- glow.dragdrop - Improved position detection and margin handling
- glow.dom.NodeList#prop - Similar to attr, but for getting/setting node properties
- glow.embed.Flash - Generating IDs for <object> to fix a string bug in IE
- glow.net.Request#destroy - For cleaning up loadScript calls that don't have an onLoad callback
- glow.events - No longer adds a cleanup unload listener for browsers that don't need it, allows quick back & forward switching in those browsers
- glow.widgets.Carousel - Fixed issue where events would double-fire after items were added
- glow.dom.NodeList#css - Returns correct value for margin-right in modern Webkit versions
- glow.dom.NodeList - width & height methods more reliable for elements with width:auto
- glow.dom.create - Fixed elements that couldn't appear within a div (eg, <option />)
- glow.data.decodeUrl - Now supports ; as a separator
- glow.dom.NodeList#css - Can now provide an object (property:value) to set many values
- glow.dom.create - Can now provide interpolation params as an option
- glow.i18n - New module for managing multiple languages for JavaScript applications
- glow.widgets.Panel - Fixed IE8 rendering issue (standards & compat mode)
- glow.anim - Can now add events in the options object of glow.anim.css, glow.anim.Animtion and glow.anim.Timeline
- glow.events - Focus/blur events allow bubbling on all elements.
- glow.widgets.Overlay - closeToEsc param added to constructor option. Enabling this allows user to close overlay with ESC button.
- glow.events.fire - Allow attachTo parameter to be DOM node, glow.dom.nodeList or string.
- glow.widgets.Carousel - Better keyboard interaction. User can tab through items in the carousel.
- glow.widgets.Mask - Mask now correctly calculates the required width (previously wasn't doing this when the content scrolled horizontally).
- glow.dom.get - Extended "invalid selector" error message with value of invalid selector used.