From 4858f3fe2aab2b60483adc9eb266585f73b181ac Mon Sep 17 00:00:00 2001 From: jwildfire Date: Wed, 16 Jun 2021 08:34:11 -0700 Subject: [PATCH 1/5] initial mapping refactor. #560 --- R/mod_mappingTab.R | 48 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/R/mod_mappingTab.R b/R/mod_mappingTab.R index 5cba1871..6c9e4c9d 100644 --- a/R/mod_mappingTab.R +++ b/R/mod_mappingTab.R @@ -37,21 +37,35 @@ mappingTabUI <- function(id, meta, domainData, mappings=NULL, standards=NULL){ domain<-domains[i] current_mapping <- mappings %>% filter(domain %in% !!domains[i]) %>% select(-"domain") current_standard <- standards[[domain]] - domain_ui[[i]] <-div(class="mapping-domain", - div(class="domain-header", - span(class="domain-title", str_to_upper(domain)), - div(class="domain-wrap", - span(class="domain-label", "Dimension"), - span(class="domain-value", paste(dim(domainData[[domain]]),collapse="x")) + domain_ui[[i]] <- + div(class="mapping-domain", + div(class="domain-header", + span(class="domain-title", str_to_upper(domain)), + div(class="domain-wrap", + span(class="domain-label", "Dimension"), + span(class="domain-value", paste(dim(domainData[[domain]]),collapse="x")), + ), + div(class="domain-wrap", + span(class="domain-label", "Standard"), + span(class="domain-value", current_standard[["label"]]) + ) ), - div(class="domain-wrap", - span(class="domain-label", "Standard"), - span(class="domain-value", current_standard[["label"]]) + fluidRow( + column(4, mappingDomainUI(ns(domain), current_meta, domainData[[domain]], current_mapping)), + column(8, DT::DTOutput(ns(paste0(domain,"-preview")))) ) - ), - mappingDomainUI(ns(domain), current_meta, domainData[[domain]], current_mapping) ) } + domain_ui<- list( + actionButton( + paste(domain,"-preview"), + "Toggle Data Previews", + icon=icon("table") + ), + br(), + domain_ui + ) + return(domain_ui) } @@ -79,6 +93,18 @@ mappingTab <- function(input, output, session, meta, domainData){ message("No data sets provided for the following domains listed in metadata: ",paste(domains_noData, collapse=", ")) } + #show data previews + lapply(domain_ids, function(domain){ + output[[paste0(domain,"-preview")]] <- renderDT({ + DT::datatable( + domainData[[domain]], + rownames = FALSE, + options = list(), + class="compact" + ) + }) + }) + names(domain_ids)<-domain_ids # so that lapply() creates a named list below domain_modules <- domain_ids %>% lapply(function(domain){ this_meta<- meta%>%filter(domain==!!domain) From f9c5cb98747c80558ec500bc9281eb8bdbe88646 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Thu, 17 Jun 2021 12:29:47 -0400 Subject: [PATCH 2/5] clean up formatting. #560 --- R/mod_mappingTab.R | 27 ++++++++++++++++++--------- inst/www/index.css | 18 +++++++++++++++++- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/R/mod_mappingTab.R b/R/mod_mappingTab.R index 6c9e4c9d..c160b61c 100644 --- a/R/mod_mappingTab.R +++ b/R/mod_mappingTab.R @@ -50,18 +50,14 @@ mappingTabUI <- function(id, meta, domainData, mappings=NULL, standards=NULL){ span(class="domain-value", current_standard[["label"]]) ) ), - fluidRow( - column(4, mappingDomainUI(ns(domain), current_meta, domainData[[domain]], current_mapping)), - column(8, DT::DTOutput(ns(paste0(domain,"-preview")))) + div(class="domain-body", + div(class="domain-controls", mappingDomainUI(ns(domain), current_meta, domainData[[domain]], current_mapping)), + div(class="domain-preview", DT::DTOutput(ns(paste0(domain,"-preview")))) ) ) } domain_ui<- list( - actionButton( - paste(domain,"-preview"), - "Toggle Data Previews", - icon=icon("table") - ), + checkboxInput(ns("toggleData"), "Show Data Previews?", TRUE), br(), domain_ui ) @@ -93,13 +89,26 @@ mappingTab <- function(input, output, session, meta, domainData){ message("No data sets provided for the following domains listed in metadata: ",paste(domains_noData, collapse=", ")) } + observeEvent(input$toggleData,{ + print(input$toggleData) + if(input$toggleData){ + shinyjs::addClass(class="show-preview", selector = ".domain-body") + shinyjs::show(selector = ".domain-body .domain-preview") + }else{ + shinyjs::removeClass(class="show-preview", selector = ".domain-body") + shinyjs::hide(selector = ".domain-body .domain-preview") + } + }) + #show data previews lapply(domain_ids, function(domain){ output[[paste0(domain,"-preview")]] <- renderDT({ DT::datatable( domainData[[domain]], rownames = FALSE, - options = list(), + options = list( + scrollX=TRUE + ), class="compact" ) }) diff --git a/inst/www/index.css b/inst/www/index.css index 496adf58..b50f7f1d 100644 --- a/inst/www/index.css +++ b/inst/www/index.css @@ -1,4 +1,7 @@ +/* Mapping Module formatting */ + .mapping-domain{ + max-width:100%; padding:1em; border:1px solid black; border-radius:0.2em; @@ -42,6 +45,20 @@ border-color:green; } +.mapping-domain .domain-body>*{ + display:inline-block; + vertical-align:top; +} + +.mapping-domain .domain-body.show-preview .domain-controls{ + width:25%; +} + +.mapping-domain .domain-body.show-preview .domain-preview{ + width:74%; + overflow-x:scroll; +} + table.metatable.dataTable tr > td:last-of-type, table.metatable.trdataTable tr > th:last-of-type { border-left:2px solid black; background:#d0d1e6; @@ -101,4 +118,3 @@ table.metatable.dataTable tr > td:last-of-type, table.metatable.trdataTable tr > font-size:0.8em; color:#999; } - From 1f421d28975b18118fcaaff4c3aad0bd2dc810cb Mon Sep 17 00:00:00 2001 From: jwildfire Date: Thu, 17 Jun 2021 12:46:05 -0400 Subject: [PATCH 3/5] update header. fix #579 --- R/mod_mappingTab.R | 5 +++-- R/mod_safetyGraphicsUI.R | 16 +++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/R/mod_mappingTab.R b/R/mod_mappingTab.R index c160b61c..8707c067 100644 --- a/R/mod_mappingTab.R +++ b/R/mod_mappingTab.R @@ -37,8 +37,7 @@ mappingTabUI <- function(id, meta, domainData, mappings=NULL, standards=NULL){ domain<-domains[i] current_mapping <- mappings %>% filter(domain %in% !!domains[i]) %>% select(-"domain") current_standard <- standards[[domain]] - domain_ui[[i]] <- - div(class="mapping-domain", + domain_ui[[i]] <-div(class="mapping-domain", div(class="domain-header", span(class="domain-title", str_to_upper(domain)), div(class="domain-wrap", @@ -77,6 +76,8 @@ mappingTabUI <- function(id, meta, domainData, mappings=NULL, standards=NULL){ #' #' @return list of mappings for all domains #' +#' @import shinyjs +#' #' @export mappingTab <- function(input, output, session, meta, domainData){ diff --git a/R/mod_safetyGraphicsUI.R b/R/mod_safetyGraphicsUI.R index edf281af..ab560e40 100644 --- a/R/mod_safetyGraphicsUI.R +++ b/R/mod_safetyGraphicsUI.R @@ -44,19 +44,17 @@ safetyGraphicsUI <- function(id, meta, domainData, mapping, standards){ "safetyGraphics", id=ns("safetyGraphicsApp"), tabPanel("Home", icon=icon("home"),homeTabUI(ns("home"))), - navbarMenu('Data',icon=icon("database"), - tabPanel("Preview", icon=icon("table"), settingsDataUI(ns("dataSettings"))), - tabPanel("Mapping", icon=icon("map"), mappingTabUI(ns("mapping"), meta, domainData, mapping, standards)), - tabPanel("Filtering", icon=icon("filter"), filterTabUI(ns("filter"))) - ), + tabPanel("Mapping", icon=icon("map"), mappingTabUI(ns("mapping"), meta, domainData, mapping, standards)), + tabPanel("Filtering", icon=icon("filter"), filterTabUI(ns("filter"))), navbarMenu('Charts', icon=icon("chart-bar")), tabPanel("Reports", icon=icon("file-alt"), reportsTabUI(ns("reports"))), navbarMenu('',icon=icon("cog"), tabPanel(title = "Metadata", settingsMappingUI(ns("metaSettings"))), - tabPanel(title = "Charts", settingsChartsUI(ns("chartSettings"))) - ), - participant_badge - ) + tabPanel(title = "Charts", settingsChartsUI(ns("chartSettings"))), + tabPanel(title = "Data", icon=icon("table"), settingsDataUI(ns("dataSettings"))) + ) + ), + participant_badge ) return(ui) } From fe5ef9e6c516ac32a0c92e3ce3d5fd3cd7057b30 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Thu, 17 Jun 2021 13:37:10 -0400 Subject: [PATCH 4/5] move to fixed width for mapping mod --- inst/www/index.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/www/index.css b/inst/www/index.css index b50f7f1d..1615ea82 100644 --- a/inst/www/index.css +++ b/inst/www/index.css @@ -51,11 +51,11 @@ } .mapping-domain .domain-body.show-preview .domain-controls{ - width:25%; + width:250px; } .mapping-domain .domain-body.show-preview .domain-preview{ - width:74%; + width:700px; overflow-x:scroll; } From c20088aeff56a80e98f68c89e875385187a38931 Mon Sep 17 00:00:00 2001 From: jwildfire Date: Fri, 18 Jun 2021 13:03:31 -0400 Subject: [PATCH 5/5] improve css. fix #588 --- R/mod_mappingTab.R | 11 +++++------ inst/www/index.css | 9 ++------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/R/mod_mappingTab.R b/R/mod_mappingTab.R index 8707c067..4d4ed9e5 100644 --- a/R/mod_mappingTab.R +++ b/R/mod_mappingTab.R @@ -49,9 +49,9 @@ mappingTabUI <- function(id, meta, domainData, mappings=NULL, standards=NULL){ span(class="domain-value", current_standard[["label"]]) ) ), - div(class="domain-body", - div(class="domain-controls", mappingDomainUI(ns(domain), current_meta, domainData[[domain]], current_mapping)), - div(class="domain-preview", DT::DTOutput(ns(paste0(domain,"-preview")))) + div(class="domain-body row", + div(class="domain-controls col-md-3", mappingDomainUI(ns(domain), current_meta, domainData[[domain]], current_mapping)), + div(class="domain-preview col-md-9", DT::DTOutput(ns(paste0(domain,"-preview")))) ) ) } @@ -91,12 +91,11 @@ mappingTab <- function(input, output, session, meta, domainData){ } observeEvent(input$toggleData,{ - print(input$toggleData) if(input$toggleData){ - shinyjs::addClass(class="show-preview", selector = ".domain-body") + shinyjs::addClass(class="col-md-3", selector = ".domain-controls") shinyjs::show(selector = ".domain-body .domain-preview") }else{ - shinyjs::removeClass(class="show-preview", selector = ".domain-body") + shinyjs::removeClass(class="col-md-3", selector = ".domain-controls") shinyjs::hide(selector = ".domain-body .domain-preview") } }) diff --git a/inst/www/index.css b/inst/www/index.css index 1615ea82..14a6e16a 100644 --- a/inst/www/index.css +++ b/inst/www/index.css @@ -50,13 +50,8 @@ vertical-align:top; } -.mapping-domain .domain-body.show-preview .domain-controls{ - width:250px; -} - -.mapping-domain .domain-body.show-preview .domain-preview{ - width:700px; - overflow-x:scroll; +.mapping-domain .domain-body .domain-controls{ + padding:0.5em; } table.metatable.dataTable tr > td:last-of-type, table.metatable.trdataTable tr > th:last-of-type {