Login  Register

Re: Re: how to get the correct item in the model, after sorting in a repeat

Posted by Erik Bruchez on Jan 28, 2011; 1:21am
URL: https://discuss.orbeon.com/how-to-get-the-correct-item-in-the-model-after-sorting-in-a-repeat-tp43833p3243567.html

You don't really explain your issue.

The repeat index is a user-facing notion. So it will be the index after sorting. E.g. 3 items:

<foo>a</foo>
<foo>b</foo>
<foo>c</foo>

sorted in descending order will show in the UI:

c
b
a

If the first row is selected by the user, the index is 1,  not 3.

If you need to know the position of a given element in the instance, you can always count elements, e.g.:

count(preceding-sibling::foo) + 1

-Erik

On Tue, Jan 25, 2011 at 8:48 PM, lakshmipmandava <[hidden email]> wrote:

Similar way i am trying to implementing for edit feature and not working.Not
able to get correct index after sorting using xxforms:sort or exsort

suggest how do i go about to fix issue

 <xhtml:table width="99%">
                                       <xhtml:tr>
                                           <th width="10%"
class="datatable_th_xforms">Date</th>
                                           <th width="12%"
class="datatable_th_xforms">Doctor Name</th>
                                           <th width="17%"
class="datatable_th_xforms">Complaint</th>
                                           <th width="30%"
class="datatable_th_xforms">Prescribed Medicines<br/>
                                                   (Name|Dosage|days)</th>
                                           <th width="20%"
class="datatable_th_xforms">Prescribed Tests</th>
                                           <th width="15%"
class="datatable_th_xforms">Action</th>
                                      </xhtml:tr>
                                       <xxforms:variable name="sorted-nodeset"
select="exf:sort(instance('clinicalExamniationInstance')/consls/consl,'ConslDate','text')"/>
                                       <xforms:repeat id="consultation" model="clinicalExaminationModel"
                                                                               nodeset="$sorted-nodeset">
                                       <tr>
                                           <td width="10%"
class="datatable_td_xforms">
                                               <xforms:output model="clinicalExaminationModel"
ref="ConslDate"/></td>
                                           <td width="12%"
class="datatable_td_xforms"><xforms:output model="clinicalExaminationModel"
ref="Doc" /></td>
                                           <td width="17%"
class="datatable_td_xforms">
                                              <xforms:output
model="clinicalExaminationModel" ref="HP" class="item-amount" />
                                           </td>
                                           <td width="30%"
class="datatable_td_xforms">
                                                 <table width="100%">
                                                   <xforms:repeat model="clinicalExaminationModel"
nodeset="Medicines/Medicine">
                                                       <tr>
                                                         <td width="50%">
                                                           <xforms:output model="clinicalExaminationModel" ref="Name"
class="item-amount" />
                                                         </td>
                                                         <td width="20%">
                                                           <xforms:output model="clinicalExaminationModel" ref="Dosage"
class="item-amount" />
                                                         </td>
                                                         <td width="20%">
                                                           <xforms:output model="clinicalExaminationModel" ref="Duration"
class="item-amount" />
                                                         </td>
                                                       </tr>
                                                   </xforms:repeat>
                                                </table>
                                           </td>
                                           <td width="20%"
class="datatable_td_xforms">
                                               <xforms:repeat
model="clinicalExaminationModel" nodeset="Tests/test">
                                                   <table width="100%">
                                                       <tr>
                                                           <td>
                                                             <xforms:output model="clinicalExaminationModel" ref="@name"
class="item-amount" />
                                                           </td>
                                                       </tr>
                                                     </table>
                                               </xforms:repeat>
                                           </td>
                                           <td width="15%"
class="datatable_td_xforms">
                                               <xforms:trigger
appearance="minimal">
                                                   <xforms:label><xhtml:img
src="/media/icons/document_edit.png" width="20px" alt="Edit" title="Edit
Consultation"/></xforms:label>
                                                   <xforms:toggle
case="c022" ev:event="DOMActivate" />
                                                   <xforms:action
ev:event="DOMActivate">

                                                       <xforms:setvalue
ref="/lists/list[index('list')]/todo[index('todo')]/@ui:mode"
value="'edit'"/>
                                                       <xforms:setvalue
ref="instance('consl-num')/consl" value="index('consultation')" />
                                                       <xforms:setvalue
ref="instance('consultation-index')/@val" value="index('consultation')" />
                                                       <xforms:toggle
case="case-3" />
                                                   </xforms:action>
                                               </xforms:trigger>

                                               <xforms:trigger
appearance="minimal">
                                                   <xforms:label><xhtml:img
src="/media/img/lab.png" width="18px" alt="Test Results" title="Test
Results"/></xforms:label>
                                                   <xforms:action ev:event="DOMActivate">
                                                               <xforms:setvalue ref="instance('consl-num')/consl"
value="index('consultation')"/>

                                                               <xforms:setvalue ref="instance('url-container1')"
value="concat('/${pageContext.request.contextPath}/strts/crmsPage?department=rheumatology&pageName=lab.jsp&cardId=<%=
request.getParameter("cardId") %>', instance('user-name'))"/>
                                                               <xforms:setvalue ref="instance('url-container1')"
value="concat(instance('url-container1'), '&conslDate=')"/>
                                                               <xforms:setvalue ref="instance('url-container1')"
value="concat(instance('url-container1'),
instance('clinicalExamniationInstance')/consls/consl[number(instance('consl-num')/consl)]/ConslDate)"/>
                                                               <xforms:load ref="instance('url-container1')" show="replace"
ev:event="DOMActivate"/>

                                                   </xforms:action>
                                               </xforms:trigger>
                                              <!-- <xforms:trigger
appearance="minimal">

<xforms:label>FollowUps</xforms:label>
                                                   <xforms:toggle
case="c022" ev:event="DOMActivate" />
                                                   <xforms:action
ev:event="DOMActivate">
                                                       <xforms:setvalue
ref="instance('consl-num')/consl"       value="index('consultation')" />
                                                       <xforms:setvalue
ref="instance('url-container1')" value="concat('?q=followup_details/',
instance('user-name'))" />
                                                       <xforms:setvalue
ref="instance('url-container1')" value="concat(instance('url-container1'),
'/')" />
                                                       <xforms:setvalue
ref="instance('url-container1')" value="concat(instance('url-container1'),
instance('clinicalExamniationInstance')/consls/consl[number(instance('consl-num')/consl)]/ConslDate)"
/>
                                                       <xforms:send
submission="s111"/>
                                                   </xforms:action>
                                               </xforms:trigger>-->
                                                                                       <xforms:setvalue ref="@modified"
value="seconds-from-dateTime(now())" ev:event="xforms-value-changed" />
                                             </td>
                                                                         </tr>
                                                                   </xforms:repeat>

                                 </xhtml:table>
--
View this message in context: http://orbeon-forms-ops-users.24843.n4.nabble.com/how-to-get-the-correct-item-in-the-model-after-sorting-in-a-repeat-tp43833p3237457.html
Sent from the Orbeon Forms (ops-users) mailing list archive at Nabble.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




--
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