Port sonar to Backbone.

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

david
student-sonar
master
7527
316d206...
student-sonar

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.

reviewbot
  1. Tool: PEP8 Style Checker
    Ignored Files:
        lib/frontend/groups-view.js
        lib/frontend/x-student-view.js
        lib/frontend/filtered-collection.js
        lib/frontend/components.js
        lib/frontend/calendar-view.js
        lib/students.js
        lib/frontend/config.js
        lib/frontend/group-by-collection.js
        lib/frontend/main.js
        views/login.handlebars
        css/style.less
        lib/routes.js
        lib/frontend/models.js
        package.json
        server.js
        gulpfile.js
        lib/frontend/index-view.js
        views/layouts/main.handlebars
        lib/frontend/x-summary-entry.js
        lib/frontend/collection-view.js
        lib/schema.js
        lib/api.js
        views/student-list.handlebars
        lib/frontend/x-event-list.js
        lib/frontend/x-student-card.js
        lib/frontend/user-detail-view.js
        lib/frontend/x-event-day.js
    
    
    
    Tool: Pyflakes
    Ignored Files:
        lib/frontend/groups-view.js
        lib/frontend/x-student-view.js
        lib/frontend/filtered-collection.js
        lib/frontend/components.js
        lib/frontend/calendar-view.js
        lib/students.js
        lib/frontend/config.js
        lib/frontend/group-by-collection.js
        lib/frontend/main.js
        views/login.handlebars
        css/style.less
        lib/routes.js
        lib/frontend/models.js
        package.json
        server.js
        gulpfile.js
        lib/frontend/index-view.js
        views/layouts/main.handlebars
        lib/frontend/x-summary-entry.js
        lib/frontend/collection-view.js
        lib/schema.js
        lib/api.js
        views/student-list.handlebars
        lib/frontend/x-event-list.js
        lib/frontend/x-student-card.js
        lib/frontend/user-detail-view.js
        lib/frontend/x-event-day.js
    
    
  2. 
      
brennie
  1. Ship It!
  2. 
      
david
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to master (7f60326)
Loading...