Orbeon Forms application - migration from 3.8 to 4.9

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

Orbeon Forms application - migration from 3.8 to 4.9

gregorio
Hello,

I am migrating orbeon forms application from 3.8 to 4.9 version. All of my forms where written with Eclipse/OxygenXML - not by built-in form designer. I have read all migration notes, and everything works fine but each *.xform page contains strange section (Reloading form) at the begginning. I can't find any error in orbeon.log file or other..



Thanks for any suggestion what is wrong.

Regards,
Grzegorz
Reply | Threaded
Open this post in threaded view
|

Re: Orbeon Forms application - migration from 3.8 to 4.9

Erik Bruchez
Administrator
Grzegorz,

This seems to indicate that some of the Orbeon Forms standard CSS is not included.

Which Orbeon Forms CSS files do your pages include, if any?

-Erik
Reply | Threaded
Open this post in threaded view
|

Re: Orbeon Forms application - migration from 3.8 to 4.9

gregorio
I were not using any Orbeon standard CSS - that was the reason. This issue is resolved. I've got another one.

One of my xforms isn't working after migration, this button freezes form with "xforms-loading-loading" span visible. There are no errors on the server side. Both submissions from this action are getting WSDL/SCHEMA from exist and replaces two xform instances. It is working correctly as I can see with inspector. The only error i can see is Javascript Error "TypeError: "spanContainer is undefined" from line 120 orbeon...*js. spanContainer.appendChild(templateClone) this is the part of code that crashes my application.

<xf:trigger ref="instance('page')/edition-valid">
                        <xf:label>EDIT</xf:label>
                        <xf:action ev:event="DOMActivate">
                            <xf:send submission="get-wsdl" />
                            <xf:send submission="get-schema" />
                            <xf:action if="not(instance('schema')//xsd:appinfo[text()='imported'])">
                                <xf:setvalue ref="instance('page')/edition/operation"
                                    value="instance('wsdl')//wsdl:portType[1]/wsdl:operation[1]/@name" />
                                <xf:setvalue ref="instance('page')/edition/cdm"
                                    value="if (instance('page')/edition/adapter='') then 'true' else ()" />
                                <xf:toggle case="edition" />
                            </xf:action>
                        </xf:action>
                    </xf:trigger>

What is wrong?
Reply | Threaded
Open this post in threaded view
|

Re: Orbeon Forms application - migration from 3.8 to 4.9

Alessandro  Vernet
Administrator
Hi Gregorio,

This is something of a shot in the dark, but this type of error can happen if the nesting of the elements in incorrect, and the browsers changes it on the client, in a way that is unknown to the server.

I would try to debug the code and see what it is trying to insert, and see if you can find a case of incorrect element nesting there. If this doesn't get you anywhere, it could of course be a bug in the product. In which case, I'd recommend you create a minimal example that reproduces the problem, and post it here.

Alex

On Sun, Jun 21, 2015 at 8:53 AM, gregorio <[hidden email]> wrote:
I were not using any Orbeon standard CSS - that was the reason. This issue is
resolved. I've got another one.

One of my xforms isn't working after migration, this button freezes form
with "xforms-loading-loading" span visible. There are no errors on the
server side. Both submissions from this action are getting WSDL/SCHEMA from
exist and replaces two xform instances. It is working correctly as I can see
with inspector. The only error i can see is Javascript Error "TypeError:
"spanContainer is undefined" from line 120 orbeon...*js.
spanContainer.appendChild(templateClone) this is the part of code that
crashes my application.

<xf:trigger ref="instance('page')/edition-valid">
                        <xf:label>EDIT</xf:label>
                        <xf:action ev:event="DOMActivate">
                            <xf:send submission="get-wsdl" />
                            <xf:send submission="get-schema" />
                            <xf:action
if="not(instance('schema')//xsd:appinfo[text()='imported'])">
                                <xf:setvalue
ref="instance('page')/edition/operation"

value="instance('wsdl')//wsdl:portType[1]/wsdl:operation[1]/@name" />
                                <xf:setvalue
ref="instance('page')/edition/cdm"
                                    value="if
(instance('page')/edition/adapter='') then 'true' else ()" />
                                <xf:toggle case="edition" />
                            </xf:action>
                        </xf:action>
                    </xf:trigger>

What is wrong?

--
View this message in context: http://discuss.orbeon.com/Orbeon-Forms-application-migration-from-3-8-to-4-9-tp4660085p4660112.html
Sent from the Orbeon Forms community mailing list mailing list archive at Nabble.com.

--
You received this message because you are subscribed to the Google Groups "Orbeon Forms" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].

--
You received this message because you are subscribed to the Google Groups "Orbeon Forms" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Orbeon Forms application - migration from 3.8 to 4.9

gregorio
The "edition" case had unsupported appearance - that caused above error.

<xf:select1 ref="instance('page')/edition/operation" appearance="xxforms:tree">

It took me many hours to find out.

I have one more issue now. The binding looks:

<xf:bind id="bind-artifacts" nodeset="instance('configuration')/layout/group/artifact"
                                relevant="if (instance('page')/mode='GROUP'
                      and .[../@name=instance('page')/group])
                      then true()
                    else if (instance('page')/mode='ARTIFACT'
                      and string-length(instance('page')/names) gt 2
                      and .[matches(@name,replace(instance('page')/names,' ','.*'))])
                      then true()
                    else if (instance('page')/mode='LIST'
                      and instance('page')/list='VOLATILE')
                      then .[@configuration='VOLATILE']
                    else if (instance('page')/mode='LIST'
                      and instance('page')/list='UPDATES')
                      then .[newer='true']
                    else false()"
                                 />

Index of selected elements from this collection has changed after migration - it is numbered from 1..to N in each mode, instead of real index from its binding


                                                                        <xf:repeat ref="xxforms:bind('bind-artifacts')" id="artifact">
                                                                                <li>
                                                                                        <xf:output ref="if (@name='' or @version='') then 'WYBIERZ ARTEFAKT' else concat(@name,'-',@classifier)" />
                                                                                </li>
                                                                        </xf:repeat>
                                                                </ul>

Reply | Threaded
Open this post in threaded view
|

Re: Orbeon Forms application - migration from 3.8 to 4.9

Alessandro  Vernet
Administrator
Hi Gregorio,

Nice find about the xxf:tree. This is good to know, in case someone else hits this same issue, and I'm sorry for all the time it took to find!

You're saying that "the index of the selected elements from this collection has changed". What do you mean by "index"? I don't see anything that resembles an index in your snippet? Maybe you can create some minimal code that I can run here to reproduce the problem?

Alex

On Mon, Jun 22, 2015 at 2:33 PM, gregorio <[hidden email]> wrote:
The "edition" case had unsupported appearance - that caused above error.

<xf:select1 ref="instance('page')/edition/operation"
appearance="xxforms:tree">

It took me many hours to find out.

I have one more issue now. The binding looks:

<xf:bind id="bind-artifacts"
nodeset="instance('configuration')/layout/group/artifact"
                                relevant="if (instance('page')/mode='GROUP'
                      and .[../@name=instance('page')/group])
                      then true()
                    else if (instance('page')/mode='ARTIFACT'
                      and string-length(instance('page')/names) gt 2
                      and .[matches(@name,replace(instance('page')/names,'
','.*'))])
                      then true()
                    else if (instance('page')/mode='LIST'
                      and instance('page')/list='VOLATILE')
                      then .[@configuration='VOLATILE']
                    else if (instance('page')/mode='LIST'
                      and instance('page')/list='UPDATES')
                      then .[newer='true']
                    else false()"
                                 />

Index of selected elements from this collection has changed after migration
- it is numbered from 1..to N in each mode, instead of real index from its
binding


                                                                        <xf:repeat ref="xxforms:bind('bind-artifacts')" id="artifact">
                                                                                <li>
                                                                                        <xf:output ref="if (@name='' or @version='') then 'WYBIERZ
ARTEFAKT' else concat(@name,'-',@classifier)" />
                                                                                </li>
                                                                        </xf:repeat>
                                                                </ul>



--
View this message in context: http://discuss.orbeon.com/Orbeon-Forms-application-migration-from-3-8-to-4-9-tp4660085p4660120.html
Sent from the Orbeon Forms community mailing list mailing list archive at Nabble.com.

--
You received this message because you are subscribed to the Google Groups "Orbeon Forms" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].

--
You received this message because you are subscribed to the Google Groups "Orbeon Forms" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Orbeon Forms application - migration from 3.8 to 4.9

gregorio
The sample below. In Orbeon 3.8 when you selected "C" the index index('my_repeat') was 3, and expression xxf:bind('repeat-bind')[index('my_repeat')]/id returned correctly "C". In Orbeon 4.9 the index is 1 and letter A... This is my last migration issue, thanks in advance for your help.

<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
            xmlns:ev="http://www.w3.org/2001/xml-events"
            xmlns:xf="http://www.w3.org/2002/xforms"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
            xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
            xmlns:idc="http://www.inventivedesigners.com/xbl"
            xmlns:exf="http://www.exforms.org/exf/1-0"
            xmlns:saxon="http://saxon.sf.net/">
    <xhtml:head>
        <xhtml:meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <xhtml:title>Test</xhtml:title>
 
        <xf:model id="m-default">
 
            <xf:instance id="i-default">
                <data xmlns="">
                    <repeat>
                        <id>A</id>
                    </repeat>
                                        <repeat>
                        <id>B</id>
                    </repeat>
                                        <repeat>
                        <id>C</id>
                    </repeat>
                                        <repeat>
                        <id>D</id>
                    </repeat>
                </data>
            </xf:instance>
 
           
            <xf:bind id="repeat-bind" ref="repeat" relevant="id='C' or id='D'"/>
 
        </xf:model>
 
    </xhtml:head>
    <xhtml:body class="orbeon" style="width: 80%; margin-left: auto; margin-right: auto;">
 
        <xhtml:table style="border: 1px solid black; margin-top: 50px;">
            <xhtml:tbody>
               
               

                                <xf:repeat id="my_repeat" bind="repeat-bind"> 
                               
                    <xhtml:tr>
                        <xhtml:td class="{id}">
                            <xf:output ref="id"/>
                        </xhtml:td>
                                                <xhtml:td>
                                                <xf:trigger>
                                                        <xf:label>Delete</xf:label>
                                                        <xf:delete ev:event="DOMActivate" nodeset="."/>
                                                </xf:trigger>
                                                </xhtml:td>
                    </xhtml:tr>
                                       
                </xf:repeat>
                               
                               
            </xhtml:tbody>
        </xhtml:table>
 
                <div style="font-size: 15pt; line-height: 25px;">Selected item:
                        <xf:output value="index('my_repeat')"/>
                </div>
                <div style="font-size: 15pt; line-height: 25px;">All items:
                        <xf:output value="count(repeat)"/>
                </div>
                <div style="font-size: 15pt; line-height: 25px;">Selected letter:
                        <xf:output value="xxf:bind('repeat-bind')[index('my_repeat')]/id"/>
                </div>
     </xhtml:body>
</xhtml:html>
Reply | Threaded
Open this post in threaded view
|

Re: Orbeon Forms application - migration from 3.8 to 4.9

Alessandro  Vernet
Administrator
Hi Gregorio,

Indeed, index() currently "skips" non-relevant iterations. We looked at the XForms spec and there doesn't seem to any indication that it should skip non-relevant iterations, which I would take it to mean that it shouldn't. And I can see how useful *not* skipping the non-relevant iteration can be if you want to use the value returned by index() in a predicate. I've created an issue for this one.

https://github.com/orbeon/orbeon-forms/issues/2301

In your case, if the issue is that you want to access the node at the current repeat iteration from outside the repeat, you can use:

xxf:bind('repeat-bind')[xxf:relevant()][index('my_repeat')]

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet