• 
      

    Port sonar to Backbone.

    Review Request #7526 — Created July 15, 2015 and submitted — Latest diff uploaded

    Information

    student-sonar
    master
    316d206...

    Reviewers

    This very large change does a bunch of things. Primarily, the use of web
    components and custom elements has been swapped out for backbone.js. The
    reasoning behind this was multifold. First, the way that data gets passed in to
    custom elements (via attributes) was a little annoying for building
    highly-interactive pages. Second, adding custom elements involved a surprising
    amount of boilerplate code, made worse by the fact that some browsers needed
    shims for CSS. Finally, the specs for webcomponents are still in quite a bit of
    flux, and it's looking like things are going to change significantly in the
    next year or so.

    This also:
    - Tweaks some of the layout to fill the window better (sometimes some pages
    would have @header-height worth of their content hidden at the bottom).
    - Adds a REST API for the database using express-restify-mongoose. This is
    extended a bit to add user-based access control. Why restify doesn't include
    that is a mystery to me.
    - Adds some new schema for groups and some additional data into user which will
    be used in a future change.
    - Adds a cute spinner that shows while content is loading.
    - Changed around URLs to use fewer querystring parameters.

    Checked all existing behavior. Saw that things worked pretty much as expected.