Very cool! The revised menu handling is especially nice. I had hacked
together a custom menu builder snippet a while back to work around some
things and this looks much better than the junk I came up with.
On Mon, Sep 22, 2008 at 4:20 PM, David Pollak <[EMAIL PROTECTED]
> wrote:
> Folks,
>
> I've radically enhanced the robustness of Lift's Ajax support.
>
> Previously, Lift's Ajax calls would silently fail and would not be retried.
>
> Now, Ajax calls are retried 3 times (tunable in LiftRules.ajaxRetryCount).
> The delay between calls is 2 ^ (cnt - 1) seconds. So, the first retry will
> be delayed 1 second, the second return will delayed 2 seconds, the third
> return will be delayed 4 seconds, etc.
>
> It's possible to have a spiffy "working ajax spinner" displayed during Ajax
> calls. LiftRules.ajaxStart: Can[() => JsCmd] and LiftRules.ajaxEnd: Can[()
> => JsCmd] control what's displayed. So:
> /*
> * Show the spinny image when an Ajax call starts
> */
> LiftRules.ajaxStart =
> Full(() => LiftRules.jsArtifacts.show("ajax-loader").cmd)
>
> /*
> * Make the spinny image go away when it ends
> */
> LiftRules.ajaxEnd =
> Full(() => LiftRules.jsArtifacts.hide("ajax-loader").cmd)
>
> Will show and hide an element with the id "ajax-loader" If you have a
> spinning animated GIF in that HTML, it will be shown/hidden during Ajax
> transactions.
>
> You can control what is displayed if the Ajax call fails with:
>
> LiftRules.ajaxDefaultFailure: Can[() => JsCmd] =
> Full(() => JsCmds.Alert(S.??("The server cannot be contacted at this
> time")))
>
> If you have a JSON call, you can have an optional customer error handler.
> For example, if you've got a Comet Chat app, in your CometActor:
>
> override def onJsonError: Can[JsCmd] = Full(Alert("Server communication
> error. Your chat message was not sent."))
>
> Also, note that the calls made by the Comet long poll mechanism have their
> own failure fallback and that's not changed.
>
> There are some breaking changes in SHtml:
> ajaxCall() now takes and returns a JsExp (JavaScript Expression)
> ajaxInvoke() now returns a JsExp (not a String)
>
> I've built off Charles' excellent idea of Location Groups in SiteMap. You
> can have Loc("foo", List("foo"), "Foo",* LocGroup("sales", "fun")*)
>
> There's a new Menu snippet <lift:Menu.group group="sales"
> a:class="menu"><li><menu:bind/></li></lift:Menu.group>
>
> All the menu items in the "sales" group will be displayed inside an <li/>
> and with the class attribute on the <a> tag set to "menu".
>
> Thanks,
>
> David
>
> --
> Lift, the simply functional web framework http://liftweb.net
> Collaborative Task Management http://much4.us
> Follow me: http://twitter.com/dpp
> Git some: http://github.com/dpp
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---