]> nmode's Git Repositories - Rnaught/blobdiff - R/ui.R
Adjust indent level and enforce 80-character line limit
[Rnaught] / R / ui.R
diff --git a/R/ui.R b/R/ui.R
index d6102f97a442d9716ca14c63b920f315260f4bff..4e4a500a57e94a85de127c8266b32040ed90d46c 100644 (file)
--- a/R/ui.R
+++ b/R/ui.R
-ui <- function() {
-    shiny::fluidPage(
-        # Title.
-        shiny::titlePanel(shiny::HTML(paste0("Rnaught: An Estimation Suite for R", shiny::tags$sub("0")))),
-  
-        # Sidebar layout.
-        shiny::sidebarLayout(
-            # Sidebar. Hidden if the 'About' tab is selected.
-            shiny::conditionalPanel(condition="input.tabset != 'About'",
-                shiny::sidebarPanel(id="sidebar",
-                    # Data tab sidebar.
-                    shiny::conditionalPanel(condition="input.tabset == 'Data'",
-                        shiny::h3("Enter data"),
-                        # Data input method selection.
-                        shiny::radioButtons(inputId="dataInputMethod", label="", choices=list("Manually"=1, "Upload a .csv file"=2, "Paste a .csv file"=3)),
-                        # Option 1: Manual entry.
-                        shiny::conditionalPanel(condition="input.dataInputMethod == '1'",
-                            shiny::textInput(inputId="dataName", label="Dataset name"),
-                            shiny::span(shiny::textOutput(outputId="dataNameWarn"), style="color: red;"),
-                            shiny::fluidRow(
-                                shiny::column(8, shiny::textInput(inputId="dataCounts", label=shiny::HTML(paste0(
-                                    "Case counts", shiny::tags$sup("[?]", title="Enter as a comma-separated list of positive integers, with at least two entries. Ex: 1,1,2,3,5,8"))))
-                                ),
-                                shiny::column(4, shiny::selectInput(inputId="dataUnits", label="Reporting frequency", choices=list("Daily", "Weekly")))
-                            ),
-                            shiny::span(shiny::textOutput(outputId="dataCountsWarn"), style="color: red;")
-                        ),
-                        # Option 2: Upload .csv file.
-                        shiny::conditionalPanel(condition="input.dataInputMethod == '2'",
-                            shiny::fileInput(inputId="dataUpload", label="", accept=c("text/csv", "text/comma-separated-values,text/plain", ".csv")),
-                        ),
-                        # Option 3: Paste .csv file.
-                        shiny::conditionalPanel(condition="input.dataInputMethod == '3'",
-                            shiny::textAreaInput(inputId="dataPaste", label="", rows=8, resize="none"),
-                        ),
-                        # Warning text for .csv upload / paste.
-                        shiny::conditionalPanel(condition="['2', '3'].includes(input.dataInputMethod)",
-                            shiny::span(shiny::textOutput(outputId="dataCSVWarn"), style="color: red;"),
-                        ),
-                        # Button to add data.
-                        shiny::actionButton(inputId="addData", label="Add"),
-                    ),
-                    # Estimators tab sidebar (collapsable entries).
-                    shiny::conditionalPanel(condition="input.tabset == 'Estimators'",
-                        shiny::h3("Estimators"),
-                        # WHITE & PANAGO (WP).
-                        shiny::tags$details(
-                            shiny::tags$summary(shiny::h4("White & Panago (WP)")),
-                            shiny::p("This is a description of the method."),
-                            shiny::br(),
-                            shiny::radioButtons(inputId="serialWPKnown", label="Is the mean serial interval known?", inline=TRUE, choices=list("Yes"=1, "No"=2)),
-                            # Known serial interval.
-                            shiny::conditionalPanel(condition="input.serialWPKnown == '1'",
-                                shiny::fluidRow(
-                                    shiny::column(8, shiny::textInput(inputId="serialWPInput", label="Mean Serial Interval")),
-                                    shiny::column(4, shiny::selectInput(inputId="serialWPUnits", label="Time units", choices=list("Days", "Weeks")))
-                                ),
-                                shiny::span(shiny::textOutput(outputId="serialWPWarn"), style="color: red;")
-                            ),
-                            # Unknown serial interval.
-                            shiny::conditionalPanel(condition="input.serialWPKnown == '2'",
-                                shiny::h5("Grid Search Parameters"),
-                                shiny::fluidRow(
-                                    shiny::column(4, shiny::textInput(inputId="gridLengthInput", label="Grid length", value="100")),
-                                    shiny::column(4, shiny::textInput(inputId="gridShapeInput", label="Max. shape", value="10")),
-                                    shiny::column(4, shiny::textInput(inputId="gridScaleInput", label="Max. scale", value="10"))
-                                ),
-                                shiny::fluidRow(
-                                    shiny::column(4, shiny::span(shiny::textOutput(outputId="gridLengthWarn"), style="color: red;")),
-                                    shiny::column(4, shiny::span(shiny::textOutput(outputId="gridShapeWarn"), style="color: red;")),
-                                    shiny::column(4, shiny::span(shiny::textOutput(outputId="gridScaleWarn"), style="color: red;"))
-                                )
-                            ),
-                            shiny::actionButton(inputId="addWP", label="Add")
-                        ),
-                        # SEQUENTIAL BAYES (seqB).
-                        shiny::tags$details(
-                            shiny::tags$summary(shiny::h4("Sequential Bayes (seqB)")),
-                            shiny::p("This is a description of the method."),
-                            shiny::br(),
-                            shiny::fluidRow(
-                                shiny::column(8, shiny::textInput(inputId="serialseqBInput", label="Mean Serial Interval")),
-                                shiny::column(4, shiny::selectInput(inputId="serialseqBUnits", label="Time units", choices=list("Days", "Weeks")))
-                            ),
-                            shiny::span(shiny::textOutput(outputId="serialseqBWarn"), style="color: red;"),
-                            shiny::textInput(inputId="kappaInput", label=shiny::HTML(paste0("Maximum value of the uniform prior",
-                                shiny::tags$sup("[?]", title="This describes the prior belief of R0, and should be set to a higher value if R0 is believed to be larger. (Default: 20)"))),
-                                value="20"
-                            ),
-                            shiny::span(shiny::textOutput(outputId="kappaWarn"), style="color: red;"),
-                            shiny::actionButton(inputId="addseqB", label="Add")
-                        ),
-                        # INCIDENCE DECAY (ID).
-                        shiny::tags$details(
-                            shiny::tags$summary(shiny::h4("Incidence Decay (ID)")),
-                            shiny::p("This is a description of the method."),
-                            shiny::br(),
-                            shiny::fluidRow(
-                                shiny::column(8, shiny::textInput(inputId="serialIDInput", label="Mean Serial Interval")),
-                                shiny::column(4, shiny::selectInput(inputId="serialIDUnits", label="Time units", choices=list("Days", "Weeks")))
-                            ),
-                            shiny::span(shiny::textOutput(outputId="serialIDWarn"), style="color: red;"),
-                            shiny::actionButton(inputId="addID", label="Add")
-                        ),
-                        # INCIDENCE DECAY & EXPONENTIAL ADJUSTEMENT (IDEA).
-                        shiny::tags$details(
-                            shiny::tags$summary(shiny::h4("Incidence Decay and Exponential Adjustement (IDEA)")),
-                            shiny::p("This is a description of the method."),
-                            shiny::br(),
-                            shiny::fluidRow(
-                                shiny::column(8, shiny::textInput(inputId="serialIDEAInput", label="Mean Serial Interval")),
-                                shiny::column(4, shiny::selectInput(inputId="serialIDEAUnits", label="Time units", choices=list("Days", "Weeks")))
-                            ),
-                            shiny::span(shiny::textOutput(outputId="serialIDEAWarn"), style="color: red;"),
-                            shiny::actionButton(inputId="addIDEA", label="Add")
-                        ),
-                        shiny::tags$style(type="text/css", "summary { display: list-item; cursor: pointer; }"),
-                        shiny::tags$style(type="text/css", "summary h4 { display: inline; }")
-                    )
-                )
+ui <- shiny::fluidPage(
+  # Title.
+  shiny::titlePanel(shiny::HTML(
+    paste0("Rnaught: An Estimation Suite for R", shiny::tags$sub("0")))),
+  # Sidebar layout.
+  shiny::sidebarLayout(
+    # Sidebar. Hidden if the 'About' tab is selected.
+    shiny::conditionalPanel(condition = "input.tabset != 'About'",
+      shiny::sidebarPanel(id = "sidebar",
+        # Data tab sidebar.
+        shiny::conditionalPanel(condition = "input.tabset == 'Data'",
+          shiny::h3("Enter data"),
+          # Data input method selection.
+          shiny::radioButtons(inputId = "dataInputMethod", label = "",
+            choices=list("Manually" = 1, "Upload a .csv file" = 2,
+                         "Paste a .csv file" = 3)),
+          # Option 1: Manual entry.
+          shiny::conditionalPanel(condition = "input.dataInputMethod == '1'",
+            shiny::textInput(inputId = "dataName", label = "Dataset name"),
+            shiny::span(shiny::textOutput(outputId = "dataNameWarn"),
+                        style = "color: red;"),
+            shiny::fluidRow(
+              shiny::column(8,
+                shiny::textInput(inputId = "dataCounts", label = shiny::HTML(
+                  paste0("Case counts", shiny::tags$sup("[?]",
+                    title = "Enter as a comma-separated list of positive
+                             integers, with at least two entries.
+                             Example: 1,1,2,3,5,8"))))),
+              shiny::column(4,
+                shiny::selectInput(inputId = "dataUnits",
+                                   label = "Reporting frequency",
+                                   choices = list("Daily", "Weekly")))
             ),
-            # Main panel.
-            shiny::mainPanel(id="main",
-                shiny::tabsetPanel(id="tabset", type="tabs",
-                    shiny::tabPanel("About", shiny::br(), "Hello"),
-                    shiny::tabPanel("Data", shiny::br(), shiny::dataTableOutput(outputId="dataTable"), shiny::tags$style(type="text/css", "#dataTable tfoot { display:none; }")),
-                    shiny::tabPanel("Estimators", shiny::br(),
-                        shiny::dataTableOutput(outputId="estTable"),
-                        shiny::tags$style(type="text/css", "#estTable tfoot { display:none; }"),
-                        shiny::downloadButton(outputId="downloadEst", label="Download table as .csv")
-                    )
-                )
-            )
+            shiny::span(shiny::textOutput(outputId = "dataCountsWarn"),
+                        style = "color: red;")
+          ),
+          # Option 2: Upload .csv file.
+          shiny::conditionalPanel(condition = "input.dataInputMethod == '2'",
+            shiny::fileInput(inputId = "dataUpload", label = "",
+              accept = c("text/csv", "text/comma-separated-values,text/plain",
+                         ".csv")),
+          ),
+          # Option 3: Paste .csv file.
+          shiny::conditionalPanel(condition = "input.dataInputMethod == '3'",
+            shiny::textAreaInput(inputId = "dataPaste", label = "",
+                                 rows = 8, resize = "none"),
+          ),
+          # Warning text for .csv upload / paste.
+          shiny::conditionalPanel(
+            condition = "['2', '3'].includes(input.dataInputMethod)",
+            shiny::span(shiny::textOutput(outputId = "dataCSVWarn"),
+                        style = "color: red;"),
+          ),
+          # Button to add data.
+          shiny::actionButton(inputId = "addData", label = "Add"),
+        ),
+        # Estimators tab sidebar (collapsable entries).
+        shiny::conditionalPanel(condition = "input.tabset == 'Estimators'",
+          shiny::h3("Estimators"),
+          # WHITE & PANAGO (WP).
+          shiny::tags$details(
+            shiny::tags$summary(shiny::h4("White & Panago (WP)")),
+            shiny::p("This is a description of the method."),
+            shiny::br(),
+            shiny::radioButtons(inputId = "serialWPKnown",
+                                label = "Is the mean serial interval known?",
+                                inline = TRUE,
+                                choices = list("Yes" = 1, "No" = 2)),
+            # Known serial interval.
+            shiny::conditionalPanel(condition = "input.serialWPKnown == '1'",
+              shiny::fluidRow(
+                shiny::column(8,
+                  shiny::textInput(inputId = "serialWPInput",
+                                   label = "Mean Serial Interval")),
+                shiny::column(4,
+                  shiny::selectInput(inputId = "serialWPUnits",
+                                     label = "Time units",
+                                     choices = list("Days", "Weeks")))
+              ),
+              shiny::span(shiny::textOutput(outputId = "serialWPWarn"),
+                          style = "color: red;")
+            ),
+            # Unknown serial interval.
+            shiny::conditionalPanel(condition = "input.serialWPKnown == '2'",
+              shiny::h5("Grid Search Parameters"),
+              shiny::fluidRow(
+                shiny::column(4,
+                  shiny::textInput(inputId = "gridLengthInput",
+                                   label = "Grid length", value = "100")),
+                shiny::column(4,
+                  shiny::textInput(inputId = "gridShapeInput",
+                                   label = "Max. shape", value = "10")),
+                shiny::column(4,
+                  shiny::textInput(inputId = "gridScaleInput",
+                                   label = "Max. scale", value = "10"))
+              ),
+              shiny::fluidRow(
+                shiny::column(4,
+                  shiny::span(shiny::textOutput(outputId = "gridLengthWarn"),
+                              style = "color: red;")),
+                shiny::column(4,
+                  shiny::span(shiny::textOutput(outputId = "gridShapeWarn"),
+                              style = "color: red;")),
+                shiny::column(4,
+                  shiny::span(shiny::textOutput(outputId = "gridScaleWarn"),
+                              style = "color: red;"))
+              )
+            ),
+            shiny::actionButton(inputId = "addWP", label = "Add")
+          ),
+          # SEQUENTIAL BAYES (seqB).
+          shiny::tags$details(
+            shiny::tags$summary(shiny::h4("Sequential Bayes (seqB)")),
+            shiny::p("This is a description of the method."),
+            shiny::br(),
+            shiny::fluidRow(
+              shiny::column(8,
+                shiny::textInput(inputId = "serialseqBInput",
+                                 label = "Mean Serial Interval")),
+              shiny::column(4,
+                shiny::selectInput(inputId = "serialseqBUnits",
+                                   label = "Time units",
+                                   choices = list("Days", "Weeks")))
+            ),
+            shiny::span(shiny::textOutput(outputId = "serialseqBWarn"),
+                        style = "color: red;"),
+            shiny::textInput(inputId = "kappaInput", label = shiny::HTML(
+              paste0("Maximum value", shiny::tags$sup("[?]",
+                title = "This describes the prior belief of R0, and should
+                         be set to a higher value if R0 is believed to be
+                         larger. (Default: 20)"))), value = "20"),
+            shiny::span(shiny::textOutput(outputId = "kappaWarn"),
+                        style = "color: red;"),
+            shiny::actionButton(inputId = "addseqB", label = "Add")
+          ),
+          # INCIDENCE DECAY (ID).
+          shiny::tags$details(
+            shiny::tags$summary(shiny::h4("Incidence Decay (ID)")),
+            shiny::p("This is a description of the method."),
+            shiny::br(),
+            shiny::fluidRow(
+              shiny::column(8,
+                shiny::textInput(inputId = "serialIDInput",
+                                 label = "Mean Serial Interval")),
+              shiny::column(4,
+                shiny::selectInput(inputId = "serialIDUnits",
+                                   label = "Time units",
+                                   choices = list("Days", "Weeks")))
+            ),
+            shiny::span(shiny::textOutput(outputId = "serialIDWarn"),
+                        style = "color: red;"),
+            shiny::actionButton(inputId = "addID", label = "Add")
+          ),
+          # INCIDENCE DECAY & EXPONENTIAL ADJUSTEMENT (IDEA).
+          shiny::tags$details(
+            shiny::tags$summary(
+              shiny::h4("Incidence Decay and Exponential Adjustement (IDEA)")),
+            shiny::p("This is a description of the method."),
+            shiny::br(),
+            shiny::fluidRow(
+              shiny::column(8,
+                shiny::textInput(inputId = "serialIDEAInput",
+                                 label = "Mean Serial Interval")),
+              shiny::column(4,
+                shiny::selectInput(inputId = "serialIDEAUnits",
+                                   label = "Time units",
+                                   choices = list("Days", "Weeks")))
+            ),
+            shiny::span(shiny::textOutput(outputId = "serialIDEAWarn"),
+                        style = "color: red;"),
+            shiny::actionButton(inputId = "addIDEA", label = "Add")
+          ),
+          shiny::tags$style(type = "text/css",
+                            "summary { display: list-item; cursor: pointer; }"),
+          shiny::tags$style(type = "text/css",
+                            "summary h4 { display: inline; }")
         )
+      )
+    ),
+    # Main panel.
+    shiny::mainPanel(id = "main",
+      shiny::tabsetPanel(id = "tabset", type = "tabs",
+        shiny::tabPanel("About", shiny::br(), "Hello"),
+        shiny::tabPanel("Data", shiny::br(),
+                        shiny::dataTableOutput(outputId = "dataTable"),
+                        shiny::tags$style(type = "text/css",
+                          "#dataTable tfoot { display:none; }")),
+        shiny::tabPanel("Estimators", shiny::br(),
+                        shiny::dataTableOutput(outputId = "estTable"),
+                        shiny::tags$style(type = "text/css",
+                          "#estTable tfoot { display:none; }"),
+                        shiny::downloadButton(outputId = "downloadEst",
+                                              label = "Download table as .csv"))
+      )
     )
-}
+  )
+)