Ezra,

Thanks again. After reading the first line of the <result> tag
documentation you shared I now understand why everything is working as
described. "Defines an additional event-handler to execute as part of
the current request" -- that couldn't be any clearer. I suspect
another run through the docs should be on my todo list.

I also agree that the Event Type documentation is now quite accurate
with the redirect="true" added (I added it to the logical XML example
further down the page for consistency -- speaking of which: is there
any way to see the logical XML that ModelGlue compiles at init? I
think I saw someone else ask that the a while back and didn't see an
answer).

Jeremy

On Mon, Oct 19, 2009 at 6:22 PM, Ezra Parker <[email protected]> wrote:
>
> Jeremy,
>
> First off, thank you for pointing out the omission of the redirect
> attribute in the event-type documentation. I went ahead and added the
> attribute to the examples, but I'm not sure if this is the best place
> to detail the differences in the behavior of the result tag when this
> attribute is used, as this page is really intended to explain the use
> the event-type feature. (I could well be wrong though -- perhaps a
> brief note drawing attention to the redirect would be helpful?)
>
> Would you mind taking a look at the explanation of the result tag in
> the XML reference? I'd be curious to hear if you had any suggestions
> for improving the description of this tag:
>
> http://docs.model-glue.com/wiki/ReferenceMaterials/ModelGlueXmlReference#result
>
> To be clear on how this works, if the redirect attribute is not used,
> then the event specified in the result tag is added to the event queue
> for the request, and any queued events are executed in order after the
> initial event completes. Otherwise, using the redirect attribute will
> halt processing of the current event by using <cflocation> "under the
> hood" to re-route to the indicated event.
>
> As far as Dan's suggestion goes, I believe that he means you can do
> something like this in your event-type XML:
>
> <message name="CheckRole">
>    <argument name="requiredRole" value="staff" />
>    <argument name="notLoggedInEvent" value="user.login" />
>    <argument name="invalidRoleEvent" value="user.noPrivs" />
> </message>
>
> And then in your controller function, instead of using the addResult()
> method to fire a named result, you would do something along the lines
> of:
>
> <cfset var requiredRole = arguments.event.getArgument("requiredRole") />
> <cfset var notLoggedInEvent = arguments.event.getArgument("notLoggedInEvent") 
> />
> <cfset var invalidRoleEvent = arguments.event.getArgument("invalidRoleEvent") 
> />
>
> <cfif isLoggedIn() is false>
>    <cfset arguments.event.forward(notLoggedInEvent) />
> <cfelseif hasValidRole(requiredRole) is false>
>    <cfset arguments.event.forward(invalidRoleEvent) />
> </cfif>
>
> The point here would be that you are defining the target events in
> your XML config, so if they need to be changed, you don't have to
> touch the controller method, and the documentation of your
> application's flow is still present in the XML.
>
> Let me know if any of this is unclear or could use some further explanation.
>
> Thanks,
>
> --
> Ezra
>
>
> On Mon, Oct 19, 2009 at 2:36 PM, Jeremy Prevost <[email protected]> wrote:
> >
> > Dan,
> >
> > I think I see where you are going with this and I am very much
> > interested in a code sample. No hurry though (i.e. please don't try to
> > write it on a Blackberry!)
> >
> > Thanks,
> > Jeremy
> >
> > On Oct 19, 4:22 pm, Dan Wilson <[email protected]> wrote:
> >> You could also do something on your controller.
> >>
> >> Look for the condition and use event.forward() to handle the redirect 
> >> there.
> >>
> >> For better documentation purposes, you can use an argument to your
> >> message to store the event you wish to forward to, preserving the
> >> application blueprint..
> >>
> >> I'm on my blackberry, so I'll avoid the long code sample. Let me know
> >> of you'd like a more full technique.
> >>
> >> Dw
> >>
> >> --
> >> “Come to the edge, he said. They said: We are afraid. Come to the
> >> edge, he said. They came. He pushed them and they flew.”
> >>
> >>  Guillaume Apollinaire quotes
> > >
> >
>
> >

--~--~---------~--~----~------------~-------~--~----~
Model-Glue Sites:
Home Page: http://www.model-glue.com
Documentation: http://docs.model-glue.com
Bug Tracker: http://bugs.model-glue.com
Blog: http://www.model-glue.com/blog

You received this message because you are subscribed to the Google
Groups "model-glue" 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/model-glue?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to