orbeon - Is it possible in orben to hide or disable the "send" button until a form is finished? -
the default behavior of button enabled always, , if field mandatory or incorrect, error shown.
but if use wizard, , have fill different sections, not normal submit form if still @ beginning of form. must navigate sections fill questions (at least mandatory ones) until reach last section. when in last section, can submit form. @ least, force user read form.
i know little annoying behaviour, specially user no experience orbeon, inclined press button when have finished first section.
then question is: there way of hide or disable "send" button until last section reached?
edit
as shown in documentation page new version 2016.1 of orbeon hides "submit" button. @ least, text shown:
wizard improvements. wizard's table of contents indicates pages errors more clearly. in validated mode, pages cannot navigated indicated better. last not least, in validated mode, save, submit, send, , other buttons appear within wizard show when user reaches last page of wizard. finally, made few cosmetic improvements well.
i trying new feature enabling validation mode, in properties file:
<!-- configure wizard layout --> <property as="xs:string" name="oxf.fr.detail.view.appearance.*.*" value="wizard"/> <property as="xs:boolean" name="oxf.xforms.xbl.fr.wizard.validate.*.*" value="true"/>
and have created simple form using form builder:
<xh:html xmlns:xh="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:xs="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xi="http://www.w3.org/2001/xinclude" xmlns:xxi="http://orbeon.org/oxf/xml/xinclude" xmlns:xxf="http://orbeon.org/oxf/xml/xforms" xmlns:exf="http://www.exforms.org/exf/1-0" xmlns:fr="http://orbeon.org/oxf/xml/form-runner" xmlns:saxon="http://saxon.sf.net/" xmlns:sql="http://orbeon.org/oxf/xml/sql" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fb="http://orbeon.org/oxf/xml/form-builder"> <xh:head> <xh:title>wizard test</xh:title> <xf:model id="fr-form-model" xxf:expose-xpath-types="true"> <!-- main instance --> <xf:instance id="fr-form-instance" xxf:exclude-result-prefixes="#all" xxf:index="id"> <form> <section-1> <control-2/> <control-3/> </section-1> <section-4> <control-5/> <control-6/> </section-4> <section-7> <control-8/> </section-7> </form> </xf:instance> <!-- bindings --> <xf:bind id="fr-form-binds" ref="instance('fr-form-instance')"> <xf:bind id="section-1-bind" name="section-1" ref="section-1"> <xf:bind id="control-2-bind" ref="control-2" name="control-2" required="true()"/> <xf:bind id="control-3-bind" ref="control-3" name="control-3"/> </xf:bind> <xf:bind id="section-4-bind" ref="section-4" name="section-4"> <xf:bind id="control-5-bind" ref="control-5" name="control-5" required="true()"/> <xf:bind id="control-6-bind" ref="control-6" name="control-6"/> </xf:bind> <xf:bind id="section-7-bind" ref="section-7" name="section-7"> <xf:bind id="control-8-bind" ref="control-8" name="control-8" type="xs:boolean" required="true()"/> </xf:bind> </xf:bind> <!-- metadata --> <xf:instance xxf:readonly="true" id="fr-form-metadata" xxf:exclude-result-prefixes="#all"> <metadata> <application-name>wizardtest</application-name> <form-name>wizardtest</form-name> <title xml:lang="en">wizard test</title> <description xml:lang="en"/> <singleton>false</singleton> </metadata> </xf:instance> <!-- attachments --> <xf:instance id="fr-form-attachments" xxf:exclude-result-prefixes="#all"> <attachments> <css mediatype="text/css" filename="" size=""/> <pdf mediatype="application/pdf" filename="" size=""/> </attachments> </xf:instance> <!-- form resources --> <xf:instance xxf:readonly="true" id="fr-form-resources" xxf:exclude-result-prefixes="#all"> <resources> <resource xml:lang="en"> <control-8> <label>yes or no?</label> <hint/> </control-8> <control-5> <label>radio button other</label> <hint/> <item> <label>first choice</label> <value>1</value> <hint/> </item> <item> <label>second choice</label> <value>2</value> <hint/> </item> <item> <label>third choice</label> <value>3</value> <hint/> </item> </control-5> <control-6> <label>select</label> <hint/> <item> <label>first choice</label> <value>1</value> </item> <item> <label>second choice</label> <value>2</value> </item> <item> <label>third choice</label> <value>3</value> </item> </control-6> <control-2> <label>radio button</label> <hint/> <item> <label>first choice</label> <value>1</value> <hint/> </item> <item> <label>second choice</label> <value>2</value> <hint/> </item> <item> <label>third choice</label> <value>3</value> <hint/> </item> </control-2> <control-3> <label>radio button other</label> <hint/> <item> <label>first choice</label> <value>1</value> <hint/> </item> <item> <label>second choice</label> <value>2</value> <hint/> </item> <item> <label>third choice</label> <value>3</value> <hint/> </item> </control-3> <section-1> <label>untitled section</label> </section-1> <section-4> <label>section2</label> <help/> </section-4> <section-7> <label>section3</label> <help/> </section-7> </resource> </resources> </xf:instance> <!-- utility instances services --> <xf:instance id="fr-service-request-instance" xxf:exclude-result-prefixes="#all"> <request/> </xf:instance> <xf:instance id="fr-service-response-instance" xxf:exclude-result-prefixes="#all"> <response/> </xf:instance> </xf:model> </xh:head> <xh:body> <fr:view> <fr:body xmlns:xbl="http://www.w3.org/ns/xbl" xmlns:p="http://www.orbeon.com/oxf/pipeline" xmlns:oxf="http://www.orbeon.com/oxf/processors"> <fr:section id="section-1-control" bind="section-1-bind"> <xf:label ref="$form-resources/section-1/label"/> <fr:grid> <xh:tr> <xh:td> <xf:select1 id="control-2-control" appearance="full" bind="control-2-bind"> <xf:label ref="$form-resources/control-2/label"/> <xf:hint ref="$form-resources/control-2/hint"/> <xf:alert ref="$fr-resources/detail/labels/alert"/> <xf:itemset ref="$form-resources/control-2/item"> <xf:label ref="label"/> <xf:value ref="value"/> <xf:hint ref="hint"/> </xf:itemset> </xf:select1> </xh:td> </xh:tr> <xh:tr> <xh:td> <fr:open-select1 xmlns:xxbl="http://orbeon.org/oxf/xml/xbl" id="control-3-control" bind="control-3-bind"> <xf:label ref="$form-resources/control-3/label"/> <xf:hint ref="$form-resources/control-3/hint"/> <xf:alert ref="$fr-resources/detail/labels/alert"/> <xf:itemset ref="$form-resources/control-3/item"> <xf:label ref="label"/> <xf:value ref="value"/> <xf:hint ref="hint"/> </xf:itemset> </fr:open-select1> </xh:td> </xh:tr> </fr:grid> </fr:section> <fr:section id="section-4-control" bind="section-4-bind"> <xf:label ref="$form-resources/section-4/label"/> <fr:grid> <xh:tr> <xh:td> <fr:open-select1 xmlns:xxbl="http://orbeon.org/oxf/xml/xbl" id="control-5-control" bind="control-5-bind"> <xf:label ref="$form-resources/control-5/label"/> <xf:hint ref="$form-resources/control-5/hint"/> <xf:alert ref="$fr-resources/detail/labels/alert"/> <xf:itemset ref="$form-resources/control-5/item"> <xf:label ref="label"/> <xf:value ref="value"/> <xf:hint ref="hint"/> </xf:itemset> </fr:open-select1> </xh:td> </xh:tr> <xh:tr> <xh:td> <fr:box-select xmlns="http://orbeon.org/oxf/xml/form-builder" xmlns:xxbl="http://orbeon.org/oxf/xml/xbl" xmlns:xsl="http://www.w3.org/1999/xsl/transform" id="control-6-control" bind="control-6-bind"> <xf:label ref="$form-resources/control-6/label"/> <xf:hint ref="$form-resources/control-6/hint"/> <xf:alert ref="$fr-resources/detail/labels/alert"/> <xf:itemset ref="$form-resources/control-6/item"> <xf:label ref="label"/> <xf:value ref="value"/> </xf:itemset> </fr:box-select> </xh:td> </xh:tr> </fr:grid> </fr:section> <fr:section id="section-7-control" bind="section-7-bind"> <xf:label ref="$form-resources/section-7/label"/> <fr:grid> <xh:tr> <xh:td> <fr:yesno-input xmlns="http://orbeon.org/oxf/xml/form-builder" xmlns:xxbl="http://orbeon.org/oxf/xml/xbl" id="control-8-control" bind="control-8-bind"> <xf:label ref="$form-resources/control-8/label"/> <xf:hint ref="$form-resources/control-8/hint"/> <xf:alert ref="$fr-resources/detail/labels/alert"/> </fr:yesno-input> </xh:td> </xh:tr> </fr:grid> </fr:section> </fr:body> </fr:view> </xh:body> </xh:html>
i expect then, in example, submit button hidden , appears in last section, when other sections filled up. cannot see submit button when reach end of form.
i have tried enabling set of buttons adding line properties file:
<property as="xs:string" name="oxf.fr.detail.buttons.*.*" value="wizard-prev wizard-next submit"/>
but "submit" button in case visible.
is there have skipped?
yes, make lot of sense. unfortunately, of writing isn't possible. however, on bright side, 1 of "top rfe" product, think there chance implemented "soon". if you'd notified when there new this, can subscribe issue #940: better way control buttons visibility/readonlyness.
Comments
Post a Comment