Extensions
Extension actions
The <xxf:setvisited> action
<xxf:setvisited> actionThe <xxf:setvisited> action allows updating the "visited" flag of a control. It has the following attributes:
control: id of the initial control to updatevisited: iftrue, mark the control(s) as visited, otherwise as not visitedrecurse: iftrue, update the given control as well as descendant controls, otherwise update just the specified control
All attributes are AVTs.
Example:
<xxf:setvisited
control="{$control-id}"
visited="true"
recurse="true"/>See also the xxf:visited() function.
Extension attributes
xxf:deferred-updates
The xxf:deferred-updates attribute is supported on the following actions:
<xf:setfocus><xf:setindex><xf:toggle>
By default, as per XForms 1.1, these actions first invoke deferred update behavior.
Setting this attribute to false disables invoking deferred update behavior. This can lead to performance improvements when a large number of such actions run in a sequence.
This attribute is an AVT which allows for dynamic evaluation of the attribute.
Examples:
<xf:setindex
repeat="my-repeat"
index="2"
xxf:deferred-updates="false"/>
<xf:setindex
repeat="my-repeat"
index="2"
xxf:deferred-updates="{count(item) > 0}"/>Option to not toggle ancestors <xf:toggle> controls
<xf:toggle> controls[SINCE Orbeon Forms 2021.1]
With Orbeon Forms, the <xf:toggle> action also causes ancestor <xf:switch> controls, if present, to toggle so that every ancestor <xf:case> is visible.
Orbeon Forms adds an extension attribute, xxf:toggle-ancestors="false", which allows toggling only the given <xf:switch>, even if it is contained within ancestor <xf:switch>/<xf:case> controls that are not visible, without toggling those.
For example, with:
<xf:switch id="my-outer-switch">
<xf:case id="my-outer-case-1"/>
<xf:case id="my-outer-case-2">
<xf:switch id="my-inner-switch">
<xf:case id="my-inner-case-1"/>
<xf:case id="my-inner-case-2"/>
</xf:switch>
</xf:case>
</xf:switch>Assuming, initially:
my-outer-case-1is selectedmy-outer-case-2is deselectedmy-inner-case-1is selectedmy-inner-case-2is deselected
The following action:
<xf:toggle
case="my-inner-case-2"
xxf:toggle-ancestors="false"/>Produces the following result:
my-outer-case-1remains selectedmy-outer-case-2remains deselectedmy-inner-case-1is newly deselectedmy-inner-case-2is newly selected
While the default behavior, with action:
<xf:toggle
case="my-inner-case-2"/>Produces the following result:
my-outer-case-1is newly deselectedmy-outer-case-2is newly selectedmy-inner-case-1is newly deselectedmy-inner-case-2is newly selected
See also XForms 1.1-compatible of switch/case.
See also
Last updated