You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Joshua Schairbaum <si...@gmail.com> on 2005/06/13 22:55:07 UTC

Continuations in Forms sample

<p>I'm having difficulty using Flowscript with CForms.&nbsp; I've modified the cforms with flowscript sample and cannot get it to work.&nbsp; In the forms blocks samples, I'm attempting to add repeater widgets to the tabs using flowscript.&nbsp; I'm trying to add a contact list to each tab.&nbsp; I've modified the form definition to include the 2 extra examples of the contact list. There are 2 problems that I'm having, and cannot find documentation on the mailing lists or wiki.</p> <p>&nbsp;1.&nbsp; Extra text is diplaying between the &lt;body&gt; tag and &lt;h2&gt; tag.&nbsp; The text is an unformatted plain text representation of all my labels from the form. I have not modified the stylesheets in any manner, but that appear to be where the problem lies.<br /> </p> <p>2.&nbsp; I receive this error when I attempt to add/remove a row: No function nor continuation given in &lt;map:call function&gt;...&nbsp; I've cut down on some of the validation in the definition and template!
  files, but I can't see where I've cut out anything pertinent to continuations.</p> <p>&nbsp;</p> <p>Specifically, I don't understand the section of the sitemap where it talks about starting a flowscript scenario. &nbsp; How do I access the continuation?&nbsp; I see that it's part of the Flow Object Model, but I'm unsure how it gets created.<br /> </p>   <p>&nbsp;Any help would be greatly appreciated.&nbsp; Sorry this email is so long.&nbsp; I've included my definition file, template file, jscript file and relevant sitemap portions.</p> <p>&nbsp;</p> <p>*---------Relevant Sitemap.xmap---------*</p> <p>&nbsp;&lt;!--Edit Supervisors--&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;map:pipeline&gt;<br /> &nbsp;&nbsp; &nbsp;&lt;map:match pattern=&quot;admin/sups/edit&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:call function=&quot;handleForm&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:parameter name=&quot;function&quot; value=&quot;edi!
 tsup&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs!
 p;&nbsp;
&nbsp; &lt;map:parameter name=&quot;form-definition&quot; value=&quot;content/forms/definitions/defn_supervisor.xml&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/map:call&gt;<br /> &nbsp;&nbsp; &nbsp;&lt;/map:match&gt;<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Start a flowscript scenario --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;map:match pattern=&quot;*/**do-*.flow&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:call function=&quot;do_{1}&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;/map:match&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Continue a scenario. The continuation id is passed in the URL<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (typically used for GET requests) --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;map:match pattern=&quot;*/**.continue&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:call continuation=&quot;{1}&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;/map:match&gt;<br /> <br /> &nbsp;&n!
 bsp;&nbsp;&nbsp; &lt;!-- Continue a scenario. The continuation id is passed as a request<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameter (typically used for POST request) --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;map:match pattern=&quot;*/**.continue&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:call continuation=&quot;{request-param:continuation-id}&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;/map:match&gt;<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;map:match pattern=&quot;*-display-pipeline.jx&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:generate type=&quot;jx&quot; src=&quot;content/forms/templates/tmpt_{1}.xml&quot; label=&quot;content1&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:call resource=&quot;simple-page2html&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:parameter name=&quot;file&quot; value=&quot;content/forms/templates/tmpt_{1}.xml&quot;/&gt;<br /> &nbsp;&nbsp;&n!
 bsp;&nbsp;&nbsp;&nbsp; &lt;/map:call&gt;<br /> &nbsp;&nbsp;&nb!
 sp;&nbsp
;&nbsp;&nbsp; &lt;map:transform src=&quot;style/xslt/forms-samples-styling.xsl&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;map:serialize/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &lt;/map:match&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/map:pipeline&gt;<br /> </p> <p>&nbsp;</p> <p>*--------defn_editsups.xml------*</p> <p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;<br /> <br /> &lt;fd:form xmlns:fd=&quot;http://apache.org/cocoon/forms/1.0#definition&quot;&gt;<br /> <br /> &nbsp; &lt;fd:widgets&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;fd:field id=&quot;tab-state&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:datatype base=&quot;string&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:on-value-changed&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;javascript&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.lang.System.err.println(&quot;You're getting there!&quot;);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/java!
 script&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:on-value-changed&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:field&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;fd:repeater id=&quot;salessups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:validation&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- This demonstrates validating a repeater: we check here if all contacts are distinct.<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A repeater cannot itself display a validation error, and therefore sets a validation<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error on a field in the offenting row. --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:javascript&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var list = new java.util.ArrayList();<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var success = true;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Iterate on all ro!
 ws<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp!
 ; for (v
ar i = 0; i &amp;lt; widget.size; i++) {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get the row<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var row = widget.getRow(i);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Compute a key combining the first and last name<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var key = row.lookupWidget(&quot;SupID&quot;).value + &quot;/&quot; + row.lookupWidget(&quot;name&quot;).value;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (list.contains(key)) {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // already in the list<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row.lookupWidget(&quot;name&quot;).setValidationError(new Packages.org.apache.cocoon.forms.validation.ValidationError(&quot;Duplicate supervisor name&quot;, f!
 alse));<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success = false;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; // no need to continue<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Add the current row's key to the list<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list.add(key);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Must return true/false<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return success;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:javascript&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:validation&gt;<br !
 /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:widgets&gt;<br /> &nb!
 sp;&nbsp
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:field id=&quot;SupID&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;ID&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:datatype base=&quot;string&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:field&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:field id=&quot;name&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Name&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:datatype base=&quot;string&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:field&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:booleanfield id=&quot;select&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Select&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:booleanfield&gt;<br /> &nbsp;&nbsp;&nb!
 sp;&nbsp;&nbsp; &lt;/fd:widgets&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater&gt;<br /> <br /> &nbsp;&nbsp;&nbsp; &lt;fd:repeater-action id=&quot;addsupsales&quot; command=&quot;add-row&quot; repeater=&quot;salessups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Add supervisor&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater-action&gt;<br /> &nbsp; <br /> &nbsp;&nbsp;&nbsp; &lt;fd:repeater-action id=&quot;removesupervisorsales&quot; command=&quot;delete-rows&quot; repeater=&quot;salessups&quot; select=&quot;select&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Remove selected supervisors&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater-action&gt;<br /> <br /> &nbsp;&nbsp;&nbsp; &lt;fd:repeater id=&quot;hlasups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:validation&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- This demonstrates validating a repeater: we check here if all contacts are distinct.<br /!
 > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!
  A repea
ter cannot itself display a validation error, and therefore sets a validation<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error on a field in the offenting row. --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:javascript&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var list = new java.util.ArrayList();<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var success = true;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Iterate on all rows<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var i = 0; i &amp;lt; widget.size; i++) {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get the row<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var row = widget.getRow(i);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Compute a key combining the first and last name<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var key = row.lookupWidget(&quot;firstname&quot;).value + &quot;/&quot; + row.lookupWidget(&quot;lastname&quot;).value;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (list.contains(key)) {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // already in the list<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row.lookupWidget(&quot;firstname&quot;).setValidationError(new Packages.org.apache.cocoon.forms.validation.ValidationError(&quot;Duplicate contact name&quot;, false));<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success = false;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; // no need to continue<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Add the c!
 urrent row's key to the list<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nb!
 sp;&nbsp
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list.add(key);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Must return true/false<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return success;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:javascript&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:validation&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:widgets&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:field id=&quot;SupID&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;ID&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:datatype base=&quot;string&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:field&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs!
 p; &lt;fd:field id=&quot;name&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Name&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:datatype base=&quot;string&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:field&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:booleanfield id=&quot;select&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Select&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:booleanfield&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:widgets&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater&gt;<br /> <br /> &nbsp;&nbsp;&nbsp; &lt;fd:repeater-action id=&quot;addsuphla&quot; command=&quot;add-row&quot; repeater=&quot;hlasups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Add supervisor&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater-action&gt;<br /> &nbsp; <br /> &nbs!
 p;&nbsp;&nbsp; &lt;fd:repeater-action id=&quot;removesuperviso!
 rhla&quo
t; command=&quot;delete-rows&quot; repeater=&quot;hlasups&quot; select=&quot;select&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Remove selected supervisors&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater-action&gt;<br /> <br /> &lt;fd:repeater id=&quot;closersups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:validation&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- This demonstrates validating a repeater: we check here if all contacts are distinct.<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A repeater cannot itself display a validation error, and therefore sets a validation<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error on a field in the offenting row. --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:javascript&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var list = new java.util.ArrayList();<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&!
 nbsp;&nbsp; var success = true;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Iterate on all rows<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var i = 0; i &amp;lt; widget.size; i++) {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get the row<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var row = widget.getRow(i);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Compute a key combining the first and last name<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var key = row.lookupWidget(&quot;firstname&quot;).value + &quot;/&quot; + row.lookupWidget(&quot;lastname&quot;).value;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (list.contains(key)) {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // already in the list<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb!
 sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row.lookupWidget(&quot;first!
 name&quo
t;).setValidationError(new Packages.org.apache.cocoon.forms.validation.ValidationError(&quot;Duplicate contact name&quot;, false));<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success = false;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; // no need to continue<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Add the current row's key to the list<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list.add(key);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Must return true/false<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return success;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;!
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:javascript&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:validation&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:widgets&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:field id=&quot;SupID&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;ID&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:datatype base=&quot;string&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:field&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:field id=&quot;name&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Name&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:datatype base=&quot;string&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:field&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:booleanfield id=&quot;select&quot;&gt;<br!
  /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt!
 ;fd:labe
l&gt;Select&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:booleanfield&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fd:widgets&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater&gt;<br /> <br /> &nbsp; <br /> &nbsp;&nbsp;&nbsp; &lt;fd:repeater-action id=&quot;addsupcloser&quot; command=&quot;add-row&quot; repeater=&quot;closersups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Add supervisor&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater-action&gt;<br /> &nbsp; <br /> &nbsp;&nbsp;&nbsp; &lt;fd:repeater-action id=&quot;removesupervisorcloser&quot; command=&quot;delete-rows&quot; repeater=&quot;closersups&quot; select=&quot;select&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fd:label&gt;Remove selected supervisors&lt;/fd:label&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/fd:repeater-action&gt;<br /> &nbsp; &lt;/fd:widgets&gt;<br /> <br /> &lt;/fd:form&gt;</p> <p>&nbsp;</p> <p>*----------temp_editsups.xml---------*</p> <p>&nbsp;&lt!
 ;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;<br /> <br /> &lt;page xmlns:ft=&quot;http://apache.org/cocoon/forms/1.0#template&quot;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:fi=&quot;http://apache.org/cocoon/forms/1.0#instance&quot;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:jx=&quot;http://apache.org/cocoon/templates/jx/1.0&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br /> &nbsp; &lt;!-- Import the macros that define CForms template elements --&gt;<br /> &nbsp; &lt;jx:import uri=&quot;resource://org/apache/cocoon/forms/generation/jx-macros.xml&quot;/&gt;<br /> &nbsp; <br /> &nbsp; &lt;title&gt;Supervisors Administration Form&lt;/title&gt;<br /> &nbsp; &lt;content&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;!--&lt;ft:form-template action=&quot;editsups&quot; method=&quot;POST&quot;&gt;--&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;ft:form-template action=&quot;#{$cocoon/continuation/id}.continue&quot; method=&quot;POST&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div!
  style=&quot;width: 90%; margin: 10px 50px 50px 50px;&quot;&gt!
 ;<br /> 
<br /> &nbsp;&nbsp; &nbsp;&lt;!-- grouping supervisor lists, one for each team --&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp; &lt;fi:group&gt;<br /> <br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;fi:styling type=&quot;choice&quot;/&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;fi:label&gt;Select a team: &lt;/fi:label&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;fi:state&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget id=&quot;tab-state&quot;/&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fi:state&gt;<br /> <br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;fi:items&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fi:group name=&quot;salessups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;fi:label&gt;Sales&lt;/fi:label&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fi:styling layout=&quot;columns&quot;/&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;fi:items&!
 gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget-label id=&quot;salessups&quot;/&gt;&lt;br/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;ft:repeater-size id=&quot;salessups&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;table border=&quot;1&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeater-widget-label id=&quot;salessups&quot; widget-id=&quot;SupID&quot;/&gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeater-widget-label id=&quot;salessups&quot; widget-id=&quot;name&quot;/&gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;!
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeate!
 r-widget
-label id=&quot;salessups&quot; widget-id=&quot;select&quot;/&gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:choose&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:when test=&quot;${widget.getChild('salessups').getSize() == 0}&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;&lt;td colspan=&quot;6&quot; align=&quot;center&quot;&gt;&lt;em&gt;There are no Sales supervisors to display&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:when&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:otherwis!
 e&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The contents of the repeater-widget element is a template that will<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; be applied to each row in the repeater. --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:repeater-widget id=&quot;salessups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;ft:widget id=&quot;SupID&quot;/&gt;&lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbs!
 p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&!
 lt;ft:wi
dget id=&quot;name&quot;/&gt;&lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;ft:widget id=&quot;select&quot;/&gt;&lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ft:repeater-widget&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:otherwise&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:choose&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp!
 ; &lt;td colspan=&quot;6&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget id=&quot;addsupsales&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:if test=&quot;${widget.getChild('salessups').getSize() &gt; 0}&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget id=&quot;removesupervisorsales&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:if&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br /> &nbsp;&nbsp;!
 &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp!
 ;&nbsp;&
nbsp; &lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;/table&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;input type=&quot;submit&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fi:items&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fi:group&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fi:items&gt;<br /> <br /> &lt;fi:items&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fi:group name=&quot;hlasups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;fi:label&gt;HLAs&lt;/fi:label&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fi:styling layout=&quot;columns&quot;/&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;fi:items&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget-label id=&quot;hlasups&quot;/&gt;&lt;br/&!
 gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;ft:repeater-size id=&quot;hlasups&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;table border=&quot;1&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeater-widget-label id=&quot;hlasups&quot; widget-id=&quot;SupID&quot;/&gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeater-widget-label id=&quot;hlasups&quot; widget-id=&quot;name&quot;/&gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeater-widget-label id=&quot;hlasups&quot; widget-id=&quot;select&quot;/&!
 gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbs!
 p; &nbsp
;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:choose&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:when test=&quot;${widget.getChild('hlasups').getSize() == 0}&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;&lt;td colspan=&quot;6&quot; align=&quot;center&quot;&gt;&lt;em&gt;There are no HLA supervisors to display&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:when&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:otherwise&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The contents of !
 the repeater-widget element is a template that will<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; be applied to each row in the repeater. --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:repeater-widget id=&quot;hlasups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;ft:widget id=&quot;SupID&quot;/&gt;&lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;ft:widget id=&quot;name&quot;/&gt;&lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nb!
 sp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&n!
 bsp;&nbs
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;ft:widget id=&quot;select&quot;/&gt;&lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ft:repeater-widget&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:otherwise&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:choose&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td colspan=&quot;6&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs!
 p;&nbsp;&nbsp; &lt;ft:widget id=&quot;addsuphla&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:if test=&quot;${widget.getChild('hlasups').getSize() &gt; 0}&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget id=&quot;removesupervisorhla&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:if&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;!
 &nbsp;&nbsp; &nbsp;&nbsp; &lt;/table&gt;<br /> &nbsp;&nbsp;&nb!
 sp;&nbsp
; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;input type=&quot;submit&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fi:items&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fi:group&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fi:items&gt;<br /> <br /> &lt;fi:items&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fi:group name=&quot;closersups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;fi:label&gt;Closers&lt;/fi:label&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fi:styling layout=&quot;columns&quot;/&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;fi:items&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget-label id=&quot;closersups&quot;/&gt;&lt;br/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;ft:repeater-size id=&quot;closersup!
 s&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;table border=&quot;1&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeater-widget-label id=&quot;closersups&quot; widget-id=&quot;SupID&quot;/&gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeater-widget-label id=&quot;closersups&quot; widget-id=&quot;name&quot;/&gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;&lt;ft:repeater-widget-label id=&quot;closersups&quot; widget-id=&quot;select&quot;/&gt;&lt;/th&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br!
  /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&n!
 bsp; &nb
sp;&nbsp;&nbsp;&nbsp; &lt;jx:choose&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:when test=&quot;${widget.getChild('closersups').getSize() == 0}&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;&lt;td colspan=&quot;6&quot; align=&quot;center&quot;&gt;&lt;em&gt;There are no Closer supervisors to display&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:when&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:otherwise&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The contents of the repeater-widget element is a template that will<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nb!
 sp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; be applied to each row in the repeater. --&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:repeater-widget id=&quot;closersups&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;ft:widget id=&quot;SupID&quot;/&gt;&lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;ft:widget id=&quot;name&quot;/&gt;&lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!
  &lt;td&gt;&lt;ft:widget id=&quot;select&quot;/&gt;&lt;/td&gt;!
 <br /> &
nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ft:repeater-widget&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:otherwise&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:choose&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td colspan=&quot;6&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget id=&quot;addsupcloser&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &n!
 bsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jx:if test=&quot;${widget.getChild('closersups').getSize() &gt; 0}&quot;&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ft:widget id=&quot;removesupervisorcloser&quot;/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br/&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jx:if&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;/table&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&n!
 bsp; &nbsp;&nbsp; &lt;input type=&quot;submit&quot;/&gt;<br />!
  &nbsp;&
nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fi:items&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fi:group&gt;<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fi:items&gt;<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br /> &nbsp;&nbsp; &nbsp;&nbsp; &lt;/fi:group&gt;<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/ft:form-template&gt;<br /> &nbsp; &lt;/content&gt;<br /> &lt;/page&gt;</p> <p>&nbsp;</p> <p>*----------forms_editsups_flow.js----------*</p> <p><br /> cocoon.load(&quot;resource://org/apache/cocoon/forms/flow/javascript/Form.js&quot;);<br /> <br /> function editsup(form) {<br /> &nbsp;&nbsp;&nbsp; var model = form.getModel();<br /> <br /> &nbsp;&nbsp;&nbsp; model.salessups[0].name = &quot;Jules&quot;;<br /> &nbsp;&nbsp;&nbsp; model.salessups[1].name =&nbsp; &quot;Lucien&quot;;<br /> &nbsp;&nbsp;&nbsp; model.salessups[2].name = &quot;Chris&quot;;<b!
 r /> <br /> &nbsp;&nbsp;&nbsp; form.showForm(&quot;editsup-display-pipeline.jx&quot;);<br /> &nbsp;&nbsp;&nbsp; print(&quot;submitId = &quot; + form.submitId);<br /> <br /> &nbsp;&nbsp;&nbsp; // also store the form as a request attribute as the XSP isn't flow-aware<br /> &nbsp;&nbsp;&nbsp; cocoon.request.setAttribute(&quot;editsup&quot;, form.getWidget());<br /> &nbsp;&nbsp;&nbsp; cocoon.sendPage(&quot;editsup-success-pipeline.xsp&quot;);<br /> } <br /> </p>

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