11
22vdiffrServer <- function (cases ) {
3- shiny :: shinyServer(function (input , output ) {
3+ shiny :: shinyServer(function (input , output , session ) {
44 cases <- shiny :: reactiveValues(all = cases )
55 cases $ active <- shiny :: reactive({
66 type <- input $ type %|| % " new_case"
@@ -29,6 +29,8 @@ vdiffrServer <- function(cases) {
2929 output $ status <- renderStatus(input , cases )
3030 output $ case_context <- renderCaseContext(input , cases )
3131
32+ toggleValidateBtns(input , session )
33+
3234 quitApp(input )
3335 })
3436}
@@ -39,7 +41,8 @@ diff_text_watcher <- function(input) {
3941
4042prettify_types <- function (x ) {
4143 ifelse(x == " mismatch_case" , " Mismatched" ,
42- ifelse(x == " new_case" , " New" , " Orphaned"
44+ ifelse(x == " new_case" , " New" ,
45+ ifelse(x == " success_case" , " Validated" , " Orphaned" )
4346 ))
4447}
4548
@@ -51,13 +54,16 @@ renderTypeInput <- function(input, reactive_cases) {
5154 if (length(types ) == 0 ) {
5255 return (NULL )
5356 }
54- types <- set_names(types , prettify_types(types ))
57+
58+ types <- sort(set_names(types , prettify_types(types )))
59+
60+ selected <- input $ type %|| % types [[1 ]]
5561
5662 shiny :: selectInput(
5763 inputId = " type" ,
5864 label = " Type:" ,
5965 choices = types ,
60- selected = types [[ 1 ]]
66+ selected = selected
6167 )
6268 })
6369}
@@ -152,7 +158,7 @@ validateSingleCase <- function(input, reactive_cases) {
152158 case <- shiny :: isolate(input $ case )
153159
154160 withdraw_cases(cases [case ])
155- cases <- cases [- match( case , names( cases ))]
161+ cases [[ case ]] <- success_case( cases [[ case ]])
156162
157163 shiny :: isolate(reactive_cases $ all <- cases )
158164 }
@@ -169,10 +175,8 @@ validateGroupCases <- function(input, reactive_cases) {
169175 type <- shiny :: isolate(input $ type )
170176
171177 withdraw_cases(active_cases )
172-
173- case_types <- c(" new_case" , " mismatch_case" , " orphaned_case" )
174- types <- case_types [! case_types == type ]
175- cases <- filter_cases(cases , types )
178+ idx <- sapply(cases , inherits , type )
179+ cases [idx ] <- lapply(cases [idx ], success_case )
176180
177181 shiny :: isolate(reactive_cases $ all <- cases )
178182 }
@@ -218,6 +222,14 @@ renderStatus <- function(input, reactive_cases) {
218222 })
219223}
220224
225+ toggleValidateBtns <- function (input , session ) {
226+ shiny :: observeEvent(input $ type , {
227+ req(input $ type )
228+ message <- input $ type == " success_case"
229+ session $ sendCustomMessage(" toggle-validate-btns-handler" , message )
230+ })
231+ }
232+
221233quitApp <- function (input ) {
222234 shiny :: observe({
223235 if (input $ quit_button > 0 ) {
0 commit comments