Limit jquery-ui and bootstrap requirements
Right now we require the entire jQuery UI library, which includes the following files:
//= require jquery-ui/accordion
//= require jquery-ui/autocomplete
//= require jquery-ui/button
//= require jquery-ui/core
//= require jquery-ui/datepicker
//= require jquery-ui/dialog
//= require jquery-ui/draggable
//= require jquery-ui/droppable
//= require jquery-ui/effect-blind
//= require jquery-ui/effect-bounce
//= require jquery-ui/effect-clip
//= require jquery-ui/effect-drop
//= require jquery-ui/effect-explode
//= require jquery-ui/effect-fade
//= require jquery-ui/effect-fold
//= require jquery-ui/effect-highlight
//= require jquery-ui/effect-puff
//= require jquery-ui/effect-pulsate
//= require jquery-ui/effect-scale
//= require jquery-ui/effect-shake
//= require jquery-ui/effect-size
//= require jquery-ui/effect-slide
//= require jquery-ui/effect-transfer
//= require jquery-ui/effect
//= require jquery-ui/menu
//= require jquery-ui/mouse
//= require jquery-ui/position
//= require jquery-ui/progressbar
//= require jquery-ui/resizable
//= require jquery-ui/selectable
//= require jquery-ui/selectmenu
//= require jquery-ui/slider
//= require jquery-ui/sortable
//= require jquery-ui/spinner
//= require jquery-ui/tabs
//= require jquery-ui/tooltip
//= require jquery-ui/widget
But I'm sure we don't use many (maybe even most) of these. We should figure out what we actually need and explicitly require only those. This will reduce the size of our compiled JS.
Right now I know we use:
- autocomplete (search)
- datepicker (Milestone forms)
- effect-highlight (Milestone drag-and-drop)
- sortable (Milestone drag-and-drop)
These should not be confused with Twitter Bootstrap plugins:
//= require ./bootstrap/affix
//= require ./bootstrap/alert
//= require ./bootstrap/button
//= require ./bootstrap/carousel
//= require ./bootstrap/collapse
//= require ./bootstrap/dropdown
//= require ./bootstrap/modal
//= require ./bootstrap/scrollspy
//= require ./bootstrap/tab
//= require ./bootstrap/transition
//= require ./bootstrap/tooltip
//= require ./bootstrap/popover
Of which I think we use:
- affix (issuable sidebars, I think?)
- collapse (sidebar?)
- dropdown (throughout)
- modal (throughout)
- tab (throughout)
- tooltip (throughout)