diff --git a/R/mod_chartsNav.R b/R/mod_chartsNav.R index d2c3fd76..d8a831c8 100644 --- a/R/mod_chartsNav.R +++ b/R/mod_chartsNav.R @@ -33,7 +33,7 @@ chartsNavUI <- function(id, chart) { #' @export #' -chartsNav<-function(input, output, session, chart, data, mapping){ +chartsNav<-function(input, output, session, chart, data, mapping, module_outputs) { ns <- session$ns chartStatus <- reactive({ @@ -42,6 +42,7 @@ chartsNav<-function(input, output, session, chart, data, mapping){ }else{ status<-NULL } + return(status) }) @@ -54,12 +55,15 @@ chartsNav<-function(input, output, session, chart, data, mapping){ ) }) - callModule( + module_output <- callModule( module=chartsTab, id='chart', chart=chart, data=data, mapping=mapping, - status=chartStatus + status=chartStatus, + module_outputs = module_outputs ) + + module_output } diff --git a/R/mod_chartsTab.R b/R/mod_chartsTab.R index b27c1b63..8c4f7c27 100644 --- a/R/mod_chartsTab.R +++ b/R/mod_chartsTab.R @@ -28,11 +28,22 @@ chartsTabUI <- function(id, chart){ #' #' @export -chartsTab <- function(input, output, session, chart, data, mapping, status){ +chartsTab <- function(input, output, session, + chart, + data, + mapping, + status, + module_outputs +) { ns <- session$ns # Draw the header - output$`chart-header` <- renderUI({makeChartSummary(chart, status=status())}) + output$`chart-header` <- renderUI({ + makeChartSummary( + chart, + status=status() + ) + }) # Initialize chart-specific parameters params <- reactive({ @@ -44,16 +55,22 @@ chartsTab <- function(input, output, session, chart, data, mapping, status){ }) # Draw the chart - if(chart$type=="module"){ - callModule(chart$functions$main, "chart-wrap", params) - }else{ - output[["chart-wrap"]] <- chart$functions$server( + if(chart$type=="module") { + module_output <- callModule( + chart$functions$main, + "chart-wrap", + params, + module_outputs + ) + } else { + module_output <- output[["chart-wrap"]] <- chart$functions$server( do.call( chart$functions$main, params() ) ) } + # Download R script insertUI( paste0(".",ns("header"), " .chart-header"), @@ -107,4 +124,6 @@ chartsTab <- function(input, output, session, chart, data, mapping, status){ } ) } + + return(module_output) } diff --git a/R/mod_safetyGraphicsServer.R b/R/mod_safetyGraphicsServer.R index e4f805e6..a7705918 100644 --- a/R/mod_safetyGraphicsServer.R +++ b/R/mod_safetyGraphicsServer.R @@ -77,17 +77,22 @@ safetyGraphicsServer <- function(input, output, session, shinyjs::hide(selector = paste0(".navbar li a[data-value='profile']")) shinyjs::hide(selector = paste0(".navbar #pt-header")) } - + #--- Charts tab ---# - charts %>% purrr::walk( - ~callModule( - module=chartsNav, - id=.x$name, - chart=.x, - data=filtered_data, - mapping=current_mapping - ) - ) + module_outputs <- reactiveValues() + charts %>% + purrr::walk(function(chart) { + module_output <- callModule( + module=chartsNav, + id=chart$name, + chart=chart, + data=filtered_data, + mapping=current_mapping, + module_outputs=module_outputs + ) + + module_outputs[[ chart$name ]] <- module_output + }) #--- Settings tab ---# callModule(