iPlantCollaborativeOpenSource/troposphere — pull request #3 by jchansen (2014-05-20 07:49:09+00:00)
Title: Jchansen/break up routing

1. **Routing**: Removed routing controls from Root component. Broke them up and placed them in individual routers for images, providers, projects, settings and help.

2. **Server Config**: Added a check for an environment variable in wsgi.py so developers can customize the location of the virtual env directory and the server can still be hard-coded to use /opt/env/troposphere.

3. **JS Package Management**: Added Bower for managing JavaScript dependencies (JS package manager developed by Twitter).

4. **RequireJS Config**: Starting to use more local dependencies in RequireJS's main config instead of CDNs, so we can combine and minify them for production deployment.

5. **Push State**: Added a function that detects any links clicked that are local to the app (starting with /application) and sends them to Backbone.history. This means we don't need to have "onNavigate" callbacks scattered around the app - everything will pass through this function. Just add links as needed, and routers will see them if one exists to handle it.

6. **Context Object**: Created simple context object that stores the users Session and Profile. These are set before the application is loaded. Any component can get this information by require('context'), but standard React practices should still be followed (give components required data through properties)