R/server.R

Defines functions app_server

#'
#' @import shiny
#' @import dplyr
#' @import leaflet
#' @import sf
#' @importFrom stringr str_detect
#' @importFrom shinyjs html

# TODO: Clean up @imports

# ---- server ------------------------------------------------------------------

app_server <- function(input,output,session){
  precinct_summary <- reactive({

    map_click <- input$precinct_map_shape_click

    if(is.null(map_click)){
      precinct_filter <- 1
    } else {
      precinct_filter <- map_click$id
    }

    create_precinct_summary(nypd_ccrb_cleaned, precinct_filter = precinct_filter)
  })


  output$allegations_info <- shinydashboard::renderInfoBox({
    shinydashboard::infoBox(
      title = "Allegations"
      ,value = precinct_summary()$allegations
      ,icon = icon("crosshairs")
      ,color = "blue"
    )
  })

  output$complaint_info <- shinydashboard::renderInfoBox({
    shinydashboard::infoBox(
      title = "Complaints"
      ,value = precinct_summary()$complaints
      ,icon = icon("crosshairs")
      ,color = "blue"
    )
  })

  output$officers_complaint_info <- shinydashboard::renderInfoBox({
    shinydashboard::infoBox(
      title = "Officers with Complaints"
      ,value = precinct_summary()$officers_with_complaints
      ,icon = icon("user")
      ,color = "blue"
    )
  })

  output$substantiated <- shinydashboard::renderInfoBox({
    shinydashboard::infoBox(
      title = "Substantiated"
      ,value = precinct_summary()$substantiated
      ,icon = icon("crosshairs")
      ,color = "blue"
    )
  })

  output$exonerated <- shinydashboard::renderInfoBox({
    shinydashboard::infoBox(
      title = "Exonerated"
      ,value = precinct_summary()$exonerated
      ,icon = icon("crosshairs")
      ,color = "blue"
    )
  })

  output$unsubstantiated <- shinydashboard::renderInfoBox({
    shinydashboard::infoBox(
      title = "Unsubstantiated"
      ,value = precinct_summary()$unsubstantiated
      ,icon = icon("crosshairs")
      ,color = "blue"
    )
  })



  output$precinct_map <- leaflet::renderLeaflet({
    create_precinct_map(precinct_map)
  })


  output$map_text <- renderText({

    click <- input$precinct_map_shape_click

    if(is.null(click)){
      return("Nothing Clicked")
    }

    text <- paste0("Clicked : ", click$id)

    return(text)

  })


  observeEvent(input$precinct_map_shape_click, {

    click <- input$precinct_map_shape_click

    shinyjs::html(id = "title_placeholder", html = paste0("Precinct:", click$id))


  })

  reports_server("reports1")

  bivar_bar_server("bivar_bar_graph")

}
dss-hmi/nypd-ccrb-2020-shiny documentation built on Jan. 17, 2021, 12:17 a.m.