End of run message in a Shiny app

Asked

Viewed 41 times

1

I’m developing a Shiny app, where I have several actionButtons which, when clicked, execute other codes through the function source or render according to the following example:

library(shiny)
library(rmarkdown)
library(shinythemes)

ui <- fluidPage(

  #tema
  theme = shinytheme("darkly"),
  navbarPage(title = "exemplo",


             # painél para relatório ---------------------------------------------------
             tabPanel("relatorio",
                      #relatório de movimentações
                      actionButton("teste", "teste"),
                      #relatório de passivo
                      #relatório de passivo
                      actionButton("teste2", "teste2")

  )
)

)

server <- function(input, output, session) {


  # relatórios --------------------------------------------------------------

  #render relatório de movimentacao
  observeEvent(input$teste, {
    render("endereço do arquivo Rmarkdown no computador",output_file = "teste" ,output_dir = "pasta de saida no computador")
  })

  observeEvent(input$teste2, {
    source("endereço do código em R no computador")
  })

}

shinyApp(ui, server)

My problem is that when I run the reports through Rmarkdown or source, the codes are running correctly, but I cannot know when the code was completed so I can use another application function

I would like to know how to put a code completion message and make the application Shiny end the actionButton so I can use another actionButton

1 answer

3


You can try using the function showModal(), to display a warning at the end of the step.

library(shiny)
library(rmarkdown)
library(shinythemes)

ui <- fluidPage(

  #tema
  theme = shinytheme("darkly"),
  navbarPage(title = "exemplo",


             # painél para relatório ---------------------------------------------------
             tabPanel("relatorio",
                      #relatório de movimentações
                      actionButton("teste", "teste"),
                      #relatório de passivo
                      #relatório de passivo
                      actionButton("teste2", "teste2")

             )
  )

)

server <- function(input, output, session) {


  # relatórios --------------------------------------------------------------

  #render relatório de movimentacao
  observeEvent(input$teste, {
      x <- 2
      y <- 3
      showModal(modalDialog(
        title = "Aviso",
        paste0("Operação completa. Valor de x é ", x, " e valor de y é ", y),
        easyClose = TRUE,
        footer = NULL
      ))
  })

  observeEvent(input$teste2, {
      x <- 4
      y <- 6
    source("Operação completa. Valor de x é ", x, " e valor de y é ", y)
  })

}

shinyApp(ui, server)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.