R/infoBoxes.R

infoBoxesUI <- function(id){
  ns <- NS(id)
  uiOutput(ns("info_boxes"))
}

infoBoxes <- function(input, output, session,
                      criteria, results){

  ns <- session$ns

  output$info_boxes <- renderUI({
    if(is.null(criteria$dynamic$Weight)) return(NULL)

   weight_sum <- sum(criteria$dynamic$Weight,na.rm=TRUE)
   weight_col <- ifelse(weight_sum==100, "blue", "red")
   criteria_n <- length(criteria$dynamic$Description)
   pass_fail <- criteria$dynamic %>%
     dplyr::filter(`Pass/Fail` == TRUE) %>%
     dplyr::select(Description) %>%
     length()

   tagList(
     infoBox(
       title = "Criteria",
       value = criteria_n,
       subtitle = sprintf("Pass/Fail: %s (%s)",
                          pass_fail,
                          paste0(round(100*pass_fail/criteria_n,2),"%")),
       icon = icon("sitemap"),
       width = 4,
       color = "blue"
     ),
     infoBox(
       title = "Weights",
       subtitle = "Sum",
       value = weight_sum,
       icon=icon("balance-scale"),
       width = 4,
       color = weight_col
     ),
     infoBox(
       title = "Winning Bid",
       value = results$winning_bid,
       icon=icon("trophy"),
       width = 4,
       color = "blue"
     )
   )
 })
}
lajh87/tessa documentation built on July 6, 2019, 12:06 a.m.