Je suis en train de développer une petite application en Shiny (avec shinydashboard)
Sur un des items, j'aimerai avoir un rafraichissement automatique de mes données toutes les minutes par exemple, donc exécution d'une requete sql pour afficher les nouvelles données sans intervention de l'utilisateur
J'arrive à utiliser la fonction invalidateLater sur la valueBox pour afficher l'heure, mais je n'arrive pas à voir comment je pourrais faire pour tout l'item
voici la partie ui
Code : Tout sélectionner
tabItem(tabName = "encod",
fluidRow(
dateInput("dateJour", label ="Date",value = Sys.Date())
),
fluidRow(
valueBoxOutput("dateHeure"),
),
fluidRow(
valueBoxOutput("box1"),
valueBoxOutput("box2")
)
)
server
Code : Tout sélectionner
data_encodage<-(eventReactive (input$dateJour,{
date_encodage <- input$dateJour
# on interroge horme dans le json pour compter ce qui est enregistré
sql<-paste0("monsql")
res_encours<-dbGetQuery(con_horme,sql)
sql<-paste0("monsql")
res_planif <-dbGetQuery(con_horme,sql)
nb_ech<-rbind(res_encours,res_planif)
return(nb_ech)
},ignoreNULL = FALSE)
)
output$box1<- renderValueBox({
info_germes<- paste0(" G : ",
data_encodage()[which(data_encodage()$ech=='reel'&data_encodage()$libelle=='Germes routine'),"nb"],"/",
data_encodage()[which(data_encodage()$ech=='prevu'&data_encodage()$libelle=='Germes routine'),"nb"])
valueBox(
info_germes,
"Germes ",
icon = icon("users"),
color="blue"
)
})
output$box2<- renderValueBox({
info_chimie<- paste0(" C : ",
data_encodage()[which(data_encodage()$ech=='reel'&data_encodage()$libelle=='MG'),"nb"],"/",
data_encodage()[which(data_encodage()$ech=='prevu'&data_encodage()$libelle=='MG'),"nb"])
valueBox(
info_chimie,paste0("Chimie",Sys.time()),icon = icon("users"),color = "red")
})
output$dateHeure<-renderValueBox({
invalidateLater(2000)
valueBox(
Sys.time(),
"Dernière mise à jour",
icon = icon("clock"),
color = "yellow"
)
})
merci d'avance