cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Quinn <jer...@media.demon.co.uk>
Subject Re: [Woody] cancel button
Date Sat, 08 Nov 2003 22:16:39 GMT

On 6 Nov 2003, at 18:24, Sylvain Wallez wrote:

> Jeremy Quinn wrote:
>
>>
>> On Thursday, November 6, 2003, at 01:34 PM, Reinhard Poetz wrote:
>>
>>>
>>> From: Jeremy Quinn
>>>
>>>> Hi All,
>>>>
>>>> I am trying to add a 'Cancel' button to a form, so if the user 
>>>> clicks
>>>> it they exit the current form processing by being redirected
>>>> to another
>>>> URL, it is not working as expected.
>>>>
>>
>> <snip/>
>>
>>> I guess it is a problem that currently happens following:
>>> If you hit the cancel button, the JS cancel function is executed - 
>>> also
>>> the sendPage function is called. But then some CPU cycles later the
>>> woody function is called and it calls sendPageAndWait with the 
>>> current
>>> form as content. ... and as you may expect the latter wins ...
>>>
>>> I think we have to make sure that always sendPage* the first call is
>>> preferred.
>>
>>
>> OK, I think I have solved it .....
>>
>> My form flowscript:
>>
>>     . . .
>>     form.showForm (formURI);
>>     if ("cancel".equals (form.getWidget().getSubmitWidget().getId 
>> ())) {
>>         cocoon.sendPage("screen/cancel", {message: "You cancelled"});
>>         return;
>>     }
>>     . . .
>>
>> The cancel function:
>>
>> function cancel (form) {
>>     form.endProcessing (false);
>>     cocoon.log.info ("The user Cancelled");
>> }
>>
>> The form Model:
>>
>> <wd:action id="cancel" action-command="cancel">
>>     <wd:label>Cancel</wd:label>
>>     <wd:hint>cancels the current action</wd:hint>
>>     <wd:on-action>
>>         <javascript>
>>             cancel(event.getSourceWidget().getForm());
>>         </javascript>
>>     </wd:on-action>
>> </wd:action>
>>
>> Phew!! :)
>>
> Or more simply:
>
> <wd:submit id="cancel" validate="false"> (a submit doesn't redisplay 
> the form, while an action always redisplays it)
>
> and in the flowscript :
>
> form.showForm("form.html");
> if (form.submitId == cancel) {
>  cocoon.sendPage("cancel.html");
> }
>
> ;-)

That IS simpler !!!

Many Thanks

regards Jeremy

------------------------------------------------------------------------
"Objective reality is a synthetic construct, dealing with a 
hypothetical universalization of a multitude of subjective realities."
Philip K Dick - "The Electric Ant"


Mime
View raw message