Data types¶
A part's dataType
determines the structure of the answer data inside
answer.value
.
string
number
options
upload
info
section
page
groupstart
groupend
expression
aggregate
identify
Input types
radios
checkboxes
textarea
text
url
email
number
upload
container
(special)expression
(special)aggregate
(special)identify
(names and email - for polls)groupend
(special)
These combine to the following
number:number
-> input type=number, + various params like min/max/step, decimals
string:text
-> input type=text, opts: length, regex...
string:textarea
-> textarea, opts: length, regex, size...
string:email
-> input type=email
string:url
-> input type=url
options:radios
-> input type=radio, possibly plus other. Opts: values inc. other,
options:checkboxes
-> input type=checkbox, possibly plus other. Opts: values inc. other
upload:upload
-> complex widget using input[type=file]
section, page, groupstart, info all use container
-> Just shows the 'suffix' text. The label is used for admin overview.
identify:identify
-> complex widget providing first, last name and email - use for open surveys.
Ideas (unimplemented)
options:select
-> select, possibly plus other. Opts: values inc. other
number:range
-> 1=bad 10=good
Number¶
- structure: any valid number in JSON
- ask: number input. Needs to know decimals, min, max, decimalPlaces
Options¶
-
structure: a
presets
array stores the order and the values selected, including any special values that start with_other_
. Aother
object maps selected other values to what the user provided for that.- Means you can use more than one 'other' field, should you wish to, which allows you to keep the context better. e.g. options could be{ presets: [ 'presetValue1', 'presetValue2', ..., '_other_val1'], other: { "_other_val1": "user entered text" } }
[
{ value: "_other_awful", label: "Awful" }
{ value: "meh", label: "Meh" }
{ value: "_other_great", label: "Great" }
]
which would allow user to enter something against awful or great.
-
ask: single answer questions, with or without other value(s).
-
tell: various options for presenting these.
String¶
-
structure: any valid string.
-
ask: text inputs, textarea, urls, emails, phone numbers
-
tell: may make it into hyperlink, or just display.
Sections, pages, groups.¶
section
,page
,groupstart
,groupend
Expression¶
The value of this part is determined from an expression that (typically) draws on other data for this participant.
Aggregate¶
The value of this part is determined from an expression that draws on data from (a subset of) all participants, e.g. rank.
Identify¶
Used for open surveys, this composite field will take first, last name and email. This data is used to identify/create a contact using the XCM extension, and after that, an open survey will look for or create a participant for the configured survey for this contact.