• 
      

    Start refactoring for client-side routing.

    Review Request #7468 — Created June 30, 2015 and discarded — Latest diff uploaded

    Information

    student-sonar
    master

    Reviewers

    Instead of creating different views that overlap a lot, I'm going to be adding
    all the new features (status reports, etc.) as additional layers in a
    single-page app sort of design. As part of this, we'll need some client-side
    routing.
    
    Rather than pull in all of backbone just for the router, I've implemented my
    own. This maps regexes to URLs (passing any matched entities into the callback
    as arguments), and manages the history stack in the browser.
    
    This change also makes it so individual student views are located at
    /student/XX instead of /?student=XX
    
    Along with this, I've fixed up the component implementations to not shadow the
    built in `setAttribute` method. The prior implementation was correctly plumbing
    through into the javascript implementation but didn't make it possible to pull
    the attribute out after the fact (which is needed with the new routing code).

    Navigated around and checked that everything still worked correctly.