# Form Module APIs
Find more information and examples of forms here.
# Form
# Constructor
Arguments: Map opts
Map opts
Parameter | Type | Default | Description |
---|---|---|---|
name | String | The unique key to use to identify this form | |
stepper | Boolean | true | Indicates whether or not the progress through the form should be shown |
nonLinear | Boolean | false | Indicates whether the form can only be navigated in order (this is the default) or if the players can jump to different pages |
recordResults | Boolean | true | Record an event for each page submission |
recordNav | Boolean | false | Record an event for each form navigation |
pageDefaults | Map | [:] | Sets default options for each page added to this form |
sectionDefaults | Map | [:] | Sets default options for each section added to this form |
questionDefaults | Map | [:] | Sets default options for each question added to this form |
# Methods
# addPage(Page page)
# addPage(Map pageDescriptor)
Add a single page to this form.
Parameter | Type | Default | Description |
---|---|---|---|
page optional | Page | An already instantiated page | |
pageDescriptor optional | Map | A valid page descriptor to pass to the Page constructor |
# addPages(List pages)
Add multiple pages at the same time
Parameter | Type | Default | Description |
---|---|---|---|
pages | List<Page | Map> | A list of instantiated pages or valid page descriptors as described above |
# addPlayer(Vertex player)
Add a player to this form
Parameter | Type | Default | Description |
---|---|---|---|
player | Vertex | A player vertex |
# addPlayers(List players)
Add multiple players to this form at once
Parameter | Type | Default | Description |
---|---|---|---|
players | List<Vertex> | A list of player vertices |
# calculatePercent(Score score)
Convert a score into a percentage.
Parameter | Type | Default | Description |
---|---|---|---|
score | Score | A score as returned from getScore |
# Returns
Double
# clear()
Clear out all players / results for this form
# end()
End the form and perform cleanup for all players
# getScore(Vertex player)
This method will calculate the percentage of correct responses for this player
Parameter | Type | Default | Description |
---|---|---|---|
player | Vertex | The player node to score |
# Returns
# onDone(Closure cb)
Add a closure to run when the form is completed by a player
# start()
Start the form.
# Interfaces
# Form Definition
A Map with the following parameters
Parameter | Type | Default | Description |
---|---|---|---|
name | String | The unique key to use to identify this form | |
stepper optional | Boolean | true | Indicates whether or not the progress through the form should be shown |
nonLinear optional | Boolean | false | Indicates whether the form can only be navigated in order (this is the default) or if the players can jump to different pages |
recordResults optional | Boolean | true | Record an event for each page submission |
recordNav optional | Boolean | false | Record an event for each form navigation |
pageDefaults optional | Page Definition | [:] | Sets default options for each page added to this form |
sectionDefaults optional | Section Definition | [:] | Sets default options for each section added to this form |
questionDefaults optional | Question Definition | [:] | Sets default options for each question added to this form |
# Page Definition
A Map with the following parameters
Parameter | Type | Default | Description |
---|---|---|---|
title optional | String | "" | The title to display for this page |
onEnter optional | Closure | A closure that will be called when a player enters a page. | |
onExit optional | Closure | A closure that will be called when a player exits a page. | |
sectionDefaults optional | Section Definition | Default values to use for each section of this page. | |
blocks | questions | List<Question Definition> | The questions to show on this page | |
groups | sections optional | List<Section Definition> | The sections to show on this page. Can't be used with "questions" or "blocks". |
# Section Definition
A Map with the following parameters
Parameter | Type | Default | Description |
---|---|---|---|
blocks | questions | List<QuestionDefinition> | Questions to be shown in this section | |
subset optional | Integer | How many questions to randomly show to each player. Implies randomize: true | |
randomize optional | Boolean | false | Whether or not to randomize the order of questions shown to each player |
questionDefaults optional | QuestionDefinition | [:] | Default values to use for each question in this section |
# Question Definition
The question definition will vary depending on the question type. The base question definition is a Map with the following parameters and the parameters defined in ContentMap.
Parameter | Type | Default | Description |
---|---|---|---|
type | "choice", "html", "scale", "text" | The type of question to use | |
name | String | The unique name to use for this question. Data recorded for this question will appear under this name | |
answer optional | String | The correct answer for this question | |
required optional | Boolean | true | Whether or not this question can be skipped |
# Choice Question
Show either a radio group or checkboxes depending on whether or not there can be more than one choice selected.
In addition to the base question parameters, this has the following parameters:
Parameter | Type | Default | Description |
---|---|---|---|
multiple optional | Boolean | false | Allow the user to select more than one choice |
choices | List<String | Choice> | Which choices to display to the player | |
randomize | Boolean | false | Whether or not to randomize the order of the choices |
# Scale Question
Show one or more questions using a scale to respond.
In addition to the base question parameters, this has the following parameters:
Parameter | Type | Default | Description |
---|---|---|---|
choices | List<String | Choice> | Which choices to display for each question | |
items | List<ScaleItem)> | The questions to ask |
# HTML Question
Show some content to a player. Does not require a response from the participant. Only uses the properties defined in the base question.
# Text Question
Receive a free-text response. Can be used to receive comments or other long form responses to questions.
Has the following parameters in addition to the base question parameters:
Parameter | Type | Default | Description |
---|---|---|---|
inputType | String | "text" | A valid HTML input type (opens new window) |
# Interfaces
# Score
A Map with the following parameters
Parameter | Type | Default | Description |
---|---|---|---|
correct | Integer | How many answers were correct | |
incorrect | Integer | How many answers were not correct | |
total | Integer | How many questions were asked | |
skipped | Integer | How many questions were skipped |
# ScaleItem
A Map with properties from ContentMap and the following properties.
Parameter | Type | Default | Description |
---|---|---|---|
value | String | Number | The value used to represent this item in the data |