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-1
is selectedmy-outer-case-2
is deselectedmy-inner-case-1
is selectedmy-inner-case-2
is deselected
The following action:
<xf:toggle
case="my-inner-case-2"
xxf:toggle-ancestors="false"/>
Produces the following result:
my-outer-case-1
remains selectedmy-outer-case-2
remains deselectedmy-inner-case-1
is newly deselectedmy-inner-case-2
is newly selected
While the default behavior, with action:
<xf:toggle
case="my-inner-case-2"/>
Produces the following result:
my-outer-case-1
is newly deselectedmy-outer-case-2
is newly selectedmy-inner-case-1
is newly deselectedmy-inner-case-2
is newly selected
See also XForms 1.1-compatible of switch/case.
See also
Last updated