Re: [Twisted-web] Nevow Athena & Frames - Not any more....
On 11/8/07, Colin Alston <karnaugh@karnaugh.za.net> wrote:
On 08/11/2007 20:50 Harald Blåtand wrote:
<snip>
You should very much not be using Frames. The fragments should be rendered into a div or some such area on the main page, not a frame.
OK, thanks for the advice. Have redesigned to <div>s (LiveFragments) in one LivePage - - A "vertical" div, populated at page render time. Gets id="athena:1". - A "horizontal" div (gets id="athena:3"), for showing results from clicking a row in "athena:1". I can see nice flattened HTML in the log, by renderSynchronously(), but I have trouble finding the "athena:3" node, to display it. Here's what I've tried: - self.nodeById() in the callback triggered by the JS func that called Python. The HTML looks fine. The callback didn't seem to know about self.node, so I passed it as an arg. - however, in the 1st func, self.node.id = "athena:1" (from the click in the first div). - Nevow.Athena.NodeByAttribute(root, ...) which calls Divmod.Runtime.theRuntime.nodeByAttribute(selt, root, ...), which appears to do a tree search. Now the question is: How do I find "root"?? Presumably, it's one level above "athena:1", "athena:2", etc. I tried with "Divmod._location+Nevow.Athena.livepageID+'/jsmodule'", since that was the value of jsModuleRoot of class LivePage, but no luck. Sound like a newbie? Good guess :-) Hoping for some more patience........
Forget it - found it. Duh..... On 11/10/07, Harald Blåtand <kozneb@gmail.com> wrote:
On 11/8/07, Colin Alston <karnaugh@karnaugh.za.net> wrote:
On 08/11/2007 20:50 Harald Blåtand wrote:
<snip>
You should very much not be using Frames. The fragments should be rendered into a div or some such area on the main page, not a frame.
OK, thanks for the advice. Have redesigned to <div>s (LiveFragments) in one LivePage - - A "vertical" div, populated at page render time. Gets id="athena:1". - A "horizontal" div (gets id="athena:3"), for showing results from clicking a row in "athena:1".
I can see nice flattened HTML in the log, by renderSynchronously(), but I have trouble finding the "athena:3" node, to display it. Here's what I've tried:
- self.nodeById() in the callback triggered by the JS func that called Python. The HTML looks fine. The callback didn't seem to know about self.node, so I passed it as an arg. - however, in the 1st func, self.node.id = "athena:1" (from the click in the first div).
- Nevow.Athena.NodeByAttribute(root, ...) which calls Divmod.Runtime.theRuntime.nodeByAttribute(selt, root, ...), which appears to do a tree search.
Now the question is: How do I find "root"??
Presumably, it's one level above "athena:1", "athena:2", etc. I tried with "Divmod._location+Nevow.Athena.livepageID+'/jsmodule'", since that was the value of jsModuleRoot of class LivePage, but no luck.
Sound like a newbie? Good guess :-) Hoping for some more patience........
participants (1)
-
Harald Blåtand