Modals: Modals

Description Details Components Changes Note See Also Examples

Description

Modal windows are similar to popups but are rendered within the original window. They can contain any combination of shiny inputs, shiny outputs, and html. Possible uses include extra controls that you don't want cluttering up the main app display or help pages to explain your apps operation.

Details

Use bsModal in your UI to create a modal window. It works like Collapses or tabPanel, any non-named arguments will be passed as content for the modal.

Create a button or link and assign its inputId as the trigger in bsModal.

Components

There are only two functions in the Modals family:

bsModal

Used in the UI to create a modal window.

toggleModal

Used in the Server logic to open or close a modal window programmatically.

Changes

There is now a toggle argument in toggleModal that allows you to specify whether you want the modal to open or close.

The size argument in bsModal allows you to specify the size of the modal window. Either small or large.

Note

Run bsExample("Modals") for an example of Modals functionality.

See Also

Twitter Bootstrap 3

Other Modals: bsModal; toggleModal

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
library(shiny)
library(shinyBS)

app = shinyApp(
 ui =
 fluidPage(
   sidebarLayout(
     sidebarPanel(
       sliderInput("bins",
                   "Number of bins:",
                   min = 1,
                   max = 50,
                   value = 30),
       actionButton("tabBut", "View Table")
     ),

     mainPanel(
       plotOutput("distPlot"),
       bsModal("modalExample", "Data Table", "tabBut", size = "large",
         dataTableOutput("distTable"))
     )
   )
 ),
 server =
 function(input, output, session) {

   output$distPlot <- renderPlot({

     x    <- faithful[, 2]
     bins <- seq(min(x), max(x), length.out = input$bins + 1)

     # draw the histogram with the specified number of bins
     hist(x, breaks = bins, col = 'darkgray', border = 'white')

   })

   output$distTable <- renderDataTable({

     x    <- faithful[, 2]
     bins <- seq(min(x), max(x), length.out = input$bins + 1)

     # draw the histogram with the specified number of bins
     tab <- hist(x, breaks = bins, plot = FALSE)
     tab$breaks <- sapply(seq(length(tab$breaks) - 1), function(i) {
       paste0(signif(tab$breaks[i], 3), "-", signif(tab$breaks[i+1], 3))
     })
     tab <- as.data.frame(do.call(cbind, tab))
     colnames(tab) <- c("Bins", "Counts", "Density")
     return(tab[, 1:3])

   }, options = list(pageLength=10))

 }
)
## Not run: 
 runApp(app)

## End(Not run)

ebailey78/shinyBS documentation built on May 15, 2019, 7:29 p.m.