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
predicatesString array property to the autocomplete widget node - Add a
displayPropertyString property to the autocomplete widget node - Add a
datasourcenode to the autocomplete widget node. - Add an
optionsnode 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/homepagewhich 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>