From c6c858e94ac9fbdaa0f50f323056d91ce2af1793 Mon Sep 17 00:00:00 2001
From: ivaosthu <ivar.conradi.osthus@finn.no>
Date: Fri, 27 Mar 2015 10:55:42 +0100
Subject: [PATCH] Clean up entry point

---
 public/js/UnleashApp.jsx | 48 +++++++++++-----------------------------
 public/js/app.jsx        | 10 +++++++++
 public/js/routes.jsx     | 20 +++++++++++++++++
 webpack.config.js        |  2 +-
 4 files changed, 44 insertions(+), 36 deletions(-)
 create mode 100644 public/js/app.jsx
 create mode 100644 public/js/routes.jsx

diff --git a/public/js/UnleashApp.jsx b/public/js/UnleashApp.jsx
index 2ec4379c05..b407773a5c 100644
--- a/public/js/UnleashApp.jsx
+++ b/public/js/UnleashApp.jsx
@@ -1,20 +1,11 @@
 var React                   = require('react');
-var UserStore               = require('./stores/UserStore');
+var Router                  = require('react-router');
 var Menu                    = require('./components/Menu');
 var ErrorMessages           = require('./components/ErrorMessages');
 var initalizer              = require('./stores/initalizer');
-var LogEntriesComponent     = require('./components/log/LogEntriesComponent');
-var FeatureTogglesComponent = require('./components/feature/FeatureTogglesComponent');
-var StrategiesComponent     = require('./components/strategy/StrategiesComponent');
-var ArchiveFeatureComponent = require('./components/feature/ArchiveFeatureComponent');
-var Router                  = require('react-router');
-var DefaultRoute = Router.DefaultRoute;
 var Link = Router.Link;
-var Route = Router.Route;
 var RouteHandler = Router.RouteHandler;
 
-UserStore.init();
-
 var UnleashApp = React.createClass({
     contextTypes: {
         router: React.PropTypes.func
@@ -24,22 +15,22 @@ var UnleashApp = React.createClass({
         initalizer(30);
     },
 
+    renderLink: function(id, label) {
+        return    (
+            <Link to={id} className="nav-element centerify" activeClassName="nav-active">
+                <span className="topbar-nav-svg-caption caption showbydefault no-break">{label}</span>
+            </Link>
+        );
+    },
+
     render: function () {
         return (
             <div>
                 <Menu>
-                    <Link to="features" className="nav-element centerify" activeClassName="nav-active">
-                        <span className="topbar-nav-svg-caption caption showbydefault no-break">Features</span>
-                    </Link>
-                    <Link to="strategies" className="nav-element centerify" activeClassName="nav-active">
-                        <span className="topbar-nav-svg-caption caption showbydefault no-break">Strategies</span>
-                    </Link>
-                    <Link to="log" className="nav-element centerify" activeClassName="nav-active">
-                        <span className="topbar-nav-svg-caption caption showbydefault no-break">Log</span>
-                    </Link>
-                    <Link to="archive" className="nav-element centerify" activeClassName="nav-active">
-                        <span className="topbar-nav-svg-caption caption showbydefault no-break">Archive</span>
-                    </Link>
+                    {this.renderLink("features",    "Toggles")}
+                    {this.renderLink("strategies",  "Strategies")}
+                    {this.renderLink("log",         "Log")}
+                    {this.renderLink("archive",     "Archive")}
                 </Menu>
                 <div className="container">
                     <div className="page">
@@ -58,18 +49,5 @@ var UnleashApp = React.createClass({
     }
 });
 
-var routes = (
-    <Route name="app" path="/" handler={UnleashApp}>
-        <Route name="strategies" handler={StrategiesComponent}/>
-        <Route name="log" handler={LogEntriesComponent}/>
-        <Route name="archive" handler={ArchiveFeatureComponent}/>
-        <DefaultRoute name="features" handler={FeatureTogglesComponent}/>
-    </Route>
-);
-
-Router.run(routes, function (Handler) {
-    React.render(<Handler/>, document.getElementById('content'));
-});
-
 
 module.exports = UnleashApp;
diff --git a/public/js/app.jsx b/public/js/app.jsx
new file mode 100644
index 0000000000..948026dd48
--- /dev/null
+++ b/public/js/app.jsx
@@ -0,0 +1,10 @@
+var React                   = require('react');
+var Router                  = require('react-router');
+var UserStore               = require('./stores/UserStore');
+var routes                  = require('./routes');
+
+UserStore.init();
+
+Router.run(routes, function (Handler) {
+    React.render(<Handler/>, document.getElementById('content'));
+});
diff --git a/public/js/routes.jsx b/public/js/routes.jsx
new file mode 100644
index 0000000000..7b0d3fd2d8
--- /dev/null
+++ b/public/js/routes.jsx
@@ -0,0 +1,20 @@
+var React                   = require('react');
+var Router                  = require('react-router');
+var UnleashApp              = require('./UnleashApp');
+var LogEntriesComponent     = require('./components/log/LogEntriesComponent');
+var FeatureTogglesComponent = require('./components/feature/FeatureTogglesComponent');
+var StrategiesComponent     = require('./components/strategy/StrategiesComponent');
+var ArchiveFeatureComponent = require('./components/feature/ArchiveFeatureComponent');
+var DefaultRoute = Router.DefaultRoute;
+var Route = Router.Route;
+
+var routes = (
+    <Route name="app" path="/" handler={UnleashApp}>
+        <Route name="strategies" handler={StrategiesComponent}/>
+        <Route name="log" handler={LogEntriesComponent}/>
+        <Route name="archive" handler={ArchiveFeatureComponent}/>
+        <DefaultRoute name="features" handler={FeatureTogglesComponent}/>
+    </Route>
+);
+
+module.exports = routes;
diff --git a/webpack.config.js b/webpack.config.js
index 97421d878c..efbae1e6d8 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -7,7 +7,7 @@ var js_root = path.join(path.join(root, 'public'), 'js');
 module.exports = {
 
     context: js_root,
-    entry: 'UnleashApp',
+    entry: 'app',
 
     output: {
         path: js_root,