Shinydashboard: выполнить импорт данных х секунд после нажатия кнопки - PullRequest
0 голосов
/ 22 мая 2018

ФОН

Я создаю блестящую панель инструментов в Data Science Studio , где пользователь должен выбрать файл, который он хочет обработать, из selectizeInputи затем нажмите Отправить actionButton.Как только кнопка нажата, она запускает бэкэнд-процесс, чтобы определить, к какой категории относится файл и какому рабочему процессу следует следовать (разные рабочие процессы содержат разные этапы очистки и конечные результаты).Как только рабочий процесс завершится, я хочу отобразить окончательный результат в DT::renderDataTable.

ЖЕЛАЕМЫЙ ВЫХОД

Я бы хотел, чтобы мое блестящее приложение показывало

  • , пока данные не будут выбраны до выбора входа
  • время, скажем, 30 секунд с момента, когда кто-то нажимает кнопку «Отправить», чтобы на самом деле взять набор данныхв этом простом приложении?

    UI

    library(shiny)
    library(shinydashboard)
    library(DT)
    library(dataiku)
    
    path <- dkuManagedFolderPath("receiver") #folder with the files to choose from
    
    
    dashboardPage(
      dashboardHeader(title = "Catchy Title"),
      dashboardSidebar(
    
    
       selectizeInput("file", "Select File",
                    list.files(path)), 
    
      actionButton("submit", "Submit")
      ),
      dashboardBody(
        fluidRow(
    
        box(h2("Show Data"),
            div(style = 'overflow-x: scroll', DT::dataTableOutput('mytable')),
              width = 12)
        )
      )
      )
    

    SERVER

    library(dataiku)
    library(shiny)
    library(shinydashboard)
    library(DT)
    library(dplyr)
    
    
    
    shinyServer(function(input, output) {
    
    file_name <- reactive({ 
    req(input$file)
    })
    
    ####
    # run the process that takes the file name to pass it to 
    # the global environment, which triggers the conditional workflow  
    # and may result in different data outputs
    ####
    
    ## AFTER the process runs (approx. 30 seconds after pressing the submit button)
    # I want the shiny app to follow this logic:
    
    if(is.null(nrow(try(dkuReadDataset("intermediate_dataset"))[1]))){
        df <- dkuReadDataset("final_data1")
        } else{
        df <- dkuReadDataset("final_data2")
        }
    
    
    output$mytable = DT::renderDataTable({
           df
        })  
    
    })
    

    Спасибо за подсказки!

...