X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fframework%2Fwidgets%2Fskyquake_container%2FskyquakeRouter.jsx;fp=skyquake%2Fframework%2Fwidgets%2Fskyquake_container%2FskyquakeRouter.jsx;h=fc3231d3a85d12e504855f85c544717d69ab0749;hb=e29efc315df33d546237e270470916e26df391d6;hp=0000000000000000000000000000000000000000;hpb=9c5e457509ba5a1822c316635c6308874e61b4b9;p=osm%2FUI.git
diff --git a/skyquake/framework/widgets/skyquake_container/skyquakeRouter.jsx b/skyquake/framework/widgets/skyquake_container/skyquakeRouter.jsx
new file mode 100644
index 000000000..fc3231d3a
--- /dev/null
+++ b/skyquake/framework/widgets/skyquake_container/skyquakeRouter.jsx
@@ -0,0 +1,106 @@
+/*
+ *
+ * Copyright 2016 RIFT.IO Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+import React from 'react';
+import {
+ Router, Route, hashHistory, IndexRoute
+}
+from 'react-router';
+import SkyquakeContainer from 'widgets/skyquake_container/skyquakeContainer.jsx';
+
+export default function(config, context) {
+ let routes = [];
+ let index = null;
+ let components = null;
+ if (config && config.routes) {
+ routes = buildRoutes(config.routes)
+ function buildRoutes(routes) {
+ return routes.map(function(route, index) {
+ let routeConfig = {};
+ if (route.route && route.component) {
+ // ES6 modules need to specify default
+ let path = route.route;
+ if(route.path && route.path.replace(' ', '') != '') {
+ path = route.path
+ }
+ routeConfig = {
+ path: path,
+ name: route.label,
+ getComponent: function(location, cb) {
+ require.ensure([], (require) => {
+ cb(null, context(route.component).default)
+ })
+ }
+ }
+ if(route.routes && (route.routes.length > 0)){
+ routeConfig.childRoutes = buildRoutes(route.routes)
+ }
+ } else {
+ console.error('Route not properly configured. Check that both path and component are specified');
+ }
+ return routeConfig;
+ });
+ }
+ routes.push({
+ path: '/login',
+ name: 'Login',
+ component: require('../login/login.jsx').default
+ });
+ routes.push({
+ path:'*',
+ name: 'Dashboard',
+ getComponent: function(loc, cb) {
+ cb(null, context(config.dashboard).default);
+ }
+ });
+ if (config.dashboard) {
+ // ES6 modules need to specify default
+ index =