Search
Description
A search allows the server to locate entitiesthe user to locate entities based on textual attributes of the entity. The user is presented with an input form where they can fill out information required to identify the entities to locate and those entities will be used to update the current selection for that entity.
Current implementations perform those searches either on a database, using either SQL or Stored Procedures, or on a spatial engine.
An attribute search uses SQL to search a database and locate the entities.
Namespace
urn:com.cohga.server.search.database#1.0
Tags
attribute
Properties
Name | Type | Required | Description |
id | string | yes | Unique identifier |
entity | yes | The id of the entity that this search will be searching for | |
label | string | yes | Text to be displayed to the user to represent this search |
description | string | no | Description of the search that could be displayed to the user to explain this search |
datasource | yes | The data source that should be connected to to perform the search | |
table | string | yes | The name of the table in the datasource that is the root of the generated SQL |
key | string | yes | The column in table that represents the unique id of the entity being searched for |
acl | no | A reference to an ACL to attach to the search |
Sub-tags
Name | Type | Cardinality |
from | urn:com.cohga.server.search.database#1.0:from | 0..n |
where | urn:com.cohga.server.search.database#1.0:where | 0..n |
parameter | urn:com.cohga.server.search.database#1.0:parameter | 1..n |
combination | urn:com.cohga.server.search.database#1.0:combination | 0..n |
acl | 0..1 | |
cache | 0..1 |
Content
None
Notes
An ACL can either be defined in-line or referenced indirectly, but only one should be used (the in-line version will take priority).
parameter
Properties
Name | Type | Required | Default | Description |
id | string | yes |
| A unique identifier for the parameter |
label | string | yes |
| The prompt text displayed when user input the parameter value |
column | string | yes |
| The name of the column within the table that this parameter references |
displayname | string | no | label | Provides a user-friendly name for the element |
helptext | string | no |
| Additional text to display for the parameter to explain how to use the parameter |
hidden | boolean | no | false | Hides the parameter from the parameter UI |
alignment | 'left', 'center', 'right', 'auto' | no | 'auto' | How the items should appear in the UI |
controltype | 'listbox', 'checkbox', 'radiobutton', 'textbox' | no | 'textbox' | The suggested type of UI control to use when displaying the parameter |
datatype | 'any', 'boolean', 'datetime', 'decimal', 'float', 'integer', 'string' | no | 'string' | The data type for the parameter |
allownull | boolean | no | false | Whether a null value is allowed for this parameter |
allowblank | boolean | no | true | Give the user the choice of an empty value in the listbox (as opposed to a null value) |
allownewvalues | boolean | no | false | Allow the user to enter values not in the listbox already |
defaultvalue | any | no |
| The default value of the parameter |
displayformat | string | no |
| the formatting instructions for the parameter value within the parameter UI |
datadefinition | no |
| Where to get the values for a listbox | |
labelcolumn | string | no |
| Column in the datadefinition that supplies the label of the value to show the user |
valuecolumn | string | no |
| Column in the datadefinition that supplies the value of the value to use in the SQL |
uppercase | boolean | no | false | Should the value be converted to upper case in the generated SQL |
Sub-tags
Name | Type | Cardinality |
from | urn:com.cohga.server.data.database#1.0:from | 0..n |
where | urn:com.cohga.server.data.database#1.0:where | 0..n |
parameter | urn:com.cohga.server.data.database#1.0:parameter | 0..n |
Notes
- If the controltype is listbox then a datadefinition must be provided, this datadefinition will provide the values to be displayed in the listbox.
- If the listbox datadefinition only contains 1 column then that column will supply both the label and the value, if it contains two values then the first column will supply the label and the second the value.
- If a parameter contains another parameter then you are defining a cascading parameter, where setting the first sub-parameter will enable, and filter, the second parameter, and setting the second parameter will do the same for the third, etc.
- In a cascading parameter all sub-parameters must be of listbox type, and the datadefinition should be set in the outer parameter, not the sub parameters.
- In a cascading parameter only one level of nesting should be used.
- In a cascading parameter the datadefinition should supply the columns for all of the parameters, and valuecolumn properties should be set for each sub-parameter, and labelcolumn should be also set for all parameters if a different label is to be displayed to the user.
combination
Properties
None
Sub-tags
Name | Type | Cardinality |
from | urn:com.cohga.server.data.database#1.0:from | 0..n |
where | urn:com.cohga.server.data.database#1.0:where | 1..n |
from
Properties
Name | Type | Required | Description |
table | string | yes | An additional table to include in the generated SQL |
Sub-tags
None
Content
None
where
Properties
Name | Type | Required | Description |
clause | string | yes | An additional clause to include in the generated SQL |
uppercase | boolean | no | If the clause uses parameter substitution should the value be converted to upper-case before being substituted |
Sub-tags
None
Content
None
Examples
...