Query Autocomplete Datasource
Available since version 2.5.0/3.1.0
Purpose
Query autocomplete datasource lets you build your autocomplete list using an XPath query.
How to Use
Component setup
Setup your component dialog and the autocomplete widget described in the documentation here.
- Add a
predicates
String array property to the autocomplete widget node - Add a
displayProperty
String property to the autocomplete widget node - Add a
datasource
node to the autocomplete widget node. - Add an
options
node to the autocomplete widget node.
<autocomplete
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/autocomplete"
fieldLabel="Autcomplete"
name="./autocomplete"
displayProperty="jcr:content/jcr:title"
predicates="[type=cq:Page,path=/content/geometrixx,property=jcr:content/sling:resourceType,property.value=geometrixx/components/homepage]">
<datasource
jcr:primaryType="nt:unstructured"
sling:resourceType="acs-commons/granite/ui/components/form/queryautocomplete/datasource" />
<options
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/autocomplete/list" />
</autocomplete>
Example Dialog
In the example below, the “Autocomplete” node will show results of the query generated by the xpath query.
/jcr:root/content/geometrixx//element(*, cq:Page) [jcr:content/@sling:resourceType = 'geometrixx/components/homepage']
The query is generated from using the predicate map:
type=cq:Page
path=/content/geometrixx
property=jcr:content/sling:resourceType
property.value=geometrixx/components/homepage
which is defined by the “predicates” property on the widget node.
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0" jcr:primaryType="nt:unstructured" jcr:title="List" sling:resourceType="cq/gui/components/authoring/dialog" helpPath="en/cq/current/wcm/default_components.html#List">
<content
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/container">
<layout
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns" margin="{Boolean}false" />
<items
jcr:primaryType="nt:unstructured">
<column
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/container">
<items
jcr:primaryType="nt:unstructured">
<autocomplete
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/autocomplete"
fieldLabel="Autocomplete"
name="./autocomplete"
displayProperty="jcr:content/jcr:title"
predicates="[type=cq:Page,path=/content/geometrixx,property=jcr:content/sling:resourceType,property.value=geometrixx/components/homepage]">
<datasource
jcr:primaryType="nt:unstructured"
sling:resourceType="acs-commons/granite/ui/components/form/queryautocomplete/datasource" />
<options
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/autocomplete/list" />
</autocomplete>
</items>
</column>
</items>
</content>
</jcr:root>