]>
nmode's Git Repositories - Rnaught/blob - R/ui.R
6 shiny
:: titlePanel ( shiny
:: HTML ( paste0 ( "Rnaught: an estimation suite for R" , shiny
:: tags$
sub ( "0" )))),
11 shiny
:: sidebarPanel ( id
= "sidebar" ,
13 shiny
:: conditionalPanel ( condition
= "input.tabset == 'Data'" ,
14 shiny
:: h4 ( "Enter data" ),
15 # Data input method selection.
16 shiny
:: radioButtons ( inputId
= "dataInputMethod" , label
= "" , choices
= list ( "Manually" = 1 , "Upload a .csv file" = 2 , "Paste a .csv file" = 3 )),
17 # Option 1: Manual entry.
18 shiny
:: conditionalPanel ( condition
= "input.dataInputMethod == '1'" ,
19 shiny
:: textInput ( inputId
= "dataName" , label
= "Dataset name" ),
20 shiny
:: span ( shiny
:: textOutput ( outputId
= "dataNameWarn" ), style
= "color: red" ),
22 shiny
:: column ( 8 , shiny
:: textInput ( inputId
= "dataCounts" , label
= shiny
:: HTML ( paste0 ( "Case counts" , shiny
:: tags$
sup ( id
= "dataCountsHelp" , "[?]" ))))),
23 shiny
:: column ( 4 , shiny
:: selectInput ( inputId
= "dataUnits" , label
= "Reporting frequency" , choices
= list ( "Daily" , "Weekly" )))
25 shinyBS
:: bsTooltip ( id
= "dataCountsHelp" , "Enter as a comma-separated list of positive integers, with at least two entries. Ex: 1,1,2,3,5,8" , placement
= "right" , trigger
= "hover" ),
26 shiny
:: span ( shiny
:: textOutput ( outputId
= "dataCountsWarn" ), style
= "color: red" )
28 # Option 2: Upload .csv file.
29 shiny
:: conditionalPanel ( condition
= "input.dataInputMethod == '2'" ,
30 shiny
:: fileInput ( inputId
= "dataUpload" , label
= "" , accept
= c ( "text/csv" , "text/comma-separated-values,text/plain" , ".csv" )),
32 # Option 3: Paste .csv file.
33 shiny
:: conditionalPanel ( condition
= "input.dataInputMethod == '3'" ,
34 shiny
:: textAreaInput ( inputId
= "dataPaste" , label
= "" , rows
= 8 , resize
= "none" ),
36 # Warning text for .csv upload / paste.
37 shiny
:: conditionalPanel ( condition
= "['2', '3'].includes(input.dataInputMethod)" ,
38 shiny
:: span ( shiny
:: textOutput ( outputId
= "dataCSVWarn" ), style
= "color: red" ),
41 shiny
:: actionButton ( inputId
= "addData" , label
= "Add" ),
43 # Estimators tab sidebar
44 shiny
:: conditionalPanel ( condition
= "input.tabset == 'Estimators'" ,
45 shiny
:: h4 ( "Estimators" ),
46 # Collapsible menu for estimation methods.
47 shinyBS
:: bsCollapse ( id
= "estCollapse" ,
48 # WHITE & PANAGO (WP).
49 shinyBS
:: bsCollapsePanel ( title
= "White & Panago (WP)" ,
50 "This is a description of the method." ,
51 shiny
:: br (), shiny
:: br (),
52 shiny
:: radioButtons ( inputId
= "serialWPKnown" , label
= "Is the mean serial interval known?" , inline
= TRUE , choices
= list ( "Yes" = 1 , "No" = 2 )),
53 # Known serial interval.
54 shiny
:: conditionalPanel ( condition
= "input.serialWPKnown == '1'" ,
56 shiny
:: column ( 8 , shiny
:: textInput ( inputId
= "serialWPInput" , label
= "Mean Serial Interval" )),
57 shiny
:: column ( 4 , shiny
:: selectInput ( inputId
= "serialWPUnits" , label
= "Time units" , choices
= list ( "Days" , "Weeks" )))
59 shiny
:: span ( shiny
:: textOutput ( outputId
= "serialWPWarn" ), style
= "color: red" )
61 # Unknown serial interval.
62 shiny
:: conditionalPanel ( condition
= "input.serialWPKnown == '2'" ,
63 shiny
:: h5 ( "Grid Search Parameters" ),
65 shiny
:: column ( 4 , shiny
:: textInput ( inputId
= "gridLengthInput" , label
= "Grid length" , value
= "100" )),
66 shiny
:: column ( 4 , shiny
:: textInput ( inputId
= "gridShapeInput" , label
= "Max. shape" , value
= "10" )),
67 shiny
:: column ( 4 , shiny
:: textInput ( inputId
= "gridScaleInput" , label
= "Max. scale" , value
= "10" ))
70 shiny
:: column ( 4 , shiny
:: span ( shiny
:: textOutput ( outputId
= "gridLengthWarn" ), style
= "color: red" )),
71 shiny
:: column ( 4 , shiny
:: span ( shiny
:: textOutput ( outputId
= "gridShapeWarn" ), style
= "color: red" )),
72 shiny
:: column ( 4 , shiny
:: span ( shiny
:: textOutput ( outputId
= "gridScaleWarn" ), style
= "color: red" ))
75 shiny
:: actionButton ( inputId
= "addWP" , label
= "Add" )
77 # SEQUENTIAL BAYES (seqB).
78 shinyBS
:: bsCollapsePanel ( title
= "Sequential Bayes (seqB)" ,
79 "This is a description of the method." ,
80 shiny
:: br (), shiny
:: br (),
82 shiny
:: column ( 8 , shiny
:: textInput ( inputId
= "serialseqBInput" , label
= "Mean Serial Interval" )),
83 shiny
:: column ( 4 , shiny
:: selectInput ( inputId
= "serialseqBUnits" , label
= "Time units" , choices
= list ( "Days" , "Weeks" )))
85 shiny
:: span ( shiny
:: textOutput ( outputId
= "serialseqBWarn" ), style
= "color: red" ),
86 shiny
:: textInput ( inputId
= "kappaInput" , label
= shiny
:: HTML ( paste0 ( "Maximum value of the uniform prior" , shiny
:: tags$
sup ( id
= "kappaTool" , "[?]" ))), value
= "20" ),
87 shinyBS
:: bsTooltip ( id
= "kappaTool" , "Some information. By default, this is set to 20." , placement
= "right" , trigger
= "hover" ),
88 shiny
:: span ( shiny
:: textOutput ( outputId
= "kappaWarn" ), style
= "color: red" ),
89 shiny
:: actionButton ( inputId
= "addseqB" , label
= "Add" )
91 # INCIDENCE DECAY (ID).
92 shinyBS
:: bsCollapsePanel ( title
= "Incidence Decay (ID)" ,
93 "This is a description of the method." ,
94 shiny
:: br (), shiny
:: br (),
96 shiny
:: column ( 8 , shiny
:: textInput ( inputId
= "serialIDInput" , label
= "Mean Serial Interval" )),
97 shiny
:: column ( 4 , shiny
:: selectInput ( inputId
= "serialIDUnits" , label
= "Time units" , choices
= list ( "Days" , "Weeks" )))
99 shiny
:: span ( shiny
:: textOutput ( outputId
= "serialIDWarn" ), style
= "color: red" ),
100 shiny
:: actionButton ( inputId
= "addID" , label
= "Add" )
102 # INCIDENCE DECAY & EXPONENTIAL ADJUSTEMENT (IDEA).
103 shinyBS
:: bsCollapsePanel ( title
= "Incidence Decay and Exponential Adjustement (IDEA)" ,
104 "This is a description of the method." ,
105 shiny
:: br (), shiny
:: br (),
107 shiny
:: column ( 8 , shiny
:: textInput ( inputId
= "serialIDEAInput" , label
= "Mean Serial Interval" )),
108 shiny
:: column ( 4 , shiny
:: selectInput ( inputId
= "serialIDEAUnits" , label
= "Time units" , choices
= list ( "Days" , "Weeks" )))
110 shiny
:: span ( shiny
:: textOutput ( outputId
= "serialIDEAWarn" ), style
= "color: red" ),
111 shiny
:: actionButton ( inputId
= "addIDEA" , label
= "Add" )
117 shiny
:: mainPanel ( id
= "main" ,
118 shiny
:: tabsetPanel ( id
= "tabset" , type
= "tabs" ,
119 shiny
:: tabPanel ( "About" , shiny
:: br (), "Hello" ),
120 shiny
:: tabPanel ( "Data" , shiny
:: br (), shiny
:: dataTableOutput ( outputId
= "dataTable" ), shiny
:: tags$
style ( type
= "text/css" , '#dataTable tfoot {display:none;}' )),
121 shiny
:: tabPanel ( "Estimators" , shiny
:: br (),
122 shiny
:: dataTableOutput ( outputId
= "estTable" ),
123 shiny
:: tags$
style ( type
= "text/css" , "#estTable tfoot {display:none;}" ),
124 shiny
:: downloadButton ( outputId
= "downloadEst" , label
= "Download table as .csv" )