@arshaw arshaw released this Aug 26, 2014 · 2201 commits to master since this release

Assets 3

Large code refactor with better OOP, better code reuse, and more comments.
No more reliance on jQuery UI for event dragging, resizing, or anything else.

Significant changes to HTML/CSS skeleton:

  • Leverages tables for liquid rendering of days and events. No costly manual repositioning (809)
  • Backwards-incompatibilities:
    • Many classNames have changed. Custom CSS will likely need to be adjusted.
    • IE7 definitely not supported anymore
    • In eventRender callback, element will not be attached to DOM yet
    • Events are styled to be one line by default (1992). Can be undone through custom CSS,
      but not recommended (might get gaps like this in certain situations).

A "more..." link when there are too many events on a day (304). Works with month and basic views
as well as the all-day section of the agenda views. New options:

  • eventLimit. a number or true
  • eventLimitClick. the "popover" value will reveal all events in a raised panel (the default)
  • eventLimitText
  • dayPopoverFormat

Changes related to height and scrollbars:

  • aspectRatio/height/contentHeight values will be honored no matter what
    • If too many events causing too much vertical space, scrollbars will be used (728).
      This is default behavior for month view (backwards-incompatibility)
    • If too few slots in agenda view, view will stretch to be the correct height (2196)
  • 'auto' value for height/contentHeight options. If content is too tall, the view will
    vertically stretch to accomodate and no scrollbars will be used (521).
  • Tall weeks in month view will borrow height from other weeks (243)
  • Automatically scroll the view then dragging/resizing an event (1025, 2078)
  • New fixedWeekCount option to determines the number of weeks in month view
    • Supersedes weekMode (deprecated). Instead, use a combination of fixedWeekCount and
      one of the height options, possibly with an 'auto' value

Much nicer, glitch-free rendering of calendar for printers (35). Things you might not expect:

  • Buttons will become hidden
  • Agenda views display a flat list of events where the time slots would be

Other issues resolved along the way:

  • Space on right side of agenda events configurable through CSS (204)
  • Problem with window resize (259)
  • Events sorting stays consistent across weeks (510)
  • Agenda's columns misaligned on wide screens (511)
  • Run selectHelper through eventRender callbacks (629)
  • Keyboard access, tabbing (637)
  • Run resizing events through eventRender (714)
  • Resize an event to a different day in agenda views (736)
  • Allow selection across days in agenda views (778)
  • Mouseenter delegated event not working on event elements (936)
  • Agenda event dragging, snapping to different columns is erratic (1101)
  • Android browser cuts off Day view at 8 PM with no scroll bar (1203)
  • Don't fire eventMouseover/eventMouseout while dragging/resizing (1297)
  • Customize the resize handle text ("=") (1326)
  • If agenda event is too short, don't overwrite .fc-event-time (1700)
  • Zooming calendar causes events to misalign (1996)
  • Event destroy callback on event removal (2017)
  • Agenda views, when RTL, should have axis on right (2132)
  • Make header buttons more accessibile (2151)
  • daySelectionMousedown should interpret OSX ctrl+click as a right mouse click (2169)
  • Best way to display time text on multi-day events with times (2172)
  • Eliminate table use for header layout (2186)
  • Event delegation used for event-related callbacks (like eventClick). Speedier.