I've finally had a bit of time over the holidays to roll in a few updates into my wwHoverPanel library. In the process I decided that wwHoverPanel is not really a fitting name for the library anymore since it does quite a bit more than that by now, with the hover panel operation only being a part of the tools. So the renamed library is now the West Wind Ajax Toolkit - boring I know but at least it's descriptive. <g>
You can find the free library, source code and samples here:
http://www.west-wind.com/Tools/wwHoverPanel/
What's New
There's a bunch of stuff that's been updated in this version. I've rolled the jQuery DatePicker control I talked about recently into the library. As a side issue I've also added jQuery loading support to the library in anticipation of forthcoming tighter integration and refactoring of wwScriptLibrary with the jQuery codebase.
There have also been many improvements in the JSON callback functionality of the library. The codebase for the wwMethodCallback ASP.NET control and the free standing wwCallbackHandler HttpHandler implementation now use a common Callback processor that handles all the details of handling inbound parameter parsing, method routing and execution and JSON conversion. There are now also options that allow calling the handler with raw JSON input parameters or raw POST data input which makes it easier to use the callback handler with any sort of AJAX client library.
Along the same lines the various Ajax client library functions have a few updates in regards to making JSON callbacks. The ajaxJson function now has options that allow more control over how the value parameter that is posted to server is passed with the default passing a JSON encoded value, but also with options for using raw POST or just plain GET operation.
All of this yields better interoperability with other AJAX implementations either on the client or server. For example, you can easily use ajaxJson to call say an ASP.NET AJAX method on the server.
Also related is the way that date parsing is handled - thanks to a recent discussion with Bertrand LeRoy I've rethought the way I've been pushing dates around in the callback implementation, I've ended up switching to the same Date format that ASP.NET AJAX and WCF uses which is a specially encoded string value ("\/Date(198123121)\/" where the value is the number of ticks. Both the client and server side serializers and deserializers now output and understand this date format as well as the dates compatible with toISODate() which is proposed for JavaScript 2. There are a few updates in the JSON client converter that deal with this date formatting.
If you're already using any of the callback mechanisms with the tools, don't worry - none of these changes should break any code if you are using both the client and server pieces. if you are using another AJAX library to call the server pieces you may have to format dates manually as the change from the new Date() to the date string format will not automatically parse into a date.
There have also been a number of small adjustments to the window/panel management code, which handles a few things like dealing with close buttons and certain drag scenarios better. Both wwDragPanel and wwModalPopup have a few improvements that make their behavior more predictable across a wider variety of layout scenarios.
There have also been a bunch of documentation updates, some of the samples in the help file have gotten a little out of sync with more recent updates and I've added a bunch more information to the Callback handler related topics.
Incidentally a lot of these changes have been driven through my heavy use of the Callback handler functionality in a couple of customer projects and it's been working out great. The flexibility and simplicity of making callbacks work has been a huge timesaver especially since one of these applications has various front ends mixed into one application.
Anyway, check it out and enjoy.
Other Posts you might also like