From 3dcdd19c7cf12012a1647d18595c17c788eebe3c Mon Sep 17 00:00:00 2001 From: MarionLegrandLogrami <tableau-salt-loire@logrami.fr> Date: Thu, 14 Oct 2021 10:28:04 +0200 Subject: [PATCH 01/51] gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index beaca24..237dffc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ .Ruserdata stacoshiny.Rproj /.project +.settings -- GitLab From 4fce38910c4e731ed3ea465461526023f2f5af40 Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 10:53:49 +0200 Subject: [PATCH 02/51] [golem - connection] les erreurs s'affichent --- .dbeaver/.gitignore | 2 + DESCRIPTION | 5 +- NAMESPACE | 18 +++++ R/app_server.R | 1 - R/mod_header.R | 8 ++ R/mod_main_page.R | 3 - R/mod_main_page_login.R | 165 ---------------------------------------- dev/02_dev.R | 1 + 8 files changed, 33 insertions(+), 170 deletions(-) create mode 100644 .dbeaver/.gitignore delete mode 100644 R/mod_main_page_login.R diff --git a/.dbeaver/.gitignore b/.dbeaver/.gitignore new file mode 100644 index 0000000..2f59ec5 --- /dev/null +++ b/.dbeaver/.gitignore @@ -0,0 +1,2 @@ +/credentials-config.json +/data-sources.json diff --git a/DESCRIPTION b/DESCRIPTION index 2a45f4e..0468bb2 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -17,7 +17,10 @@ Imports: shinydashboard, shinydashboardPlus, shinyjs, - shinyBS + shinyBS, + shinyWidgets, + spsComps, + pool Encoding: UTF-8 LazyData: true RoxygenNote: 7.1.1 diff --git a/NAMESPACE b/NAMESPACE index 27d2bcb..023c5a5 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -8,10 +8,28 @@ importFrom(golem,add_resource_path) importFrom(golem,bundle_resources) importFrom(golem,favicon) importFrom(golem,with_golem_options) +importFrom(pool,poolClose) importFrom(shiny,HTML) importFrom(shiny,NS) importFrom(shiny,column) +importFrom(shiny,isolate) +importFrom(shiny,observeEvent) +importFrom(shiny,passwordInput) importFrom(shiny,shinyApp) importFrom(shiny,tagAppendAttributes) importFrom(shiny,tagList) importFrom(shiny,tags) +importFrom(shiny,textInput) +importFrom(shinyWidgets,actionBttn) +importFrom(shinydashboard,dropdownMenu) +importFrom(shinydashboard,menuItem) +importFrom(shinydashboard,sidebarMenu) +importFrom(shinydashboardPlus,dashboardHeader) +importFrom(shinydashboardPlus,dashboardSidebar) +importFrom(shinydashboardPlus,dashboardUser) +importFrom(shinydashboardPlus,dashboardUserItem) +importFrom(shinydashboardPlus,dropdownBlock) +importFrom(shinydashboardPlus,notificationItem) +importFrom(shinydashboardPlus,userOutput) +importFrom(spsComps,shinyCatch) +importFrom(spsComps,spsDepend) diff --git a/R/app_server.R b/R/app_server.R index 859957f..59faf96 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -8,6 +8,5 @@ app_server <- function( input, output, session ) { # Your application server logic mod_main_page_server("main_page_ui_1") mod_header_server("header_ui_1") - mod_main_page_login_server("main_page_login_ui_1") mod_left_side_bar_server("left_side_bar_ui_1") } diff --git a/R/mod_header.R b/R/mod_header.R index c789f0b..24dedea 100644 --- a/R/mod_header.R +++ b/R/mod_header.R @@ -10,8 +10,10 @@ #' @importFrom shinydashboardPlus dashboardHeader notificationItem dropdownBlock userOutput #' @importFrom shinydashboard dropdownMenu #' @importFrom shinyWidgets actionBttn +#' @importFrom spsComps spsDepend mod_header_ui <- function(id){ ns <- NS(id) + dashboardHeader(title="STACOSHINY", # dropdownMenu(type = "notifications", # icon = icon("database"), @@ -28,11 +30,16 @@ mod_header_ui <- function(id){ # ) # ), leftUi = tagList( + dropdownBlock( id = "base", title = "Options de connexion", icon = icon("database"), badgeStatus = NULL, + + # to have popup message on error + spsDepend("toastr"), + textInput( inputId = ns("host_login"), label= "host", value = "localhost", placeholder = "127.0.0.1" @@ -74,6 +81,7 @@ mod_header_ui <- function(id){ #' @importFrom spsComps shinyCatch #' @importFrom pool poolClose #' @importFrom shinydashboardPlus dashboardUser dashboardUserItem +#' @import stacomirtools mod_header_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns diff --git a/R/mod_main_page.R b/R/mod_main_page.R index b932364..ad31ac5 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -10,9 +10,6 @@ mod_main_page_ui <- function(id){ ns <- NS(id) shinydashboard::dashboardBody( - shinydashboard::tabItems( -# mod_main_page_login_ui("main_page_login_ui_1") - ) ) } diff --git a/R/mod_main_page_login.R b/R/mod_main_page_login.R deleted file mode 100644 index 2a401a9..0000000 --- a/R/mod_main_page_login.R +++ /dev/null @@ -1,165 +0,0 @@ -#' main_page_login UI Function -#' -#' @description A shiny Module. -#' -#' @param id,input,output,session Internal parameters for {shiny}. -#' -#' @noRd -#' -#' @importFrom shiny NS tagList -mod_main_page_login_ui <- function(id){ - ns <- NS(id) - - shinydashboard::tabItem( - tabName = "login", - # to have popup message on error - spsComps::spsDepend("toastr"), - - # première ligne de boite info - shiny::fluidRow( - - # Boite info sur la base - shinydashboard::infoBox( - title = "Base", - "locale", - icon = icon("database") - ), - shinydashboard::infoBoxOutput(ns("statut_connection")) - ), - # seconde ligne avec la boite d'auhtentification - shiny::fluidRow( - shinydashboardPlus::box( - # mise en forme de la box - id = ("box_authentification"), - title = "Authentification", - status = "primary", - solidHeader = TRUE, collapsible = TRUE, - - # ligne du host - shiny::textInput(ns("host_login"), label ="Host:", placeholder = "Nom de l'host ou IP du serveur de la base de données."), - - # ligne du port - shiny::textInput(ns("port_login"), label ="Port:", placeholder = "Numéro de port du serveur de la base de données."), - - # ligne du base - shiny::textInput(ns("dbname_login"), label ="Nom de la base:", placeholder = "Nom de la base de données."), - - # ligne du nom - shiny::textInput(ns("name_login"), label ="Identifiant:", placeholder = "Nom utilisateur utilisé pour l'accès à la base de données."), - - # ligne du mot de passe - shiny::passwordInput(ns("pass_login"), label = "Mot de passe:", placeholder = "Mot de passe utilisé pour l'accès à la base de données."), - - # bouton d'authentification / déconnection - shiny::br(), - shiny::actionButton(ns("login_button"), "S'authentifier", class = "btn btn-success"), - shiny::actionButton(ns("logout_button"), "Se déconnecter", class = "btn btn-danger", style="float:right") - ) - ) - ) -} - -#' main_page_login Server Functions -#' -#' @import stacomirtools -#' @noRd -mod_main_page_login_server <- function(id){ - moduleServer( id, function(input, output, session){ - ns <- session$ns - - # Action lorsque le bouton connection est pressé - shiny::observeEvent(input$login_button, { spsComps::shinyCatch({ - - # utilisateur et mot de passe sont isolés - host <- shiny::isolate(input$host_login) - port <- shiny::isolate(input$port_login) - dbname <- shiny::isolate(input$dbname_login) - user <- shiny::isolate(input$name_login) - password <- shiny::isolate(input$pass_login) - - - # on se connecte à la base - if (user != "") { - db_connection = new("ConnectionDB") - db_connection@base = c(dbname, host, port, user, password) - db_connection =connect(db_connection) - - } # fin if - - if (db_connection@status == "Connection OK") { - pool::poolClose(db_connection@connection) - - # on stocke l'utilisateur, la connection et les feuilles dans l'environnement global - assign("db_connection", db_connection, envir = envir_stacomi ) - #db_connection <<- db_connection - # on met à jour la boite du statut de la connection - output$statut_connection <- shinydashboard::renderInfoBox({ - shinydashboard::infoBox( - title = "Statut connection", - ifelse(TRUE, "Connecté", "Invalide"), - icon = icon(ifelse(TRUE, "check", "times")), - color = ifelse(TRUE, "green", "red") - ) - }) # fin output$statut_connection - - }# fin if - - # on met à jour la boite du statut de la connection -# output$statut_connection <- shinydashboard::renderInfoBox({ -# shinydashboard::infoBox( -# title = "Statut connection", -# ifelse(succeed, "Connecté", "Invalide"), -# icon = icon(ifelse(succeed, "check", "times")), -# color = ifelse(succeed, "green", "red") -# ) -# }) # fin output$statut_connection - - # et le nom de l'utilisateur -# output$statut_utilisateur <- shinydashboard::renderInfoBox({ -# shinydashboard::infoBox( -# title = "Utilisateur", -# username, -# icon = icon("user", lib = "glyphicon") -# ) -# }) # fin output$statut_utilisateur - }, blocking_level = "error") - }) # fin observeEvent connection - - # Action lorsque le bouton déconnection est pressé - shiny::observeEvent(input$logout_button, { -# if(is_logged()){ -# react_data$logged = FALSE -# if (!is.null(dbpool)) { -# try(pool::poolClose(dbpool)) -# } -# username <<- NULL -# dbpool <<- NULL -# } - # on met à jour la boite du statut de la connection -# output$statut_connection <- shinydashboard::renderInfoBox({ -# shinydashboard::infoBox( -# title = "Statut connection", -# "déconnecté", -# icon = icon("times"), -# color = "red" -# ) -# }) # fin output$statut_connection - -# # et le nom de l'utilisateur -# output$statut_utilisateur <- shinydashboard::renderInfoBox({ -# shinydashboard::infoBox( -# title = "Utilisateur", -# username, -# icon = icon("user", lib = "glyphicon") -# ) -# }) # fin output$statut_utilisateur - }) # fin observeEvent déconnection - - }) -} - -## To be copied in the UI -# mod_main_page_login_ui("main_page_login_ui_1") - -## To be copied in the server -# mod_main_page_login_server("main_page_login_ui_1") diff --git a/dev/02_dev.R b/dev/02_dev.R index bdc4620..70d20c7 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -20,6 +20,7 @@ usethis::use_package("shinydashboardPlus") usethis::use_package("shinyjs") usethis::use_package("shinyWidgets") usethis::use_package("spsComps") +usethis::use_package("pool") #, "shinyWidgets" usethis::use_dev_package("stacomirtools", remote = "Remotes: gitlab::git@forgemia.inra.fr:stacomi/stacomirtools.git" ) -- GitLab From cb384a8cc8c21ce9eeb8c864033c3e723978d791 Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 10:58:07 +0200 Subject: [PATCH 03/51] [golem] nettoyage --- R/mod_main_page.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/mod_main_page.R b/R/mod_main_page.R index ad31ac5..f5539b7 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -7,9 +7,11 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard dashboardBody + mod_main_page_ui <- function(id){ ns <- NS(id) - shinydashboard::dashboardBody( + dashboardBody( ) } -- GitLab From 2a9441facc58a33f7c69f724a31ea20c6ab28666 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 10:59:27 +0200 Subject: [PATCH 04/51] golem nettoyage --- R/mod_header.R | 40 ++++------------------------------------ 1 file changed, 4 insertions(+), 36 deletions(-) diff --git a/R/mod_header.R b/R/mod_header.R index 24dedea..ea784e2 100644 --- a/R/mod_header.R +++ b/R/mod_header.R @@ -80,7 +80,7 @@ mod_header_ui <- function(id){ #' @importFrom shiny observeEvent isolate #' @importFrom spsComps shinyCatch #' @importFrom pool poolClose -#' @importFrom shinydashboardPlus dashboardUser dashboardUserItem +#' @importFrom shinydashboardPlus dashboardUser dashboardUserItem renderUser #' @import stacomirtools mod_header_server <- function(id){ moduleServer( id, function(input, output, session){ @@ -112,52 +112,20 @@ mod_header_server <- function(id){ assign("db_connection", db_connection, envir = envir_stacomi ) #db_connection <<- db_connection # on met à jour la boite du statut de la connection - output$statut_connection <- shinydashboardPlus::renderUser({ + output$statut_connection <- renderUser({ dashboardUser( name = db_connection@base[1], image = "https://e7.pngegg.com/pngimages/165/79/png-clipart-database-server-computer-icons-database-connection-backup-database-miscellaneous-angle-thumbnail.png", #title = , subtitle = paste('Utilisateur :', db_connection@base[4], sep=' '), footer = p(paste('Hôte :',db_connection@base[2], sep = ' '), class = "text-center") - # fluidRow( - # dashboardUserItem( - # width = 6, - # shinydashboardPlus::socialButton( - # href = "https://dropbox.com", - # icon = icon("dropbox") - # ) - # ), - # dashboardUserItem( - # width = 6, - # shinydashboardPlus::socialButton( - # href = "https://github.com", - # icon = icon("github") - # ) - # ) - # ) + ) }) # fin output$statut_connection }# fin if - # on met à jour la boite du statut de la connection -# output$statut_connection <- shinydashboard::renderInfoBox({ -# shinydashboard::infoBox( -# title = "Statut connection", -# ifelse(succeed, "Connecté", "Invalide"), -# icon = icon(ifelse(succeed, "check", "times")), -# color = ifelse(succeed, "green", "red") -# ) -# }) # fin output$statut_connection - - # et le nom de l'utilisateur -# output$statut_utilisateur <- shinydashboard::renderInfoBox({ -# shinydashboard::infoBox( -# title = "Utilisateur", -# username, -# icon = icon("user", lib = "glyphicon") -# ) -# }) # fin output$statut_utilisateur + }, blocking_level = "error") }) # fin observeEvent connection -- GitLab From 5ab001dc95e05303c1365d34067346c3cce39800 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 11:01:10 +0200 Subject: [PATCH 05/51] Nettoyage golem --- R/mod_header.R | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/R/mod_header.R b/R/mod_header.R index ea784e2..7b8095c 100644 --- a/R/mod_header.R +++ b/R/mod_header.R @@ -15,21 +15,7 @@ mod_header_ui <- function(id){ ns <- NS(id) dashboardHeader(title="STACOSHINY", - # dropdownMenu(type = "notifications", - # icon = icon("database"), - # badgeStatus="success", - # notificationItem( - # text = "Connexion", - # icon("check-circle"), - # status = "success" - # ), - # notificationItem( - # text = "Connexion", - # icon = icon("exclamation-circle"), - # status = "danger" - # ) - # ), - leftUi = tagList( + leftUi = tagList( dropdownBlock( id = "base", -- GitLab From ffee6ba536e3d9fd0028ecb892df0182d693be93 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 11:10:32 +0200 Subject: [PATCH 06/51] golem nettoyage --- R/app_ui.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/app_ui.R b/R/app_ui.R index 03271dd..785635a 100644 --- a/R/app_ui.R +++ b/R/app_ui.R @@ -4,12 +4,13 @@ #' DO NOT REMOVE. #' @import shiny #' @noRd +#' @importFrom shinydashboardPlus dashboardPage app_ui <- function(request) { tagList( # Leave this function for adding external resources golem_add_external_resources(), # Your application UI logic - shinydashboardPlus::dashboardPage( + dashboardPage( header = mod_header_ui("header_ui_1"), sidebar = mod_left_side_bar_ui("left_side_bar_ui_1"), body = mod_main_page_ui("main_page_ui_1") -- GitLab From 9ccc5e2824d4eccf8f84479c2c8153d17a37632b Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 11:12:09 +0200 Subject: [PATCH 07/51] [golem] nettoyage --- NAMESPACE | 2 ++ R/app_config.R | 3 ++- R/golem_utils_ui.R | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 023c5a5..4d082b4 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -21,6 +21,7 @@ importFrom(shiny,tagList) importFrom(shiny,tags) importFrom(shiny,textInput) importFrom(shinyWidgets,actionBttn) +importFrom(shinydashboard,dashboardBody) importFrom(shinydashboard,dropdownMenu) importFrom(shinydashboard,menuItem) importFrom(shinydashboard,sidebarMenu) @@ -30,6 +31,7 @@ importFrom(shinydashboardPlus,dashboardUser) importFrom(shinydashboardPlus,dashboardUserItem) importFrom(shinydashboardPlus,dropdownBlock) importFrom(shinydashboardPlus,notificationItem) +importFrom(shinydashboardPlus,renderUser) importFrom(shinydashboardPlus,userOutput) importFrom(spsComps,shinyCatch) importFrom(spsComps,spsDepend) diff --git a/R/app_config.R b/R/app_config.R index 5a66960..1d9af86 100644 --- a/R/app_config.R +++ b/R/app_config.R @@ -20,6 +20,7 @@ app_sys <- function(...){ #' If unset, "default". #' @param use_parent Logical, scan the parent directory for config file. #' +#' @importFrom config get #' @noRd get_golem_config <- function( value, @@ -32,7 +33,7 @@ get_golem_config <- function( ), use_parent = TRUE ){ - config::get( + get( value = value, config = config, # Modify this if your config file is somewhere else: diff --git a/R/golem_utils_ui.R b/R/golem_utils_ui.R index 216d230..3999934 100644 --- a/R/golem_utils_ui.R +++ b/R/golem_utils_ui.R @@ -209,11 +209,11 @@ jq_hide <- function(id) { #' #' @importFrom shiny tags HTML with_red_star <- function(text) { - shiny::tags$span( + tags$span( HTML( paste0( text, - shiny::tags$span( + tags$span( style = "color:red", "*" ) ) -- GitLab From cfa776cbf12477736c977d590f788ff62723b1f4 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 11:12:11 +0200 Subject: [PATCH 08/51] golem nettoyage --- R/mod_header.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/mod_header.R b/R/mod_header.R index 7b8095c..d6c9a24 100644 --- a/R/mod_header.R +++ b/R/mod_header.R @@ -73,7 +73,7 @@ mod_header_server <- function(id){ ns <- session$ns # Action lorsque le bouton connection est pressé - observeEvent(input$login_button, { spsComps::shinyCatch({ + observeEvent(input$login_button, { shinyCatch({ # utilisateur et mot de passe sont isolés host <- isolate(input$host_login) -- GitLab From 640fd4a9d112708176afa90838af7d21c974f055 Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 11:13:21 +0200 Subject: [PATCH 09/51] retirer les :: --- R/golem_utils_server.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/golem_utils_server.R b/R/golem_utils_server.R index 97bc2d1..4fe772d 100644 --- a/R/golem_utils_server.R +++ b/R/golem_utils_server.R @@ -5,6 +5,7 @@ #' @examples #' 1 %not_in% 1:10 #' not_null(NULL) +#' @importFrom shiny reactiveValues reactiveValuesToList `%not_in%` <- Negate(`%in%`) not_null <- Negate(is.null) @@ -59,6 +60,6 @@ drop_nulls <- function(x){ #' @inheritParams reactiveValuesToList #' #' @noRd -rv <- shiny::reactiveValues -rvtl <- shiny::reactiveValuesToList +rv <- reactiveValues +rvtl <- reactiveValuesToList -- GitLab From d5ef534a1cccb428dbab8f0a1af8a47ba9deac34 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 11:40:49 +0200 Subject: [PATCH 10/51] ajout module migration multi --- dev/02_dev.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev/02_dev.R b/dev/02_dev.R index 70d20c7..e20ca15 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -21,6 +21,7 @@ usethis::use_package("shinyjs") usethis::use_package("shinyWidgets") usethis::use_package("spsComps") usethis::use_package("pool") +usethis::use_package("shinipsum") #, "shinyWidgets" usethis::use_dev_package("stacomirtools", remote = "Remotes: gitlab::git@forgemia.inra.fr:stacomi/stacomirtools.git" ) @@ -30,6 +31,7 @@ golem::add_module( name = "main_page" ) # Main page for the shiny interface golem::add_module( name = "header" ) # Header for the shiny interface golem::add_module( name = "main_page_login" ) # login page golem::add_module( name = "left_side_bar") # left side bar +golem::add_module( name = "migr_multi") # migration multiple ## Add helper functions ---- ## Creates fct_* and utils_* -- GitLab From 88d12e842780838030194f4adcf83eb7d1855b1b Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 11:43:48 +0200 Subject: [PATCH 11/51] ajoute le module migration multiple --- R/app_server.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/app_server.R b/R/app_server.R index 59faf96..57e4362 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -9,4 +9,5 @@ app_server <- function( input, output, session ) { mod_main_page_server("main_page_ui_1") mod_header_server("header_ui_1") mod_left_side_bar_server("left_side_bar_ui_1") + mod_migr_multi_server("migr_multi_ui_1") } -- GitLab From c98fc16e8e5ddb43eef03a2addcf829d7a4ad350 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:00:11 +0200 Subject: [PATCH 12/51] Ajoute du contenu (random) au module migration multiple --- R/mod_main_page.R | 1 + R/mod_migr_multi.R | 100 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 R/mod_migr_multi.R diff --git a/R/mod_main_page.R b/R/mod_main_page.R index f5539b7..e627173 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -12,6 +12,7 @@ mod_main_page_ui <- function(id){ ns <- NS(id) dashboardBody( + mod_migr_multi_ui("migr_multi_ui_1") ) } diff --git a/R/mod_migr_multi.R b/R/mod_migr_multi.R new file mode 100644 index 0000000..1f88648 --- /dev/null +++ b/R/mod_migr_multi.R @@ -0,0 +1,100 @@ +#' migr_multi UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_migr_multi_ui <- function(id){ + ns <- NS(id) + tabItem(tabName = "migr_mult", + box(title = "Sélections :", + collapsible = TRUE, + width = 3, + dateInput("date", label = h5("Choisissez une date de début :"), value = "2014-01-01"), + + selectizeInput('pas_temps', h5('Choisissez un pas de temps : '), + selected="1 jour", choices = c("1 sec", "1 min", "10 min","15 min","30 min","1 h","1 jour","1 sem","2 sem","1 mois","3 mois","6 mois","1 an"), + multiple = FALSE), + + numericInput("num", label = h5("Nombre de pas de temps :"), value = 365), + + selectizeInput("dc_mult", h5('Choisissez le ou les DC :'), + selected=NULL, choices=list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), + multiple = TRUE), + selectizeInput("taxon_mult", h5('Choisissez un ou plusieurs taxon(s) :'), + selected=NULL, choices=list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), + multiple = TRUE), + selectizeInput("stade_mult", h5('Choisissez un ou plusieurs stade(s) :'), + selected=NULL, choices=list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), + multiple = TRUE), + + + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_standard" = 1, "plot_step" = 2,"plot_multiple" = 3,"tab_migration_mult_summary" = 4, "tab_migration_mult_data" = 5), + selected = 1), + actionBttn( + inputId = "bttn_migr_mult", + label = "OK", + style = "fill", + color = "primary" + ) + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_migration_mult_standard")), + plotOutput(ns("plot_migration_mult_step")), + plotOutput(ns("plot_migration_multiple")) + ), + box(collapsible = TRUE, + width=12, + + DTOutput(ns("tab_migration_mult_summary")), + DTOutput(ns("tab_migration_mult_data")) + ) + + ) + +} + +#' migr_multi Server Functions +#' +#' @noRd +#' @importFrom shinipsum random_ggplot +mod_migr_multi_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + #Bilan migration multiple + output$plot_migration_mult_standard <- renderPlot({ + random_ggplot() + }) + + output$plot_migration_mult_step <- renderPlot({ + random_ggplot() + }) + + output$plot_migration_multiple <- renderPlot({ + random_ggplot() + }) + + output$tab_migration_mult_summary <- DT::renderDT({ + random_DT(5, 5) + }) + + output$tab_migration_mult_data <- DT::renderDT({ + random_DT(5, 5) + }) + + + }) +} + +## To be copied in the UI +# mod_migr_multi_ui("migr_multi_ui_1") + +## To be copied in the server +# mod_migr_multi_server("migr_multi_ui_1") -- GitLab From 7e1a08abff7c93fa1cd0bc003c4c8f2ad5b8483f Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 12:57:22 +0200 Subject: [PATCH 13/51] create module espece --- dev/02_dev.R | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/02_dev.R b/dev/02_dev.R index e20ca15..171eeb8 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -32,6 +32,7 @@ golem::add_module( name = "header" ) # Header for the shiny interface golem::add_module( name = "main_page_login" ) # login page golem::add_module( name = "left_side_bar") # left side bar golem::add_module( name = "migr_multi") # migration multiple +golem::add_module( name = "espece") # module espece ## Add helper functions ---- ## Creates fct_* and utils_* -- GitLab From b9e6af5501ff199e4e311cf96f10dc1311f80957 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 13:29:04 +0200 Subject: [PATCH 14/51] =?UTF-8?q?Ajoute=20contenu=20(random=20au=20module?= =?UTF-8?q?=20esp=C3=A8ce)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/mod_espece.R | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 R/mod_espece.R diff --git a/R/mod_espece.R b/R/mod_espece.R new file mode 100644 index 0000000..70258be --- /dev/null +++ b/R/mod_espece.R @@ -0,0 +1,79 @@ +#' espece UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_espece_ui <- function(id){ + ns <- NS(id) + tabItem(tabName = "espece", + box(title = "Sélections :", + collapsible = TRUE, + width = 3, + sliderInput("annee", label = h5("Choisissez l\'année"), min = 1980, + max = 2021, value = c(2011, 2021)), + #La checkbox n'a pas assez d'option - utiliser un slider pour limiter les trop gros effectifs + # checkboxGroupInput("choix_taxon", label = h5("Choisissez les sorties graphiques ou tableaux :"), + # choices = list("A" = 1, "B" = 2, "C" = 3,"D"=4,"E"=5,"F"=6,"G"=7,"H"=8), + # selected = c(A,B,C,D,E,F,G,H)), + + + selectizeInput('pas_temps', h5('Choisissez un découpage temporel :'), + selected="Aucun", choices = c("Aucun","Semaine","Mois","Année"), + multiple = FALSE), + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_pie" = 1, "plot_barplot" = 2, "tab_summary"= 3), + selected = 1), + actionBttn( + inputId = "bttn_esp", + label = "OK", + style = "fill", + color = "primary" + ) + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_esp_pie")), + plotOutput(ns("plot_esp_barplot")) + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_esp_summary")) + + ) + + ) + +} + +#' espece Server Functions +#' +#' @noRd +mod_espece_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + output$plot_esp_pie <- renderPlot({ + random_ggplot() + }) + + output$plot_esp_barplot <- renderPlot({ + random_ggplot() + }) + + output$tab_esp_summary <- DT::renderDT({ + random_DT(5, 5) + }) + + + }) +} + +## To be copied in the UI +# mod_espece_ui("espece_ui_1") + +## To be copied in the server +# mod_espece_server("espece_ui_1") -- GitLab From 6973bb66a71409b4f1a2b33ec0b5ce23e6bba297 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 13:33:58 +0200 Subject: [PATCH 15/51] ajoute tabItems pour contenir les tabItem --- R/mod_main_page.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/mod_main_page.R b/R/mod_main_page.R index e627173..042cc50 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -12,7 +12,10 @@ mod_main_page_ui <- function(id){ ns <- NS(id) dashboardBody( - mod_migr_multi_ui("migr_multi_ui_1") + tabItems( + mod_migr_multi_ui("migr_multi_ui_1"), + mod_espece_ui("espece_ui_1") + ) ) } -- GitLab From d88b28423da051cbbc603d416a08b5b89cce1164 Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 13:35:01 +0200 Subject: [PATCH 16/51] module annuel --- NAMESPACE | 7 +++++ R/app_server.R | 1 + R/mod_annuel.R | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ dev/02_dev.R | 1 + 4 files changed, 83 insertions(+) create mode 100644 R/mod_annuel.R diff --git a/NAMESPACE b/NAMESPACE index 4d082b4..b5fcf3a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,18 +3,23 @@ export(run_app) import(shiny) import(stacomirtools) +importFrom(config,get) importFrom(golem,activate_js) importFrom(golem,add_resource_path) importFrom(golem,bundle_resources) importFrom(golem,favicon) importFrom(golem,with_golem_options) importFrom(pool,poolClose) +importFrom(shinipsum,random_DT) +importFrom(shinipsum,random_ggplot) importFrom(shiny,HTML) importFrom(shiny,NS) importFrom(shiny,column) importFrom(shiny,isolate) importFrom(shiny,observeEvent) importFrom(shiny,passwordInput) +importFrom(shiny,reactiveValues) +importFrom(shiny,reactiveValuesToList) importFrom(shiny,shinyApp) importFrom(shiny,tagAppendAttributes) importFrom(shiny,tagList) @@ -25,7 +30,9 @@ importFrom(shinydashboard,dashboardBody) importFrom(shinydashboard,dropdownMenu) importFrom(shinydashboard,menuItem) importFrom(shinydashboard,sidebarMenu) +importFrom(shinydashboard,tabItem) importFrom(shinydashboardPlus,dashboardHeader) +importFrom(shinydashboardPlus,dashboardPage) importFrom(shinydashboardPlus,dashboardSidebar) importFrom(shinydashboardPlus,dashboardUser) importFrom(shinydashboardPlus,dashboardUserItem) diff --git a/R/app_server.R b/R/app_server.R index 57e4362..e6741c7 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -10,4 +10,5 @@ app_server <- function( input, output, session ) { mod_header_server("header_ui_1") mod_left_side_bar_server("left_side_bar_ui_1") mod_migr_multi_server("migr_multi_ui_1") + mod_annuel_server("annuel_ui_1") } diff --git a/R/mod_annuel.R b/R/mod_annuel.R new file mode 100644 index 0000000..059fa80 --- /dev/null +++ b/R/mod_annuel.R @@ -0,0 +1,74 @@ +#' annuel UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem +mod_annuel_ui <- function(id){ + ns <- NS(id) + tabItem(tabName = "annuel", + box(title = "Sélections :", + collapsible = TRUE, + width = 3, + sliderInput("annuel_date", label = h5("Choisissez l'année de début et de fin :"), min = 1980, + max = 2021, value = c(2011, 2021)), + selectizeInput("taxon_mult", h5('Choisissez un ou plusieurs taxon(s) :'), + selected=NULL, choices=list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), + multiple = TRUE), + selectizeInput("stade_mult", h5('Choisissez un ou plusieurs stade(s) :'), + selected=NULL, choices=list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), + multiple = TRUE), + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_barplot" = 1, "plot_point" = 2,"tab_annuel_data" = 3), + selected = 1), + actionBttn( + inputId = "bttn_annuel", + label = "OK", + style = "fill", + color = "primary" + ) + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns,"plot_annuel_barplot"), + plotOutput(ns,"plot_annuel_point") + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns,"tab_annuel_data") + + ) + + ) +} + +#' annuel Server Functions +#' @importFrom shinipsum random_ggplot random_DT +#' @noRd +mod_annuel_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + output$plot_annuel_barplot <- renderPlot({ + random_ggplot() + }) + + output$plot_annuel_point <- renderPlot({ + random_ggplot() + }) + + output$tab_annuel_data <- DT::renderDT({ + random_DT(5, 5) + }) + }) +} + +## To be copied in the UI +# mod_annuel_ui("annuel_ui_1") + +## To be copied in the server +# mod_annuel_server("annuel_ui_1") diff --git a/dev/02_dev.R b/dev/02_dev.R index 171eeb8..a987e58 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -33,6 +33,7 @@ golem::add_module( name = "main_page_login" ) # login page golem::add_module( name = "left_side_bar") # left side bar golem::add_module( name = "migr_multi") # migration multiple golem::add_module( name = "espece") # module espece +golem::add_module( name = "annuel") # module annuel ## Add helper functions ---- ## Creates fct_* and utils_* -- GitLab From 9ab858db51703de800d756de88d57997c343e891 Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 13:45:41 +0200 Subject: [PATCH 17/51] ajout module espece et annuel (ne fonctionne pas) --- NAMESPACE | 1 + R/app_server.R | 1 + R/mod_main_page.R | 6 ++++-- R/mod_migr_multi.R | 7 ++++--- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index b5fcf3a..ae4e3e4 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -31,6 +31,7 @@ importFrom(shinydashboard,dropdownMenu) importFrom(shinydashboard,menuItem) importFrom(shinydashboard,sidebarMenu) importFrom(shinydashboard,tabItem) +importFrom(shinydashboard,tabItems) importFrom(shinydashboardPlus,dashboardHeader) importFrom(shinydashboardPlus,dashboardPage) importFrom(shinydashboardPlus,dashboardSidebar) diff --git a/R/app_server.R b/R/app_server.R index e6741c7..f2f37e0 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -10,5 +10,6 @@ app_server <- function( input, output, session ) { mod_header_server("header_ui_1") mod_left_side_bar_server("left_side_bar_ui_1") mod_migr_multi_server("migr_multi_ui_1") + mod_espece_server("espece_ui_1") mod_annuel_server("annuel_ui_1") } diff --git a/R/mod_main_page.R b/R/mod_main_page.R index 042cc50..fcd0393 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -7,14 +7,16 @@ #' @noRd #' #' @importFrom shiny NS tagList -#' @importFrom shinydashboard dashboardBody +#' @importFrom shinydashboard dashboardBody tabItems mod_main_page_ui <- function(id){ ns <- NS(id) dashboardBody( tabItems( - mod_migr_multi_ui("migr_multi_ui_1"), + # mod_migr_multi_ui("migr_multi_ui_1"), + # mod_annuel_ui("annuel_ui_1"), mod_espece_ui("espece_ui_1") + ) ) } diff --git a/R/mod_migr_multi.R b/R/mod_migr_multi.R index 1f88648..e61bc78 100644 --- a/R/mod_migr_multi.R +++ b/R/mod_migr_multi.R @@ -7,13 +7,14 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem mod_migr_multi_ui <- function(id){ ns <- NS(id) tabItem(tabName = "migr_mult", - box(title = "Sélections :", + box(title = "Selections :", collapsible = TRUE, width = 3, - dateInput("date", label = h5("Choisissez une date de début :"), value = "2014-01-01"), + dateInput("date", label = h5("Choisissez une date de debut :"), value = "2014-01-01"), selectizeInput('pas_temps', h5('Choisissez un pas de temps : '), selected="1 jour", choices = c("1 sec", "1 min", "10 min","15 min","30 min","1 h","1 jour","1 sem","2 sem","1 mois","3 mois","6 mois","1 an"), @@ -63,7 +64,7 @@ mod_migr_multi_ui <- function(id){ #' migr_multi Server Functions #' #' @noRd -#' @importFrom shinipsum random_ggplot +#' @importFrom shinipsum random_ggplot random_DT mod_migr_multi_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns -- GitLab From 37b62f8a987126e0b788c5820db27727ee45efde Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 13:49:18 +0200 Subject: [PATCH 18/51] corrige erreur de ns() --- R/mod_annuel.R | 6 +++--- R/mod_main_page.R | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/R/mod_annuel.R b/R/mod_annuel.R index 059fa80..bb10a1f 100644 --- a/R/mod_annuel.R +++ b/R/mod_annuel.R @@ -35,12 +35,12 @@ mod_annuel_ui <- function(id){ box(collapsible = TRUE, width=9, - plotOutput(ns,"plot_annuel_barplot"), - plotOutput(ns,"plot_annuel_point") + plotOutput(ns("plot_annuel_barplot")), + plotOutput(ns("plot_annuel_point")) ), box(collapsible = TRUE, width=12, - DTOutput(ns,"tab_annuel_data") + DTOutput(ns("tab_annuel_data")) ) diff --git a/R/mod_main_page.R b/R/mod_main_page.R index fcd0393..0f8e792 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -13,8 +13,8 @@ mod_main_page_ui <- function(id){ ns <- NS(id) dashboardBody( tabItems( - # mod_migr_multi_ui("migr_multi_ui_1"), - # mod_annuel_ui("annuel_ui_1"), + mod_migr_multi_ui("migr_multi_ui_1"), + mod_annuel_ui("annuel_ui_1"), mod_espece_ui("espece_ui_1") ) -- GitLab From be795b7a3797745e76a20e4f53d1c0523ddca520 Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 13:54:21 +0200 Subject: [PATCH 19/51] [golem] nettoyage --- NAMESPACE | 4 ++++ dev/02_dev.R | 1 + 2 files changed, 5 insertions(+) diff --git a/NAMESPACE b/NAMESPACE index 4d082b4..8fbe373 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,7 @@ export(run_app) import(shiny) import(stacomirtools) +importFrom(config,get) importFrom(golem,activate_js) importFrom(golem,add_resource_path) importFrom(golem,bundle_resources) @@ -15,6 +16,8 @@ importFrom(shiny,column) importFrom(shiny,isolate) importFrom(shiny,observeEvent) importFrom(shiny,passwordInput) +importFrom(shiny,reactiveValues) +importFrom(shiny,reactiveValuesToList) importFrom(shiny,shinyApp) importFrom(shiny,tagAppendAttributes) importFrom(shiny,tagList) @@ -26,6 +29,7 @@ importFrom(shinydashboard,dropdownMenu) importFrom(shinydashboard,menuItem) importFrom(shinydashboard,sidebarMenu) importFrom(shinydashboardPlus,dashboardHeader) +importFrom(shinydashboardPlus,dashboardPage) importFrom(shinydashboardPlus,dashboardSidebar) importFrom(shinydashboardPlus,dashboardUser) importFrom(shinydashboardPlus,dashboardUserItem) diff --git a/dev/02_dev.R b/dev/02_dev.R index 70d20c7..5b83f64 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -21,6 +21,7 @@ usethis::use_package("shinyjs") usethis::use_package("shinyWidgets") usethis::use_package("spsComps") usethis::use_package("pool") +usethis::use_package("rlang") #, "shinyWidgets" usethis::use_dev_package("stacomirtools", remote = "Remotes: gitlab::git@forgemia.inra.fr:stacomi/stacomirtools.git" ) -- GitLab From 4683573c7269844215173ca7464b485aaafb7123 Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 14:03:01 +0200 Subject: [PATCH 20/51] correction manque package fonction --- DESCRIPTION | 5 +++-- NAMESPACE | 2 ++ R/mod_annuel.R | 5 +++-- R/mod_espece.R | 5 +++-- R/mod_migr_multi.R | 7 ++++--- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 0468bb2..259f5c3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: stacoshiny Title: User interface for stacomi Version: 0.0.0.9000 Authors@R: person('AUTHOR_FIRST', 'AUTHOR_LAST', email = 'AUTHOR@MAIL.COM', role = c('cre', 'aut')) -Description: It is a part of the 'STACOMI' open source project developed in France by the French Agency for Biodiversity (OFB) institute, to centralize data obtained by fish pass monitoring. The objective of the stacomi project is to provide a common database for people monitoring ï¬sh migration, so that data from watershed are shared, and stocks exchanging between different basins are better managed. +Description: It is a part of the 'STACOMI' open source project developed in France by the French Agency for Biodiversity (OFB) institute, to centralize data obtained by fish pass monitoring. The objective of the stacomi project is to provide a common database for people monitoring <U+FB01>sh migration, so that data from watershed are shared, and stocks exchanging between di<U+FB00>erent basins are better managed. License: MIT + file LICENSE Imports: config (>= 0.3.1), @@ -20,7 +20,8 @@ Imports: shinyBS, shinyWidgets, spsComps, - pool + pool, + shinipsum Encoding: UTF-8 LazyData: true RoxygenNote: 7.1.1 diff --git a/NAMESPACE b/NAMESPACE index ae4e3e4..c627e02 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,7 @@ export(run_app) import(shiny) import(stacomirtools) +importFrom(DT,renderDT) importFrom(config,get) importFrom(golem,activate_js) importFrom(golem,add_resource_path) @@ -26,6 +27,7 @@ importFrom(shiny,tagList) importFrom(shiny,tags) importFrom(shiny,textInput) importFrom(shinyWidgets,actionBttn) +importFrom(shinydashboard,box) importFrom(shinydashboard,dashboardBody) importFrom(shinydashboard,dropdownMenu) importFrom(shinydashboard,menuItem) diff --git a/R/mod_annuel.R b/R/mod_annuel.R index bb10a1f..825e8d0 100644 --- a/R/mod_annuel.R +++ b/R/mod_annuel.R @@ -7,7 +7,7 @@ #' @noRd #' #' @importFrom shiny NS tagList -#' @importFrom shinydashboard tabItem +#' @importFrom shinydashboard tabItem box mod_annuel_ui <- function(id){ ns <- NS(id) tabItem(tabName = "annuel", @@ -49,6 +49,7 @@ mod_annuel_ui <- function(id){ #' annuel Server Functions #' @importFrom shinipsum random_ggplot random_DT +#' @importFrom DT renderDT #' @noRd mod_annuel_server <- function(id){ moduleServer( id, function(input, output, session){ @@ -61,7 +62,7 @@ mod_annuel_server <- function(id){ random_ggplot() }) - output$tab_annuel_data <- DT::renderDT({ + output$tab_annuel_data <- renderDT({ random_DT(5, 5) }) }) diff --git a/R/mod_espece.R b/R/mod_espece.R index 70258be..d2d8f74 100644 --- a/R/mod_espece.R +++ b/R/mod_espece.R @@ -7,6 +7,7 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box mod_espece_ui <- function(id){ ns <- NS(id) tabItem(tabName = "espece", @@ -51,7 +52,7 @@ mod_espece_ui <- function(id){ } #' espece Server Functions -#' +#' @importFrom DT renderDT #' @noRd mod_espece_server <- function(id){ moduleServer( id, function(input, output, session){ @@ -64,7 +65,7 @@ mod_espece_server <- function(id){ random_ggplot() }) - output$tab_esp_summary <- DT::renderDT({ + output$tab_esp_summary <- renderDT({ random_DT(5, 5) }) diff --git a/R/mod_migr_multi.R b/R/mod_migr_multi.R index e61bc78..e466108 100644 --- a/R/mod_migr_multi.R +++ b/R/mod_migr_multi.R @@ -7,7 +7,8 @@ #' @noRd #' #' @importFrom shiny NS tagList -#' @importFrom shinydashboard tabItem +#' @importFrom shinydashboard tabItem box +#' @importFrom DT renderDT mod_migr_multi_ui <- function(id){ ns <- NS(id) tabItem(tabName = "migr_mult", @@ -82,11 +83,11 @@ mod_migr_multi_server <- function(id){ random_ggplot() }) - output$tab_migration_mult_summary <- DT::renderDT({ + output$tab_migration_mult_summary <- renderDT({ random_DT(5, 5) }) - output$tab_migration_mult_data <- DT::renderDT({ + output$tab_migration_mult_data <- renderDT({ random_DT(5, 5) }) -- GitLab From 89e094863137225c365d0b1f5e18dad9f55f66f4 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 14:03:48 +0200 Subject: [PATCH 21/51] creation module interannuel --- R/app_server.R | 3 +- R/mod_interannuel.R | 111 ++++++++++++++++++++++++++++++++++++++++++++ R/mod_main_page.R | 1 + dev/02_dev.R | 2 +- 4 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 R/mod_interannuel.R diff --git a/R/app_server.R b/R/app_server.R index f2f37e0..3e3abb6 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -10,6 +10,7 @@ app_server <- function( input, output, session ) { mod_header_server("header_ui_1") mod_left_side_bar_server("left_side_bar_ui_1") mod_migr_multi_server("migr_multi_ui_1") - mod_espece_server("espece_ui_1") mod_annuel_server("annuel_ui_1") + mod_interannuel_server("interannuel_ui_1") + mod_espece_server("espece_ui_1") } diff --git a/R/mod_interannuel.R b/R/mod_interannuel.R new file mode 100644 index 0000000..115363b --- /dev/null +++ b/R/mod_interannuel.R @@ -0,0 +1,111 @@ +#' interannuel UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_interannuel_ui <- function(id){ + ns <- NS(id) + tabItem(tabName = "interannuel", + box(title = "Sélections :", + collapsible = TRUE, + width = 3, + sliderInput("annee", label = h5("Choisissez l\'année"), min = 1980, + max = 2021, value = c(2011, 2021)), + + selectizeInput('taxon', h5('Choisissez un taxon :'), + selected="A", choices = c("A","B"), + multiple = FALSE), + + selectizeInput('stade', h5('Choisissez un stade :'), + selected="A", choices = c("A","B"), + multiple = FALSE), + + selectizeInput('pas_temps', h5('Choisissez un découpage :'), + selected="Jour", choices = c("Jour","Semaine","Mois","Quinzaine"), + multiple = FALSE), + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_line" = 1, "plot_standard" = 2, "plot_step" = 3,"plot_barchart"=4,"plot_pointRange"=5,"plot_density"=6,"plot_seasonnal"=7,"tab_summary"=8), + selected = 1), + actionBttn( + inputId = "bttn_interannuel", + label = "OK", + style = "fill", + color = "primary" + ) + + + ), + box(collapsible = TRUE, + width=9, + + plotOutput(ns("plot_interannuel_line")), + plotOutput(ns("plot_interannuel_standard")), + plotOutput(ns("plot_interannuel_step")), + plotOutput(ns("plot_interannuel_barchart")), + plotOutput(ns("plot_interannuel_pointRange")), + plotOutput(ns("plot_interannuel_density")), + plotOutput(ns("plot_interannuel_seasonnal")) + ), + box(collapsible = TRUE, + width=12, + + DTOutput(ns("tab_interannuel_summary")) + + ) + + ) + +} + +#' interannuel Server Functions +#' +#' @noRd +mod_interannuel_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + #Bilan interannuel + output$plot_interannuel_line <- renderPlot({ + random_ggplot() + }) + + output$plot_interannuel_standard <- renderPlot({ + random_ggplot() + }) + + output$plot_interannuel_step <- renderPlot({ + random_ggplot() + }) + + output$plot_interannuel_barchart <- renderPlot({ + random_ggplot() + }) + + output$plot_interannuel_pointRange <- renderPlot({ + random_ggplot() + }) + + output$plot_interannuel_density <- renderPlot({ + random_ggplot() + }) + + output$plot_interannuel_seasonnal <- renderPlot({ + random_ggplot() + }) + + output$tab_interannuel_summary <- DT::renderDT({ + random_DT(5, 5) + }) + + + }) +} + +## To be copied in the UI +# mod_interannuel_ui("interannuel_ui_1") + +## To be copied in the server +# mod_interannuel_server("interannuel_ui_1") diff --git a/R/mod_main_page.R b/R/mod_main_page.R index 0f8e792..2ffa6cf 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -15,6 +15,7 @@ mod_main_page_ui <- function(id){ tabItems( mod_migr_multi_ui("migr_multi_ui_1"), mod_annuel_ui("annuel_ui_1"), + mod_interannuel_ui("interannuel_ui_1"), mod_espece_ui("espece_ui_1") ) diff --git a/dev/02_dev.R b/dev/02_dev.R index a987e58..95a387c 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -34,7 +34,7 @@ golem::add_module( name = "left_side_bar") # left side bar golem::add_module( name = "migr_multi") # migration multiple golem::add_module( name = "espece") # module espece golem::add_module( name = "annuel") # module annuel - +golem::add_module( name = "interannuel") # mode interannuel ## Add helper functions ---- ## Creates fct_* and utils_* golem::add_fct( "helpers" ) -- GitLab From 8f2c250ee03b19ac239571f801630fc86c6d4dbb Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 14:05:22 +0200 Subject: [PATCH 22/51] [golem] maj --- NAMESPACE | 1 + R/mod_migr_multi.R | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NAMESPACE b/NAMESPACE index c627e02..ee92cd8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,7 @@ export(run_app) import(shiny) import(stacomirtools) +importFrom(DT,DTOutput) importFrom(DT,renderDT) importFrom(config,get) importFrom(golem,activate_js) diff --git a/R/mod_migr_multi.R b/R/mod_migr_multi.R index e466108..8620bd6 100644 --- a/R/mod_migr_multi.R +++ b/R/mod_migr_multi.R @@ -8,7 +8,7 @@ #' #' @importFrom shiny NS tagList #' @importFrom shinydashboard tabItem box -#' @importFrom DT renderDT +#' @importFrom DT renderDT DTOutput mod_migr_multi_ui <- function(id){ ns <- NS(id) tabItem(tabName = "migr_mult", -- GitLab From dc0c77d7098434fa7e305a3e0651de4625b936af Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 14:11:53 +0200 Subject: [PATCH 23/51] fix --- R/mod_annuel.R | 5 +++-- R/mod_espece.R | 5 +++-- R/mod_migr_multi.R | 4 +--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/R/mod_annuel.R b/R/mod_annuel.R index bb10a1f..825e8d0 100644 --- a/R/mod_annuel.R +++ b/R/mod_annuel.R @@ -7,7 +7,7 @@ #' @noRd #' #' @importFrom shiny NS tagList -#' @importFrom shinydashboard tabItem +#' @importFrom shinydashboard tabItem box mod_annuel_ui <- function(id){ ns <- NS(id) tabItem(tabName = "annuel", @@ -49,6 +49,7 @@ mod_annuel_ui <- function(id){ #' annuel Server Functions #' @importFrom shinipsum random_ggplot random_DT +#' @importFrom DT renderDT #' @noRd mod_annuel_server <- function(id){ moduleServer( id, function(input, output, session){ @@ -61,7 +62,7 @@ mod_annuel_server <- function(id){ random_ggplot() }) - output$tab_annuel_data <- DT::renderDT({ + output$tab_annuel_data <- renderDT({ random_DT(5, 5) }) }) diff --git a/R/mod_espece.R b/R/mod_espece.R index 70258be..d2d8f74 100644 --- a/R/mod_espece.R +++ b/R/mod_espece.R @@ -7,6 +7,7 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box mod_espece_ui <- function(id){ ns <- NS(id) tabItem(tabName = "espece", @@ -51,7 +52,7 @@ mod_espece_ui <- function(id){ } #' espece Server Functions -#' +#' @importFrom DT renderDT #' @noRd mod_espece_server <- function(id){ moduleServer( id, function(input, output, session){ @@ -64,7 +65,7 @@ mod_espece_server <- function(id){ random_ggplot() }) - output$tab_esp_summary <- DT::renderDT({ + output$tab_esp_summary <- renderDT({ random_DT(5, 5) }) diff --git a/R/mod_migr_multi.R b/R/mod_migr_multi.R index 176bab8..75fa523 100644 --- a/R/mod_migr_multi.R +++ b/R/mod_migr_multi.R @@ -7,12 +7,10 @@ #' @noRd #' #' @importFrom shiny NS tagList -<<<<<<< HEAD #' @importFrom shinydashboard tabItem -======= #' @importFrom shinydashboard tabItem box #' @importFrom DT renderDT DTOutput ->>>>>>> 8f2c250ee03b19ac239571f801630fc86c6d4dbb + mod_migr_multi_ui <- function(id){ ns <- NS(id) tabItem(tabName = "migr_mult", -- GitLab From 8df610d4bf057a2fb5ba426784caccb8fd780411 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 14:17:52 +0200 Subject: [PATCH 24/51] =?UTF-8?q?cr=C3=A9ation=20modules=20conditions=20en?= =?UTF-8?q?vir=20et=20caract=C3=A9ristiques=20lots?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/app_server.R | 2 ++ R/mod_caract_lot.R | 31 +++++++++++++++++++++++++++++++ R/mod_cond_envt.R | 31 +++++++++++++++++++++++++++++++ R/mod_main_page.R | 4 +++- dev/02_dev.R | 4 +++- 5 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 R/mod_caract_lot.R create mode 100644 R/mod_cond_envt.R diff --git a/R/app_server.R b/R/app_server.R index 3e3abb6..53212f1 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -13,4 +13,6 @@ app_server <- function( input, output, session ) { mod_annuel_server("annuel_ui_1") mod_interannuel_server("interannuel_ui_1") mod_espece_server("espece_ui_1") + mod_caract_lot_ui("caract_lot_ui_1") + mod_cond_envt_ui("cond_envt_ui_1") } diff --git a/R/mod_caract_lot.R b/R/mod_caract_lot.R new file mode 100644 index 0000000..3859bfc --- /dev/null +++ b/R/mod_caract_lot.R @@ -0,0 +1,31 @@ +#' caract_lot UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_caract_lot_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' caract_lot Server Functions +#' +#' @noRd +mod_caract_lot_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_caract_lot_ui("caract_lot_ui_1") + +## To be copied in the server +# mod_caract_lot_server("caract_lot_ui_1") diff --git a/R/mod_cond_envt.R b/R/mod_cond_envt.R new file mode 100644 index 0000000..c1884e4 --- /dev/null +++ b/R/mod_cond_envt.R @@ -0,0 +1,31 @@ +#' cond_envt UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_cond_envt_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' cond_envt Server Functions +#' +#' @noRd +mod_cond_envt_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_cond_envt_ui("cond_envt_ui_1") + +## To be copied in the server +# mod_cond_envt_server("cond_envt_ui_1") diff --git a/R/mod_main_page.R b/R/mod_main_page.R index 2ffa6cf..d50be82 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -16,7 +16,9 @@ mod_main_page_ui <- function(id){ mod_migr_multi_ui("migr_multi_ui_1"), mod_annuel_ui("annuel_ui_1"), mod_interannuel_ui("interannuel_ui_1"), - mod_espece_ui("espece_ui_1") + mod_espece_ui("espece_ui_1"), + mod_caract_lot_ui("caract_lot_ui_1"), + mod_cond_envt_ui("cond_envt_ui_1") ) ) diff --git a/dev/02_dev.R b/dev/02_dev.R index 835e519..24d4b8e 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -36,7 +36,9 @@ golem::add_module( name = "migr_multi") # migration multiple golem::add_module( name = "espece") # module espece golem::add_module( name = "annuel") # module annuel golem::add_module( name = "interannuel") # mode interannuel - +golem::add_module( name = "caract_lot") # caractéristiques des lots +golem::add_module( name = "cond_envt" ) # conditions environnementales de migration + ## Add helper functions ---- ## Creates fct_* and utils_* golem::add_fct( "helpers" ) -- GitLab From fb5267d64548d93a83dedfea4ed941bb2331c2cd Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 14:26:11 +0200 Subject: [PATCH 25/51] remplacement des accents --- R/mod_annuel.R | 4 ++-- R/mod_espece.R | 8 ++++---- R/mod_migr_multi.R | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/R/mod_annuel.R b/R/mod_annuel.R index 825e8d0..2461b1c 100644 --- a/R/mod_annuel.R +++ b/R/mod_annuel.R @@ -11,10 +11,10 @@ mod_annuel_ui <- function(id){ ns <- NS(id) tabItem(tabName = "annuel", - box(title = "Sélections :", + box(title = "S\u00e9lections :", collapsible = TRUE, width = 3, - sliderInput("annuel_date", label = h5("Choisissez l'année de début et de fin :"), min = 1980, + sliderInput("annuel_date", label = h5("Choisissez l'ann\u00e9e de d\u00e9but et de fin :"), min = 1980, max = 2021, value = c(2011, 2021)), selectizeInput("taxon_mult", h5('Choisissez un ou plusieurs taxon(s) :'), selected=NULL, choices=list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), diff --git a/R/mod_espece.R b/R/mod_espece.R index d2d8f74..85ddc87 100644 --- a/R/mod_espece.R +++ b/R/mod_espece.R @@ -11,10 +11,10 @@ mod_espece_ui <- function(id){ ns <- NS(id) tabItem(tabName = "espece", - box(title = "Sélections :", + box(title = "S\u00e9lections :", collapsible = TRUE, width = 3, - sliderInput("annee", label = h5("Choisissez l\'année"), min = 1980, + sliderInput("ann\u00e9e", label = h5("Choisissez l\'ann\u00e9e"), min = 1980, max = 2021, value = c(2011, 2021)), #La checkbox n'a pas assez d'option - utiliser un slider pour limiter les trop gros effectifs # checkboxGroupInput("choix_taxon", label = h5("Choisissez les sorties graphiques ou tableaux :"), @@ -22,8 +22,8 @@ mod_espece_ui <- function(id){ # selected = c(A,B,C,D,E,F,G,H)), - selectizeInput('pas_temps', h5('Choisissez un découpage temporel :'), - selected="Aucun", choices = c("Aucun","Semaine","Mois","Année"), + selectizeInput('pas_temps', h5('Choisissez un d\u00e9coupage temporel :'), + selected="Aucun", choices = c("Aucun","Semaine","Mois","Ann\u00e9e"), multiple = FALSE), checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), choices = list("plot_pie" = 1, "plot_barplot" = 2, "tab_summary"= 3), diff --git a/R/mod_migr_multi.R b/R/mod_migr_multi.R index 75fa523..c0bb697 100644 --- a/R/mod_migr_multi.R +++ b/R/mod_migr_multi.R @@ -14,10 +14,10 @@ mod_migr_multi_ui <- function(id){ ns <- NS(id) tabItem(tabName = "migr_mult", - box(title = "Selections :", + box(title = "S\u00e9lections :", collapsible = TRUE, width = 3, - dateInput("date", label = h5("Choisissez une date de debut :"), value = "2014-01-01"), + dateInput("date", label = h5("Choisissez une date de d\u00e9but :"), value = "2014-01-01"), selectizeInput('pas_temps', h5('Choisissez un pas de temps : '), selected="1 jour", choices = c("1 sec", "1 min", "10 min","15 min","30 min","1 h","1 jour","1 sem","2 sem","1 mois","3 mois","6 mois","1 an"), @@ -85,11 +85,11 @@ mod_migr_multi_server <- function(id){ random_ggplot() }) - output$tab_migration_mult_summary <- DT::renderDT({ + output$tab_migration_mult_summary <- renderDT({ random_DT(5, 5) }) - output$tab_migration_mult_data <- DT::renderDT({ + output$tab_migration_mult_data <- renderDT({ random_DT(5, 5) }) -- GitLab From 863a0914054e8f1b80db0cb604df6c0cb0b9d68a Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 14:29:07 +0200 Subject: [PATCH 26/51] accent --- R/mod_header.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/mod_header.R b/R/mod_header.R index d6c9a24..19d0f0c 100644 --- a/R/mod_header.R +++ b/R/mod_header.R @@ -36,15 +36,15 @@ mod_header_ui <- function(id){ ), textInput( inputId = ns("dbname_login"), - label= "base de données", value = "bd_contmig_nat", placeholder = "bd_contmig_nat" + label= "base de donn\u00e9es", value = "bd_contmig_nat", placeholder = "bd_contmig_nat" ), textInput( inputId = ns("name_login"), - label= "utilisateur", value = NULL, placeholder = "Nom utilisateur utilisé pour l'accès à la base de données." + label= "utilisateur", value = NULL, placeholder = "Nom utilisateur utilis\u00e9 pour l'acc\u00e8s à la base de donn\u00e9es." ), passwordInput( inputId = ns("pass_login"), - label= "mot de passe", value = NULL, placeholder = "Mot de passe utilisé pour l'accès à la base de données." + label= "mot de passe", value = NULL, placeholder = "Mot de passe utilis\u00e9 pour l'acc\u00e8s à la base de donn\u00e9es." ), actionBttn( inputId = ns("login_button"), -- GitLab From 76c09f76acc496a4431e8978dcb87e8727d5afd6 Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 14:29:55 +0200 Subject: [PATCH 27/51] accent --- R/mod_left_side_bar.R | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/R/mod_left_side_bar.R b/R/mod_left_side_bar.R index 58c7752..07a751f 100644 --- a/R/mod_left_side_bar.R +++ b/R/mod_left_side_bar.R @@ -13,10 +13,10 @@ mod_left_side_bar_ui <- function(id){ ns <- NS(id) dashboardSidebar( sidebarMenu( - radioButtons("radio_station", label = h5("A quelle échelle voulez-vous faire le bilan ?"), + radioButtons("radio_station", label = h5("A quelle \u00e9chelle voulez-vous faire le bilan ?"), choices = list("DC" = 1, "Station" = 2), selected = 1,inline=T), - h3("En fonction du choix de l\'utilisateur DC ou station, ajouter une box de sélection"), + h3("En fonction du choix de l\'utilisateur DC ou station, ajouter une box de s\u00e9lection"), # menuItem(tabName="migr","Migration" # ), @@ -26,16 +26,16 @@ mod_left_side_bar_ui <- function(id){ ), menuItem(tabName = "interannuel","Interannuel" ), - menuItem(tabName = "espece","Espèces" + menuItem(tabName = "espece","Esp\u00e8ces" ), - menuItem(tabName = "car_lot","Caractéristiques de lot" + menuItem(tabName = "car_lot","Caract\u00e9ristiques de lot" ), menuItem(tabName = "env","Conditions environnementales" ), - h4("Bilans spécifiques :"), + h4("Bilans sp\u00e9cifiques :"), menuItem(tabName = "sat_age","SAT - Taille/Âge" ), - menuItem(tabName = "ang_argentee","ANG - Anguille argentée" + menuItem(tabName = "ang_argentee","ANG - Anguille argent\u00e9e" ), menuItem(tabName = "civ_poids","CIV - Poids moyen civelle" ), -- GitLab From 0d94d502e916e9b83237797fa9f18c59f3a561d9 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 14:35:30 +0200 Subject: [PATCH 28/51] supprime module conditions env --- R/app_server.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/app_server.R b/R/app_server.R index 53212f1..e16b38a 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -14,5 +14,5 @@ app_server <- function( input, output, session ) { mod_interannuel_server("interannuel_ui_1") mod_espece_server("espece_ui_1") mod_caract_lot_ui("caract_lot_ui_1") - mod_cond_envt_ui("cond_envt_ui_1") + } -- GitLab From bd3d6567f4ff33fc58a76bdb03fccfaec4e8486c Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 14:36:32 +0200 Subject: [PATCH 29/51] ajoute contenu module caract lot et suppr contenu module cond env --- R/mod_caract_lot.R | 65 ++++++++++++++++++++++++++++++++++++++++++++-- R/mod_cond_envt.R | 31 ---------------------- 2 files changed, 63 insertions(+), 33 deletions(-) delete mode 100644 R/mod_cond_envt.R diff --git a/R/mod_caract_lot.R b/R/mod_caract_lot.R index 3859bfc..2a52072 100644 --- a/R/mod_caract_lot.R +++ b/R/mod_caract_lot.R @@ -7,11 +7,54 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box mod_caract_lot_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "car_lot", + box(title = "Sélections :", + collapsible = TRUE, + width = 3, + dateRangeInput("dates", label = h5("Sélectionnez la date de début et de fin :")), + p("La super méthode choice_c de", strong("Cédric"),"accepte tous les formats caractères date/heure ainsi que formats PosiXt"), + + selectizeInput('esp_taxon', h5('Choisissez un ou des taxon(s) :'), + choices = c("A","B"), + multiple = TRUE), + selectizeInput('esp_stade', h5('Choisissez un ou des stade(s) :'), + selected="A",choices = c("A","B"), + multiple = TRUE), + selectInput('esp_car_qual', h5('Choisissez une ou des caractéristique(s) qualitative(s) de lot :'), + selected = NULL, choices = c("A","B","C"), + multiple = TRUE), + #voir comment gérer setasqualitative + selectizeInput('esp_car_quan', h5('Choisissez une ou des caractéristique(s) quantitative(s) de lot :'), + choices = c("A","B","C"), + multiple = TRUE), + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_point" = 1, "plot_density" = 2, "plot_boxplot" = 3, "tab_data"= 4), + selected = 1), + actionBttn( + inputId = "bttn_carlot", + label = "OK", + style = "fill", + color = "primary" + ) + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_carlot_point")), + plotOutput(ns("plot_carlot_density")), + plotOutput(ns("plot_carlot_boxplot")) + + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_carlot_data")) + ) + ) + } #' caract_lot Server Functions @@ -20,6 +63,24 @@ mod_caract_lot_ui <- function(id){ mod_caract_lot_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + #Bilan caractéristique lot + + output$plot_carlot_point <- renderPlot({ + random_ggplot() + }) + + output$plot_carlot_density <- renderPlot({ + random_ggplot() + }) + + output$plot_carlot_boxplot <- renderPlot({ + random_ggplot() + }) + + output$tab_carlot_data <- DT::renderDT({ + random_DT(5, 5) + }) + }) } diff --git a/R/mod_cond_envt.R b/R/mod_cond_envt.R deleted file mode 100644 index c1884e4..0000000 --- a/R/mod_cond_envt.R +++ /dev/null @@ -1,31 +0,0 @@ -#' cond_envt UI Function -#' -#' @description A shiny Module. -#' -#' @param id,input,output,session Internal parameters for {shiny}. -#' -#' @noRd -#' -#' @importFrom shiny NS tagList -mod_cond_envt_ui <- function(id){ - ns <- NS(id) - tagList( - - ) -} - -#' cond_envt Server Functions -#' -#' @noRd -mod_cond_envt_server <- function(id){ - moduleServer( id, function(input, output, session){ - ns <- session$ns - - }) -} - -## To be copied in the UI -# mod_cond_envt_ui("cond_envt_ui_1") - -## To be copied in the server -# mod_cond_envt_server("cond_envt_ui_1") -- GitLab From f649b20d9e78ee3dc3c7632c0169df3d517c8ba2 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 14:37:15 +0200 Subject: [PATCH 30/51] update main page et dev pour prendre en compte suppr cond env --- R/mod_main_page.R | 3 +-- dev/02_dev.R | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/R/mod_main_page.R b/R/mod_main_page.R index d50be82..232a30e 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -17,8 +17,7 @@ mod_main_page_ui <- function(id){ mod_annuel_ui("annuel_ui_1"), mod_interannuel_ui("interannuel_ui_1"), mod_espece_ui("espece_ui_1"), - mod_caract_lot_ui("caract_lot_ui_1"), - mod_cond_envt_ui("cond_envt_ui_1") + mod_caract_lot_ui("caract_lot_ui_1") ) ) diff --git a/dev/02_dev.R b/dev/02_dev.R index 24d4b8e..3a724f5 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -37,7 +37,7 @@ golem::add_module( name = "espece") # module espece golem::add_module( name = "annuel") # module annuel golem::add_module( name = "interannuel") # mode interannuel golem::add_module( name = "caract_lot") # caractéristiques des lots -golem::add_module( name = "cond_envt" ) # conditions environnementales de migration + ## Add helper functions ---- ## Creates fct_* and utils_* -- GitLab From 4d9afbacd6809c8f054721da0447c1ca5d945d96 Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 14:43:10 +0200 Subject: [PATCH 31/51] mod_interannuel enlever les accents --- R/mod_interannuel.R | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/R/mod_interannuel.R b/R/mod_interannuel.R index 115363b..fb21931 100644 --- a/R/mod_interannuel.R +++ b/R/mod_interannuel.R @@ -6,14 +6,16 @@ #' #' @noRd #' -#' @importFrom shiny NS tagList +#' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box +#' @importFrom DT renderDT DTOutput mod_interannuel_ui <- function(id){ ns <- NS(id) tabItem(tabName = "interannuel", - box(title = "Sélections :", + box(title = "S\u00e9lections :", collapsible = TRUE, width = 3, - sliderInput("annee", label = h5("Choisissez l\'année"), min = 1980, + sliderInput("annee", label = h5("Choisissez l\'ann\u00e9e"), min = 1980, max = 2021, value = c(2011, 2021)), selectizeInput('taxon', h5('Choisissez un taxon :'), @@ -24,7 +26,7 @@ mod_interannuel_ui <- function(id){ selected="A", choices = c("A","B"), multiple = FALSE), - selectizeInput('pas_temps', h5('Choisissez un découpage :'), + selectizeInput('pas_temps', h5('Choisissez un d\u00e9coupage :'), selected="Jour", choices = c("Jour","Semaine","Mois","Quinzaine"), multiple = FALSE), checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), @@ -64,6 +66,7 @@ mod_interannuel_ui <- function(id){ #' interannuel Server Functions #' #' @noRd +#' @importFrom shinipsum random_ggplot random_DT mod_interannuel_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns @@ -96,7 +99,7 @@ mod_interannuel_server <- function(id){ random_ggplot() }) - output$tab_interannuel_summary <- DT::renderDT({ + output$tab_interannuel_summary <- renderDT({ random_DT(5, 5) }) -- GitLab From add7c1f646479ea222ab5d54e204f67a22e9bfdf Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 14:44:41 +0200 Subject: [PATCH 32/51] accent --- DESCRIPTION | 3 ++- NAMESPACE | 3 +++ R/mod_header.R | 6 +++--- R/mod_left_side_bar.R | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 0468bb2..f62dd97 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -20,7 +20,8 @@ Imports: shinyBS, shinyWidgets, spsComps, - pool + pool, + shinipsum Encoding: UTF-8 LazyData: true RoxygenNote: 7.1.1 diff --git a/NAMESPACE b/NAMESPACE index ae4e3e4..ee92cd8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,8 @@ export(run_app) import(shiny) import(stacomirtools) +importFrom(DT,DTOutput) +importFrom(DT,renderDT) importFrom(config,get) importFrom(golem,activate_js) importFrom(golem,add_resource_path) @@ -26,6 +28,7 @@ importFrom(shiny,tagList) importFrom(shiny,tags) importFrom(shiny,textInput) importFrom(shinyWidgets,actionBttn) +importFrom(shinydashboard,box) importFrom(shinydashboard,dashboardBody) importFrom(shinydashboard,dropdownMenu) importFrom(shinydashboard,menuItem) diff --git a/R/mod_header.R b/R/mod_header.R index 19d0f0c..bccb31a 100644 --- a/R/mod_header.R +++ b/R/mod_header.R @@ -40,11 +40,11 @@ mod_header_ui <- function(id){ ), textInput( inputId = ns("name_login"), - label= "utilisateur", value = NULL, placeholder = "Nom utilisateur utilis\u00e9 pour l'acc\u00e8s à la base de donn\u00e9es." + label= "utilisateur", value = NULL, placeholder = "Nom utilisateur utilis\u00e9 pour l'acc\u00e8s \u00e0 la base de donn\u00e9es." ), passwordInput( inputId = ns("pass_login"), - label= "mot de passe", value = NULL, placeholder = "Mot de passe utilis\u00e9 pour l'acc\u00e8s à la base de donn\u00e9es." + label= "mot de passe", value = NULL, placeholder = "Mot de passe utilis\u00e9 pour l'acc\u00e8s \u00e0 la base de donn\u00e9es." ), actionBttn( inputId = ns("login_button"), @@ -104,7 +104,7 @@ mod_header_server <- function(id){ image = "https://e7.pngegg.com/pngimages/165/79/png-clipart-database-server-computer-icons-database-connection-backup-database-miscellaneous-angle-thumbnail.png", #title = , subtitle = paste('Utilisateur :', db_connection@base[4], sep=' '), - footer = p(paste('Hôte :',db_connection@base[2], sep = ' '), class = "text-center") + footer = p(paste('H\u00f4te :',db_connection@base[2], sep = ' '), class = "text-center") ) }) # fin output$statut_connection diff --git a/R/mod_left_side_bar.R b/R/mod_left_side_bar.R index 07a751f..cb7f457 100644 --- a/R/mod_left_side_bar.R +++ b/R/mod_left_side_bar.R @@ -33,7 +33,7 @@ mod_left_side_bar_ui <- function(id){ menuItem(tabName = "env","Conditions environnementales" ), h4("Bilans sp\u00e9cifiques :"), - menuItem(tabName = "sat_age","SAT - Taille/Âge" + menuItem(tabName = "sat_age","SAT - Taille/\u00c2ge" ), menuItem(tabName = "ang_argentee","ANG - Anguille argent\u00e9e" ), -- GitLab From 090508cfabe9265e8992ae0f172cecfc551cc5b8 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:00:53 +0200 Subject: [PATCH 33/51] supprime module caracteristique lot (plante) --- R/app_server.R | 1 - R/mod_caract_lot.R | 92 ---------------------------------------------- R/mod_main_page.R | 3 +- 3 files changed, 1 insertion(+), 95 deletions(-) delete mode 100644 R/mod_caract_lot.R diff --git a/R/app_server.R b/R/app_server.R index e16b38a..fbf6137 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -13,6 +13,5 @@ app_server <- function( input, output, session ) { mod_annuel_server("annuel_ui_1") mod_interannuel_server("interannuel_ui_1") mod_espece_server("espece_ui_1") - mod_caract_lot_ui("caract_lot_ui_1") } diff --git a/R/mod_caract_lot.R b/R/mod_caract_lot.R deleted file mode 100644 index 2a52072..0000000 --- a/R/mod_caract_lot.R +++ /dev/null @@ -1,92 +0,0 @@ -#' caract_lot UI Function -#' -#' @description A shiny Module. -#' -#' @param id,input,output,session Internal parameters for {shiny}. -#' -#' @noRd -#' -#' @importFrom shiny NS tagList -#' @importFrom shinydashboard tabItem box -mod_caract_lot_ui <- function(id){ - ns <- NS(id) - tabItem(tabName = "car_lot", - box(title = "Sélections :", - collapsible = TRUE, - width = 3, - dateRangeInput("dates", label = h5("Sélectionnez la date de début et de fin :")), - p("La super méthode choice_c de", strong("Cédric"),"accepte tous les formats caractères date/heure ainsi que formats PosiXt"), - - selectizeInput('esp_taxon', h5('Choisissez un ou des taxon(s) :'), - choices = c("A","B"), - multiple = TRUE), - selectizeInput('esp_stade', h5('Choisissez un ou des stade(s) :'), - selected="A",choices = c("A","B"), - multiple = TRUE), - selectInput('esp_car_qual', h5('Choisissez une ou des caractéristique(s) qualitative(s) de lot :'), - selected = NULL, choices = c("A","B","C"), - multiple = TRUE), - #voir comment gérer setasqualitative - selectizeInput('esp_car_quan', h5('Choisissez une ou des caractéristique(s) quantitative(s) de lot :'), - choices = c("A","B","C"), - multiple = TRUE), - checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), - choices = list("plot_point" = 1, "plot_density" = 2, "plot_boxplot" = 3, "tab_data"= 4), - selected = 1), - actionBttn( - inputId = "bttn_carlot", - label = "OK", - style = "fill", - color = "primary" - ) - ), - - box(collapsible = TRUE, - width=9, - plotOutput(ns("plot_carlot_point")), - plotOutput(ns("plot_carlot_density")), - plotOutput(ns("plot_carlot_boxplot")) - - ), - box(collapsible = TRUE, - width=12, - DTOutput(ns("tab_carlot_data")) - ) - - ) - -} - -#' caract_lot Server Functions -#' -#' @noRd -mod_caract_lot_server <- function(id){ - moduleServer( id, function(input, output, session){ - ns <- session$ns - #Bilan caractéristique lot - - output$plot_carlot_point <- renderPlot({ - random_ggplot() - }) - - output$plot_carlot_density <- renderPlot({ - random_ggplot() - }) - - output$plot_carlot_boxplot <- renderPlot({ - random_ggplot() - }) - - output$tab_carlot_data <- DT::renderDT({ - random_DT(5, 5) - }) - - - }) -} - -## To be copied in the UI -# mod_caract_lot_ui("caract_lot_ui_1") - -## To be copied in the server -# mod_caract_lot_server("caract_lot_ui_1") diff --git a/R/mod_main_page.R b/R/mod_main_page.R index 232a30e..2ffa6cf 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -16,8 +16,7 @@ mod_main_page_ui <- function(id){ mod_migr_multi_ui("migr_multi_ui_1"), mod_annuel_ui("annuel_ui_1"), mod_interannuel_ui("interannuel_ui_1"), - mod_espece_ui("espece_ui_1"), - mod_caract_lot_ui("caract_lot_ui_1") + mod_espece_ui("espece_ui_1") ) ) -- GitLab From 9baa69cdfa6d058d97d0276763176bd29023bea3 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:07:45 +0200 Subject: [PATCH 34/51] ajoute modules car_lot, migr_env et migr_car --- R/app_server.R | 4 ++++ R/mod_car_lot.R | 31 +++++++++++++++++++++++++++++++ R/mod_main_page.R | 5 ++++- R/mod_migr_car.R | 31 +++++++++++++++++++++++++++++++ R/mod_migr_env.R | 31 +++++++++++++++++++++++++++++++ dev/02_dev.R | 5 +++-- 6 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 R/mod_car_lot.R create mode 100644 R/mod_migr_car.R create mode 100644 R/mod_migr_env.R diff --git a/R/app_server.R b/R/app_server.R index fbf6137..f7f3e48 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -13,5 +13,9 @@ app_server <- function( input, output, session ) { mod_annuel_server("annuel_ui_1") mod_interannuel_server("interannuel_ui_1") mod_espece_server("espece_ui_1") + mod_car_lot_server("car_lot_ui_1") + mod_migr_car_server("migr_car_ui_1") + mod_migr_env_server("migr_env_ui_1") + } diff --git a/R/mod_car_lot.R b/R/mod_car_lot.R new file mode 100644 index 0000000..32f2478 --- /dev/null +++ b/R/mod_car_lot.R @@ -0,0 +1,31 @@ +#' car_lot UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_car_lot_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' car_lot Server Functions +#' +#' @noRd +mod_car_lot_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_car_lot_ui("car_lot_ui_1") + +## To be copied in the server +# mod_car_lot_server("car_lot_ui_1") diff --git a/R/mod_main_page.R b/R/mod_main_page.R index 2ffa6cf..7c646e0 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -16,7 +16,10 @@ mod_main_page_ui <- function(id){ mod_migr_multi_ui("migr_multi_ui_1"), mod_annuel_ui("annuel_ui_1"), mod_interannuel_ui("interannuel_ui_1"), - mod_espece_ui("espece_ui_1") + mod_espece_ui("espece_ui_1"), + mod_car_lot_ui("car_lot_ui_1"), + mod_migr_car_ui("migr_car_ui_1"), + mod_migr_env_ui("migr_env_ui_1") ) ) diff --git a/R/mod_migr_car.R b/R/mod_migr_car.R new file mode 100644 index 0000000..d85f981 --- /dev/null +++ b/R/mod_migr_car.R @@ -0,0 +1,31 @@ +#' migr_car UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_migr_car_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' migr_car Server Functions +#' +#' @noRd +mod_migr_car_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_migr_car_ui("migr_car_ui_1") + +## To be copied in the server +# mod_migr_car_server("migr_car_ui_1") diff --git a/R/mod_migr_env.R b/R/mod_migr_env.R new file mode 100644 index 0000000..02aa5f8 --- /dev/null +++ b/R/mod_migr_env.R @@ -0,0 +1,31 @@ +#' migr_env UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_migr_env_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' migr_env Server Functions +#' +#' @noRd +mod_migr_env_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_migr_env_ui("migr_env_ui_1") + +## To be copied in the server +# mod_migr_env_server("migr_env_ui_1") diff --git a/dev/02_dev.R b/dev/02_dev.R index 3a724f5..d903534 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -36,8 +36,9 @@ golem::add_module( name = "migr_multi") # migration multiple golem::add_module( name = "espece") # module espece golem::add_module( name = "annuel") # module annuel golem::add_module( name = "interannuel") # mode interannuel -golem::add_module( name = "caract_lot") # caractéristiques des lots - +golem::add_module( name = "car_lot") # caractéristiques des lots +golem::add_module( name = "migr_car") #Bilan Migration - caractéristique lot +golem::add_module( name = "migr_env") #Bilan migration vs condition env ## Add helper functions ---- ## Creates fct_* and utils_* -- GitLab From c284e40881b3cbb8ad773832324712e6793dab23 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:18:48 +0200 Subject: [PATCH 35/51] =?UTF-8?q?ajoute=20contenu=20caract=C3=A9ristiques?= =?UTF-8?q?=20lots?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/mod_car_lot.R | 67 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/R/mod_car_lot.R b/R/mod_car_lot.R index 32f2478..91cac16 100644 --- a/R/mod_car_lot.R +++ b/R/mod_car_lot.R @@ -7,19 +7,80 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box mod_car_lot_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "car_lot", + box(title = "S\u00e9lections :", + collapsible = TRUE, + width = 3, + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), + p("La super m\u00e9thode choice_c de", strong("C\u00e9dric"),"accepte tous les formats caract\u00e8res date/heure ainsi que formats PosiXt"), + + selectizeInput('esp_taxon', h5('Choisissez un ou des taxon(s) :'), + choices = c("A","B"), + multiple = TRUE), + selectizeInput('esp_stade', h5('Choisissez un ou des stade(s) :'), + selected="A",choices = c("A","B"), + multiple = TRUE), + selectInput('esp_car_qual', h5('Choisissez une ou des caract\u00e9ristique(s) qualitative(s) de lot :'), + selected = NULL, choices = c("A","B","C"), + multiple = TRUE), + #voir comment gérer setasqualitative + selectizeInput('esp_car_quan', h5('Choisissez une ou des caract\u00e9ristique(s) quantitative(s) de lot :'), + choices = c("A","B","C"), + multiple = TRUE), + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_point" = 1, "plot_density" = 2, "plot_boxplot" = 3, "tab_data"= 4), + selected = 1), + actionBttn( + inputId = "bttn_carlot", + label = "OK", + style = "fill", + color = "primary" + ) + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_carlot_point")), + plotOutput(ns("plot_carlot_density")), + plotOutput(ns("plot_carlot_boxplot")) + + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_carlot_data")) + ) + ) + } #' car_lot Server Functions -#' +#' @importFrom DT renderDT #' @noRd mod_car_lot_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + #Bilan caractéristique lot + + output$plot_carlot_point <- renderPlot({ + random_ggplot() + }) + + output$plot_carlot_density <- renderPlot({ + random_ggplot() + }) + + output$plot_carlot_boxplot <- renderPlot({ + random_ggplot() + }) + + output$tab_carlot_data <- renderDT({ + random_DT(5, 5) + }) + }) } -- GitLab From 03cd2846255a1285a7c193a4ebd133b9e07b6b8f Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 15:24:43 +0200 Subject: [PATCH 36/51] left side --- R/mod_left_side_bar.R | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/R/mod_left_side_bar.R b/R/mod_left_side_bar.R index cb7f457..4757020 100644 --- a/R/mod_left_side_bar.R +++ b/R/mod_left_side_bar.R @@ -30,9 +30,11 @@ mod_left_side_bar_ui <- function(id){ ), menuItem(tabName = "car_lot","Caract\u00e9ristiques de lot" ), - menuItem(tabName = "env","Conditions environnementales" - ), - h4("Bilans sp\u00e9cifiques :"), + menuItem(tabName = "migr_car","Migration / Param. quant. ou qual." + ), + menuItem(tabName = "migr_env","Migration vs conditions envir." + ), + h4("Bilans sp\u00e9cifiques :"), menuItem(tabName = "sat_age","SAT - Taille/\u00c2ge" ), menuItem(tabName = "ang_argentee","ANG - Anguille argent\u00e9e" @@ -43,7 +45,9 @@ mod_left_side_bar_ui <- function(id){ menuItem(tabName = "bilan_df","Dispositif franchissement" ), menuItem(tabName = "bilan_dc","Dispositif comptage" - ) + ), + menuItem(tabName = "env","Station mesure env." + ) )) } -- GitLab From 5f53a0554e388ec8fdfb933fe3633f4f8604777d Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 15:25:43 +0200 Subject: [PATCH 37/51] md_migr_env --- R/mod_migr_env.R | 54 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/R/mod_migr_env.R b/R/mod_migr_env.R index 02aa5f8..c798011 100644 --- a/R/mod_migr_env.R +++ b/R/mod_migr_env.R @@ -6,20 +6,66 @@ #' #' @noRd #' -#' @importFrom shiny NS tagList +#' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box mod_migr_env_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "migr_env", + box(title = "S\u00e9lections :", + collapsible = TRUE, + width = 3, + selectizeInput('station_mesure_mult', h5('Choisissez une ou plusieurs station(s) de mesure :'), + choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), + multiple = TRUE), + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), + + selectizeInput('pas_temps', h5('Choisissez un pas de temps :'), + selected="1 jour", choices = c("1 sec","1 min","10 min","15 min","30 min","1 h","12 h","1 jour","1 sem","2 sem","1 mois","3 mois","6 mois","1 an"), + multiple = FALSE), + numericInput("num", label = h5("Nombre de pas de temps :"), value = 365), + + selectizeInput('taxon_mult', h5('Choisissez un ou plusieurs taxon(s) :'), + choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), + multiple = TRUE), + selectizeInput('stade_mult', h5('Choisissez un ou plusieurs stade(s) :'), + choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3), + multiple = TRUE), + + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_migr_env1" = 1, "plot_migr_env2" = 2), + selected = 1), + actionBttn( + inputId = "bttn_migrenv", + label = "OK", + style = "fill", + color = "primary" + ) + + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_migr_env1")), + plotOutput(ns("plot_migr_env2")) + + ) + ) } #' migr_env Server Functions -#' +#' @importFrom shinipsum random_ggplot #' @noRd mod_migr_env_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + output$plot_migr_env1 <- renderPlot({ + random_ggplot() + }) + + output$plot_migr_env2 <- renderPlot({ + random_ggplot() + }) }) } -- GitLab From 7fe624c9c00ba38c9d027f3ff05f5b541baafddd Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 15:29:04 +0200 Subject: [PATCH 38/51] module migr car --- NAMESPACE | 4 +++ R/mod_migr_car.R | 79 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 80 insertions(+), 3 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index ee92cd8..31aad25 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -17,17 +17,21 @@ importFrom(shinipsum,random_ggplot) importFrom(shiny,HTML) importFrom(shiny,NS) importFrom(shiny,column) +importFrom(shiny,dateRangeInput) importFrom(shiny,isolate) importFrom(shiny,observeEvent) importFrom(shiny,passwordInput) +importFrom(shiny,radioButtons) importFrom(shiny,reactiveValues) importFrom(shiny,reactiveValuesToList) +importFrom(shiny,selectizeInput) importFrom(shiny,shinyApp) importFrom(shiny,tagAppendAttributes) importFrom(shiny,tagList) importFrom(shiny,tags) importFrom(shiny,textInput) importFrom(shinyWidgets,actionBttn) +importFrom(shinyWidgets,radioGroupButtons) importFrom(shinydashboard,box) importFrom(shinydashboard,dashboardBody) importFrom(shinydashboard,dropdownMenu) diff --git a/R/mod_migr_car.R b/R/mod_migr_car.R index d85f981..6b628a0 100644 --- a/R/mod_migr_car.R +++ b/R/mod_migr_car.R @@ -6,21 +6,94 @@ #' #' @noRd #' -#' @importFrom shiny NS tagList +#' @importFrom shiny NS tagList dateRangeInput radioButtons selectizeInput +#' @importFrom shinydashboard tabItem box +#' @importFrom shinyWidgets radioGroupButtons mod_migr_car_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "migr_car", + box(title = "S\u00e9lections :", + collapsible = TRUE, + width = 3, + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), + + radioButtons("radio_choix", label = h5("Souhaitez-vous inclure les \u00e9chantillons ?"), + choices = list("Oui" = 1, "Non" = 2), + selected = 1,inline=T), + selectizeInput('esp_taxon', h5('Choisissez un ou des taxon(s) :'), + selected="A", choices = c("A","B"), + multiple = TRUE), + selectizeInput('esp_stade', h5('Choisissez un ou des stade(s) :'), + selected="A", choices = c("A","B"), + multiple = TRUE), + selectizeInput('esp_car_qual', h5('Choisissez une ou des caract\u00e9ristique(s) qualitative(s) de lot :'), + choices = c("A","B","C"), + multiple = TRUE), + #voir comment gérer setasqualitative + selectizeInput('esp_car_quan', h5('Choisissez une ou des caract\u00e9ristique(s) quantitative(s) de lot :'), + choices = c("A","B","C"), + multiple = TRUE), +# radioButtons("radio_choix", label = h5("Choisissez les sorties graphiques ou tableaux :"), +# choices = list("plot_param_qualitatif" = 1, "plot_param_quantitatif" = 2, "plot_crossed" = 3, "tab_data"= 4), +# selected = 1, inline=F), + radioGroupButtons("choix_sorties", + label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = c(`qal <i class='fa fa-bar-chart'></i>` = "qual", + `quan <i class='fa fa-line-chart'></i>` = "quan", + `crossed <i class='fa fa-pie-chart'></i>` = "crossed", + `tab <i class='fa fa-table'></i>` = "tab"), + selected = 1, + status = "primary"), + actionBttn( + inputId = "bttn_migrcar", + label = "OK", + style = "fill", + color = "primary" + ) + + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_migrcar_paramqual")), + plotOutput(ns("plot_migrcar_paramquan")), + plotOutput(ns("plot_migrcar_crossed")) + + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_migrcar_data")) + ) + ) + } #' migr_car Server Functions #' #' @noRd +#' @importFrom shinipsum random_ggplot random_DT mod_migr_car_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + output$plot_migrcar_paramqual <- renderPlot({ + random_ggplot() + }) + + output$plot_migrcar_paramquan <- renderPlot({ + random_ggplot() + }) + + output$plot_migrcar_crossed <- renderPlot({ + random_ggplot() + }) + + + output$tab_migrcar_data <- DT::renderDT({ + random_DT(5, 5) + }) + }) } -- GitLab From a9f053dd7e806cb3cabc655068363a908c302633 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:31:57 +0200 Subject: [PATCH 39/51] creation modules sat_age, ang_argentee et civ_poids --- R/app_server.R | 3 +++ R/mod_ang_argentee.R | 31 +++++++++++++++++++++++++++++++ R/mod_civ_poids.R | 31 +++++++++++++++++++++++++++++++ R/mod_main_page.R | 5 ++++- R/mod_sat_age.R | 31 +++++++++++++++++++++++++++++++ dev/02_dev.R | 3 +++ 6 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 R/mod_ang_argentee.R create mode 100644 R/mod_civ_poids.R create mode 100644 R/mod_sat_age.R diff --git a/R/app_server.R b/R/app_server.R index f7f3e48..713c051 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -16,6 +16,9 @@ app_server <- function( input, output, session ) { mod_car_lot_server("car_lot_ui_1") mod_migr_car_server("migr_car_ui_1") mod_migr_env_server("migr_env_ui_1") + mod_sat_age_server("sat_age_ui_1") + mod_ang_argentee_server("ang_argentee_ui_1") + mod_civ_poids_server("civ_poids_ui_1") } diff --git a/R/mod_ang_argentee.R b/R/mod_ang_argentee.R new file mode 100644 index 0000000..60d4af7 --- /dev/null +++ b/R/mod_ang_argentee.R @@ -0,0 +1,31 @@ +#' ang_argentee UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_ang_argentee_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' ang_argentee Server Functions +#' +#' @noRd +mod_ang_argentee_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_ang_argentee_ui("ang_argentee_ui_1") + +## To be copied in the server +# mod_ang_argentee_server("ang_argentee_ui_1") diff --git a/R/mod_civ_poids.R b/R/mod_civ_poids.R new file mode 100644 index 0000000..5fd9393 --- /dev/null +++ b/R/mod_civ_poids.R @@ -0,0 +1,31 @@ +#' civ_poids UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_civ_poids_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' civ_poids Server Functions +#' +#' @noRd +mod_civ_poids_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_civ_poids_ui("civ_poids_ui_1") + +## To be copied in the server +# mod_civ_poids_server("civ_poids_ui_1") diff --git a/R/mod_main_page.R b/R/mod_main_page.R index 7c646e0..6802fa7 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -19,7 +19,10 @@ mod_main_page_ui <- function(id){ mod_espece_ui("espece_ui_1"), mod_car_lot_ui("car_lot_ui_1"), mod_migr_car_ui("migr_car_ui_1"), - mod_migr_env_ui("migr_env_ui_1") + mod_migr_env_ui("migr_env_ui_1"), + mod_sat_age_ui("sat_age_ui_1"), + mod_ang_argentee_ui("ang_argentee_ui_1"), + mod_civ_poids_ui("civ_poids_ui_1") ) ) diff --git a/R/mod_sat_age.R b/R/mod_sat_age.R new file mode 100644 index 0000000..43d00e7 --- /dev/null +++ b/R/mod_sat_age.R @@ -0,0 +1,31 @@ +#' sat_age UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_sat_age_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' sat_age Server Functions +#' +#' @noRd +mod_sat_age_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_sat_age_ui("sat_age_ui_1") + +## To be copied in the server +# mod_sat_age_server("sat_age_ui_1") diff --git a/dev/02_dev.R b/dev/02_dev.R index d903534..564fae6 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -39,6 +39,9 @@ golem::add_module( name = "interannuel") # mode interannuel golem::add_module( name = "car_lot") # caractéristiques des lots golem::add_module( name = "migr_car") #Bilan Migration - caractéristique lot golem::add_module( name = "migr_env") #Bilan migration vs condition env +golem::add_module( name = "sat_age") # Bilan SAT_age +golem::add_module( name = "ang_argentee") # Bilan anguilles argentées +golem::add_module( name = "civ_poids") # Bilan poids civelles ## Add helper functions ---- ## Creates fct_* and utils_* -- GitLab From dda0f81064c1c817a8124a51041d50550a84d6c5 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:39:25 +0200 Subject: [PATCH 40/51] ajoute contenu (random) module civ_poids --- R/mod_civ_poids.R | 59 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/R/mod_civ_poids.R b/R/mod_civ_poids.R index 5fd9393..8019f81 100644 --- a/R/mod_civ_poids.R +++ b/R/mod_civ_poids.R @@ -7,19 +7,74 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box + mod_civ_poids_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "civ_poids", + box(title = "S\u00e9lections :", + collapsible = TRUE, + width = 3, + selectizeInput('ANG_eff', h5('Choisissez l\'effectif de l\'\u00e9chantillon :' ), + selected="=1", choices = c("=1", ">1","Tous"), + multiple = FALSE), + sliderInput("annuel_date", label = h5("Choisissez l'ann\u00e9e de début et de fin :"), min = 1980, + max = 2021, value = c(2011, 2021)), + + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_civpoids_1" = 1, "plot_civpoids_2" = 2, "plot_civpoids_3" = 3, + "tab_civpoids" = 4), + selected = 1), + actionBttn( + inputId = "bttn_civpoids", + label = "OK", + style = "fill", + color = "primary" + ) + + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_civpoids_1")), + plotOutput(ns("plot_civpoids_2")), + plotOutput(ns("plot_civpoids_3")) + + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_civpoids")) + ) + ) + } #' civ_poids Server Functions #' #' @noRd +#' @importFrom DT renderDT mod_civ_poids_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + # Bilan civelle + + output$plot_civpoids_1 <- renderPlot({ + random_ggplot() + }) + + output$plot_civpoids_2 <- renderPlot({ + random_ggplot() + }) + + output$plot_civpoids_3 <- renderPlot({ + random_ggplot() + }) + + output$tab_civpoids <- DT::renderDT({ + random_DT(5, 5) + }) + }) } -- GitLab From 64f2fae723f650f08d930f2ce1e7392b979250ce Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 15:39:26 +0200 Subject: [PATCH 41/51] mod_ang_argentee --- R/mod_ang_argentee.R | 59 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/R/mod_ang_argentee.R b/R/mod_ang_argentee.R index 60d4af7..8b9eeca 100644 --- a/R/mod_ang_argentee.R +++ b/R/mod_ang_argentee.R @@ -7,19 +7,72 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box mod_ang_argentee_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "ang_argentee", + box(title = "S\u00e9lections :", + collapsible = TRUE, + width = 3, + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), + + selectizeInput('ANG_DC', h5('Choisissez un DC :'), + selected="A", choices = c("A", "B"), + multiple = FALSE), + + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_angarg_1" = 1, "plot_angarg_2" = 2, "plot_angarg_3" = 3, "plot_angarg_4"= 4, "tab_angarg_data" = 5), + selected = 1), + actionBttn( + inputId = "bttn_angarg", + label = "OK", + style = "fill", + color = "primary" + ) + + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_angarg_1")), + plotOutput(ns("plot_angarg_2")), + plotOutput(ns("plot_angarg_3")), + plotOutput(ns("plot_angarg_4")) + + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_angarg_data")) + ) ) } #' ang_argentee Server Functions -#' +#' @importFrom shinipsum random_ggplot random_DT +#' @importFrom DT renderDT #' @noRd mod_ang_argentee_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + output$plot_angarg_1 <- renderPlot({ + random_ggplot() + }) + + output$plot_angarg_2 <- renderPlot({ + random_ggplot() + }) + + output$plot_angarg_3 <- renderPlot({ + random_ggplot() + }) + + output$plot_angarg_4 <- renderPlot({ + random_ggplot() + }) + + output$tab_angarg_data <- renderDT({ + random_DT(5, 5) + }) }) } -- GitLab From 5d1e925017495db0490292d866362f7de6e8e39c Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 15:44:56 +0200 Subject: [PATCH 42/51] module sat-age --- NAMESPACE | 2 ++ R/mod_sat_age.R | 46 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 31aad25..dac7cc2 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -16,9 +16,11 @@ importFrom(shinipsum,random_DT) importFrom(shinipsum,random_ggplot) importFrom(shiny,HTML) importFrom(shiny,NS) +importFrom(shiny,checkboxGroupInput) importFrom(shiny,column) importFrom(shiny,dateRangeInput) importFrom(shiny,isolate) +importFrom(shiny,numericInput) importFrom(shiny,observeEvent) importFrom(shiny,passwordInput) importFrom(shiny,radioButtons) diff --git a/R/mod_sat_age.R b/R/mod_sat_age.R index 43d00e7..6453394 100644 --- a/R/mod_sat_age.R +++ b/R/mod_sat_age.R @@ -6,21 +6,61 @@ #' #' @noRd #' -#' @importFrom shiny NS tagList +#' @importFrom shiny NS tagList dateRangeInput numericInput checkboxGroupInput +#' @importFrom shinydashboard tabItem box +#' @importFrom shinyWidgets actionBttn mod_sat_age_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "sat_age", + box(title = "Sélections :", + collapsible = TRUE, + width = 3, + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), + + numericInput("num", label = h5("Choisissez la taille max en mm des 1 an de mer :"), value = 650), + + numericInput("num", label = h5("Choisissez la taille max en mm des 2 ans de mer :"), value = 850), + + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_satage" = 1, "tab_satage_data" = 3), + selected = 1), + + actionBttn( + inputId = "bttn_satage", + label = "OK", + style = "fill", + color = "primary" + ) + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_satage")) + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_satage_data"))) + ) + } #' sat_age Server Functions #' #' @noRd +#' @importFrom shinipsum random_ggplot random_DT mod_sat_age_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + output$plot_satage <- renderPlot({ + random_ggplot() + }) + + output$tab_satage_data <- DT::renderDT({ + random_DT(5, 5) + }) + }) } -- GitLab From 6f40a1ad4f66b47b100086308cdfe771cffe87ec Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:48:10 +0200 Subject: [PATCH 43/51] ajoute modules bilan df et dc et env --- R/app_server.R | 3 +++ R/mod_bilan_dc.R | 31 +++++++++++++++++++++++++++++++ R/mod_bilan_df.R | 31 +++++++++++++++++++++++++++++++ R/mod_env.R | 31 +++++++++++++++++++++++++++++++ R/mod_main_page.R | 5 ++++- dev/02_dev.R | 5 ++++- 6 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 R/mod_bilan_dc.R create mode 100644 R/mod_bilan_df.R create mode 100644 R/mod_env.R diff --git a/R/app_server.R b/R/app_server.R index 713c051..931532c 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -19,6 +19,9 @@ app_server <- function( input, output, session ) { mod_sat_age_server("sat_age_ui_1") mod_ang_argentee_server("ang_argentee_ui_1") mod_civ_poids_server("civ_poids_ui_1") + mod_bilan_df_server("bilan_df_ui_1") + mod_bilan_dc_server("bilan_dc_ui_1") + mod_env_server("env_ui_1") } diff --git a/R/mod_bilan_dc.R b/R/mod_bilan_dc.R new file mode 100644 index 0000000..1600907 --- /dev/null +++ b/R/mod_bilan_dc.R @@ -0,0 +1,31 @@ +#' bilan_dc UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_bilan_dc_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' bilan_dc Server Functions +#' +#' @noRd +mod_bilan_dc_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_bilan_dc_ui("bilan_dc_ui_1") + +## To be copied in the server +# mod_bilan_dc_server("bilan_dc_ui_1") diff --git a/R/mod_bilan_df.R b/R/mod_bilan_df.R new file mode 100644 index 0000000..31943ad --- /dev/null +++ b/R/mod_bilan_df.R @@ -0,0 +1,31 @@ +#' bilan_df UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_bilan_df_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' bilan_df Server Functions +#' +#' @noRd +mod_bilan_df_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_bilan_df_ui("bilan_df_ui_1") + +## To be copied in the server +# mod_bilan_df_server("bilan_df_ui_1") diff --git a/R/mod_env.R b/R/mod_env.R new file mode 100644 index 0000000..7907c1a --- /dev/null +++ b/R/mod_env.R @@ -0,0 +1,31 @@ +#' env UI Function +#' +#' @description A shiny Module. +#' +#' @param id,input,output,session Internal parameters for {shiny}. +#' +#' @noRd +#' +#' @importFrom shiny NS tagList +mod_env_ui <- function(id){ + ns <- NS(id) + tagList( + + ) +} + +#' env Server Functions +#' +#' @noRd +mod_env_server <- function(id){ + moduleServer( id, function(input, output, session){ + ns <- session$ns + + }) +} + +## To be copied in the UI +# mod_env_ui("env_ui_1") + +## To be copied in the server +# mod_env_server("env_ui_1") diff --git a/R/mod_main_page.R b/R/mod_main_page.R index 6802fa7..4d39078 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -22,7 +22,10 @@ mod_main_page_ui <- function(id){ mod_migr_env_ui("migr_env_ui_1"), mod_sat_age_ui("sat_age_ui_1"), mod_ang_argentee_ui("ang_argentee_ui_1"), - mod_civ_poids_ui("civ_poids_ui_1") + mod_civ_poids_ui("civ_poids_ui_1"), + mod_bilan_df_ui("bilan_df_ui_1"), + mod_bilan_dc_ui("bilan_dc_ui_1"), + mod_env_ui("env_ui_1") ) ) diff --git a/dev/02_dev.R b/dev/02_dev.R index 564fae6..3e0c1ee 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -42,7 +42,10 @@ golem::add_module( name = "migr_env") #Bilan migration vs condition env golem::add_module( name = "sat_age") # Bilan SAT_age golem::add_module( name = "ang_argentee") # Bilan anguilles argentées golem::add_module( name = "civ_poids") # Bilan poids civelles - +golem::add_module( name = "bilan_df") +golem::add_module( name = "bilan_dc") +golem::add_module( name = "env") + ## Add helper functions ---- ## Creates fct_* and utils_* golem::add_fct( "helpers" ) -- GitLab From 8488a71a42840e9179b6e762fb4831921850e6aa Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 15:52:50 +0200 Subject: [PATCH 44/51] module env --- R/mod_main_page.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/mod_main_page.R b/R/mod_main_page.R index 4d39078..e876751 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -23,8 +23,8 @@ mod_main_page_ui <- function(id){ mod_sat_age_ui("sat_age_ui_1"), mod_ang_argentee_ui("ang_argentee_ui_1"), mod_civ_poids_ui("civ_poids_ui_1"), - mod_bilan_df_ui("bilan_df_ui_1"), - mod_bilan_dc_ui("bilan_dc_ui_1"), +# mod_bilan_df_ui("bilan_df_ui_1"), +# mod_bilan_dc_ui("bilan_dc_ui_1"), mod_env_ui("env_ui_1") ) -- GitLab From fa2b66bb834d7509296830e33fce1751033629c2 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:53:59 +0200 Subject: [PATCH 45/51] update description df et dc --- dev/02_dev.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dev/02_dev.R b/dev/02_dev.R index 3e0c1ee..763f840 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -42,9 +42,9 @@ golem::add_module( name = "migr_env") #Bilan migration vs condition env golem::add_module( name = "sat_age") # Bilan SAT_age golem::add_module( name = "ang_argentee") # Bilan anguilles argentées golem::add_module( name = "civ_poids") # Bilan poids civelles -golem::add_module( name = "bilan_df") -golem::add_module( name = "bilan_dc") -golem::add_module( name = "env") +golem::add_module( name = "bilan_df") # Bilan dispositif franchissement +golem::add_module( name = "bilan_dc") # Bilan dispositif comptage +golem::add_module( name = "env") # Bilan condition environnementales ## Add helper functions ---- ## Creates fct_* and utils_* -- GitLab From 8a98c03dbccb5134f0ec7e2c220ad31d2556ac92 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:54:21 +0200 Subject: [PATCH 46/51] ajout contenu (random) bilan_dc --- R/mod_bilan_dc.R | 53 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/R/mod_bilan_dc.R b/R/mod_bilan_dc.R index 1600907..ee44a96 100644 --- a/R/mod_bilan_dc.R +++ b/R/mod_bilan_dc.R @@ -7,19 +7,68 @@ #' @noRd #' #' @importFrom shiny NS tagList +#' @importFrom shinydashboard tabItem box mod_bilan_dc_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "bilan_dc", + box(title = "Sélections :", + collapsible = TRUE, + width = 3, + + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de début et de fin :")), + + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_dc_barchar_fonct" = 1, "plot_dc_barchar_service" = 2, "plot_dc_box" = 3, "tab_dc_data" = 4), + selected = 1), + actionBttn( + inputId = "bttn_df", + label = "OK", + style = "fill", + color = "primary" + ) + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_dc_barchar_fonct")), + plotOutput(ns("plot_dc_barchar_service")), + plotOutput(ns("plot_dc_box")) + + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_dc_data")) + ) ) + } #' bilan_dc Server Functions #' #' @noRd +#' @importFrom DT renderDT mod_bilan_dc_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + #Bilan DC + + output$plot_dc_barchar_fonct <- renderPlot({ + random_ggplot() + }) + + output$plot_dc_barchar_service <- renderPlot({ + random_ggplot() + }) + + + output$plot_dc_box <- renderPlot({ + random_ggplot() + }) + + output$tab_dc_data <- DT::renderDT({ + random_DT(5, 5) + }) + }) } -- GitLab From 7cb751400ca42196c1f10c7af7abba0aae8a5608 Mon Sep 17 00:00:00 2001 From: Clarisse Boulenger <Clarisse.Boulenger@inrae.fr> Date: Thu, 14 Oct 2021 15:54:22 +0200 Subject: [PATCH 47/51] module mod_bilan_df --- R/mod_bilan_df.R | 58 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/R/mod_bilan_df.R b/R/mod_bilan_df.R index 31943ad..82c30ef 100644 --- a/R/mod_bilan_df.R +++ b/R/mod_bilan_df.R @@ -5,21 +5,71 @@ #' @param id,input,output,session Internal parameters for {shiny}. #' #' @noRd -#' +#' @importFrom shinydashboard tabItem box #' @importFrom shiny NS tagList mod_bilan_df_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "bilan_df", + box(title = "S\u00e9lections :", + collapsible = TRUE, + width = 3, + selectizeInput('bilan_DF', h5('Choisissez un DF :'), + selected="A", choices = c("A", "B"), + multiple = FALSE), + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de début et de fin :")), + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_df_barchar_fonct" = 1, "plot_df_barchar_service" = 2, "plot_df_box" = 3, "plot_df_chart" = 4, "tab_df_data" = 5), + selected = 1), + actionBttn( + inputId = "bttn_df", + label = "OK", + style = "fill", + color = "primary" + ) + + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_df_barchar_fonct")), + plotOutput(ns("plot_df_barchar_service")), + plotOutput(ns("plot_df_box")), + plotOutput(ns("plot_df_chart")) + + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_df_data")) + ) ) } #' bilan_df Server Functions -#' +#' @importFrom shinipsum random_ggplot random_DT +#' @importFrom DT renderDT #' @noRd mod_bilan_df_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + output$plot_df_barchar_fonct <- renderPlot({ + random_ggplot() + }) + + output$plot_df_barchar_service <- renderPlot({ + random_ggplot() + }) + + output$plot_df_box <- renderPlot({ + random_ggplot() + }) + + output$plot_df_chart <- renderPlot({ + random_ggplot() + }) + + output$tab_df_data <- renderDT({ + random_DT(5, 5) + }) }) } -- GitLab From d1e168249c6a17a21e93070c6e4ed2ab2d5e40f1 Mon Sep 17 00:00:00 2001 From: LafageDenis <85349757+LafageDenis@users.noreply.github.com> Date: Thu, 14 Oct 2021 16:00:16 +0200 Subject: [PATCH 48/51] update --- R/mod_main_page.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/mod_main_page.R b/R/mod_main_page.R index e876751..4d39078 100644 --- a/R/mod_main_page.R +++ b/R/mod_main_page.R @@ -23,8 +23,8 @@ mod_main_page_ui <- function(id){ mod_sat_age_ui("sat_age_ui_1"), mod_ang_argentee_ui("ang_argentee_ui_1"), mod_civ_poids_ui("civ_poids_ui_1"), -# mod_bilan_df_ui("bilan_df_ui_1"), -# mod_bilan_dc_ui("bilan_dc_ui_1"), + mod_bilan_df_ui("bilan_df_ui_1"), + mod_bilan_dc_ui("bilan_dc_ui_1"), mod_env_ui("env_ui_1") ) -- GitLab From 332a9d8db7b26d958c54b93ac92fb4757a1fe130 Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 16:07:39 +0200 Subject: [PATCH 49/51] module env --- R/mod_env.R | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/R/mod_env.R b/R/mod_env.R index 7907c1a..c176824 100644 --- a/R/mod_env.R +++ b/R/mod_env.R @@ -6,21 +6,62 @@ #' #' @noRd #' -#' @importFrom shiny NS tagList +#' @importFrom shiny NS tagList dateRangeInput checkboxGroupInput +#' @importFrom shinydashboard tabItem box mod_env_ui <- function(id){ ns <- NS(id) - tagList( - + tabItem(tabName = "env", + box(title = "S\u00e9lections :", + collapsible = TRUE, + width = 3, + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), + + checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), + choices = list("plot_env_line" = 1, "plot_env2" = 2, "tab_env_data" = 3), + selected = 1), + actionBttn( + inputId = "bttn_df", + label = "OK", + style = "fill", + color = "primary" + ) + ), + + box(collapsible = TRUE, + width=9, + plotOutput(ns("plot_env_line")), + plotOutput(ns("plot_env2")) + + ), + box(collapsible = TRUE, + width=12, + DTOutput(ns("tab_env_data")) + ) + ) + } #' env Server Functions #' #' @noRd +#' @importFrom shinipsum random_ggplot random_DT mod_env_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns + output$plot_env_line <- renderPlot({ + random_ggplot() + }) + + output$plot_env2 <- renderPlot({ + random_ggplot() + }) + + output$tab_env_data <- DT::renderDT({ + random_DT(5, 5) + }) + }) } -- GitLab From c21bdf982e056e18ea9a4a0257ab2ba586f58633 Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 16:43:17 +0200 Subject: [PATCH 50/51] accent + icone --- R/app_ui.R | 2 +- R/mod_bilan_dc.R | 4 ++-- R/mod_bilan_df.R | 2 +- R/mod_civ_poids.R | 2 +- R/mod_header.R | 3 ++- R/mod_sat_age.R | 2 +- dev/01_start.R | 2 +- inst/app/www/favicon.jpg | Bin 0 -> 12280 bytes 8 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 inst/app/www/favicon.jpg diff --git a/R/app_ui.R b/R/app_ui.R index 785635a..0184401 100644 --- a/R/app_ui.R +++ b/R/app_ui.R @@ -33,7 +33,7 @@ golem_add_external_resources <- function(){ ) tags$head( - favicon(), + favicon(ext = 'png'), bundle_resources( path = app_sys('app/www'), app_title = 'stacoshiny' diff --git a/R/mod_bilan_dc.R b/R/mod_bilan_dc.R index ee44a96..5e34e61 100644 --- a/R/mod_bilan_dc.R +++ b/R/mod_bilan_dc.R @@ -11,11 +11,11 @@ mod_bilan_dc_ui <- function(id){ ns <- NS(id) tabItem(tabName = "bilan_dc", - box(title = "Sélections :", + box(title = "S\u00e9lections :", collapsible = TRUE, width = 3, - dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de début et de fin :")), + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), choices = list("plot_dc_barchar_fonct" = 1, "plot_dc_barchar_service" = 2, "plot_dc_box" = 3, "tab_dc_data" = 4), diff --git a/R/mod_bilan_df.R b/R/mod_bilan_df.R index 82c30ef..c01d4bb 100644 --- a/R/mod_bilan_df.R +++ b/R/mod_bilan_df.R @@ -16,7 +16,7 @@ mod_bilan_df_ui <- function(id){ selectizeInput('bilan_DF', h5('Choisissez un DF :'), selected="A", choices = c("A", "B"), multiple = FALSE), - dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de début et de fin :")), + dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), choices = list("plot_df_barchar_fonct" = 1, "plot_df_barchar_service" = 2, "plot_df_box" = 3, "plot_df_chart" = 4, "tab_df_data" = 5), selected = 1), diff --git a/R/mod_civ_poids.R b/R/mod_civ_poids.R index 8019f81..d0b6f9f 100644 --- a/R/mod_civ_poids.R +++ b/R/mod_civ_poids.R @@ -18,7 +18,7 @@ mod_civ_poids_ui <- function(id){ selectizeInput('ANG_eff', h5('Choisissez l\'effectif de l\'\u00e9chantillon :' ), selected="=1", choices = c("=1", ">1","Tous"), multiple = FALSE), - sliderInput("annuel_date", label = h5("Choisissez l'ann\u00e9e de début et de fin :"), min = 1980, + sliderInput("annuel_date", label = h5("Choisissez l'ann\u00e9e de d\u00e9but et de fin :"), min = 1980, max = 2021, value = c(2011, 2021)), checkboxGroupInput("choix_sorties", label = h4("Choisissez les sorties graphiques ou tableaux :"), diff --git a/R/mod_header.R b/R/mod_header.R index bccb31a..1f756ce 100644 --- a/R/mod_header.R +++ b/R/mod_header.R @@ -14,7 +14,8 @@ mod_header_ui <- function(id){ ns <- NS(id) - dashboardHeader(title="STACOSHINY", + dashboardHeader(title= tags$a(href="https://forgemia.inra.fr/stacomi/stacoshinY", target="_blank", + tags$img(height = "20px", alt="STACOSHINY", src="www/favicon.jpg", width = "100") ), leftUi = tagList( dropdownBlock( diff --git a/R/mod_sat_age.R b/R/mod_sat_age.R index 6453394..50cf446 100644 --- a/R/mod_sat_age.R +++ b/R/mod_sat_age.R @@ -12,7 +12,7 @@ mod_sat_age_ui <- function(id){ ns <- NS(id) tabItem(tabName = "sat_age", - box(title = "Sélections :", + box(title = "S\u00e9lections :", collapsible = TRUE, width = 3, dateRangeInput("dates", label = h5("S\u00e9lectionnez la date de d\u00e9but et de fin :")), diff --git a/dev/01_start.R b/dev/01_start.R index 27a6c0a..87ff9fa 100644 --- a/dev/01_start.R +++ b/dev/01_start.R @@ -53,7 +53,7 @@ golem::use_recommended_deps() ## Favicon ---- # If you want to change the favicon (default is golem's one) golem::use_favicon(path = "https://stacomir.r-forge.r-project.org/images/stacomi_logo.png") # path = "path/to/ico". Can be an online file. -golem::remove_favicon() +#golem::remove_favicon() ## Add helper functions ---- golem::use_utils_ui() diff --git a/inst/app/www/favicon.jpg b/inst/app/www/favicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d8ebb8259e0bf0592eb14ab64d79fcbcafc87004 GIT binary patch literal 12280 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 literal 0 HcmV?d00001 -- GitLab From 3df1601ba3ea5799f6325f5c6390f328d1a854af Mon Sep 17 00:00:00 2001 From: LBeaulaton <laurent.beaulaton@ofb.gouv.fr> Date: Thu, 14 Oct 2021 16:52:06 +0200 Subject: [PATCH 51/51] suppression des :: --- R/mod_bilan_dc.R | 2 +- R/mod_civ_poids.R | 2 +- R/mod_env.R | 3 ++- R/mod_migr_car.R | 3 ++- R/mod_sat_age.R | 3 ++- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/R/mod_bilan_dc.R b/R/mod_bilan_dc.R index 5e34e61..cf3c189 100644 --- a/R/mod_bilan_dc.R +++ b/R/mod_bilan_dc.R @@ -65,7 +65,7 @@ mod_bilan_dc_server <- function(id){ random_ggplot() }) - output$tab_dc_data <- DT::renderDT({ + output$tab_dc_data <- renderDT({ random_DT(5, 5) }) diff --git a/R/mod_civ_poids.R b/R/mod_civ_poids.R index d0b6f9f..b566c99 100644 --- a/R/mod_civ_poids.R +++ b/R/mod_civ_poids.R @@ -71,7 +71,7 @@ mod_civ_poids_server <- function(id){ random_ggplot() }) - output$tab_civpoids <- DT::renderDT({ + output$tab_civpoids <- renderDT({ random_DT(5, 5) }) diff --git a/R/mod_env.R b/R/mod_env.R index c176824..893f8fc 100644 --- a/R/mod_env.R +++ b/R/mod_env.R @@ -46,6 +46,7 @@ mod_env_ui <- function(id){ #' #' @noRd #' @importFrom shinipsum random_ggplot random_DT +#' @importFrom DT renderDT mod_env_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns @@ -58,7 +59,7 @@ mod_env_server <- function(id){ random_ggplot() }) - output$tab_env_data <- DT::renderDT({ + output$tab_env_data <- renderDT({ random_DT(5, 5) }) diff --git a/R/mod_migr_car.R b/R/mod_migr_car.R index 6b628a0..118b233 100644 --- a/R/mod_migr_car.R +++ b/R/mod_migr_car.R @@ -73,6 +73,7 @@ mod_migr_car_ui <- function(id){ #' #' @noRd #' @importFrom shinipsum random_ggplot random_DT +#' @importFrom DT renderDT mod_migr_car_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns @@ -90,7 +91,7 @@ mod_migr_car_server <- function(id){ }) - output$tab_migrcar_data <- DT::renderDT({ + output$tab_migrcar_data <- renderDT({ random_DT(5, 5) }) diff --git a/R/mod_sat_age.R b/R/mod_sat_age.R index 50cf446..470f32a 100644 --- a/R/mod_sat_age.R +++ b/R/mod_sat_age.R @@ -49,6 +49,7 @@ mod_sat_age_ui <- function(id){ #' #' @noRd #' @importFrom shinipsum random_ggplot random_DT +#' @importFrom DT renderDT mod_sat_age_server <- function(id){ moduleServer( id, function(input, output, session){ ns <- session$ns @@ -57,7 +58,7 @@ mod_sat_age_server <- function(id){ random_ggplot() }) - output$tab_satage_data <- DT::renderDT({ + output$tab_satage_data <- renderDT({ random_DT(5, 5) }) -- GitLab