Bug with deleting rows in repeat

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

Bug with deleting rows in repeat

Alan Skorkin
Hi everyone,

There seems to be a little bug with deleting rows in a repeat control.

Attached is an xml file which you can use in the sandbox to reproduce.

You will need to do the following sequence of steps to see the problem:

1. Click the insert button until there are 4 rows showing
2. Put the numbers 1,2,3,4 in the textboxes in the first column in every row (i.e. row one has the number 1, row two the number 2 etc)
3. Put the mouse cursor in the text box of the second row (the one with number 2), you should get the yellow highlight around it to show that it is selected
4. Press the delete button on that row, the row will get deleted, you will now have three rows visible (1, 3 and 4), the highlighted row will be row 1
5. Press the delete button on the row which has (3) in the textbox, you will get two rows showing (3 and 4), this is not expected as you should get
(1 and 4) showing and 3 should have been deleted

Hope the explanation was clear, if not i can do some screenshots.

Cheers,

Alan

--
---------------------------------------------------------------------
Alan Skorkin
Consultant
Object Consulting

[hidden email]
www.objectconsulting.com.au

consulting | development | training | support
Our Experience Makes The Difference
---------------------------------------------------------------------

--
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
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws

blah1.xml (6K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Bug with deleting rows in repeat

Erik Bruchez
Administrator
Alan,

You are hitting something like a variant of this bug:

http://forge.objectweb.org/tracker/index.php?func=detail&aid=304630&group_id=168&atid=350207

The issue here is that the client only sends a DOMActivate but no
DOMFocusIn, which causes the repeat index not to be updated. I entered a
new bug to track this:

http://forge.objectweb.org/tracker/index.php?func=detail&aid=306300&group_id=168&atid=350207

Thanks for the detailed steps!

-Erik

Alan Skorkin wrote:

> Hi everyone,
>
> There seems to be a little bug with deleting rows in a repeat control.
>
> Attached is an xml file which you can use in the sandbox to reproduce.
>
> You will need to do the following sequence of steps to see the problem:
>
> 1. Click the insert button until there are 4 rows showing
> 2. Put the numbers 1,2,3,4 in the textboxes in the first column in every
> row (i.e. row one has the number 1, row two the number 2 etc)
> 3. Put the mouse cursor in the text box of the second row (the one with
> number 2), you should get the yellow highlight around it to show that it
> is selected
> 4. Press the delete button on that row, the row will get deleted, you
> will now have three rows visible (1, 3 and 4), the highlighted row will
> be row 1
> 5. Press the delete button on the row which has (3) in the textbox, you
> will get two rows showing (3 and 4), this is not expected as you should get
> (1 and 4) showing and 3 should have been deleted
>
> Hope the explanation was clear, if not i can do some screenshots.
>
> Cheers,
>
> Alan
>
> --
> ---------------------------------------------------------------------
> Alan Skorkin
> Consultant
> Object Consulting
>
> [hidden email] <mailto:[hidden email]>
> www.objectconsulting.com.au <http://www.objectconsulting.com.au>
>
> consulting | development | training | support
> Our Experience Makes The Difference
> ---------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
> <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:xforms="http://www.w3.org/2002/xforms"
> xmlns:ev="http://www.w3.org/2001/xml-events"
> xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
> xmlns:xi="http://www.w3.org/2001/XInclude"
> xmlns:f="http://orbeon.org/oxf/xml/formatting" xsl:version="2.0">
>   <xhtml:head>
>     <xforms:model id="main-model">
>       <xforms:instance id="mainInstance">
>         <root>
>             <node1 type="String">abc123</node1>
>             <repeater type="List">
>                 <repeaternode>
>                     <node2 type="String">a1</node2>
>                     <node3 type="String">a2</node3>
>                 </repeaternode>
>                 <repeaternode>
>                     <node2 type="String"/>
>                     <node3 type="String"/>
>                 </repeaternode>
>             </repeater>
>         </root>
>       </xforms:instance>
>     </xforms:model>
>   </xhtml:head>
>   <xhtml:body>
>     <xhtml:table id="maintable" border="0" cellpadding="5"
>     cellspacing="5" width="100%">
>       <xhtml:tbody>
>         <xhtml:tr>
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y">
>               <xforms:input id="oip_0" ref="/root/node1">
>                 <xforms:help ref="@help" />
>                 <xforms:hint ref="@hint" />
>                 <xforms:alert ref="@alert" />
>               </xforms:input>
>           </xhtml:td>
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>         </xhtml:tr>
>         <xhtml:tr>
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>         </xhtml:tr>
>         <xhtml:tr>
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y">
>             <xhtml:table class="repeaterControl">
>               <xhtml:thead>
>                 <xhtml:tr>
>                   <xhtml:th>Node 2</xhtml:th>
>                   <xhtml:th>Node 3</xhtml:th>
>                   <xhtml:th></xhtml:th>
>                 </xhtml:tr>
>               </xhtml:thead>
>               <xhtml:tbody>
>                 <xforms:repeat nodeset="/root/repeater/repeaternode[position() &lt; last()]" id="oip_1">
>                   <xhtml:tr>
>                     <xhtml:td>
>                         <xforms:input id="oip_2" ref="node2">
>                           <xforms:help ref="@help" />
>                           <xforms:hint ref="@hint" />
>                           <xforms:alert ref="@alert" />
>                         </xforms:input>
>                     </xhtml:td>
>                     <xhtml:td>
>                         <xforms:input id="oip_3" ref="node3">
>                           <xforms:help ref="@help" />
>                           <xforms:hint ref="@hint" />
>                           <xforms:alert ref="@alert" />
>                         </xforms:input>
>                     </xhtml:td>
>                     <xhtml:td>
>                       <xforms:trigger>
>                         <xforms:label>Delete</xforms:label>
>                         <xforms:action ev:event="DOMActivate">
>                           <xforms:delete nodeset="/root/repeater/repeaternode" at="index('oip_1')" />
>                         </xforms:action>
>                       </xforms:trigger>
>                     </xhtml:td>
>                   </xhtml:tr>
>                 </xforms:repeat>
>                   <xhtml:tr>
>                     <xhtml:td align="right" colspan="3">
>                       <xforms:trigger>
>                         <xforms:label>Insert</xforms:label>
>                         <xforms:action ev:event="DOMActivate">
>                           <xforms:insert nodeset="/root/repeater/repeaternode" at="last()" position="after" />
>                         </xforms:action>
>                       </xforms:trigger>
>                     </xhtml:td>
>                   </xhtml:tr>
>               </xhtml:tbody>
>             </xhtml:table>
>           </xhtml:td>
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>         </xhtml:tr>
>       </xhtml:tbody>
>     </xhtml:table>
>   </xhtml:body>
> </xhtml:html>
>
>
> ------------------------------------------------------------------------
>
>
> --
> 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
> ObjectWeb mailing lists service home page: http://www.objectweb.org/wws

--
Orbeon - XForms Everywhere:
http://www.orbeon.com/blog/



--
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
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Bug with deleting rows in repeat

Erik Bruchez
Administrator
This bug is now fixed. I have entered a more general bug about focus
tracking:

http://forge.objectweb.org/tracker/index.php?func=detail&aid=306307&group_id=168&atid=350207

-Erik

Erik Bruchez wrote:

> Alan,
>
> You are hitting something like a variant of this bug:
>
> http://forge.objectweb.org/tracker/index.php?func=detail&aid=304630&group_id=168&atid=350207 
>
>
> The issue here is that the client only sends a DOMActivate but no
> DOMFocusIn, which causes the repeat index not to be updated. I entered a
> new bug to track this:
>
> http://forge.objectweb.org/tracker/index.php?func=detail&aid=306300&group_id=168&atid=350207 
>
>
> Thanks for the detailed steps!
>
> -Erik
>
> Alan Skorkin wrote:
>> Hi everyone,
>>
>> There seems to be a little bug with deleting rows in a repeat control.
>>
>> Attached is an xml file which you can use in the sandbox to reproduce.
>>
>> You will need to do the following sequence of steps to see the problem:
>>
>> 1. Click the insert button until there are 4 rows showing
>> 2. Put the numbers 1,2,3,4 in the textboxes in the first column in
>> every row (i.e. row one has the number 1, row two the number 2 etc)
>> 3. Put the mouse cursor in the text box of the second row (the one
>> with number 2), you should get the yellow highlight around it to show
>> that it is selected
>> 4. Press the delete button on that row, the row will get deleted, you
>> will now have three rows visible (1, 3 and 4), the highlighted row
>> will be row 1
>> 5. Press the delete button on the row which has (3) in the textbox,
>> you will get two rows showing (3 and 4), this is not expected as you
>> should get
>> (1 and 4) showing and 3 should have been deleted
>>
>> Hope the explanation was clear, if not i can do some screenshots.
>>
>> Cheers,
>>
>> Alan
>>
>> --
>> ---------------------------------------------------------------------
>> Alan Skorkin
>> Consultant
>> Object Consulting
>>
>> [hidden email] <mailto:[hidden email]>
>> www.objectconsulting.com.au <http://www.objectconsulting.com.au>
>>
>> consulting | development | training | support
>> Our Experience Makes The Difference
>> ---------------------------------------------------------------------
>>
>>
>> ------------------------------------------------------------------------
>>
>> <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> xmlns:xforms="http://www.w3.org/2002/xforms"
>> xmlns:ev="http://www.w3.org/2001/xml-events"
>> xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
>> xmlns:xi="http://www.w3.org/2001/XInclude"
>> xmlns:f="http://orbeon.org/oxf/xml/formatting" xsl:version="2.0">
>>   <xhtml:head>
>>     <xforms:model id="main-model">
>>       <xforms:instance id="mainInstance">
>>         <root>
>>             <node1 type="String">abc123</node1>
>>             <repeater type="List">
>>                 <repeaternode>
>>                     <node2 type="String">a1</node2>
>>                     <node3 type="String">a2</node3>
>>                 </repeaternode>
>>                 <repeaternode>
>>                     <node2 type="String"/>
>>                     <node3 type="String"/>
>>                 </repeaternode>
>>             </repeater>
>>         </root>
>>       </xforms:instance>
>>     </xforms:model>
>>   </xhtml:head>
>>   <xhtml:body>
>>     <xhtml:table id="maintable" border="0" cellpadding="5"
>>     cellspacing="5" width="100%">
>>       <xhtml:tbody>
>>         <xhtml:tr>
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y">
>>               <xforms:input id="oip_0" ref="/root/node1">
>>                 <xforms:help ref="@help" />
>>                 <xforms:hint ref="@hint" />
>>                 <xforms:alert ref="@alert" />
>>               </xforms:input>
>>           </xhtml:td>
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>         </xhtml:tr>
>>         <xhtml:tr>
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>         </xhtml:tr>
>>         <xhtml:tr>
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y">
>>             <xhtml:table class="repeaterControl">
>>               <xhtml:thead>
>>                 <xhtml:tr>
>>                   <xhtml:th>Node 2</xhtml:th>
>>                   <xhtml:th>Node 3</xhtml:th>
>>                   <xhtml:th></xhtml:th>
>>                 </xhtml:tr>
>>               </xhtml:thead>
>>               <xhtml:tbody>
>>                 <xforms:repeat
>> nodeset="/root/repeater/repeaternode[position() &lt; last()]" id="oip_1">
>>                   <xhtml:tr>
>>                     <xhtml:td>
>>                         <xforms:input id="oip_2" ref="node2">
>>                           <xforms:help ref="@help" />
>>                           <xforms:hint ref="@hint" />
>>                           <xforms:alert ref="@alert" />
>>                         </xforms:input>
>>                     </xhtml:td>
>>                     <xhtml:td>
>>                         <xforms:input id="oip_3" ref="node3">
>>                           <xforms:help ref="@help" />
>>                           <xforms:hint ref="@hint" />
>>                           <xforms:alert ref="@alert" />
>>                         </xforms:input>
>>                     </xhtml:td>
>>                     <xhtml:td>
>>                       <xforms:trigger>
>>                         <xforms:label>Delete</xforms:label>
>>                         <xforms:action ev:event="DOMActivate">
>>                           <xforms:delete
>> nodeset="/root/repeater/repeaternode" at="index('oip_1')" />
>>                         </xforms:action>
>>                       </xforms:trigger>
>>                     </xhtml:td>
>>                   </xhtml:tr>
>>                 </xforms:repeat>
>>                   <xhtml:tr>
>>                     <xhtml:td align="right" colspan="3">
>>                       <xforms:trigger>
>>                         <xforms:label>Insert</xforms:label>
>>                         <xforms:action ev:event="DOMActivate">
>>                           <xforms:insert
>> nodeset="/root/repeater/repeaternode" at="last()" position="after" />
>>                         </xforms:action>
>>                       </xforms:trigger>
>>                     </xhtml:td>
>>                   </xhtml:tr>
>>               </xhtml:tbody>
>>             </xhtml:table>
>>           </xhtml:td>
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>           <xhtml:td class="formsColumnX formsRowY formsCellX_Y" />
>>         </xhtml:tr>
>>       </xhtml:tbody>
>>     </xhtml:table>
>>   </xhtml:body>
>> </xhtml:html>
>>
>>
>> ------------------------------------------------------------------------
>>
>>
>> --
>> 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
>> ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
>
>
>
> ------------------------------------------------------------------------
>
>
> --
> 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
> ObjectWeb mailing lists service home page: http://www.objectweb.org/wws

--
Orbeon - XForms Everywhere:
http://www.orbeon.com/blog/



--
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
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws