Index Search Client Configuration
This page describes the Weave configurations required to enable index search UI tools in a standard Weave client.
Adding the index search input box to the client involves adding a new item to the UI called weave.indexcombo
. If we assume that we have a toolbar configured for our client and wish to add the index search box to that toolbar then we'd update the client configuration to something like:
<toolbar>
<item component="weave.indexcombo"/>
</toolbar>
Once we reload the client then the index combo will appear in our user interface and the user could start typing within the input box and will receive a list of the matching entities from the server. Since we have not setup any indexes on the server as yet, nothing will be found. Setting up indexes are covered on the Index Search Server Configuration page.
By default the index combo will only search for entities that match the currently active entity. To have the index search over all entities we can set a flag in the item to tell the client to ask for all matches, and if the user chooses an item that is not the same type as the currently active entity, then the active entity will be changed when the user chooses that entity. To do this we add an all
flag to the item tag and set its value to true
, so we would then have:
<toolbar>
<item component="weave.indexcombo" all="true"/>
</toolbar>
There are other flags that can be added to the item to alter the way the index combo works:
Name | Type | Default | Description |
---|---|---|---|
width | string | Sets the width of the input box. This should be a standard HTML width setting, for example "100%" would fill the whole toolbar, "250px" would be 250 pixels wide. | |
minScale | number | When the user chooses an result from the list the map will be zoomed to the extent of the chosen entity, this setting ensures that the map won't be zoomed in beyond the given scale. | |
pageSize | number | This value changes the number of items that will be presented to the user as the results of the search, for example "8" will tell the client to display the top 8 results for the search. | |
doSelect | boolean | true | The Weave client can be instructed to not update the current selection when the user chooses a result from the list. This allows the index input box to be used as a simple "find" tool without actually interacting with the active selection. A setting of |
clearOthers | boolean | If | |
doMarker | boolean | true | If set to |
doGeometry | boolean | false | If set to |
doMarkers | boolean | true | If set to |
doShowIcons | boolean | false | Display icons next to the search results. |
doTurnOnLayer | boolean | false | Should the layer associated with the entity via the ToC model be turned on when a result is selected? Available from release 2.5.26. |
doZoom | boolean | true | Set to false if you do not want the map to zoom to the selected entity |
type | 'wildcard', 'fuzzy' or 'exact' | wildcard | Change the type of search that's performed. Setting 'exact' performs the search using the search term, 'wildcard' appends an * to the end of the search term and 'fuzzy' appends a ~ to the end of the search term. |
all | boolean | false | If set to |
index | string | A comma separated list of index names that should be searched. When this value is set only the indexes listed will be searched, and the Note, this can also be a list of entities, rather than indexes, in which case all indexes associated with the listed entities will be searched. | |
highlight | boolean | false | Should the results list highlight the part of the text that was matched in the search? |
emptyText | string | Quick search | The text to show in the field when nothing has been entered. i18n resource name is |
loadingText | string | Searching... | The text to show in the field when the content is being loaded. i18n resource name is |
autoFocus | boolean | true | Should the index field get focus when the client starts up? |
Beyond these settings, it is also possible to change the stroke and fill of the geometry (if doGeometry
is true
) by adding a geometryStyle
tag to the configuration. The geometryStyle
tag can set the fill and/or stroke used to draw the entity geometry when it is drawn on the client, but it will not change the style when drawing the selection.
<toolbar>
<item component="weave.indexcombo" all="true">
<geometryStyle>
<strokeOpacity>0.75</strokeOpacity>
<strokeColor>#0000ff</strokeColor>
<strokeWidth>2</strokeWidth>
<fillOpacity>0</fillOpacity>
</geometryStyle>
</item>
</toolbar>
In addition, you can alter the tooltips that are displayed when the user enters the input area and when they hover over the Quick Search button.
<toolbar>
<item component="weave.indexcombo" all="true">
<geometryStyle>
<strokeOpacity>0.75</strokeOpacity>
<strokeColor>#0000ff</strokeColor>
<strokeWidth>2</strokeWidth>
<fillOpacity>0</fillOpacity>
</geometryStyle>
<tooltip>
<title>Quick Search</title>
<text>Type here to search</text>
</tooltip>
<tooltip2>
<title>Quick Search</title>
<text>Redisplay the last search results</text>
</tooltip2>
</item>
</toolbar>