GUI -- Reworked onos.js to only require the list of view IDs to be injected. Mod…
…ule dependencies and routing configuration are both derived from the list of IDs. Change-Id: If7bd7fe5c5c42f5c557e39c8ccb53847f2527be9
Showing
1 changed file
with
52 additions
and
34 deletions
| ... | @@ -21,25 +21,42 @@ | ... | @@ -21,25 +21,42 @@ |
| 21 | (function () { | 21 | (function () { |
| 22 | 'use strict'; | 22 | 'use strict'; |
| 23 | 23 | ||
| 24 | - var moduleDependencies = [ | 24 | + // define core module dependencies here... |
| 25 | - // view modules... | 25 | + var coreDependencies = [ |
| 26 | - // TODO: inject view dependencies server side | ||
| 27 | - // {INJECTED-VIEW-MODULE-DEPENDENCIES} | ||
| 28 | - // NOTE: 'ov' == 'Onos View'... | ||
| 29 | - 'ovSample', | ||
| 30 | - 'ovTopo', | ||
| 31 | - 'ovDevice', | ||
| 32 | - // (end of view modules) | ||
| 33 | - | ||
| 34 | - // core modules... | ||
| 35 | 'ngRoute', | 26 | 'ngRoute', |
| 36 | 'onosUtil', | 27 | 'onosUtil', |
| 37 | 'onosSvg', | 28 | 'onosSvg', |
| 38 | 'onosRemote', | 29 | 'onosRemote', |
| 39 | - 'onosMast' | 30 | + 'onosMast', |
| 31 | + 'onosNav' | ||
| 40 | ]; | 32 | ]; |
| 41 | 33 | ||
| 42 | - var $log; | 34 | + // view IDs.. note the first view listed is loaded at startup |
| 35 | + var viewIds = [ | ||
| 36 | + // TODO: inject view IDs server side | ||
| 37 | + // {INJECTED-VIEW-IDS} | ||
| 38 | + 'sample', | ||
| 39 | + 'topo', | ||
| 40 | + 'device', | ||
| 41 | + // (end of injected views) | ||
| 42 | + | ||
| 43 | + // dummy entry | ||
| 44 | + '' | ||
| 45 | + ]; | ||
| 46 | + | ||
| 47 | + var viewDependencies = []; | ||
| 48 | + | ||
| 49 | + viewIds.forEach(function (id) { | ||
| 50 | + if (id) { | ||
| 51 | + viewDependencies.push('ov' + capitalize(id)); | ||
| 52 | + } | ||
| 53 | + }); | ||
| 54 | + | ||
| 55 | + var moduleDependencies = coreDependencies.concat(viewDependencies); | ||
| 56 | + | ||
| 57 | + function capitalize(word) { | ||
| 58 | + return word ? word[0].toUpperCase() + word.slice(1) : word; | ||
| 59 | + } | ||
| 43 | 60 | ||
| 44 | angular.module('onosApp', moduleDependencies) | 61 | angular.module('onosApp', moduleDependencies) |
| 45 | 62 | ||
| ... | @@ -47,10 +64,9 @@ | ... | @@ -47,10 +64,9 @@ |
| 47 | '$log', '$route', '$routeParams', '$location', | 64 | '$log', '$route', '$routeParams', '$location', |
| 48 | 'KeyService', 'ThemeService', 'GlyphService', | 65 | 'KeyService', 'ThemeService', 'GlyphService', |
| 49 | 66 | ||
| 50 | - function (_$log_, $route, $routeParams, $location, ks, ts, gs) { | 67 | + function ($log, $route, $routeParams, $location, ks, ts, gs) { |
| 51 | var self = this; | 68 | var self = this; |
| 52 | 69 | ||
| 53 | - $log = _$log_; | ||
| 54 | self.$route = $route; | 70 | self.$route = $route; |
| 55 | self.$routeParams = $routeParams; | 71 | self.$routeParams = $routeParams; |
| 56 | self.$location = $location; | 72 | self.$location = $location; |
| ... | @@ -69,26 +85,28 @@ | ... | @@ -69,26 +85,28 @@ |
| 69 | }]) | 85 | }]) |
| 70 | 86 | ||
| 71 | .config(['$routeProvider', function ($routeProvider) { | 87 | .config(['$routeProvider', function ($routeProvider) { |
| 72 | - // TODO: figure out a way of handling contributed views... | 88 | + // If view ID not provided, route to the first view in the list. |
| 73 | $routeProvider | 89 | $routeProvider |
| 74 | - .when('/', { | ||
| 75 | - controller: 'OvSampleCtrl', | ||
| 76 | - controllerAs: 'ctrl', | ||
| 77 | - templateUrl: 'view/sample/sample.html' | ||
| 78 | - }) | ||
| 79 | - .when('/topo', { | ||
| 80 | - controller: 'OvTopoCtrl', | ||
| 81 | - controllerAs: 'ctrl', | ||
| 82 | - templateUrl: 'view/topo/topo.html' | ||
| 83 | - }) | ||
| 84 | - .when('/device', { | ||
| 85 | - controller: 'OvDeviceCtrl', | ||
| 86 | - controllerAs: 'ctrl', | ||
| 87 | - templateUrl: 'view/device/device.html' | ||
| 88 | - }) | ||
| 89 | .otherwise({ | 90 | .otherwise({ |
| 90 | - redirectTo: '/' | 91 | + redirectTo: '/' + viewIds[0] |
| 91 | - }) | 92 | + }); |
| 92 | - }]); | ||
| 93 | 93 | ||
| 94 | + function viewCtrlName(vid) { | ||
| 95 | + return 'Ov' + capitalize(vid) + 'Ctrl'; | ||
| 96 | + } | ||
| 97 | + function viewTemplateUrl(vid) { | ||
| 98 | + return 'view/' + vid + '/' + vid + '.html'; | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + // Add routes for each defined view. | ||
| 102 | + viewIds.forEach(function (vid) { | ||
| 103 | + if (vid) { | ||
| 104 | + $routeProvider.when('/' + vid, { | ||
| 105 | + controller: viewCtrlName(vid), | ||
| 106 | + controllerAs: 'ctrl', | ||
| 107 | + templateUrl: viewTemplateUrl(vid) | ||
| 108 | + }); | ||
| 109 | + } | ||
| 110 | + }); | ||
| 111 | + }]); | ||
| 94 | }()); | 112 | }()); | ... | ... |
-
Please register or login to post a comment