Orbeon Forms
Search…
Extensions

Extension actions

The <xxf:setvisited> action

The <xxf:setvisited> action allows updating the "visited" flag of a control. It has the following attributes:
  • control: id of the initial control to update
  • visited: if true, mark the control(s) as visited, otherwise as not visited
  • recurse: if true, 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

[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 selected
  • my-outer-case-2 is deselected
  • my-inner-case-1 is selected
  • my-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 selected
  • my-outer-case-2 remains deselected
  • my-inner-case-1 is newly deselected
  • my-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 deselected
  • my-outer-case-2 is newly selected
  • my-inner-case-1 is newly deselected
  • my-inner-case-2 is newly selected

See also