Binding a snippet in a comet actor?

38 views
Skip to first unread message

Somindra Bhattacharya

unread,
Oct 6, 2009, 9:52:29 AM10/6/09
to Lift
Hi Everyone,

I have a comet actor that binds XHTML. The XHTML corresponds to a
snippet:

XHTML for comet actor ->

<lift:comet type="RCActor">
<Act:act />
</lift:comet>

When the comet actor receives a certain message, the render method of
the comet actor binds the following XHTML ->

<lift:Discuss.invite form="post">
<elem:submit />
</lift:Discuss.invite>

The Discuss snippet's "invite" method definition is:

def invite(xhtml: NodeSeq): NodeSeq =
{

def handleSubmit() =
{
Log.info("GOT A SUBMIT IN INVITE")
}

bind("elem", xhtml,
"submit" -> submit("Click", () => handleSubmit()))
}

The page does not contain this form when it is first loaded. When the
actor receives a certain message, it binds the XHTML (Discuss.invite)
to the page and the form and the "submit" button are rendered
properly.

However, when I click on the submit button, the "handleSubmit" method
is not called. Instead, the browser displays a page with the text
"window.location=/".
If I use the browser back button and re-visit the page with the comet
actor, the submit button works (i.e., handleSubmit() is called and I
can see the info log).

Is this approach "legal"? Is there a way to make a form submit if it
was not originally part of the page?

Thanks,
Som

Naftoli Gugenheim

unread,
Oct 6, 2009, 8:06:25 PM10/6/09
to lif...@googlegroups.com
What about an Ajax form?

Somindra Bhattacharya

unread,
Oct 7, 2009, 3:32:16 AM10/7/09
to Lift
Thanks for responding, Naftoli.

I tried changing the code to:

def handleSubmit() =
{
Log.info("GOT A SUBMIT IN INVITE")
net.liftweb.http.js.JsCmds.Run("alert('Hey')")
}

ajaxForm(
bind("elem", xhtml,
"submit" -> submit("Click", () => handleSubmit() ),
) ++ hidden(() => handleSubmit())
)

The handleSubmit method is still not called. I tried using ajaxButton
instead of submit but that did not help either.

What am I doing wrong?


On Oct 7, 5:06 am, Naftoli Gugenheim <naftoli...@gmail.com> wrote:
> What about an Ajax form?
>
> On Tue, Oct 6, 2009 at 9:52 AM, Somindra  Bhattacharya
>

Somindra Bhattacharya

unread,
Oct 8, 2009, 12:13:59 AM10/8/09
to Lift
Apologies for bumping this.

Is there a way to get the submit button (or an ajaxButton) to work if
the snippet which was not originally part of the page is bound by a
comet actor?

Thanks,
Som

On Oct 7, 12:32 pm, Somindra Bhattacharya <somind...@gmail.com>
wrote:

David Pollak

unread,
Oct 8, 2009, 12:40:49 PM10/8/09
to lif...@googlegroups.com
The chat example in demo.liftweb.net (source in examples/example) has a form that is presented after the initial form is rendered.  It works just fine.

Please put together a small example of the failure so I can see the running code.
--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

Somindra Bhattacharya

unread,
Oct 9, 2009, 4:02:11 AM10/9/09
to Lift
David,

Thanks for responding.

I have hosted the example at http://174.129.214.150:8080/

The code is at http://174.129.214.150:8080/dynamicForm.tar.gz

Here are the steps to reproduce the issue:

1. Open http://174.129.214.150:8080/ in a browser window. This starts
a comet actor which listens for messages. There is no form present on
this page.

2. Open http://174.129.214.150:8080/testdriver in another browser
window. Juxtapose these two windows.

3. Click on the "Click here" button in the window opened in (2).
Submitting this form results into a <lift:Snippet> block being sent to
the actor on the index page. This makes the index page show a form
that was not previously present.

4. Click on the button that has appeared on the index page. This does
not result into calling the handler at the server end.

Please let me know if you need more information.

Thanks again...

Regards,
Som



On Oct 8, 9:40 pm, David Pollak <feeder.of.the.be...@gmail.com> wrote:
> The chat example in demo.liftweb.net (source in examples/example) has a form
> that is presented after the initial form is rendered.  It works just fine.
> Please put together a small example of the failure so I can see the running
> code.
>
> On Wed, Oct 7, 2009 at 9:13 PM, Somindra Bhattacharya
> <somind...@gmail.com>wrote:
> Beginning Scalahttp://www.apress.com/book/view/1430219890

David Pollak

unread,
Oct 9, 2009, 3:17:31 PM10/9/09
to lif...@googlegroups.com
This is a defect.  I've opened a ticket: http://github.com/dpp/liftweb/issues#issue/93

I'll have a fix checked in later today
Lift, the simply functional web framework http://liftweb.net

Somindra Bhattacharya

unread,
Oct 9, 2009, 10:31:40 PM10/9/09
to Lift
Thanks David!

On Oct 10, 12:17 am, David Pollak <feeder.of.the.be...@gmail.com>
wrote:
> This is a defect.  I've opened a ticket:http://github.com/dpp/liftweb/issues#issue/93
> I'll have a fix checked in later today
>
> On Fri, Oct 9, 2009 at 1:02 AM, Somindra Bhattacharya
> <somind...@gmail.com>wrote:
>
>
>
>
>
> > David,
>
> > Thanks for responding.
>
> > I have hosted the example athttp://174.129.214.150:8080/
>
> > The code is athttp://174.129.214.150:8080/dynamicForm.tar.gz
>
> > Here are the steps to reproduce the issue:
>
> > 1. Openhttp://174.129.214.150:8080/in a browser window. This starts
> > a comet actor which listens for messages. There is no form present on
> > this page.
>
> > 2. Openhttp://174.129.214.150:8080/testdriverin another browser

David Pollak

unread,
Oct 10, 2009, 10:45:03 AM10/10/09
to lif...@googlegroups.com


On Fri, Oct 9, 2009 at 7:31 PM, Somindra Bhattacharya <somi...@gmail.com> wrote:

Thanks David!

You are welcome and thanks for taking the time to put together the sample!



--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890

Felipe Rodrigues

unread,
Jan 12, 2010, 4:47:03 PM1/12/10
to lif...@googlegroups.com
I have a similar problem here. I didn't find this issue on github.
Is this issue solved?

Thanks,

Felipe


On Oct 9 2009, 5:17 pm, David Pollak <feeder.of.the.be...@gmail.com>

wrote:
> This is a defect.  I've opened a ticket:http://github.com/dpp/liftweb/issues#issue/93
> I'll have a fix checked in later today
>
> On Fri, Oct 9, 2009 at 1:02 AM, Somindra Bhattacharya
> <somind...@gmail.com>wrote:
>
>
>
>
>
>
>
> > David,
>
> > Thanks for responding.
>
> > I have hosted the example athttp://174.129.214.150:8080/
>
> > The code is athttp://174.129.214.150:8080/dynamicForm.tar.gz

>
> > Here are the steps to reproduce the issue:
>
> > 1. Openhttp://174.129.214.150:8080/in a browser window. This starts

> > a comet actor which listens for messages. There is no form present on
> > this page.
>
> > 2. Openhttp://174.129.214.150:8080/testdriverin another browser

Alex Boisvert

unread,
Jan 12, 2010, 5:35:56 PM1/12/10
to lif...@googlegroups.com
Yes. 

The issue is here: http://github.com/dpp/liftweb/issues/closed/#issue/93

It was fixed in 1.1M7 and later.

alex


--
You received this message because you are subscribed to the Google Groups "Lift" group.
To post to this group, send email to lif...@googlegroups.com.
To unsubscribe from this group, send email to liftweb+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.


Felipe Rodrigues

unread,
Jan 13, 2010, 10:45:21 AM1/13/10
to lif...@googlegroups.com
The problem was using Google Chrome to see this page. On firefox it shows up normally.


Alex Boisvert wrote:
Reply all
Reply to author
Forward
0 new messages