Перестал работать модальное всплывающее окно RBSBS и не может работать с Shiny Server - PullRequest
0 голосов
/ 29 января 2020

У меня есть простой пример ниже модальной всплывающей концепции блестящейBS при входе пользователя на сайт. Это работало нормально, а теперь вдруг перестало работать. У меня есть блестящий сервер Pro. Модальные данные не только не отображаются, но данные также не отображаются. Это как если бы серверная часть вообще не работала. Я получаю пустую страницу.

library(shiny)
library(shinyBS)
library(DT)

ui <- fluidPage(
  fluidRow(
    bsModal(
      id = 'startupModal',
      title = h4('IMPORTANT NOTICE. MUST READ AND ACKNOWLEDGE!'),
      trigger = '', size = 'large',
      p('The system you are entering is proprietary ... Do not mess with us!')
      )
    ),
  fluidRow(
    mainPanel(
      DT::dataTableOutput('myData'),
      width = 12
      )
    )
  )

server <- function(input, output, session) {
  toggleModal(session, "startupModal", toggle = "open")
  output$myData <- DT::renderDataTable({
    mtcars %>%
      DT::datatable(
        escape = FALSE, class = 'compact', rownames = '', filter = 'none'
        )
    })
  }

shinyApp(ui, server)

Если я закомментирую модальный пользовательский интерфейс следующим образом, страница и дата-рендеринг будут в порядке.

library(shiny)
library(shinyBS)
library(DT)

ui <- fluidPage(
#   fluidRow(
#     bsModal(
#       id = 'startupModal',
#       title = h4('IMPORTANT NOTICE. MUST READ AND ACKNOWLEDGE!'),
#       trigger = '', size = 'large',
#       p('The system you are entering is proprietary ... Do not mess with us!')
#       )
#     ),
  fluidRow(
    mainPanel(
      DT::dataTableOutput('myData'),
      width = 12
      )
    )
  )

server <- function(input, output, session) {
  toggleModal(session, "startupModal", toggle = "open")
  output$myData <- DT::renderDataTable({
    mtcars %>%
      DT::datatable(
        escape = FALSE, class = 'compact', rownames = '', filter = 'none'
        )
    })
  }

shinyApp(ui, server)

Вот еще немного информации о пакетах и R выполняется:

R version 3.4.1 (2017-06-30) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> packageVersion('shiny')
[1] ‘1.4.0’
> packageVersion('shinyBS')
[1] ‘0.61’
> packageVersion('DT')
[1] ‘0.5’

shiny-server --version
Shiny Server Pro v1.5.12.1023
Node.js v10.15.3

Я пробовал это с Chrome (в том числе с включенной настройкой всплывающих окон), а также в Microsoft Edge. Никто из них не работает.

1 Ответ

1 голос
/ 05 февраля 2020

это не исправление, а скорее обходной путь.

Проведя некоторое тестирование, я обнаружил, что проблема заключается в параметре триггера bsModal. Отсутствие значений (также не допускаются пробелы / пустые значения) приводит к проблеме.

Если вы можете добавить какую-либо строку идентификатора, например, заголовок таблицы, то появится модальное окно опять же, даже с shiny 1.4.0. Я добавил строку 'Project Title' в mainPanel, а также параметр trigger в модале.

Ниже рабочий пример (с моей версией пакета внизу).

Надеюсь, что это поможет в вашем случае.

library(shiny)
library(shinyBS)
library(DT)

ui <- fluidPage(
       fluidRow(
         bsModal(
           id = 'startupModal',
           title = h4('IMPORTANT NOTICE. MUST READ AND ACKNOWLEDGE!'),
           trigger = 'Project Title', size = 'large',
           p('The system you are entering is proprietary Do not mess with us')
           )
         ),

    fluidRow(
        mainPanel(h3("Project Title"),
            DT::dataTableOutput('myData'),
            width = 12
        )
    )
)

server <- function(input, output, session) {
    toggleModal(session, "startupModal", toggle = "open")
    output$myData <- DT::renderDataTable({
        mtcars %>%
            DT::datatable(
                escape = FALSE, class = 'compact', rownames = '', filter = 'none'
            )
    })
}

shinyApp(ui, server)

enter image description here

R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.6 LTS

Matrix products: default
BLAS:   /usr/lib/atlas-base/atlas/libblas.so.3.0
LAPACK: /usr/lib/atlas-base/atlas/liblapack.so.3.0

Random number generation:
 RNG:     Mersenne-Twister 
 Normal:  Inversion 
 Sample:  Rounding 

locale:
 [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
 [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
 [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
[10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] DT_0.9       shinyBS_0.61 shiny_1.4.0 

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.2        rstudioapi_0.10   magrittr_1.5      tidyselect_0.2.5 
 [5] munsell_0.5.0     xtable_1.8-4      colorspace_1.4-1  R6_2.4.0         
 [9] rlang_0.4.0       fastmap_1.0.1     dplyr_0.8.3       tools_3.6.0      
[13] grid_3.6.0        gtable_0.3.0      sourcetools_0.1.7 crosstalk_1.0.0  
[17] htmltools_0.4.0   yaml_2.2.0        lazyeval_0.2.2    assertthat_0.2.1 
[21] digest_0.6.21     tibble_2.1.3      crayon_1.3.4      purrr_0.3.2      
[25] ggplot2_3.2.1     later_1.0.0       htmlwidgets_1.5.1 promises_1.1.0   
[29] glue_1.3.1        mime_0.7          compiler_3.6.0    pillar_1.4.2     
[33] scales_1.0.0      jsonlite_1.6      httpuv_1.5.2      pkgconfig_2.0.3
...