I have a simple example below of a shinyBS modal pop up concept upon a user entering the site. This was working fine, and now suddenly stopped working. I have shiny server pro. Not only does the modal not show up, but the datatable is also not rendered. It is as if the server side is not running at all. I get a blank page.
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)
If I comment out the modal UI as follows, the page and the datatable render fine.
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)
Here is some more information on packages and R running:
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
I tried this with Chrome (including with pop-ups enabled setting) and also on Microsoft Edge. None of them work.
this is not a fix but rather a workaround.
By doing some testing I found that the problem lies in the trigger parameter of bsModal
. The absence of values (no space/blank values are accepted as well) result in the issue.
If you can add some sort of identifier string, for instance a title to the table, then the modal window pops up again, even with shiny 1.4.0
. I added the 'Project Title'
string
to the mainPanel
as well as the trigger
parameter in the modal.
Below a working example (with my packages version at the bottom).
Hope that this helps in your case.
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)
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