Breaking changes
- Deprecated all arguments to
renderSurvey()
. Both thedf
andtheme
arguments should only be passed tosurveyOutput()
. A warning message appears if either argument is passed torenderSurvey()
, though the code still works. This will truly be a breaking change in the next release of shinysurveys.
New features
Input Types
-
Created
numerInput()
, which is identical toshiny::numericInput()
but is more flexible in the sense that it does not require an initial value and it allows placeholders. This is now the default for "numeric" input questions. -
Created a shiny input,
radioMatrixInput()
, for matrix questions. It will returnNULL
until all possible response items have been answered, at which time a data frame with the 'question_id', 'question_type', and 'response' will be returned. -
Added support for "matrix" input types using
radioMatrixInput()
for creating matrix blocks. See the documentation for an example. -
Added support for "instructions" 'input' types for use within other question types or standalone blocks.
-
Added support for user-defined, custom input types. These can be registered with
extendInputType()
. For more details, see my blog post or vignette.
Miscellaneous (but exciting!)
-
Added support for multiple page surveys by adding a 'page' column to the data frame of questions supplied to
surveyOutput()
. The column can either have numeric(e.g. c(1, 1, 2, 3))
or character values (c("intro", "intro", "middle", "final")
). For more information, see my blog post on multipaged shinysurveys. -
Added support for aggregating response data with
getSurveyData()
. This feature allows you to automatically save responses for each individual. That is, this function accounts for dependencies; it will only aggregate data from questions a participant saw. It returns a data frame with a participant's ID, question (input) ID, the question type (e.g. numeric, text, etc.) and response. For more details, see "Aggregate Responses with getSurveyData()".
Minor improvements and fixes
-
Fixed bug where required dependency questions prevented people from submitting the survey (since they could not "answer" hidden questions the submit button would not be enabled).
-
Added error messages to help with identifying common errors with creating surveys, specifically unrecognized input types.
-
Removed "grid" CSS container surrounding the survey div.
-
Changed how SASS rendered the CSS internally to improve performance. CSS rules are placed within style tags in the DOM.