dheimgartner / surveytools

Other
0 stars 1 forks source link

TODO #2

Open dheimgartner opened 2 years ago

dheimgartner commented 2 years ago

Master

## output$radio_button <-
radioButton() %>%
add_question("What's your favourite food?") %>%
add_label("favourite_food") %>%
add_options(c("pizza" = "Pizza", "thai" = "Thai Curry", "sushi" = "Sushi") %>% 
assign_to_input(). ## or some other way...
dheimgartner commented 2 years ago

12.02.2022

dheimgartner commented 2 years ago

18.02.2022

dheimgartner commented 2 years ago

JavaScript "Backend"

dheimgartner commented 2 years ago

27.02.2022

library(shiny)

devtools::load_all()

survey1 <-
  survey() %>%
  showNavigationButtons("none") %>%
  addNewPage("s1p1") %>%
  addNewQuestion("text") %>%
  title("What's your name?") %>%
  name("name") %>%
  inputType("text") %>%
  addNewQuestion("text") %>%
  title("How old are you?") %>%
  name("age") %>% 
  inputType("number") %>%
  requiredIf("{name} == Daniel") %>%
  onRender(jsCode = "
           function(el, x) {
              window.survey1 = this;
           }
           ")

survey2 <-
  survey() %>%
  showNavigationButtons("none") %>% 
  addNewPage("s2p1") %>%
  addNewQuestion("text") %>%
  title("How old are you?") %>%
  name("age") %>% 
  inputType("number") %>%
  requiredIf("{name} == Daniel") %>%
  onRender(jsCode = "
           function(el, x) {
              window.survey2 = this;
           }
           ")

# TODO: implement custom registered function
# requiredIf("fromSurvey('survey1', {name}) == Daniel) or something like that

ui <- fluidPage(
  surveyOutput("survey1"),
  HTML("<p>Shiny action</p>"),
  surveyOutput("survey2")
)

server <- function(input, output, session) {
  output$survey1 <- renderSurvey(survey1)
  output$survey2 <- renderSurvey(survey2)
}

shinyApp(ui, server)