RT, How to set the progress value increment by seconds within observeEvent function?
for example,render a rmarkdown file take 20 seconds, I just want the progress bar incre 5% by 1 second after press some button. anyone give some help for me, thanks very much!
ui.R
ui <- fluidPage(useShinyjs(),
actionButton("makefiles", "Make Files",class='btn btn-success',icon("fire")),
verbatimTextOutput("total")
)
server.R
server <- function(input, output,session) {
values <- reactiveValues(i = 0)
makeFiles <- observeEvent(input$makefiles,{
withProgress(message = "making......",detail="more than 20s",value=0,{
#invalidateLater func
fun <- reactive({
if(values$i<15){
invalidateLater(500, session)
values$i <<- values$i+0.5
}else{
return()
}
})
observe({
invalidateLater(1000, session)
pg <<- as.numeric(isolate(fun()))
setProgress(value=pg/14,detail=paste0(pg*7.14,'%'))
#print(pg)
})
#render files
rmarkdown::render("/srv/shiny-server/rmd/test.Rmd",word_document(),output_file = 'test.docx',output_dir = '/srv/shiny-server/rmd/',quiet=T)
})
})
output$total <- renderText({
invalidateLater(1000, session)
print(isolate(values$i))
})
}