main.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. module.exports = Em.Route.extend({
  19. route:'/main',
  20. enter:function (router) {
  21. console.log('in /main:enter');
  22. if (router.getAuthenticated()) {
  23. router.get('mainController').initialize();
  24. // TODO: redirect to last known state
  25. } else {
  26. Ember.run.next(function () {
  27. router.transitionTo('login');
  28. });
  29. }
  30. },
  31. index:Ember.Route.extend({
  32. route:'/',
  33. redirectsTo:'dashboard'
  34. }),
  35. test: Em.Route.extend({
  36. route: '/test',
  37. connectOutlets:function (router, context) {
  38. router.get('mainController').connectOutlet('mainTest');
  39. }
  40. }),
  41. connectOutlets:function (router, context) {
  42. router.get('applicationController').connectOutlet('main');
  43. },
  44. charts:Em.Route.extend({
  45. route:'/charts',
  46. connectOutlets:function (router, context) {
  47. router.get('mainController').connectOutlet('mainCharts');
  48. },
  49. enter:function (router) {
  50. Em.run.next(function () {
  51. router.transitionTo('heatmap');
  52. });
  53. },
  54. index:Ember.Route.extend({
  55. route:'/',
  56. redirectsTo:'heatmap'
  57. }),
  58. heatmap:Em.Route.extend({
  59. route:'/heatmap',
  60. connectOutlets:function (router, context) {
  61. router.get('mainChartsController').connectOutlet('mainChartsHeatmap');
  62. }
  63. }),
  64. horizon_chart:Em.Route.extend({
  65. route:'/horizon_chart',
  66. connectOutlets:function (router, context) {
  67. router.get('mainChartsController').connectOutlet('mainChartsHorizon');
  68. }
  69. }),
  70. showChart:function (router, event) {
  71. var parent = event.view._parentView;
  72. parent.deactivateChildViews();
  73. event.view.set('active', "active");
  74. router.transitionTo(event.context);
  75. }
  76. }),
  77. apps:Em.Route.extend({
  78. route:'/apps',
  79. connectOutlets:function (router, context) {
  80. router.get('mainController').connectOutlet('mainApps');
  81. },
  82. index:Ember.Route.extend({
  83. route:'/'
  84. }),
  85. showApp:function (router, event) {
  86. router.transitionTo('appItem.runs', event.context);
  87. }
  88. }),
  89. appItem:Em.Route.extend({
  90. route:'apps/:app_id',
  91. connectOutlets:function (router, app) {
  92. router.get('mainAppsController').connectOutlet('mainAppsItem', app);//outlet connect when use only mainController
  93. },
  94. index:Ember.Route.extend({
  95. route:'/'
  96. }),
  97. runs:Em.Route.extend({
  98. route:'/runs',
  99. connectOutlets:function (router, context) {
  100. router.get('mainController').connectOutlet('mainAppsRuns');
  101. },
  102. showRun:function (router, event) {
  103. router.transitionTo('runItem.jobs.index', event.context);
  104. }
  105. }),
  106. runItem:Em.Route.extend({
  107. route:'/runs/:workflow_id',
  108. connectOutlets:function (router, run) {
  109. router.get('mainController').connectOutlet('mainAppsRunsItem', run);
  110. },
  111. jobs:Em.Route.extend({
  112. route:'/jobs',
  113. connectOutlets:function (router, context) {
  114. router.get('mainController').connectOutlet('mainAppsRunsJobs');
  115. },
  116. index:Ember.Route.extend({
  117. route:'/',
  118. redirectsTo:'dag'
  119. }),
  120. dag:Em.Route.extend({
  121. route:'dag',
  122. connectOutlets:function (router, context) {
  123. router.get('mainAppsRunsJobsController').connectOutlet('mainAppsRunsJobsDag');
  124. }
  125. }),
  126. bar:Em.Route.extend({
  127. route:'bar',
  128. connectOutlets:function (router, context) {
  129. router.get('mainAppsRunsJobsController').connectOutlet('mainAppsRunsJobsBar');
  130. }
  131. }),
  132. showGraph:function (router, event) {
  133. var parent = event.view._parentView;
  134. parent.deactivateChildViews();
  135. event.view.set('active', "active");
  136. router.transitionTo(event.context);
  137. }
  138. })
  139. })
  140. }),
  141. hosts:Em.Route.extend({
  142. route:'/hosts',
  143. connectOutlets:function (router, context) {
  144. router.get('mainController').connectOutlet('mainHost');
  145. },
  146. showDetails:function (router, event) {
  147. router.get('mainHostDetailsController').setBack(true);
  148. router.transitionTo('hostDetails.index', event.context)
  149. },
  150. addHost:function (router) {
  151. router.transitionTo('hostAdd');
  152. }
  153. }),
  154. hostAdd:require('routes/add_host_routes'),
  155. hostDetails:Em.Route.extend({
  156. route:'/hosts/:host_id',
  157. connectOutlets:function (router, host) {
  158. router.get('mainController').connectOutlet('mainHostDetails', host);
  159. },
  160. index:Ember.Route.extend({
  161. route:'/',
  162. redirectsTo:'summary'
  163. }),
  164. backToHostsList:function (router, event) {
  165. router.transitionTo('hosts');
  166. },
  167. summary:Em.Route.extend({
  168. route:'/summary',
  169. connectOutlets:function (router, context) {
  170. router.get('mainHostDetailsController').connectOutlet('mainHostSummary');
  171. }
  172. }),
  173. metrics:Em.Route.extend({
  174. route:'/metrics',
  175. connectOutlets:function (router, context) {
  176. router.get('mainHostDetailsController').connectOutlet('mainHostMetrics');
  177. }
  178. }),
  179. audit:Em.Route.extend({
  180. route:'/audit',
  181. connectOutlets:function (router, context) {
  182. router.get('mainHostDetailsController').connectOutlet('mainHostAudit');
  183. }
  184. }),
  185. hostNavigate:function (router, event) {
  186. var parent = event.view._parentView;
  187. parent.deactivateChildViews();
  188. event.view.set('active', "active");
  189. router.transitionTo(event.context);
  190. }
  191. }),
  192. admin:Em.Route.extend({
  193. route:'/admin',
  194. connectOutlets:function (router, context) {
  195. router.get('mainController').connectOutlet('mainAdmin');
  196. },
  197. index:Ember.Route.extend({
  198. route:'/',
  199. redirectsTo:'adminUser'
  200. }),
  201. adminUser:Em.Route.extend({
  202. route:'/user',
  203. enter:function (router) {
  204. router.set('mainAdminController.category', "user");
  205. Em.run.next(function () {
  206. router.transitionTo('allUsers');
  207. });
  208. },
  209. // events
  210. gotoUsers:Em.Router.transitionTo("allUsers"),
  211. gotoCreateUser:Em.Router.transitionTo("createUser"),
  212. gotoEditUser:function (router, event) {
  213. router.transitionTo("editUser", event.context)
  214. },
  215. // states
  216. allUsers:Em.Route.extend({
  217. route:'/',
  218. connectOutlets:function (router) {
  219. router.get('mainAdminController').connectOutlet('mainAdminUser');
  220. }
  221. }),
  222. createUser:Em.Route.extend({
  223. route:'/create',
  224. connectOutlets:function (router) {
  225. router.get('mainAdminController').connectOutlet('mainAdminUserEdit', {});
  226. }
  227. }),
  228. editUser:Em.Route.extend({
  229. route:'/edit/:userName',
  230. connectOutlets:function (router, user) {
  231. router.get('mainAdminController').connectOutlet('mainAdminUserEdit', user);
  232. }
  233. })
  234. }),
  235. adminAuthentication:Em.Route.extend({
  236. route:'/authentication',
  237. connectOutlets:function (router) {
  238. router.set('mainAdminController.category', "authentication");
  239. router.get('mainAdminController').connectOutlet('mainAdminAuthentication');
  240. }
  241. }),
  242. adminSecurity:Em.Route.extend({
  243. route:'/security',
  244. connectOutlets:function (router) {
  245. router.set('mainAdminController.category', "security");
  246. router.get('mainAdminController').connectOutlet('mainAdminSecurity');
  247. }
  248. }),
  249. adminAdvanced:Em.Route.extend({
  250. route:'/advanced',
  251. connectOutlets:function (router) {
  252. router.set('mainAdminController.category', "advanced");
  253. router.get('mainAdminController').connectOutlet('mainAdminAdvanced');
  254. }
  255. }),
  256. adminAudit:Em.Route.extend({
  257. route:'/audit',
  258. connectOutlets:function (router) {
  259. router.set('mainAdminController.category', "audit");
  260. router.get('mainAdminController').connectOutlet('mainAdminAudit');
  261. }
  262. }),
  263. adminNavigate:function (router, object) {
  264. Em.run.next(function () {
  265. router.transitionTo('admin' + object.context.capitalize());
  266. });
  267. }
  268. }),
  269. dashboard:Em.Route.extend({
  270. route:'/dashboard',
  271. connectOutlets:function (router, context) {
  272. router.get('mainController').connectOutlet('mainDashboard');
  273. }
  274. }),
  275. services:Em.Route.extend({
  276. route:'/services',
  277. index:Ember.Route.extend({
  278. route:'/'
  279. }),
  280. enter:function (router) {
  281. Ember.run.next(function () {
  282. var service = router.get('mainServiceItemController.content');
  283. if (!service) {
  284. service = App.Service.find().objectAt(0); // getting the first service to display
  285. }
  286. router.transitionTo('service.summary', service);
  287. });
  288. },
  289. connectOutlets:function (router, context) {
  290. router.get('mainController').connectOutlet('mainService');
  291. },
  292. service:Em.Route.extend({
  293. route:'/:service_id',
  294. connectOutlets:function (router, service) {
  295. router.get('mainServiceController').connectOutlet('mainServiceItem', service);
  296. router.transitionTo('summary');
  297. },
  298. index:Ember.Route.extend({
  299. route:'/'
  300. }),
  301. summary:Em.Route.extend({
  302. route:'/summary',
  303. connectOutlets:function (router, context) {
  304. var item = router.get('mainServiceItemController.content');
  305. router.get('mainServiceItemController').connectOutlet('mainServiceInfoSummary', item);
  306. }
  307. }),
  308. metrics:Em.Route.extend({
  309. route:'/metrics',
  310. connectOutlets:function (router, context) {
  311. var item = router.get('mainServiceItemController.content');
  312. router.get('mainServiceItemController').connectOutlet('mainServiceInfoMetrics', item);
  313. }
  314. }),
  315. configs:Em.Route.extend({
  316. route:'/configs',
  317. connectOutlets:function (router, context) {
  318. var item = router.get('mainServiceItemController.content');
  319. router.get('mainServiceItemController').connectOutlet('mainServiceInfoConfigs', item);
  320. }
  321. }),
  322. audit:Em.Route.extend({
  323. route:'/audit',
  324. connectOutlets:function (router, context) {
  325. var item = router.get('mainServiceItemController.content');
  326. router.get('mainServiceItemController').connectOutlet('mainServiceInfoAudit', item);
  327. }
  328. }),
  329. showInfo:function (router, event) {
  330. var parent = event.view._parentView;
  331. parent.deactivateChildViews();
  332. event.view.set('active', "active");
  333. router.transitionTo(event.context);
  334. }
  335. }),
  336. showService:Em.Router.transitionTo('service'),
  337. addService:Em.Router.transitionTo('serviceAdd')
  338. }),
  339. serviceAdd:require('routes/add_service_routes'),
  340. selectService:Em.Route.transitionTo('services.service'),
  341. selectHost:function (router, event) {
  342. router.get('mainHostDetailsController').setBack(false);
  343. router.transitionTo('hostDetails.index', event.context);
  344. },
  345. filterHosts:function (router, component) {
  346. router.get('mainHostController').filterByComponent(component.context);
  347. router.transitionTo('hosts');
  348. }
  349. });