cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Ralston <mich...@ralston.id.au>
Subject Re: CForm Bind problem (EvaluatorException: org.mozilla.javascript.UniqueTag)
Date Sun, 18 Sep 2005 01:47:09 GMT
Fixed it...

Forgot to call
	form.createBinding("resources/forms/gallery-binding.xml");
in my flowscript...

And after doing that I found all the mistakes in my xml :P

Michael

On Sunday 18 September 2005 10:23, Michael Ralston wrote:
> I'm having a problem creating a CForm with repeaters and binding it to an
> XML document. I found Scott's email on the mailing list last year (June 22,
> 2004) with a similar error and I'm wondering if anyone else has had the
> error and found a solution.
>
> I have based my code on the sample in cocoon, with the following files...
>  - form2_model.xml
>  - form2_bind_xml.xml
>  - form2_template.xml
>
> specifically I was looking at the 'contacts' widget in those files.
>
> This is my error...
> org.mozilla.javascript.EvaluatorException:
> "resource://org/apache/cocoon/forms/flow/javascript/Form.js", line 183:
> Invalid JavaScript value of type org.mozilla.javascript.UniqueTag
>
> Below are my xml files.
>
> Thanks
> Michael Ralston
>
> This is my form definition...
> -----
> <?xml version="1.0"?>
> <fd:form
>         xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"
>         xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
>   <fd:widgets>
>
>     <fd:repeater id="images">
>       <fd:widgets>
>
>         <fd:output id="id">
>           <fd:datatype base="long"/>
>         </fd:output>
>
>         <fd:field id="name">
>           <fd:label>Name</fd:label>
>           <fd:datatype base="string"/>
>         </fd:field>
>
>         <fd:field id="source">
>           <fd:label>Full Size Image</fd:label>
>           <fd:datatype base="string"/>
>           <fd:select-list dynamic="true" type="flow-jxpath"
> list-path="assets" value-path="value" label-path="label" required="true"/>
>         </fd:field>
>
>         <fd:field id="thumb">
>           <fd:label>Small Size Image</fd:label>
>           <fd:datatype base="string"/>
>           <fd:select-list dynamic="true" type="flow-jxpath"
> list-path="assets" value-path="value" label-path="label" required="true"/>
>         </fd:field>
>
>         <fd:booleanfield id="select">
>           <fd:label>Select</fd:label>
>         </fd:booleanfield>
>
>       </fd:widgets>
>     </fd:repeater>
>
>     <fd:repeater-action id="addimage" command="add-row" repeater="images">
>       <fd:label>Add Image</fd:label>
>     </fd:repeater-action>
>
>     <fd:repeater-action id="removeimages" command="delete-rows"
> repeater="images" select="select">
>       <fd:label>Remove selected Images</fd:label>
>     </fd:repeater-action>
>
>     <fd:submit id="save" action-command="submit" validate="true">
>       <fd:label>Save</fd:label>
>       <fd:hint>Save this Gallery</fd:hint>
>     </fd:submit>
>
>   </fd:widgets>
> </fd:form>
> -----
>
> This is my form binding...
> -----
> <?xml version="1.0"?>
> <fb:context xmlns:fb="http://apache.org/cocoon/forms/1.0#binding" path="/"
> > <fb:repeater id="items" parent-path="gallery" row-path="image">
>     <fb:on-bind>
>       <fb:javascript id="id" path="@id" direction="save">
>         <fb:save-form>
>           var appValue = jxpathPointer.getValue();
>           if (appValue == '') {
>             var precSiblId =
> jxpathContext.getValue("../preceding-sibling::image/@id");
>             var newId = Number(precSiblId) + 1;
>             jxpathPointer.setValue(newId.toFixed(0));
>           }
>         </fb:save:form>
>       </fb:javascript>
>       <fb:value id="name" path="@name"/>
>       <fb:value id="source" path="@source"/>
>       <fb:value id="thumb" path="@thumb"/>
>     </fb:on-bind>
>     <fb:on-delete-row>
>       <fb:delete-node/>
>     </fb:on-delete-row>
>     <fb:on-insert-row>
>       <fb:insert-node>
>         <image id=""
>                name=""
>                source="http://servername/directory/image3.jpg"
>                thumb="http://servername/directory/thumb3.jpg" />
>       </fd:insert-node>
>     </fb:on-insert-row>
>   </fb:repeater>
> </fb:context>
> -----
>
> This is my form template...
> -----
> <page xmlns:ft="http://apache.org/cocoon/forms/1.0#template"
>       xmlns:fi="http://apache.org/cocoon/forms/1.0#instance">
>   <title>Editing Promotional Item</title>
>   <content>
>     <ft:form-template action="#{$continuation/id}.continue" method="POST">
>       <input type="hidden" name="lenya.usecase" value="galleryeditor"/>
>
>       <ft:widget-label id="images"/><br/>
>       <ft:repeater-size id="images"/>
>       <table border="1">
>         <tr>
>           <th><ft:repeater-widget-label id="images" widget-id="name"/></th>
>           <th><ft:repeater-widget-label id="images"
> widget-id="source"/></th> <th><ft:repeater-widget-label id="images"
> widget-id="thumb"/></th> <th><ft:repeater-widget-label id="images"
> widget-id="select"/></th> </tr>
>
>         <ft:repeater-widget id="images">
>           <tr>
>             <td><ft:widget id="name"/></td>
>             <td><ft:widget id="source"/></td>
>             <td><ft:widget id="thumb"/></td>
>             <td><ft:widget id="select"/></td>
>           </tr>
>         </ft:repeater-widget>
>
>         <tr>
>           <td colspan="4" align="right">
>             <ft:widget id="addimage"/>
>             <ft:widget id="removeimages"/>
>           </td>
>         </tr>
>       </table>
>
>       <ft:widget id="save"/>
>     </ft:form-template>
>   </content>
> </page>
> -----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org

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


Mime
View raw message