From f68b04488ae4f93f7aa1168e6d5339993829c947 Mon Sep 17 00:00:00 2001 From: Spencer Childress Date: Thu, 2 Mar 2023 13:29:46 -0800 Subject: [PATCH 1/2] pass module outputs around --- R/mod_chartsTab.R | 18 +++++++++++++----- R/mod_safetyGraphicsServer.R | 34 +++++++++++++++++++++------------- R/safetyGraphicsApp.R | 36 +++++++++++++++++++++--------------- 3 files changed, 55 insertions(+), 33 deletions(-) diff --git a/R/mod_chartsTab.R b/R/mod_chartsTab.R index 7b274b5f..eeab1cd2 100644 --- a/R/mod_chartsTab.R +++ b/R/mod_chartsTab.R @@ -27,7 +27,7 @@ chartsTabUI <- function(id, chart){ #' #' @export -chartsTab <- function(input, output, session, chart, data, mapping){ +chartsTab <- function(input, output, session, chart, data, mapping, module_outputs) { ns <- session$ns # Initialize chart-specific parameters @@ -40,16 +40,22 @@ chartsTab <- function(input, output, session, chart, data, mapping){ }) # 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"), @@ -103,4 +109,6 @@ chartsTab <- function(input, output, session, chart, data, mapping){ } ) } + + return(module_output) } diff --git a/R/mod_safetyGraphicsServer.R b/R/mod_safetyGraphicsServer.R index 2206fcb1..15062295 100644 --- a/R/mod_safetyGraphicsServer.R +++ b/R/mod_safetyGraphicsServer.R @@ -29,7 +29,9 @@ safetyGraphicsServer <- function( filterDomain, config ) { - #Initialize modules + callModule(homeTab, "home", config) + + # Initialize modules current_mapping<-callModule(mappingTab, "mapping", meta, domainData) # Initialize the filter tab @@ -40,25 +42,31 @@ safetyGraphicsServer <- function( filterDomain=filterDomain, current_mapping=current_mapping ) - - callModule(homeTab, "home", config) #Initialize Chart UI - Adds subtabs to chart menu - this initializes initializes chart UIs charts %>% purrr::map(~chartsNav(.x,session$ns)) #Initialize Chart Servers - validDomains <- tolower(names(mapping)) - charts %>% purrr::map( - ~callModule( - module=chartsTab, - id=.x$name, - chart=.x, - data=filtered_data, - mapping=current_mapping - ) - ) + module_outputs <- reactiveValues() + module_outputs1 <- charts %>% + purrr::map(function(chart) { + module_output <- callModule( + module=chartsTab, + id=chart$name, + chart=chart, + data=filtered_data, + mapping=current_mapping, + module_outputs=module_outputs + ) + + module_outputs[[ chart$name ]] <- module_output + + return(module_output) + }) #Setting tab callModule(settingsTab, "settings", domains = domainData, metadata=meta, mapping=current_mapping, charts = charts) + + return(module_outputs1) } diff --git a/R/safetyGraphicsApp.R b/R/safetyGraphicsApp.R index ac9877c7..5bf32b69 100644 --- a/R/safetyGraphicsApp.R +++ b/R/safetyGraphicsApp.R @@ -57,28 +57,34 @@ safetyGraphicsApp <- function( config$homeTabPath <- homeTabPath config$launchBrowser <- launchBrowser - app <- shinyApp( - ui = safetyGraphicsUI( + ui <- safetyGraphicsUI( "sg", config$meta, config$domainData, config$mapping, config$standards, config - ), - server = function(input, output, session) { - callModule( - safetyGraphicsServer, - "sg", - config$meta, - config$mapping, - config$domainData, - config$charts, - config$filterDomain, - config - ) + ) + + server <- function(input, output, session) { + module_outputs <- callModule( + safetyGraphicsServer, + "sg", + config$meta, + config$mapping, + config$domainData, + config$charts, + config$filterDomain, + config + ) + + return(module_outputs) } - ) + + app <- shinyApp( + ui = ui, + server = server + ) if (runNow) { if (launchBrowser == TRUE) { From 38a74ffb58decd89ab2b5f861c40069032706da9 Mon Sep 17 00:00:00 2001 From: Spencer Childress Date: Wed, 15 Mar 2023 11:55:39 -0400 Subject: [PATCH 2/2] fix something (?) --- R/mod_chartsNav.R | 1 + R/mod_chartsTab.R | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/R/mod_chartsNav.R b/R/mod_chartsNav.R index 9c5221ac..d8a831c8 100644 --- a/R/mod_chartsNav.R +++ b/R/mod_chartsNav.R @@ -42,6 +42,7 @@ chartsNav<-function(input, output, session, chart, data, mapping, module_outputs }else{ status<-NULL } + return(status) }) diff --git a/R/mod_chartsTab.R b/R/mod_chartsTab.R index 2a1fcbf1..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, module_outputs) { +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({