• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: WOSubmitButton - AjaxSubmitButton - CCSmartButton
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: WOSubmitButton - AjaxSubmitButton - CCSmartButton


  • Subject: Re: WOSubmitButton - AjaxSubmitButton - CCSmartButton
  • From: Stefan Gärtner via Webobjects-dev <email@hidden>
  • Date: Wed, 2 Sep 2020 13:13:24 +0200

Hi Dominik, always nice to see someone new in the World of Wonders!

I assume you have one action, which depending on business logic shall either
open an AjaxModalDialog or switch the page.

It is important to understand that there are
normal WO actions (/wo/ inside the URL), which execute some logic and then
render a whole new page.
Either the previous one (method has returned null)
or a different one (method has returned pageWithName(MyPage.class)).
And there are Ajax actions (/ajax/ inside the URL), which execute some logic
and then return an (optional) HTML fragment to the browser, which will e.g. be
inserted into an AjaxUpdateContainer.
Usually you will return null in these actions.
Which AjaxUpdateContainer gets updated is usually controlled by bindings of the
component.

Which of these two is used depends on the component calling the action. The
action methods look the same.

WOSubmitButton will always execute a normal WO action. Therefore it can't open
an AjaxModalDialog, which is only suited for Ajax calls.
AjaxSubmitButton and CCSmartAjaxButton on the other hand will always execute an
Ajax action. Therefore they can't switch the page by simply returning
pageWithName(MyPage.class)

Some background on AjaxModalDialog: If you're opening an AjaxModalDialog via
"AjaxModalDialog.open(context(), "id_my_dialog");" inside your method, the
generated HTML fragment only contains a Javascript call to open the dialog
(openAMD_my_dialog();). You can see this in your browser's developer tools.

Fortunately there is a static helper function called AjaxUtils.redirectTo. It
can be used inside an Ajax action to change the page. So simply call

        AjaxUtils.redirectTo(pageWithName(MyPage.class));

inside of your method, use AjaxSubmitButton and you should be fine.

The redirect then happens by returning a Javascript call like this:
document.location.href='/Apps/WebObjects/MyApp.woa/wo/52.0';

Cheers,
Stefan



> Am 02.09.2020 um 10:53 schrieb Dominik Huber via Webobjects-dev
> <email@hidden>:
>
> Hey guys, my name’s Dominik, I’m Markus Ruggiero’s new intern and I’ve been
> learning the Wonders for about 6 months now.
>
> I ran into a problem while working today and am still stuck so I figured I’d
> ask the WOrriors if ou have any insight you might be able to share with me.
>
> Here’s the situation: I’m working on a form which is validated twice. If any
> problem is found, a AjayModalDialog is opened to handle it. The second
> validation
> happens in my save method and that’s where I run into trouble. Because
> depending on which of the buttons(WOSubmitButton - AjaxSubmitButton -
> CCSmartButton) I use, either the  ModalDialog isn’t opened or the last line
> of the code (return _homePage) isn’t run properly so the home page isn’t
> opened.
>
> Here’s the code:
>
> <PastedGraphic-7.png>
>
> Here’s what happens with which button:
>
> WOSubmitButton : Doesn’t open the Dialog, but is able to save if there’s no
> problem and return to the homepage.
>
> AjaxSubmitButton:  Opens the Dialog, saves data but doesn’t return to the
> homepage.
>
> CCSmartAjaxButton: Opens the dialog, doesnt save data, doesn’t return. to
> home page.
>
>
> Does anyone have any experience with these problems or any idea where I could
> start looking? Markus and I have been looking for bindings to use but haven’t
> found any yet.
>
> Thanks in advance for your help!
>
> Best regards,
>
>
> Dominik Huber
> rucotec consulting and technologies   email
> mailto:email@hidden <mailto:email@hidden>
> rucotec GmbH                            web        http://www.rucotec.ch
> <http://www.rucotec.ch/>
> Steinenvorstadt 79
> 4051 Basel                              Mobile     +41 79 298 07 40
> Switzerland                             Phone/Fax  +41 61 271 4990
>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden



--
Mit freundlichen Grüßen

Stefan Gärtner
/// IT/Software-Entwicklung ///

NUREG GmbH ///
Dorfäckerstraße 31 | 90427 Nürnberg | Germany
Tel.: +49-911-32002-183 | Fax: +49-911-32002-299
Nürnberg HRB 22653 | USt.ID DE 814 685 653
Geschäftsführer: Michael Schmidt, Stefan Boas
www.nureg.de <http://www.nureg.de/>



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: WOSubmitButton - AjaxSubmitButton - CCSmartButton
      • From: Dominik Huber via Webobjects-dev <email@hidden>
References: 
 >WOSubmitButton - AjaxSubmitButton - CCSmartButton (From: Dominik Huber via Webobjects-dev <email@hidden>)

  • Prev by Date: Re: WOSubmitButton - AjaxSubmitButton - CCSmartButton
  • Next by Date: Re: WOSubmitButton - AjaxSubmitButton - CCSmartButton
  • Previous by thread: Re: WOSubmitButton - AjaxSubmitButton - CCSmartButton
  • Next by thread: Re: WOSubmitButton - AjaxSubmitButton - CCSmartButton
  • Index(es):
    • Date
    • Thread