====== Field ====== A field is an element on a card and describes a property of the represented data entry. Which fields are contained in a [[Card]] is defined in the underlying [[Proto]]. In comparison to relational databases, a Protogrid field plays the role of a table attribute. There are different types of fields: * Text * Rich Text * Number * Tableview * Date & time * Relational Each field on a card is based on a field definition. In this field definition, you can specify the name of the field, a help text, and standard behavior for this field. Field Properties include: * User Input: Decide whether input for this field is optional or mandatory. * User Enabled: Set whether the field should be: * Editable: always editable to the user * Editable before first save * Computed by a [[protogrid:Script_Library#Server ScriptLibrary]] * Computed by a [[protogrid:Script_Library#Client ScriptLibrary]] * Hidden: Values might exist in the backend, but are not rendered for the user * Hidden in client: The field is rendered hidden in the browser. Note that this is a feature for eased user access and not a security feature. * Size in Grid: Important fields or field, where you expect the user to enter long texts, can be set to span an entire row. * Default Value: For some field types, you may add a default value. This value is automatically written to the card upon creating. * Min-Max-Validation (for Numbers and Date & times): You may require that the value of this field is no smaller or bigger than a given value. This will be validated upon saving. * Regular-Expression-Validation (for Text): You may require the text to match a certain structure given by a regular expression in the field definition. This will be validated upon saving. Examples of regex strings are given below * Mail: The regex string ''.*@.*\..*'' matches input of the form [a-z0-9]@[a-z0-9].[a-z0-9] * Phone: The regex string ''%%^(\+?)(\d{2,4})(\s?)(\-?)((\(0\))?)(\s?)(\d{2})(\s?)(\-?)(\d{3})(\s?)(\-?)(\d{2})(\s?)(\-?)(\d{2})%%'' matches Swiss phone number entered in international format and the most common styling rules. It matches +41 44 123 12 34, +41 (0) 44 123 12 34, +41-44-123-1234, 0041 44 123 12 34. It does not match 044 123 12 34, +41 0 44 123 1234, +41.44.123.1234. Note that whether or not a field is editable to a certain user also depends on the users role in the [[Environment]].