- Added a function
hideSurvey()
for easily hiding the survey. This may be useful for, as an example, displaying results upon submission.
- Made input checks more robust for required questions -- necessary for some custom input types (#32).
- Updated CSS for matrix questions to ensure their width covers the entire question container. This was a problem for some users with Google Chrome and Safari.
- Fixed issue resulting in required matrix questions with instructions not working.
- 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.
-
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.
-
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()".
-
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.
- The
renderSurvey()
function no longer takes shinyinput
,output
, andsession
. Rather, it accesses them internally with the functionshiny::getDefaultReactiveDomain()
. Thanks to Dean Attali for the suggestion!
- Fixed survey appearance issues on smaller screens. Thanks to Paul Le Grand for the help!
- Updated tests for server-side and internal functions
- Removed
dplyr
,tidyr
,rlang
, andmagrittr
dependencies.
- Addition of survey titles and description as arguments for
surveyOutput()
. - Theme parameter in
renderSurvey()
- For surveys with no required questions, error message involving unexpected
NULL
invec_slice_impl()
appeared.
- Changed order of arguments in
renderSurvey()
toc(df, input, output, session, theme)
.
- Publish initial development version.