#######################################
# State menu
#######################################
output$state_view <- renderUI({
sidebarLayout(
sidebarPanel(
wellPanel(
checkboxInput("show_input", "Show input", FALSE),
checkboxInput("show_data", "Show r_data", FALSE),
checkboxInput("show_info", "Show r_info", FALSE),
checkboxInput("show_state", "Show r_state", FALSE)
# checkboxInput("show_session", "Show session", FALSE)
),
help_modal(
"View state", "state_help",
inclMD(file.path(getOption("radiant.path.data"), "app/tools/help/state.md")),
lic = "by-sa"
)
),
mainPanel(
conditionalPanel(
condition = "input.show_input == true",
verbatimTextOutput("show_input")
),
conditionalPanel(
condition = "input.show_data == true",
verbatimTextOutput("show_data")
),
conditionalPanel(
condition = "input.show_info == true",
verbatimTextOutput("show_info")
),
conditionalPanel(
condition = "input.show_state == true",
verbatimTextOutput("show_state")
),
conditionalPanel(
condition = "input.show_session == true",
verbatimTextOutput("show_session")
)
)
)
})
state_name <- function(out = paste0("radiant-", Sys.Date(), ".state.rda"), full.name = FALSE) {
rsn <- r_state$radiant_state_name
ldir <- getOption("radiant.launch_dir", default = radiant.data::find_home())
pdir <- getOption("radiant.project_dir", default = ldir)
## legacy
if (is.empty(rsn)) rsn <- r_state$state_name
if (!is.empty(rsn)) {
fn <- rsn
} else {
if (!is.empty(pdir)) {
fn <- paste0(basename(pdir), ".state.rda")
r_state$radiant_state_name <<- fn
} else {
fn <- out
}
}
## legacy
# if (tools::file_ext(fn) != "rda") {
# fn <- paste0(fn, ".rda")
# }
# ## legacy
# if (!grepl("state", fn)) {
# fn <- sub("\\.rda$", ".state.rda", fn)
# }
if (full.name) {
file.path(pdir, fn)
} else {
fn
}
}
observeEvent(input$state_share, {
withProgress(message = "Preparing session sharing", value = 1, {
saveSession(session)
})
})
output$state_download <- downloadHandler(
filename = function() {
fn <- state_name_dlh() %>% sans_ext()
type <- state_name_dlh() %>%
{
if (grepl("\\.state\\.rda", .)) "state.rda" else tools::file_ext(.)
}
paste0(fn, ".", type)
},
content = function(path) {
saveState(path)
}
)
output$show_session <- renderPrint({
input$show_session ## only update when you toggle the checkbox
isolate({
cat("Session list:\n")
s <- toList(session$clientData)
str(s[sort(names(s))])
})
})
output$show_input <- renderPrint({
input$show_input ## only update when you toggle the checkbox
isolate({
cat("input list:\n")
inp <- toList(input)
str(inp[sort(names(inp))])
})
})
output$show_data <- renderPrint({
input$show_data ## only update when you toggle the checkbox
isolate({
cat("r_data environment:\n")
ls.str(r_data)
})
})
output$show_info <- renderPrint({
input$show_info ## only update when you toggle the checkbox
isolate({
cat("r_info list:\n")
toList(r_info) %>%
{
str(.[sort(names(.))])
}
})
})
output$show_state <- renderPrint({
if (length(r_state) == 0) {
cat("r_state list: [empty]")
} else {
cat("r_state list:\n")
str(r_state[sort(names(r_state))])
}
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.