The editor
field.
The editor field uses the Cloud 9 ACE Editor plugin to render an inline editor that supports a wide array of textual content types. The editor provides a number of very powerful features and allows for the creation and modification of markup and code such as HTML, JavaScript, Java and other languages.
Title | Editor |
Description | Editor |
JSON Schema Type(s) | string |
Field Type | editor |
Base Field Type | text |
Property | Type | Default | Description |
---|---|---|---|
default | any | The default value to be assigned for this property. If the data for the field is empty or not provided, this default value will be plugged in for you. Specify a default value when you want to pre-populate the field's value ahead of time. | |
dependencies | array | List of property dependencies. | |
description | string | Detailed description of the property. | |
disallow | array | List of disallowed values for the property. | |
enum | array | List of specific values for this property | |
format | string | Data format of the property. | |
maxLength | number | Maximum length of the property value. | |
minLength | number | Minimal length of the property value. | |
pattern | string | Regular expression for the property value. | |
readonly | boolean | Indicates that the field is read-only. A read-only field cannot have it's value changed. Read-only fields render in a grayed-out or disabled control. If the field is rendered using a view with the displayReadonly attribute set to false, the read-only field will not appear. | |
required | boolean | Indicates whether the field's value is required. If set to true, the field must take on a valid value and cannnot be left empty or unassigned. | |
title | string | Short description of the property. | |
type | string | string | Data type of the property. |
Property | Type | Default | Description |
---|---|---|---|
aceFitContentHeight | boolean | Configures the ACE Editor to auto-fit its height to the contents of the editor | |
aceHeight | string | 300px | Specifies the height of the wrapping div around the editor |
aceMode | string | ace/mode/javascript | Specifies the mode to set onto the editor instance |
aceTheme | string | ace/theme/twilight | Specifies the theme to set onto the editor instance |
aceWidth | string | 100% | Specifies the width of the wrapping div around the editor |
allowOptionalEmpty | Allows this non-required field to validate when the value is empty | ||
autocomplete | string | Allows you to specify the autocomplete attribute for the underlying input control whether or not field should have autocomplete enabled. | |
data | object | Allows you to specify a key/value map of data attributes that will be added as DOM attribuets for the underlying input control. The data attributes will be added as data-{name}='{value}'. | |
disabled | boolean | Field will be disabled if true. | |
disallowEmptySpaces | boolean | Whether to disallow the entry of empty spaces in the text | |
disallowOnlyEmptySpaces | boolean | Whether to disallow the entry of only empty spaces in the text | |
fieldClass | string | Specifies one or more CSS classes that should be applied to the dom element for this field once it is rendered. Supports a single value, comma-delimited values, space-delimited values or values passed in as an array. | |
focus | checkbox | true | If true, the initial focus for the form will be set to the first child element (usually the first field in the form). If a field name or path is provided, then the specified child field will receive focus. For example, you might set focus to 'name' (selecting the 'name' field) or you might set it to 'client/name' which picks the 'name' field on the 'client' object. |
form | object | Options for rendering the FORM tag. | |
helper | string | Field help message. | |
helpers | array | An array of field help messages. Each message will be displayed on it's own line. | |
helpersPosition | string | below | Defines the placement location of the helper text relative to the control (either 'above' or 'below') |
hidden | boolean | Field will be hidden if true. | |
hideInitValidationError | boolean | Hide initial validation errors if true. | |
id | string | Unique field id. Auto-generated if not provided. | |
inputType | string | Allows for the override of the underlying HTML5 input type. If not specified, an assumed value is provided based on the kind of input control (i.e. 'text', 'date', 'email' and so forth) | |
label | string | Field label. | |
maskString | string | Expression for the field mask. Field masking will be enabled if not empty. | |
name | string | Field Name. | |
optionLabels | array | An array of string labels for items in the enum array | |
placeholder | string | Field placeholder. | |
readonly | boolean | Field will be readonly if true. | |
showMessages | boolean | true | Display validation messages if true. |
size | number | 40 | Field size. |
sort | function | Defines an f(a,b) sort function for the array of enumerated values [{text, value}]. This is used to sort enum and optionLabels as well as results that come back from any data sources (for select and radio controls). By default the items are sorted alphabetically. Don't apply any sorting if false. | |
type | string | editor | Field type. |
typeahead | Provides configuration for the $.typeahead plugin if it is available. For full configuration options, see: https://github.com/twitter/typeahead.js | ||
validate | boolean | true | Field validation is required if true. |
view | string | Allows for this field to be rendered with a different view (such as 'display' or 'create') | |
wordlimit | number | -1 | Limits the number of words allowed in the text area. |
The Editor field requires the Cloud 9 ACE Editor to be loaded ahead of its use.
Be sure to load lib/ace/src-min-noconflict/ace.js
before rendering your forms. You can
download ACE from the ACE project on GitHub.
You can instantiate an editor field by simply setting the type
option to editor
. The editor field produces text so make sure that the field type into which the editor places its results is a text
field.
The ACE editor supports a number of out-of-the-box themes. You can specify these themes
using the options configuration. Here, we configure the twilight
theme. We also explicitly
set the width and the height of the editor.
The ACE editor also lets you configure for the editing different types of content. By default, the editor
configures itself to edit ace/mode/javascript
which is the plugin for JavaScript files. Here, we configure the editor
to edit HTML files by setting aceMode
to ace/mode/html
.
We also set the aceFitContentHeight
option to true
to tell the editor to
automatically resize the height to fit its contents.
The editor can be customized programmatically using the ACE editor API. You can grab the reference
to the editor control via the postRender
callback.
Take a look at ACE How To Guide for some good starting points on API customization.
You can use Alpaca to instantiate multiple editors if you'd like. Here we instantiate three editors - one for JavaScript, one for CSS and one for HTML. When the JavaScript editor's value changes, we update the HTML editor.
The editor can be used to edit a variety of formats including markdown.