Как читать и отображать время в Navbar панели Shiny R - PullRequest
0 голосов
/ 29 сентября 2018

Я хочу отобразить время последнего обновления в панели навигации блестящего R. Для этого я сохраняю последнее обновленное время в файле CSV, который я буду использовать для чтения на сервере. R, но я не могу выяснить,как отобразить это время в правой части панели навигации.Любая помощь будет высоко оценен.Спасибо

    shinyUI(
       navbarPage(
              title = 'Welcome',
               tabPanel('Overview',
           tabsetPanel(
           tabPanel('Forward',
                    fluidRow(
                      DT::dataTableOutput("view_fwd"),width = 6
                    )
           ),
           tabPanel('Reverse',
                    fluidRow(
                      DT::dataTableOutput("view_rvo"),width = 6
                    ))

           ))

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

С помощью некоторых CSS и Javascript вы можете позволить времени плавать вправо и отключить события кликов на этой вкладке.Для этого вам понадобится пакет shinyjs.

library(shiny)
library(shinyjs)

jscode <- '
shinyjs.init = function() {
$(".nav").on("click", ".disabled", function (e) {
e.preventDefault();
return false;
});
}
'

ui <- fluidPage(
  tags$head(tags$style(HTML("
.navbar-nav {
  float: none;
}
.navbar ul > li:nth-child(2) {
  float: right;
}
.navbar ul > li:nth-child(2) {
  color: black !important;
}
                       "))),
  useShinyjs(),
  extendShinyjs(text = jscode, functions = "init"),
  navbarPage(
    title = 'Welcome',

    tabPanel('Overview',
             tabsetPanel(
               tabPanel('Forward',
                        fluidRow(
                          DT::dataTableOutput("view_fwd"),width = 6
                        )
               ),
               tabPanel('Reverse',
                        fluidRow(
                          DT::dataTableOutput("view_rvo"),width = 6
                        ))

             )),
    tabPanel(tags$ul(class='nav navbar-nav', 
                     style = "padding-left: 5px; float: right;", htmlOutput("time")))
  )

)

# Define server logic
server <- function(input, output) {
  observe({
    toggleClass(condition = input$foo,
                class = "disabled",
                selector = ".navbar ul > li:nth-child(2)")
  })

  output$time <- renderUI({
    as.character(strptime(Sys.time(), "%Y-%m-%d %H:%M:%S", tz = "EET"))
  })

}

# Run the application 
shinyApp(ui = ui, server = server)
0 голосов
/ 29 сентября 2018
library(shiny)


ui <- fluidPage(

  navbarPage(
    title = 'Welcome',
    tabPanel('Overview',
             tabsetPanel(
               tabPanel('Forward',
                        fluidRow(
                          DT::dataTableOutput("view_fwd"),width = 6
                        )
               ),
               tabPanel('Reverse',
                        fluidRow(
                          DT::dataTableOutput("view_rvo"),width = 6
                        ))

             )),
              tabPanel(tags$ul(class='nav navbar-nav', 
                               style = "padding-left: 550px;", htmlOutput("time"))) # here you output time, need to positions on the left side by 550px
    )

)

# Define server logic
server <- function(input, output) {

  output$time <- renderUI({

    as.character(strptime(Sys.time(), "%Y-%m-%d %H:%M:%S", tz = "EET"))


  })

}

# Run the application 
shinyApp(ui = ui, server = server)
...