Instantly share code, notes, and snippets.
Created
May 6, 2014 20:02
-
Star
(0)
0
You must be signed in to star a gist -
Fork
(0)
0
You must be signed in to fork a gist
-
Save dmccreary/da639f8ce5bee4dcee98 to your computer and use it in GitHub Desktop.
Orbeon column label hidden within control working with multiple alerts and error summay
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fr="http://orbeon.org/oxf/xml/form-runner" xmlns:xf="http://www.w3.org/2002/xforms"> | |
<head> | |
<title>XForms demo of label within table headers</title> | |
<xf:model> | |
<xf:instance xmlns="" id="save-data"> | |
<data> | |
<row> | |
<integer1>1</integer1> | |
<integer2>2</integer2> | |
<integer3>3</integer3> | |
</row> | |
<row> | |
<integer1/> | |
<integer2/> | |
<integer3/> | |
</row> | |
<row> | |
<integer1/> | |
<integer2/> | |
<integer3/> | |
</row> | |
</data> | |
</xf:instance> | |
<xf:bind id="required" ref="row/*" required="true()"/> | |
<xf:bind id="integer" ref="row/*" type="xf:integer"/> | |
<xf:bind id="one-or-more" ref="row/*" constraint="if (. castable as xs:integer) then xs:integer(.) ge 1 else true()"/> | |
<xf:bind id="ten-or-less" ref="row/*" constraint="if (. castable as xs:integer) then xs:integer(.) le 10 else true()"/> | |
</xf:model> | |
<style type="text/css"> | |
/* don't show the labels in-form */ | |
.hidden {display:none!important;} | |
.orbeon table thead tr th {background:silver; color:white; text-align:center!important;font-weight:bold!important;} | |
.orbeon .xforms-type-integer {text-align:right!important;} | |
.orbeon .xforms-control .xforms-input-input {width:5ex;} | |
/* don't show initial alerts until after visited */ | |
.orbeon .xforms-control .xforms-alert {display: none;} | |
.xforms-control.xforms-invalid.xforms-visited .xforms-alert {display: inline-block;} | |
</style> | |
</head> | |
<body> | |
<div class="container span5"> | |
Enter an integer from 1 to 10 in each table cell. | |
The links in the error summary should display the column number and the link should move you to the right cell. | |
<xf:group id="my-group"> | |
<table class="table table-striped table-bordered table-condensed"> | |
<thead> | |
<tr> | |
<th> | |
# | |
</th> | |
<th> | |
Column 1 | |
</th> | |
<th> | |
Column 2 | |
</th> | |
<th> | |
Column 3 | |
</th> | |
<th> | |
Add | |
</th> | |
<th> | |
Remove | |
</th> | |
</tr> | |
</thead> | |
<tbody> | |
<xf:repeat nodeset="instance('save-data')/row" id="repeat-1"> | |
<tr> | |
<td> | |
<xf:output value="position()"/> | |
</td> | |
<td> | |
<xf:input ref="integer1" id="integer1"> | |
<xf:label class="hidden">Column 1</xf:label> | |
<xf:alert validation="required">Required</xf:alert> | |
<xf:alert validation="integer">Must be a valid integer</xf:alert> | |
<xf:alert validation="one-or-more">Must be 1 or larger</xf:alert> | |
<xf:alert validation="ten-or-less">Must be 10 or smaller</xf:alert> | |
</xf:input> | |
</td> | |
<td> | |
<xf:input ref="integer2" id="integer2">> | |
<xf:label class="hidden">Column 2</xf:label> | |
<xf:alert validation="required">Required</xf:alert> | |
<xf:alert validation="integer">Must be a valid integer</xf:alert> | |
<xf:alert validation="one-or-more">Must be 1 or larger</xf:alert> | |
<xf:alert validation="ten-or-less">Must be 10 or smaller</xf:alert> | |
</xf:input> | |
</td> | |
<td> | |
<xf:input ref="integer3" id="integer3"> | |
<xf:label class="hidden">Column 3</xf:label> | |
<xf:alert validation="required">Required</xf:alert> | |
<xf:alert validation="integer">Must be a valid integer</xf:alert> | |
<xf:alert validation="one-or-more">Must be 1 or larger</xf:alert> | |
<xf:alert validation="ten-or-less">Must be 10 or smaller</xf:alert> | |
</xf:input> | |
</td> | |
<td> | |
<xf:trigger> | |
<xf:label>Add</xf:label> | |
<xf:insert ref="." ev:event="DOMActivate"/> | |
</xf:trigger> | |
</td> | |
<td> | |
<xf:trigger> | |
<xf:label>Delete</xf:label> | |
<xf:delete ref="." ev:event="DOMActivate"/> | |
</xf:trigger> | |
</td> | |
</tr> | |
</xf:repeat> | |
</tbody> | |
</table> | |
</xf:group> | |
<fr:error-summary observer="my-group"> | |
<fr:label>Your Form Contains the Following Errors</fr:label> | |
</fr:error-summary> | |
</div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment