You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Juan Alba <ju...@condortech.com.ar> on 2012/05/17 19:26:54 UTC

Forms and JavaScriptSupport

Hi,

I am working with modals in my application, for this I have done my own
mixin that uses *colorbox* for the modal.

My problem, right now is that I have a form in one of those modals that has
to redirect when is submited.
I have two methods in the class:

  @Inject
   private JavaScriptSupport javaScriptSupport;

    void onValidateFromAddRouteForm() throws ValidationException{
       all the validations...
    }

    Object onSuccess(){
        //Adding the script to close the modal and forwarding the "parent
iframe".
     javaScriptSupport.addScript("jQuery.colorbox.close();");
    return ShowRoutePlan.class;
    }

When I get to the succes and want to close with the modal iframe I have
this run time error:
No object of type
org.apache.tapestry5.services.javascript.JavaScriptSupport is available
from the Environment.

I have read something about not being able to add javascriptSupport on
render methods or something like that, but I am not sure if this is just
one of those cases where I just can't use javascriptSupport.
If it is, how can I add the javascript function for closing the page? Or to
redirect the parent instead of the iframe.


Cheers and Thanks in advance!

Re: Forms and JavaScriptSupport

Posted by Juan Alba <ju...@condortech.com.ar>.
That was all with my problem. Thanks Taha for all the help.

If somebody wants the code:

*Class:*
 Object onSuccess(){
   ...

         if (request.isXHR()) {
ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
@Override
public void run(JavaScriptSupport arg0) {
arg0.addScript(String.format("parent.location.reload()"));
}
});
}
     return formZone.getBody();
    }

*TML:*
    <t:zone t:id="formZone" id="formZone">
        <t:form t:id="addRouteForm" t:zone="formZone">
<t:errors/>
<t:textfield t:id="foo"/>
<t:submit/>
        </t:form>
   </t:zone>


Now when it goes through onSuccess it will close the modal with the
parent.location.reload() and refresh the parent.

Regards.

P.S. My problem now is to show onValidate(). the zone is not updating.
Still searching.


On Thu, May 17, 2012 at 9:12 PM, Taha Siddiqi <ta...@gmail.com>wrote:

> In that case you can use ajaxResponseRenderer for closing the colorbox on
> form submission and then redirect the main window in the close event of
> colorbox(using js or ajax).
>
>
> On May 18, 2012, at 12:27 AM, Juan Alba wrote:
>
> > I *need* to redirect.
> >
> > The idea is the following:
> > My page has a button to add xxx. Whe I click this, it opens the modal
> with
> > the form.
> > When I fill in the form and submit, it is redirecting to the page but in
> > the modal, I need to close the modal and redirect the "main" page.
> >
> > I am clear or is really confusing?
> >
> > Thanks!
> >
> > On Thu, May 17, 2012 at 3:51 PM, Taha Hafeez Siddiqi <
> > tawus.tapestry@gmail.com> wrote:
> >
> >> If you redirecting , no JavaScript will run.
> >>
> >> If you want colorbox to close and you stay on the same page don't
> >> redirect. If you want to redirect then why to close the colorbox.
> >>
> >> Sent from my iPhone
> >>
> >> On May 18, 2012, at 12:09 AM, Juan Alba <ju...@condortech.com.ar>
> >> wrote:
> >>
> >>> Taha, thanks Again but still can't make it work.
> >>>
> >>> I have this now:
> >>> *tml:*
> >>>
> >>> <t:zone t:id="formZone" id="formZone">
> >>> <t:form t:id="addRouteForm" t:zone="formZone">
> >>> <t:errors/>
> >>> ${message:name}
> >>> <t:textfield t:id="routeName"/>
> >>> <t:submit/>
> >>> </t:form>
> >>> </t:zone>
> >>>
> >>>
> >>> in the *class*
> >>>
> >>> Object onSuccess(){
> >>>
> >>>  if (request.isXHR()) {
> >>>    ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> >>>        @Override
> >>>         public void run(JavaScriptSupport arg0) {
> >>>        arg0.addScript("alert('a');");
> >>>         }
> >>>    });
> >>>  }
> >>> return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
> >>> }
> >>>
> >>>
> >>> But theres is no alert. The pageRenderLinkSource is redirecting fine, I
> >>> have no problems there, but is never getting to the "alert ('a')".
> >>> Debbuging I found out that it gets in the if, but is never reaching to
> >> the
> >>> arg0.addScript.
> >>>
> >>> Any idea?
> >>>
> >>> Regards and thanks in advance for your time and help!
> >>>
> >>>
> >>> On Thu, May 17, 2012 at 3:12 PM, Taha Siddiqi <
> tawus.tapestry@gmail.com
> >>> wrote:
> >>>
> >>>> It has to be an ajax request for ajaxResponseRenderer to work.
> >>>>
> >>>> Also, for an ajax request if you want to redirect return an instance
> of
> >>>> Link from the event handler.
> >>>>
> >>>> return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
> >>>>
> >>>> regards
> >>>> Taha
> >>>>
> >>>> On May 17, 2012, at 11:25 PM, Juan Alba wrote:
> >>>>
> >>>>> Taha, thanks a lot for your help but I am not sure if I am doing it
> >>>> right.
> >>>>>
> >>>>> I added this as you told me:
> >>>>>
> >>>>> @Inject
> >>>>> private AjaxResponseRenderer ajaxResponseRenderer;
> >>>>>
> >>>>> Object onSuccess(){
> >>>>>  ...
> >>>>>   ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> >>>>> @Override
> >>>>> public void run(JavaScriptSupport arg0) {
> >>>>> arg0.addScript("jQuery.colorbox.close();");
> >>>>> }
> >>>>> });
> >>>>>   return ShowRoutePlan.class;
> >>>>>  }
> >>>>>
> >>>>> But now the error that I am having is:
> >>>>> Processing of request failed with uncaught exception: Page must be
> >>>>> specified before initializing for partial page render.
> >>>>>
> >>>>>
> >>>>> Regards!
> >>>>>
> >>>>>
> >>>>> On Thu, May 17, 2012 at 2:36 PM, Taha Siddiqi <
> >> tawus.tapestry@gmail.com
> >>>>> wrote:
> >>>>>
> >>>>>> Hi
> >>>>>>
> >>>>>> You can't use JavaScriptSupport directly from environment in action
> >>>> phase
> >>>>>> but you can do this
> >>>>>>
> >>>>>> @Inject
> >>>>>> private AjaxResponseRenderer ajaxResponseRenderer;
> >>>>>>
> >>>>>> Object onSuccess(){
> >>>>>> ...
> >>>>>> ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> >>>>>>         @Override
> >>>>>>         public void run(JavaScriptSupport javaScriptSupport) {
> >>>>>>             do_whatever_you_want_to_do_with_javaScriptSupport();
> >>>>>>         }
> >>>>>> });
> >>>>>>
> >>>>>>
> >>>>>> }
> >>>>>>
> >>>>>>
> >>>>>> regards
> >>>>>> Taha
> >>>>>>
> >>>>>> On May 17, 2012, at 10:56 PM, Juan Alba wrote:
> >>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> I am working with modals in my application, for this I have done my
> >> own
> >>>>>>> mixin that uses *colorbox* for the modal.
> >>>>>>>
> >>>>>>> My problem, right now is that I have a form in one of those modals
> >> that
> >>>>>> has
> >>>>>>> to redirect when is submited.
> >>>>>>> I have two methods in the class:
> >>>>>>>
> >>>>>>> @Inject
> >>>>>>> private JavaScriptSupport javaScriptSupport;
> >>>>>>>
> >>>>>>> void onValidateFromAddRouteForm() throws ValidationException{
> >>>>>>>    all the validations...
> >>>>>>> }
> >>>>>>>
> >>>>>>> Object onSuccess(){
> >>>>>>>     //Adding the script to close the modal and forwarding the
> >> "parent
> >>>>>>> iframe".
> >>>>>>>  javaScriptSupport.addScript("jQuery.colorbox.close();");
> >>>>>>> return ShowRoutePlan.class;
> >>>>>>> }
> >>>>>>>
> >>>>>>> When I get to the succes and want to close with the modal iframe I
> >> have
> >>>>>>> this run time error:
> >>>>>>> No object of type
> >>>>>>> org.apache.tapestry5.services.javascript.JavaScriptSupport is
> >> available
> >>>>>>> from the Environment.
> >>>>>>>
> >>>>>>> I have read something about not being able to add javascriptSupport
> >> on
> >>>>>>> render methods or something like that, but I am not sure if this is
> >>>> just
> >>>>>>> one of those cases where I just can't use javascriptSupport.
> >>>>>>> If it is, how can I add the javascript function for closing the
> page?
> >>>> Or
> >>>>>> to
> >>>>>>> redirect the parent instead of the iframe.
> >>>>>>>
> >>>>>>>
> >>>>>>> Cheers and Thanks in advance!
> >>>>>>
> >>>>>>
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >>>> For additional commands, e-mail: users-help@tapestry.apache.org
> >>>>
> >>>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: users-help@tapestry.apache.org
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Forms and JavaScriptSupport

Posted by Taha Siddiqi <ta...@gmail.com>.
In that case you can use ajaxResponseRenderer for closing the colorbox on form submission and then redirect the main window in the close event of colorbox(using js or ajax).


On May 18, 2012, at 12:27 AM, Juan Alba wrote:

> I *need* to redirect.
> 
> The idea is the following:
> My page has a button to add xxx. Whe I click this, it opens the modal with
> the form.
> When I fill in the form and submit, it is redirecting to the page but in
> the modal, I need to close the modal and redirect the "main" page.
> 
> I am clear or is really confusing?
> 
> Thanks!
> 
> On Thu, May 17, 2012 at 3:51 PM, Taha Hafeez Siddiqi <
> tawus.tapestry@gmail.com> wrote:
> 
>> If you redirecting , no JavaScript will run.
>> 
>> If you want colorbox to close and you stay on the same page don't
>> redirect. If you want to redirect then why to close the colorbox.
>> 
>> Sent from my iPhone
>> 
>> On May 18, 2012, at 12:09 AM, Juan Alba <ju...@condortech.com.ar>
>> wrote:
>> 
>>> Taha, thanks Again but still can't make it work.
>>> 
>>> I have this now:
>>> *tml:*
>>> 
>>> <t:zone t:id="formZone" id="formZone">
>>> <t:form t:id="addRouteForm" t:zone="formZone">
>>> <t:errors/>
>>> ${message:name}
>>> <t:textfield t:id="routeName"/>
>>> <t:submit/>
>>> </t:form>
>>> </t:zone>
>>> 
>>> 
>>> in the *class*
>>> 
>>> Object onSuccess(){
>>> 
>>>  if (request.isXHR()) {
>>>    ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
>>>        @Override
>>>         public void run(JavaScriptSupport arg0) {
>>>        arg0.addScript("alert('a');");
>>>         }
>>>    });
>>>  }
>>> return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
>>> }
>>> 
>>> 
>>> But theres is no alert. The pageRenderLinkSource is redirecting fine, I
>>> have no problems there, but is never getting to the "alert ('a')".
>>> Debbuging I found out that it gets in the if, but is never reaching to
>> the
>>> arg0.addScript.
>>> 
>>> Any idea?
>>> 
>>> Regards and thanks in advance for your time and help!
>>> 
>>> 
>>> On Thu, May 17, 2012 at 3:12 PM, Taha Siddiqi <tawus.tapestry@gmail.com
>>> wrote:
>>> 
>>>> It has to be an ajax request for ajaxResponseRenderer to work.
>>>> 
>>>> Also, for an ajax request if you want to redirect return an instance of
>>>> Link from the event handler.
>>>> 
>>>> return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
>>>> 
>>>> regards
>>>> Taha
>>>> 
>>>> On May 17, 2012, at 11:25 PM, Juan Alba wrote:
>>>> 
>>>>> Taha, thanks a lot for your help but I am not sure if I am doing it
>>>> right.
>>>>> 
>>>>> I added this as you told me:
>>>>> 
>>>>> @Inject
>>>>> private AjaxResponseRenderer ajaxResponseRenderer;
>>>>> 
>>>>> Object onSuccess(){
>>>>>  ...
>>>>>   ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
>>>>> @Override
>>>>> public void run(JavaScriptSupport arg0) {
>>>>> arg0.addScript("jQuery.colorbox.close();");
>>>>> }
>>>>> });
>>>>>   return ShowRoutePlan.class;
>>>>>  }
>>>>> 
>>>>> But now the error that I am having is:
>>>>> Processing of request failed with uncaught exception: Page must be
>>>>> specified before initializing for partial page render.
>>>>> 
>>>>> 
>>>>> Regards!
>>>>> 
>>>>> 
>>>>> On Thu, May 17, 2012 at 2:36 PM, Taha Siddiqi <
>> tawus.tapestry@gmail.com
>>>>> wrote:
>>>>> 
>>>>>> Hi
>>>>>> 
>>>>>> You can't use JavaScriptSupport directly from environment in action
>>>> phase
>>>>>> but you can do this
>>>>>> 
>>>>>> @Inject
>>>>>> private AjaxResponseRenderer ajaxResponseRenderer;
>>>>>> 
>>>>>> Object onSuccess(){
>>>>>> ...
>>>>>> ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
>>>>>>         @Override
>>>>>>         public void run(JavaScriptSupport javaScriptSupport) {
>>>>>>             do_whatever_you_want_to_do_with_javaScriptSupport();
>>>>>>         }
>>>>>> });
>>>>>> 
>>>>>> 
>>>>>> }
>>>>>> 
>>>>>> 
>>>>>> regards
>>>>>> Taha
>>>>>> 
>>>>>> On May 17, 2012, at 10:56 PM, Juan Alba wrote:
>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I am working with modals in my application, for this I have done my
>> own
>>>>>>> mixin that uses *colorbox* for the modal.
>>>>>>> 
>>>>>>> My problem, right now is that I have a form in one of those modals
>> that
>>>>>> has
>>>>>>> to redirect when is submited.
>>>>>>> I have two methods in the class:
>>>>>>> 
>>>>>>> @Inject
>>>>>>> private JavaScriptSupport javaScriptSupport;
>>>>>>> 
>>>>>>> void onValidateFromAddRouteForm() throws ValidationException{
>>>>>>>    all the validations...
>>>>>>> }
>>>>>>> 
>>>>>>> Object onSuccess(){
>>>>>>>     //Adding the script to close the modal and forwarding the
>> "parent
>>>>>>> iframe".
>>>>>>>  javaScriptSupport.addScript("jQuery.colorbox.close();");
>>>>>>> return ShowRoutePlan.class;
>>>>>>> }
>>>>>>> 
>>>>>>> When I get to the succes and want to close with the modal iframe I
>> have
>>>>>>> this run time error:
>>>>>>> No object of type
>>>>>>> org.apache.tapestry5.services.javascript.JavaScriptSupport is
>> available
>>>>>>> from the Environment.
>>>>>>> 
>>>>>>> I have read something about not being able to add javascriptSupport
>> on
>>>>>>> render methods or something like that, but I am not sure if this is
>>>> just
>>>>>>> one of those cases where I just can't use javascriptSupport.
>>>>>>> If it is, how can I add the javascript function for closing the page?
>>>> Or
>>>>>> to
>>>>>>> redirect the parent instead of the iframe.
>>>>>>> 
>>>>>>> 
>>>>>>> Cheers and Thanks in advance!
>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>> 
>>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Forms and JavaScriptSupport

Posted by Juan Alba <ju...@condortech.com.ar>.
I *need* to redirect.

The idea is the following:
My page has a button to add xxx. Whe I click this, it opens the modal with
the form.
When I fill in the form and submit, it is redirecting to the page but in
the modal, I need to close the modal and redirect the "main" page.

I am clear or is really confusing?

Thanks!

On Thu, May 17, 2012 at 3:51 PM, Taha Hafeez Siddiqi <
tawus.tapestry@gmail.com> wrote:

> If you redirecting , no JavaScript will run.
>
> If you want colorbox to close and you stay on the same page don't
> redirect. If you want to redirect then why to close the colorbox.
>
> Sent from my iPhone
>
> On May 18, 2012, at 12:09 AM, Juan Alba <ju...@condortech.com.ar>
> wrote:
>
> > Taha, thanks Again but still can't make it work.
> >
> > I have this now:
> > *tml:*
> >
> > <t:zone t:id="formZone" id="formZone">
> > <t:form t:id="addRouteForm" t:zone="formZone">
> > <t:errors/>
> > ${message:name}
> > <t:textfield t:id="routeName"/>
> > <t:submit/>
> > </t:form>
> > </t:zone>
> >
> >
> > in the *class*
> >
> > Object onSuccess(){
> >
> >   if (request.isXHR()) {
> >     ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> >         @Override
> >          public void run(JavaScriptSupport arg0) {
> >         arg0.addScript("alert('a');");
> >          }
> >     });
> >   }
> > return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
> > }
> >
> >
> > But theres is no alert. The pageRenderLinkSource is redirecting fine, I
> > have no problems there, but is never getting to the "alert ('a')".
> > Debbuging I found out that it gets in the if, but is never reaching to
> the
> > arg0.addScript.
> >
> > Any idea?
> >
> > Regards and thanks in advance for your time and help!
> >
> >
> > On Thu, May 17, 2012 at 3:12 PM, Taha Siddiqi <tawus.tapestry@gmail.com
> >wrote:
> >
> >> It has to be an ajax request for ajaxResponseRenderer to work.
> >>
> >> Also, for an ajax request if you want to redirect return an instance of
> >> Link from the event handler.
> >>
> >> return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
> >>
> >> regards
> >> Taha
> >>
> >> On May 17, 2012, at 11:25 PM, Juan Alba wrote:
> >>
> >>> Taha, thanks a lot for your help but I am not sure if I am doing it
> >> right.
> >>>
> >>> I added this as you told me:
> >>>
> >>> @Inject
> >>> private AjaxResponseRenderer ajaxResponseRenderer;
> >>>
> >>> Object onSuccess(){
> >>>   ...
> >>>    ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> >>> @Override
> >>> public void run(JavaScriptSupport arg0) {
> >>> arg0.addScript("jQuery.colorbox.close();");
> >>> }
> >>> });
> >>>    return ShowRoutePlan.class;
> >>>   }
> >>>
> >>> But now the error that I am having is:
> >>> Processing of request failed with uncaught exception: Page must be
> >>> specified before initializing for partial page render.
> >>>
> >>>
> >>> Regards!
> >>>
> >>>
> >>> On Thu, May 17, 2012 at 2:36 PM, Taha Siddiqi <
> tawus.tapestry@gmail.com
> >>> wrote:
> >>>
> >>>> Hi
> >>>>
> >>>> You can't use JavaScriptSupport directly from environment in action
> >> phase
> >>>> but you can do this
> >>>>
> >>>> @Inject
> >>>> private AjaxResponseRenderer ajaxResponseRenderer;
> >>>>
> >>>> Object onSuccess(){
> >>>> ...
> >>>> ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> >>>>          @Override
> >>>>          public void run(JavaScriptSupport javaScriptSupport) {
> >>>>              do_whatever_you_want_to_do_with_javaScriptSupport();
> >>>>          }
> >>>>  });
> >>>>
> >>>>
> >>>> }
> >>>>
> >>>>
> >>>> regards
> >>>> Taha
> >>>>
> >>>> On May 17, 2012, at 10:56 PM, Juan Alba wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> I am working with modals in my application, for this I have done my
> own
> >>>>> mixin that uses *colorbox* for the modal.
> >>>>>
> >>>>> My problem, right now is that I have a form in one of those modals
> that
> >>>> has
> >>>>> to redirect when is submited.
> >>>>> I have two methods in the class:
> >>>>>
> >>>>> @Inject
> >>>>> private JavaScriptSupport javaScriptSupport;
> >>>>>
> >>>>>  void onValidateFromAddRouteForm() throws ValidationException{
> >>>>>     all the validations...
> >>>>>  }
> >>>>>
> >>>>>  Object onSuccess(){
> >>>>>      //Adding the script to close the modal and forwarding the
> "parent
> >>>>> iframe".
> >>>>>   javaScriptSupport.addScript("jQuery.colorbox.close();");
> >>>>>  return ShowRoutePlan.class;
> >>>>>  }
> >>>>>
> >>>>> When I get to the succes and want to close with the modal iframe I
> have
> >>>>> this run time error:
> >>>>> No object of type
> >>>>> org.apache.tapestry5.services.javascript.JavaScriptSupport is
> available
> >>>>> from the Environment.
> >>>>>
> >>>>> I have read something about not being able to add javascriptSupport
> on
> >>>>> render methods or something like that, but I am not sure if this is
> >> just
> >>>>> one of those cases where I just can't use javascriptSupport.
> >>>>> If it is, how can I add the javascript function for closing the page?
> >> Or
> >>>> to
> >>>>> redirect the parent instead of the iframe.
> >>>>>
> >>>>>
> >>>>> Cheers and Thanks in advance!
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >>>> For additional commands, e-mail: users-help@tapestry.apache.org
> >>>>
> >>>>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: users-help@tapestry.apache.org
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Forms and JavaScriptSupport

Posted by Taha Hafeez Siddiqi <ta...@gmail.com>.
If you redirecting , no JavaScript will run. 

If you want colorbox to close and you stay on the same page don't redirect. If you want to redirect then why to close the colorbox. 

Sent from my iPhone

On May 18, 2012, at 12:09 AM, Juan Alba <ju...@condortech.com.ar> wrote:

> Taha, thanks Again but still can't make it work.
> 
> I have this now:
> *tml:*
> 
> <t:zone t:id="formZone" id="formZone">
> <t:form t:id="addRouteForm" t:zone="formZone">
> <t:errors/>
> ${message:name}
> <t:textfield t:id="routeName"/>
> <t:submit/>
> </t:form>
> </t:zone>
> 
> 
> in the *class*
> 
> Object onSuccess(){
> 
>   if (request.isXHR()) {
>     ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
>         @Override
>          public void run(JavaScriptSupport arg0) {
>         arg0.addScript("alert('a');");
>          }
>     });
>   }
> return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
> }
> 
> 
> But theres is no alert. The pageRenderLinkSource is redirecting fine, I
> have no problems there, but is never getting to the "alert ('a')".
> Debbuging I found out that it gets in the if, but is never reaching to the
> arg0.addScript.
> 
> Any idea?
> 
> Regards and thanks in advance for your time and help!
> 
> 
> On Thu, May 17, 2012 at 3:12 PM, Taha Siddiqi <ta...@gmail.com>wrote:
> 
>> It has to be an ajax request for ajaxResponseRenderer to work.
>> 
>> Also, for an ajax request if you want to redirect return an instance of
>> Link from the event handler.
>> 
>> return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
>> 
>> regards
>> Taha
>> 
>> On May 17, 2012, at 11:25 PM, Juan Alba wrote:
>> 
>>> Taha, thanks a lot for your help but I am not sure if I am doing it
>> right.
>>> 
>>> I added this as you told me:
>>> 
>>> @Inject
>>> private AjaxResponseRenderer ajaxResponseRenderer;
>>> 
>>> Object onSuccess(){
>>>   ...
>>>    ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
>>> @Override
>>> public void run(JavaScriptSupport arg0) {
>>> arg0.addScript("jQuery.colorbox.close();");
>>> }
>>> });
>>>    return ShowRoutePlan.class;
>>>   }
>>> 
>>> But now the error that I am having is:
>>> Processing of request failed with uncaught exception: Page must be
>>> specified before initializing for partial page render.
>>> 
>>> 
>>> Regards!
>>> 
>>> 
>>> On Thu, May 17, 2012 at 2:36 PM, Taha Siddiqi <tawus.tapestry@gmail.com
>>> wrote:
>>> 
>>>> Hi
>>>> 
>>>> You can't use JavaScriptSupport directly from environment in action
>> phase
>>>> but you can do this
>>>> 
>>>> @Inject
>>>> private AjaxResponseRenderer ajaxResponseRenderer;
>>>> 
>>>> Object onSuccess(){
>>>> ...
>>>> ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
>>>>          @Override
>>>>          public void run(JavaScriptSupport javaScriptSupport) {
>>>>              do_whatever_you_want_to_do_with_javaScriptSupport();
>>>>          }
>>>>  });
>>>> 
>>>> 
>>>> }
>>>> 
>>>> 
>>>> regards
>>>> Taha
>>>> 
>>>> On May 17, 2012, at 10:56 PM, Juan Alba wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I am working with modals in my application, for this I have done my own
>>>>> mixin that uses *colorbox* for the modal.
>>>>> 
>>>>> My problem, right now is that I have a form in one of those modals that
>>>> has
>>>>> to redirect when is submited.
>>>>> I have two methods in the class:
>>>>> 
>>>>> @Inject
>>>>> private JavaScriptSupport javaScriptSupport;
>>>>> 
>>>>>  void onValidateFromAddRouteForm() throws ValidationException{
>>>>>     all the validations...
>>>>>  }
>>>>> 
>>>>>  Object onSuccess(){
>>>>>      //Adding the script to close the modal and forwarding the "parent
>>>>> iframe".
>>>>>   javaScriptSupport.addScript("jQuery.colorbox.close();");
>>>>>  return ShowRoutePlan.class;
>>>>>  }
>>>>> 
>>>>> When I get to the succes and want to close with the modal iframe I have
>>>>> this run time error:
>>>>> No object of type
>>>>> org.apache.tapestry5.services.javascript.JavaScriptSupport is available
>>>>> from the Environment.
>>>>> 
>>>>> I have read something about not being able to add javascriptSupport on
>>>>> render methods or something like that, but I am not sure if this is
>> just
>>>>> one of those cases where I just can't use javascriptSupport.
>>>>> If it is, how can I add the javascript function for closing the page?
>> Or
>>>> to
>>>>> redirect the parent instead of the iframe.
>>>>> 
>>>>> 
>>>>> Cheers and Thanks in advance!
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>> 
>>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Forms and JavaScriptSupport

Posted by Juan Alba <ju...@condortech.com.ar>.
Taha, thanks Again but still can't make it work.

I have this now:
*tml:*

<t:zone t:id="formZone" id="formZone">
<t:form t:id="addRouteForm" t:zone="formZone">
<t:errors/>
 ${message:name}
<t:textfield t:id="routeName"/>
<t:submit/>
</t:form>
</t:zone>


in the *class*

Object onSuccess(){

   if (request.isXHR()) {
     ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
         @Override
          public void run(JavaScriptSupport arg0) {
         arg0.addScript("alert('a');");
          }
     });
   }
 return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
}


But theres is no alert. The pageRenderLinkSource is redirecting fine, I
have no problems there, but is never getting to the "alert ('a')".
Debbuging I found out that it gets in the if, but is never reaching to the
arg0.addScript.

Any idea?

Regards and thanks in advance for your time and help!


On Thu, May 17, 2012 at 3:12 PM, Taha Siddiqi <ta...@gmail.com>wrote:

> It has to be an ajax request for ajaxResponseRenderer to work.
>
> Also, for an ajax request if you want to redirect return an instance of
> Link from the event handler.
>
> return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);
>
> regards
> Taha
>
> On May 17, 2012, at 11:25 PM, Juan Alba wrote:
>
> > Taha, thanks a lot for your help but I am not sure if I am doing it
> right.
> >
> > I added this as you told me:
> >
> > @Inject
> > private AjaxResponseRenderer ajaxResponseRenderer;
> >
> > Object onSuccess(){
> >    ...
> >     ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> > @Override
> > public void run(JavaScriptSupport arg0) {
> > arg0.addScript("jQuery.colorbox.close();");
> > }
> > });
> >     return ShowRoutePlan.class;
> >    }
> >
> > But now the error that I am having is:
> > Processing of request failed with uncaught exception: Page must be
> > specified before initializing for partial page render.
> >
> >
> > Regards!
> >
> >
> > On Thu, May 17, 2012 at 2:36 PM, Taha Siddiqi <tawus.tapestry@gmail.com
> >wrote:
> >
> >> Hi
> >>
> >> You can't use JavaScriptSupport directly from environment in action
> phase
> >> but you can do this
> >>
> >> @Inject
> >> private AjaxResponseRenderer ajaxResponseRenderer;
> >>
> >> Object onSuccess(){
> >> ...
> >>  ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> >>           @Override
> >>           public void run(JavaScriptSupport javaScriptSupport) {
> >>               do_whatever_you_want_to_do_with_javaScriptSupport();
> >>           }
> >>   });
> >>
> >>
> >> }
> >>
> >>
> >> regards
> >> Taha
> >>
> >> On May 17, 2012, at 10:56 PM, Juan Alba wrote:
> >>
> >>> Hi,
> >>>
> >>> I am working with modals in my application, for this I have done my own
> >>> mixin that uses *colorbox* for the modal.
> >>>
> >>> My problem, right now is that I have a form in one of those modals that
> >> has
> >>> to redirect when is submited.
> >>> I have two methods in the class:
> >>>
> >>> @Inject
> >>>  private JavaScriptSupport javaScriptSupport;
> >>>
> >>>   void onValidateFromAddRouteForm() throws ValidationException{
> >>>      all the validations...
> >>>   }
> >>>
> >>>   Object onSuccess(){
> >>>       //Adding the script to close the modal and forwarding the "parent
> >>> iframe".
> >>>    javaScriptSupport.addScript("jQuery.colorbox.close();");
> >>>   return ShowRoutePlan.class;
> >>>   }
> >>>
> >>> When I get to the succes and want to close with the modal iframe I have
> >>> this run time error:
> >>> No object of type
> >>> org.apache.tapestry5.services.javascript.JavaScriptSupport is available
> >>> from the Environment.
> >>>
> >>> I have read something about not being able to add javascriptSupport on
> >>> render methods or something like that, but I am not sure if this is
> just
> >>> one of those cases where I just can't use javascriptSupport.
> >>> If it is, how can I add the javascript function for closing the page?
> Or
> >> to
> >>> redirect the parent instead of the iframe.
> >>>
> >>>
> >>> Cheers and Thanks in advance!
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: users-help@tapestry.apache.org
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Forms and JavaScriptSupport

Posted by Taha Siddiqi <ta...@gmail.com>.
It has to be an ajax request for ajaxResponseRenderer to work. 

Also, for an ajax request if you want to redirect return an instance of Link from the event handler.

return pageRenderLinkSource.createPageRenderLink(ShowRoutePlan.class);

regards
Taha

On May 17, 2012, at 11:25 PM, Juan Alba wrote:

> Taha, thanks a lot for your help but I am not sure if I am doing it right.
> 
> I added this as you told me:
> 
> @Inject
> private AjaxResponseRenderer ajaxResponseRenderer;
> 
> Object onSuccess(){
>    ...
>     ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
> @Override
> public void run(JavaScriptSupport arg0) {
> arg0.addScript("jQuery.colorbox.close();");
> }
> });
>     return ShowRoutePlan.class;
>    }
> 
> But now the error that I am having is:
> Processing of request failed with uncaught exception: Page must be
> specified before initializing for partial page render.
> 
> 
> Regards!
> 
> 
> On Thu, May 17, 2012 at 2:36 PM, Taha Siddiqi <ta...@gmail.com>wrote:
> 
>> Hi
>> 
>> You can't use JavaScriptSupport directly from environment in action phase
>> but you can do this
>> 
>> @Inject
>> private AjaxResponseRenderer ajaxResponseRenderer;
>> 
>> Object onSuccess(){
>> ...
>>  ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
>>           @Override
>>           public void run(JavaScriptSupport javaScriptSupport) {
>>               do_whatever_you_want_to_do_with_javaScriptSupport();
>>           }
>>   });
>> 
>> 
>> }
>> 
>> 
>> regards
>> Taha
>> 
>> On May 17, 2012, at 10:56 PM, Juan Alba wrote:
>> 
>>> Hi,
>>> 
>>> I am working with modals in my application, for this I have done my own
>>> mixin that uses *colorbox* for the modal.
>>> 
>>> My problem, right now is that I have a form in one of those modals that
>> has
>>> to redirect when is submited.
>>> I have two methods in the class:
>>> 
>>> @Inject
>>>  private JavaScriptSupport javaScriptSupport;
>>> 
>>>   void onValidateFromAddRouteForm() throws ValidationException{
>>>      all the validations...
>>>   }
>>> 
>>>   Object onSuccess(){
>>>       //Adding the script to close the modal and forwarding the "parent
>>> iframe".
>>>    javaScriptSupport.addScript("jQuery.colorbox.close();");
>>>   return ShowRoutePlan.class;
>>>   }
>>> 
>>> When I get to the succes and want to close with the modal iframe I have
>>> this run time error:
>>> No object of type
>>> org.apache.tapestry5.services.javascript.JavaScriptSupport is available
>>> from the Environment.
>>> 
>>> I have read something about not being able to add javascriptSupport on
>>> render methods or something like that, but I am not sure if this is just
>>> one of those cases where I just can't use javascriptSupport.
>>> If it is, how can I add the javascript function for closing the page? Or
>> to
>>> redirect the parent instead of the iframe.
>>> 
>>> 
>>> Cheers and Thanks in advance!
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Forms and JavaScriptSupport

Posted by Juan Alba <ju...@condortech.com.ar>.
Taha, thanks a lot for your help but I am not sure if I am doing it right.

I added this as you told me:

 @Inject
 private AjaxResponseRenderer ajaxResponseRenderer;

Object onSuccess(){
    ...
     ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
@Override
public void run(JavaScriptSupport arg0) {
arg0.addScript("jQuery.colorbox.close();");
}
});
     return ShowRoutePlan.class;
    }

But now the error that I am having is:
Processing of request failed with uncaught exception: Page must be
specified before initializing for partial page render.


Regards!


On Thu, May 17, 2012 at 2:36 PM, Taha Siddiqi <ta...@gmail.com>wrote:

> Hi
>
> You can't use JavaScriptSupport directly from environment in action phase
> but you can do this
>
> @Inject
> private AjaxResponseRenderer ajaxResponseRenderer;
>
> Object onSuccess(){
> ...
>   ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
>            @Override
>            public void run(JavaScriptSupport javaScriptSupport) {
>                do_whatever_you_want_to_do_with_javaScriptSupport();
>            }
>    });
>
>
> }
>
>
> regards
> Taha
>
> On May 17, 2012, at 10:56 PM, Juan Alba wrote:
>
> > Hi,
> >
> > I am working with modals in my application, for this I have done my own
> > mixin that uses *colorbox* for the modal.
> >
> > My problem, right now is that I have a form in one of those modals that
> has
> > to redirect when is submited.
> > I have two methods in the class:
> >
> >  @Inject
> >   private JavaScriptSupport javaScriptSupport;
> >
> >    void onValidateFromAddRouteForm() throws ValidationException{
> >       all the validations...
> >    }
> >
> >    Object onSuccess(){
> >        //Adding the script to close the modal and forwarding the "parent
> > iframe".
> >     javaScriptSupport.addScript("jQuery.colorbox.close();");
> >    return ShowRoutePlan.class;
> >    }
> >
> > When I get to the succes and want to close with the modal iframe I have
> > this run time error:
> > No object of type
> > org.apache.tapestry5.services.javascript.JavaScriptSupport is available
> > from the Environment.
> >
> > I have read something about not being able to add javascriptSupport on
> > render methods or something like that, but I am not sure if this is just
> > one of those cases where I just can't use javascriptSupport.
> > If it is, how can I add the javascript function for closing the page? Or
> to
> > redirect the parent instead of the iframe.
> >
> >
> > Cheers and Thanks in advance!
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Forms and JavaScriptSupport

Posted by Taha Siddiqi <ta...@gmail.com>.
Hi

You can't use JavaScriptSupport directly from environment in action phase but you can do this

@Inject
private AjaxResponseRenderer ajaxResponseRenderer;

Object onSuccess(){
...
   ajaxResponseRenderer.addCallback(new JavaScriptCallback() {
            @Override
            public void run(JavaScriptSupport javaScriptSupport) {
                do_whatever_you_want_to_do_with_javaScriptSupport();
            }
    });


}


regards
Taha

On May 17, 2012, at 10:56 PM, Juan Alba wrote:

> Hi,
> 
> I am working with modals in my application, for this I have done my own
> mixin that uses *colorbox* for the modal.
> 
> My problem, right now is that I have a form in one of those modals that has
> to redirect when is submited.
> I have two methods in the class:
> 
>  @Inject
>   private JavaScriptSupport javaScriptSupport;
> 
>    void onValidateFromAddRouteForm() throws ValidationException{
>       all the validations...
>    }
> 
>    Object onSuccess(){
>        //Adding the script to close the modal and forwarding the "parent
> iframe".
>     javaScriptSupport.addScript("jQuery.colorbox.close();");
>    return ShowRoutePlan.class;
>    }
> 
> When I get to the succes and want to close with the modal iframe I have
> this run time error:
> No object of type
> org.apache.tapestry5.services.javascript.JavaScriptSupport is available
> from the Environment.
> 
> I have read something about not being able to add javascriptSupport on
> render methods or something like that, but I am not sure if this is just
> one of those cases where I just can't use javascriptSupport.
> If it is, how can I add the javascript function for closing the page? Or to
> redirect the parent instead of the iframe.
> 
> 
> Cheers and Thanks in advance!


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org