Selective rendering

classic Classic list List threaded Threaded
25 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Selective rendering

Mischael Schill
Hello
I'm new to Orbeon and XForms and have a little problem: I want to repeat
through a nodeset of elements and show different controls depending on
the local-name of the element. The repeating is no problem, but how do I
only selectively show one group of controls? switch/case doesn't seem to
be the right thing here end using a group like this <f:group
ref=".[local-name()='convert']"> still shows the content of the group
item (even though no controls) when the ref-attribute returns no nodes.

Can someone give me a hint to how I can resolve this?

Thanks,
Mischael Schill


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Selective rendering

Hank Ratzesberger

Hi Mischael,

Do you have an sample code that runs in the xforms sandbox?

 From my meager understanding, I think you need two instances,
one with each type of control.  This is so you can use
single node binding on a group (ref=).  Then if you use
switch/case or the bind element with relevant attribute,
the engine can resolve these.

The ref attribute should return only one node.

Cheers,
Hank

On Apr 28, 2009, at 11:52 PM, Mischael Schill wrote:

> Hello
> I'm new to Orbeon and XForms and have a little problem: I want to  
> repeat through a nodeset of elements and show different controls  
> depending on the local-name of the element. The repeating is no  
> problem, but how do I only selectively show one group of controls?  
> switch/case doesn't seem to be the right thing here end using a  
> group like this <f:group ref=".[local-name()='convert']"> still  
> shows the content of the group item (even though no controls) when  
> the ref-attribute returns no nodes.
>
> Can someone give me a hint to how I can resolve this?
>
> Thanks,
> Mischael Schill
>
> --
> You receive this message as a subscriber of the [hidden email]  
> mailing list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> OW2 mailing lists service home page: http://www.ow2.org/wws
Hank Ratzesberger
NEES@UCSB
Institute for Crustal Studies,
University of California, Santa Barbara
805-893-8042







--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Selective rendering

Alessandro Vernet
Administrator
In reply to this post by Mischael Schill
Mischael,

On Apr 28, 2009, at 11:52 PM, Mischael Schill wrote:

> I'm new to Orbeon and XForms and have a little problem: I want to  
> repeat through a nodeset of elements and show different controls  
> depending on the local-name of the element. The repeating is no  
> problem, but how do I only selectively show one group of controls?  
> switch/case doesn't seem to be the right thing here end using a  
> group like this <f:group ref=".[local-name()='convert']"> still  
> shows the content of the group item (even though no controls) when  
> the ref-attribute returns no nodes.

Like Hank said, the <xforms:group> will work if you have a single  
node, but that must be the case since you are inside an  
<xforms:repeat>. And doing <xforms:group ref=".[local-name() =  
'gaga']"> is exactly what I would do. (You can't use a switch/case  
here because you'll have to toggle to the right case in a different  
way for each iteration of the repeat.) I think we'll need to see an  
example to be able to help you further on this.

Alex
--
Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise
Orbeon's Blog: http://www.orbeon.com/blog/
Personal Blog: http://avernet.blogspot.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Selective rendering

Mischael Schill
Hello Allesandro, Hank
Alessandro Vernet wrote:
> I think we'll need to see an example to be able to help you
> further on this.
And here we go (f is bound to XForms):
<f:group ref="procedure">
     <f:label>
         <h3>Procedure</h3>
     </f:label>
     <f:repeat nodeset="./*">
         <f:group ref=".[local-name()='convert']">
             <f:label>
                 <h4>CONVERT</h4>
             </f:label>
             <f:output ref="@type">
                 <f:label>Type: </f:label>
             </f:output>
             <f:output ref="@stream">
                 <f:label>Stream: </f:label>
             </f:output>
         </f:group>
         <f:group ref=".[local-name()='generate']">
             <f:label>
                 <h4>GENERATE</h4>
             </f:label>
             <f:output ref="@type">
                 <f:label>Type: </f:label>
             </f:output>
         </f:group>
         <f:group ref=".[local-name()='rename']">
             <f:label>
                 <h4>RENAME</h4>
             </f:label>
             <f:output ref="@old">
                 <f:label>Old Name: </f:label>
             </f:output>
             <f:output ref="@new">
                 <f:label>New Name: </f:label>
             </f:output>
         </f:group>
     </f:repeat>
</f:group>

This doesn't work as expected, since the group is rendered even though
the ref points to no node.

Thank you for your time.

Cheers,
Mischa


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Selective rendering

Erik Bruchez
Administrator
Mmh, curious, because we use this all the time.

-Erik

On Apr 30, 2009, at 12:45 AM, Mischael Schill wrote:

> Hello Allesandro, Hank
> Alessandro Vernet wrote:
>> I think we'll need to see an example to be able to help you further  
>> on this.
> And here we go (f is bound to XForms):
> <f:group ref="procedure">
>    <f:label>
>        <h3>Procedure</h3>
>    </f:label>
>    <f:repeat nodeset="./*">
>        <f:group ref=".[local-name()='convert']">
>            <f:label>
>                <h4>CONVERT</h4>
>            </f:label>
>            <f:output ref="@type">
>                <f:label>Type: </f:label>
>            </f:output>
>            <f:output ref="@stream">
>                <f:label>Stream: </f:label>
>            </f:output>
>        </f:group>
>        <f:group ref=".[local-name()='generate']">
>            <f:label>
>                <h4>GENERATE</h4>
>            </f:label>
>            <f:output ref="@type">
>                <f:label>Type: </f:label>
>            </f:output>
>        </f:group>
>        <f:group ref=".[local-name()='rename']">
>            <f:label>
>                <h4>RENAME</h4>
>            </f:label>
>            <f:output ref="@old">
>                <f:label>Old Name: </f:label>
>            </f:output>
>            <f:output ref="@new">
>                <f:label>New Name: </f:label>
>            </f:output>
>        </f:group>
>    </f:repeat>
> </f:group>
>
> This doesn't work as expected, since the group is rendered even  
> though the ref points to no node.
>
> Thank you for your time.
>
> Cheers,
> Mischa
>
> --
> You receive this message as a subscriber of the [hidden email]  
> mailing list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> OW2 mailing lists service home page: http://www.ow2.org/wws
--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Selective rendering

Mischael Schill
Erik Bruchez wrote:
> Mmh, curious, because we use this all the time.
The controls aren't showing, but everything else inside the group does
(incl. the label of the group). It also renders the span-element, which
I use to make borders around the groups.

Cheers,
Mischa


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Selective rendering

Erik Bruchez
Administrator
We made some CSS changes last week which temporarily broke stuff.  
Could it be that you grabbed a bad build?

-Erik

On May 4, 2009, at 12:05 AM, Mischael Schill wrote:

> Erik Bruchez wrote:
>> Mmh, curious, because we use this all the time.
> The controls aren't showing, but everything else inside the group  
> does (incl. the label of the group). It also renders the span-
> element, which I use to make borders around the groups.
>
> Cheers,
> Mischa
>
> --
> You receive this message as a subscriber of the [hidden email]  
> mailing list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> OW2 mailing lists service home page: http://www.ow2.org/wws
--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Re: Selective rendering

Einar Moos
Erik,

Ah, I  noticed the css style changes in orbeon 20090428 - curious to know: are they fixed? 

Thanks

-- einar

On Mon, May 4, 2009 at 7:24 PM, Erik Bruchez <[hidden email]> wrote:
We made some CSS changes last week which temporarily broke stuff. Could it be that you grabbed a bad build?

-Erik


On May 4, 2009, at 12:05 AM, Mischael Schill wrote:

Erik Bruchez wrote:
Mmh, curious, because we use this all the time.
The controls aren't showing, but everything else inside the group does (incl. the label of the group). It also renders the span-element, which I use to make borders around the groups.

Cheers,
Mischa





--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Re: Re: Selective rendering

Alessandro Vernet
Administrator
Einar,

On May 4, 2009, at 10:45 AM, Einar Moos wrote:

> Ah, I  noticed the css style changes in orbeon 20090428 - curious to  
> know: are they fixed?

We've made some more changes today – actually, 10 minutes ago ;). This  
is really a tricky one. We are using the same CSS now to hide content  
of non-selected <xforms:case> and to hide non-relevant content. We  
have some test cases for this, and as far as I know everything is  
working, including the table border that before were showing on IE6.  
But let is us know if you notice anything strange.

Alex
--
Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise
Orbeon's Blog: http://www.orbeon.com/blog/
Personal Blog: http://avernet.blogspot.com/
Twitter - http://twitter.com/avernet



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Selective rendering

Alessandro Vernet
Administrator
In reply to this post by Mischael Schill
Mischa,

On Apr 30, 2009, at 12:45 AM, Mischael Schill wrote:

> And here we go (f is bound to XForms):
> <f:group ref="procedure">
>    <f:label>
>        <h3>Procedure</h3>
>    </f:label>
>    <f:repeat nodeset="./*">
>        <f:group ref=".[local-name()='convert']">
>            <f:label>
>                <h4>CONVERT</h4>
>            </f:label>
>            <f:output ref="@type">
>                <f:label>Type: </f:label>
>            </f:output>
>            <f:output ref="@stream">
>                <f:label>Stream: </f:label>
>            </f:output>
>        </f:group>
>        <f:group ref=".[local-name()='generate']">
>            <f:label>
>                <h4>GENERATE</h4>
>            </f:label>
>            <f:output ref="@type">
>                <f:label>Type: </f:label>
>            </f:output>
>        </f:group>
>        <f:group ref=".[local-name()='rename']">
>            <f:label>
>                <h4>RENAME</h4>
>            </f:label>
>            <f:output ref="@old">
>                <f:label>Old Name: </f:label>
>            </f:output>
>            <f:output ref="@new">
>                <f:label>New Name: </f:label>
>            </f:output>
>        </f:group>
>    </f:repeat>
> </f:group>
If you still have this problem, could you send us a full example that  
we can run in the XForms sandbox?

Alex
--
Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise
Orbeon's Blog: http://www.orbeon.com/blog/
Personal Blog: http://avernet.blogspot.com/
Twitter - http://twitter.com/avernet



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Re: Selective rendering

Mischael Schill
In reply to this post by Erik Bruchez
Erik Bruchez wrote:
> We made some CSS changes last week which temporarily broke stuff. Could
> it be that you grabbed a bad build?
I use the beta build, but I use the plain-theme with some custom styling.

Cheers,
Mischael


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Re: Selective rendering

Alessandro Vernet
Administrator
Mischael Schill wrote
I use the beta build, but I use the plain-theme with some custom styling.
Those changes are in xforms.css, which should be always used, even if you have your own styling on top of that.

Alex
Reply | Threaded
Open this post in threaded view
|

Selective rendering

Einar Moos
In reply to this post by Alessandro Vernet

Alex,

Perfect with Orbeon Forms dev-3.7.1.200905050650 !!!

Thanks again,

-- eubar



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Selective rendering

Einar Moos
Sorry,

-- einar

(I was too happy that everything was back in place while I was styling on top of your css, so I mispelled my name...)

On Tue, May 5, 2009 at 10:40 PM, Einar Moos <[hidden email]> wrote:

Alex,

Perfect with Orbeon Forms dev-3.7.1.200905050650 !!!

Thanks again,

-- eubar




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Selective rendering

Alessandro Vernet
Administrator
parisiana wrote
Sorry,

-- einar

(I was too happy that everything was back in place while I was styling on
top of your css, so I mispelled my name...)
That's OK for your name misspelled! ;) And I am glad the new CSS works as well in your case.

Alex
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Re: Re: Re: Selective rendering

Mischael Schill
In reply to this post by Alessandro Vernet
Alessandro Vernet wrote:
> We've made some more changes today – actually, 10 minutes ago ;). This
> is really a tricky one. We are using the same CSS now to hide content of
> non-selected <xforms:case> and to hide non-relevant content. We have
> some test cases for this, and as far as I know everything is working,
> including the table border that before were showing on IE6. But let is
> us know if you notice anything strange.

:). Is there another beta coming soon or do I have to use nightlies? I
found a workaround for my problem but I'd like to change back soon.

Would it be possible to implement an extension attribute which
completely skips the rendering of a group (or control) if the expression
  evaluates to true (or false) at the rendering phase? Something like
the rendered-attribute in JSF. This way it would be truly invisible
instead of hidden through css, which would be better in my case. Maybe I
could spare some time to implement it myself if the orbeon code base
isn't too complicated.

Cheers,
Mischa


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Re: Re: Re: Re: Selective rendering

Erik Bruchez
Administrator
> :). Is there another beta coming soon or do I have to use nightlies?  
> I found a workaround for my problem but I'd like to change back soon.

Yes really soon.

> Would it be possible to implement an extension attribute which  
> completely skips the rendering of a group (or control) if the  
> expression  evaluates to true (or false) at the rendering phase?  
> Something like the rendered-attribute in JSF. This way it would be  
> truly invisible instead of hidden through css, which would be better  
> in my case. Maybe I could spare some time to implement it myself if  
> the orbeon code base isn't too complicated.


The issue is that if it isn't rendered and later the group becomes  
relevant, then its content must be sent to the server. We don't have  
such a mechanism yet for the Ajax mode.

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Selective rendering

Mischael Schill
Erik Bruchez wrote:
> Yes really soon.
Yay!
> The issue is that if it isn't rendered and later the group becomes
> relevant, then its content must be sent to the server. We don't have
> such a mechanism yet for the Ajax mode.
In my case, it wouldn't ever get relevant
(because the node-name doesn't change), but I can't use xsl:if, because
it's inside a repeat. But CSS is ok for now.

Cheers,
Mischael


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Encapsulate Forms Runner

Trond Hjelmaas
In reply to this post by Alessandro Vernet
Hi all,

We are looking into adding functionality on top of a forms rendering
engine such as Orbeon; functionality such as persisting of user data,
versioning of forms, workflow, security etc.

We would like to achieve (sequence diagram):

Web user          FrontLayer      Versioning     OrbeonRunner
   | --> HTTP req --> | --- version? -->|
                      |<----- 1.3-------|
                      |--------XHTML + XForms tag ---->|
                      |<--------- XHTML + Ajax---------|
   |<-----------------|



We already can do, but NOT prefer (security issues putting Orbeon
first):

Web user          OrbeonRunner              "Front"Layer     Versioning
   | --> HTTP req --> | --- dispatch ------------>|
                                                  |------version?-->|
                                                  |<----- 1.3-------|
                      |<-- XHTML + XForms tag ----|
   |<-- XHTML + Ajax--|


From an architectural point of view it makes sense to have one (or more)
layers in front of Orbeon providing this functionality, for example
logging a user in, show them forms the have started (but not finished),
making sure the user can continue filling out a form even thought the
version have changed (and therefore the model) by etc.

(We have identified an option of using Orbeon as the very first
component the traffic will hit, i.e. no layer at the front, and the an
Orbeon processors dispatch to additional logic for versioning,
persistence, logging in etc)


Have anyone taken the approach of creating a layer in front of Orbeon?
If so,
-how do you trigger the rendering of a form from a layer
-when a form is completed, how do you get the data from the model
(Orbeon must decipher/interpret the response from user and then give you
the user data entered?)
-what about the Ajax validation hitting the URL /xforms? Is it forwarded
from front layer to Orbeon
-Other Orbeon things that complicates putting layer at the front

Views and comments much appreciated!

Cheers,
Trond




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Encapsulate Forms Runner

Alessandro Vernet
Administrator
Trond,

Trond Hjelmaas wrote
Have anyone taken the approach of creating a layer in front of Orbeon?
If so,
-how do you trigger the rendering of a form from a layer
-when a form is completed, how do you get the data from the model
(Orbeon must decipher/interpret the response from user and then give you
the user data entered?)
-what about the Ajax validation hitting the URL /xforms? Is it forwarded
from front layer to Orbeon
-Other Orbeon things that complicates putting layer at the front
There are many way to do this, and it kind of depends what your environment looks like. For instance:

* If you are using Java for the rest of your environment, separate deployment is a popular option (http://www.orbeon.com/ops/doc/reference-xforms-java).
* If you are using other environments, there are ways insert a form into a page:
** For instance this extension for TYPO3 does it on the server-side in PHP (https://typo3.org/extensions/repository/?tx_terfe_pi1[view]=search&no_cache=1&tx_terfe_pi1[sword]=orbeon).
** Dojo can be used on the client-side to insert a form into a page (see: http://wiki.orbeon.com/forms/doc/developer-guide/configuration-properties#TOC-Page-Inclusion-with-Dojo).

Alex
12