main.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  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. App.router.get('clusterController').loadClusterName(false);
  24. router.get('mainController').initialize();
  25. // TODO: redirect to last known state
  26. } else {
  27. Ember.run.next(function () {
  28. router.transitionTo('login');
  29. });
  30. }
  31. },
  32. /*routePath: function(router,event) {
  33. if (router.getAuthenticated()) {
  34. App.router.get('clusterController').loadClusterName(false);
  35. router.get('mainController').initialize();
  36. // TODO: redirect to last known state
  37. } else {
  38. Ember.run.next(function () {
  39. router.transitionTo('login');
  40. });
  41. }
  42. }, */
  43. index: Ember.Route.extend({
  44. route: '/',
  45. redirectsTo: 'dashboard'
  46. }),
  47. test: Em.Route.extend({
  48. route: '/test',
  49. connectOutlets: function (router, context) {
  50. router.get('mainController').connectOutlet('mainTest');
  51. }
  52. }),
  53. connectOutlets: function (router, context) {
  54. router.get('applicationController').connectOutlet('main');
  55. },
  56. charts: Em.Route.extend({
  57. route: '/charts',
  58. connectOutlets: function (router, context) {
  59. router.get('mainController').connectOutlet('mainCharts');
  60. },
  61. enter: function (router) {
  62. Em.run.next(function () {
  63. router.transitionTo('heatmap');
  64. });
  65. },
  66. index: Ember.Route.extend({
  67. route: '/',
  68. redirectsTo: 'heatmap'
  69. }),
  70. heatmap: Em.Route.extend({
  71. route: '/heatmap',
  72. connectOutlets: function (router, context) {
  73. router.get('mainChartsController').connectOutlet('mainChartsHeatmap');
  74. }
  75. }),
  76. horizon_chart: Em.Route.extend({
  77. route: '/horizon_chart',
  78. connectOutlets: function (router, context) {
  79. router.get('mainChartsController').connectOutlet('mainChartsHorizon');
  80. }
  81. }),
  82. showChart: function (router, event) {
  83. var parent = event.view._parentView;
  84. parent.deactivateChildViews();
  85. event.view.set('active', "active");
  86. router.transitionTo(event.context);
  87. }
  88. }),
  89. apps: Em.Route.extend({
  90. route: '/apps',
  91. connectOutlets: function (router) {
  92. //router.get('clusterController').loadRuns();
  93. router.get('mainAppsController').loadRuns();
  94. router.get('mainController').connectOutlet('mainApps');
  95. }
  96. }),
  97. hosts: Em.Route.extend({
  98. route: '/hosts',
  99. index: Ember.Route.extend({
  100. route: '/',
  101. connectOutlets: function (router, context) {
  102. router.get('mainController').connectOutlet('mainHost');
  103. }
  104. }),
  105. hostDetails: Em.Route.extend({
  106. route: '/:host_id',
  107. connectOutlets: function (router, host) {
  108. router.get('mainController').connectOutlet('mainHostDetails', host);
  109. },
  110. index: Ember.Route.extend({
  111. route: '/',
  112. redirectsTo: 'summary'
  113. }),
  114. summary: Em.Route.extend({
  115. route: '/summary',
  116. connectOutlets: function (router, context) {
  117. router.get('mainHostDetailsController').connectOutlet('mainHostSummary');
  118. }
  119. }),
  120. metrics: Em.Route.extend({
  121. route: '/metrics',
  122. connectOutlets: function (router, context) {
  123. router.get('mainHostDetailsController').connectOutlet('mainHostMetrics');
  124. }
  125. }),
  126. audit: Em.Route.extend({
  127. route: '/audit',
  128. connectOutlets: function (router, context) {
  129. router.get('mainHostDetailsController').connectOutlet('mainHostAudit');
  130. }
  131. }),
  132. hostNavigate: 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. backToHostsList: function (router, event) {
  140. router.transitionTo('hosts.index');
  141. },
  142. showDetails: function (router, event) {
  143. router.get('mainHostDetailsController').setBack(true);
  144. router.transitionTo('hostDetails.summary', event.context)
  145. },
  146. addHost: function (router) {
  147. if (App.clusterStatus) {
  148. App.clusterStatus.updateFromServer();
  149. var currentClusterStatus = App.clusterStatus.get('value');
  150. if (currentClusterStatus && currentClusterStatus.clusterState == "ADD_HOSTS_COMPLETED_5") {
  151. // The last time add hosts ran, it left the status
  152. // in this state. We need to clear any previous status
  153. // so that the hosts page starts from fresh.
  154. currentClusterStatus.clusterState = 'CLUSTER_STARTED_5';
  155. }
  156. }
  157. router.transitionTo('hostAdd');
  158. }
  159. }),
  160. hostAdd: require('routes/add_host_routes'),
  161. admin: Em.Route.extend({
  162. route: '/admin',
  163. enter: function (router, transition) {
  164. var controller = router.get('mainAdminController');
  165. if (!App.db.getUser().admin) {
  166. Em.run.next(function () {
  167. router.transitionTo('main.dashboard');
  168. });
  169. } else {
  170. // Em.run.next(function () {
  171. // router.transitionTo('admin' + controller.get('category').capitalize());
  172. //});
  173. }
  174. },
  175. routePath: function (router, event) {
  176. if (!App.db.getUser().admin) {
  177. Em.run.next(function () {
  178. App.router.transitionTo('main.dashboard');
  179. });
  180. } else {
  181. // var controller = router.get('mainAdminController');
  182. //router.transitionTo('admin' + controller.get('category').capitalize());
  183. }
  184. },
  185. connectOutlets: function (router, context) {
  186. router.get('mainController').connectOutlet('mainAdmin');
  187. },
  188. index: Em.Route.extend({
  189. /* enter: function(router, transition){
  190. var controller = router.get('mainAdminController');
  191. router.transitionTo('admin' + controller.get('category').capitalize());
  192. }, */
  193. route: '/',
  194. redirectsTo: 'adminUser'
  195. }),
  196. adminUser: Em.Route.extend({
  197. route: '/user',
  198. index: Em.Route.extend({
  199. route: '/',
  200. redirectsTo: 'allUsers'
  201. }),
  202. enter: function (router) {
  203. router.set('mainAdminController.category', "user");
  204. Em.run.next(function () {
  205. router.transitionTo('allUsers');
  206. });
  207. },
  208. routePath: function (router, event) {
  209. router.set('mainAdminController.category', "user");
  210. router.transitionTo('allUsers');
  211. Em.run.next(function () {
  212. router.transitionTo('allUsers');
  213. });
  214. },
  215. // events
  216. gotoUsers: Em.Router.transitionTo("allUsers"),
  217. gotoCreateUser: Em.Router.transitionTo("createUser"),
  218. gotoEditUser: function (router, event) {
  219. router.transitionTo("editUser", event.context)
  220. },
  221. // states
  222. allUsers: Em.Route.extend({
  223. route: '/allUsers',
  224. // index: Ember.Route.extend({
  225. //route: '/',
  226. connectOutlets: function (router) {
  227. router.get('mainAdminController').connectOutlet('mainAdminUser');
  228. }
  229. //})
  230. }),
  231. createUser: Em.Route.extend({
  232. route: '/create',
  233. connectOutlets: function (router) {
  234. router.get('mainAdminController').connectOutlet('mainAdminUserCreate', {});
  235. }
  236. }),
  237. editUser: Em.Route.extend({
  238. route: '/edit/:user_id',
  239. connectOutlets: function (router, user) {
  240. router.get('mainAdminController').connectOutlet('mainAdminUserEdit', user);
  241. }
  242. })
  243. }),
  244. adminAuthentication: Em.Route.extend({
  245. route: '/authentication',
  246. connectOutlets: function (router, context) {
  247. router.set('mainAdminController.category', "authentication");
  248. router.get('mainAdminController').connectOutlet('mainAdminAuthentication');
  249. }
  250. }),
  251. adminSecurity: Em.Route.extend({
  252. route: '/security',
  253. enter: function (router) {
  254. //alert("1.. I am in enter path");
  255. router.set('mainAdminController.category', "security");
  256. var controller = router.get('mainAdminSecurityController');
  257. if (!(controller.getAddSecurityWizardStatus() === 'RUNNING')) {
  258. Em.run.next(function () {
  259. router.transitionTo('adminSecurity.index');
  260. });
  261. } else {
  262. Em.run.next(function () {
  263. router.transitionTo('adminAddSecurity');
  264. });
  265. }
  266. },
  267. index: Ember.Route.extend({
  268. route: '/',
  269. connectOutlets: function (router, context) {
  270. var controller = router.get('mainAdminController');
  271. controller.set('category', "security");
  272. var securityStatus = controller.securityStatusLoading();
  273. securityStatus.done(function () {
  274. controller.connectOutlet('mainAdminSecurity');
  275. });
  276. securityStatus.fail(function () {
  277. App.ModalPopup.show({
  278. header: Em.I18n.translations['common.error'],
  279. secondary: false,
  280. onPrimary: function () {
  281. this.hide();
  282. },
  283. bodyClass: Ember.View.extend({
  284. template: Ember.Handlebars.compile(['<p>{{t admin.security.status.error}}</p>'])
  285. })
  286. });
  287. });
  288. }
  289. }),
  290. addSecurity: function (router, object) {
  291. router.transitionTo('adminAddSecurity');
  292. },
  293. disableSecurity: Ember.Route.extend({
  294. route: '/',
  295. connectOutlets: function (router, context) {
  296. router.get('mainAdminSecurityController').connectOutlet('mainAdminSecurityDisable');
  297. }
  298. }),
  299. adminAddSecurity: require('routes/add_security')
  300. }),
  301. adminCluster: Em.Route.extend({
  302. route: '/cluster',
  303. connectOutlets: function (router) {
  304. router.set('mainAdminController.category', "cluster");
  305. router.get('mainAdminController').connectOutlet('mainAdminCluster');
  306. }
  307. }),
  308. adminAdvanced: Em.Route.extend({
  309. route: '/advanced',
  310. connectOutlets: function (router) {
  311. router.set('mainAdminController.category', "advanced");
  312. router.get('mainAdminController').connectOutlet('mainAdminAdvanced');
  313. }
  314. }),
  315. adminAudit: Em.Route.extend({
  316. route: '/audit',
  317. connectOutlets: function (router) {
  318. router.set('mainAdminController.category', "audit");
  319. router.get('mainAdminController').connectOutlet('mainAdminAudit');
  320. }
  321. }),
  322. upgradeStack: function (router, event) {
  323. if (!$(event.currentTarget).hasClass('inactive')) {
  324. router.transitionTo('stackUpgrade');
  325. }
  326. },
  327. adminNavigate: function (router, object) {
  328. router.transitionTo('admin' + object.context.capitalize());
  329. },
  330. //events
  331. goToAdmin: function(router, event) {
  332. router.transitionTo(event.context);
  333. }
  334. }),
  335. stackUpgrade: require('routes/stack_upgrade'),
  336. dashboard: Em.Route.extend({
  337. route: '/dashboard',
  338. connectOutlets: function (router, context) {
  339. router.get('mainController').connectOutlet('mainDashboard');
  340. },
  341. showDetails: function (router, event) {
  342. router.get('mainHostDetailsController').setBack(true);
  343. router.transitionTo('hosts.hostDetails.summary', event.context);
  344. }
  345. }),
  346. services: Em.Route.extend({
  347. route: '/services',
  348. index: Ember.Route.extend({
  349. route: '/'
  350. }),
  351. enter: function (router) {
  352. Ember.run.next(function () {
  353. var service = router.get('mainServiceItemController.content');
  354. if (!service) {
  355. service = App.Service.find().objectAt(0); // getting the first service to display
  356. }
  357. router.transitionTo('service.summary', service);
  358. });
  359. },
  360. connectOutlets: function (router, context) {
  361. router.get('mainController').connectOutlet('mainService');
  362. },
  363. service: Em.Route.extend({
  364. route: '/:service_id',
  365. connectOutlets: function (router, service) {
  366. router.get('mainServiceController').connectOutlet('mainServiceItem', service);
  367. router.transitionTo('summary');
  368. },
  369. index: Ember.Route.extend({
  370. route: '/'
  371. }),
  372. summary: Em.Route.extend({
  373. route: '/summary',
  374. connectOutlets: function (router, context) {
  375. var item = router.get('mainServiceItemController.content');
  376. var viewName = 'mainServiceInfoSummary';
  377. router.get('mainServiceItemController').connectOutlet('mainServiceInfoSummary', item);
  378. }
  379. }),
  380. metrics: Em.Route.extend({
  381. route: '/metrics',
  382. connectOutlets: function (router, context) {
  383. var item = router.get('mainServiceItemController.content');
  384. router.get('mainServiceItemController').connectOutlet('mainServiceInfoMetrics', item);
  385. }
  386. }),
  387. configs: Em.Route.extend({
  388. route: '/configs',
  389. connectOutlets: function (router, context) {
  390. var item = router.get('mainServiceItemController.content');
  391. router.get('mainServiceItemController').connectOutlet('mainServiceInfoConfigs', item);
  392. }
  393. }),
  394. audit: Em.Route.extend({
  395. route: '/audit',
  396. connectOutlets: function (router, context) {
  397. var item = router.get('mainServiceItemController.content');
  398. router.get('mainServiceItemController').connectOutlet('mainServiceInfoAudit', item);
  399. }
  400. }),
  401. showInfo: function (router, event) {
  402. var parent = event.view._parentView;
  403. parent.deactivateChildViews();
  404. event.view.set('active', "active");
  405. router.transitionTo(event.context);
  406. },
  407. showDetails: function (router, event) {
  408. router.get('mainHostDetailsController').setBack(true);
  409. router.transitionTo('hosts.hostDetails.summary', event.context);
  410. }
  411. }),
  412. showService: Em.Router.transitionTo('service'),
  413. addService: Em.Router.transitionTo('serviceAdd')
  414. }),
  415. serviceAdd:require('routes/add_service_routes'),
  416. reassignMaster:require('routes/reassign_master_routes'),
  417. selectService: Em.Route.transitionTo('services.service'),
  418. selectHost: function (router, event) {
  419. router.get('mainHostDetailsController').setBack(false);
  420. router.transitionTo('hosts.hostDetails.index', event.context);
  421. },
  422. filterHosts: function (router, component) {
  423. router.get('mainHostController').filterByComponent(component.context);
  424. router.transitionTo('hosts.index');
  425. }
  426. });