main.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865
  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. var App = require('app');
  19. module.exports = Em.Route.extend({
  20. route: '/main',
  21. enter: function (router) {
  22. console.log('in /main:enter');
  23. if (router.getAuthenticated()) {
  24. App.router.get('clusterController').loadClusterName(false);
  25. router.get('mainController').initialize();
  26. // TODO: redirect to last known state
  27. } else {
  28. Ember.run.next(function () {
  29. router.transitionTo('login');
  30. });
  31. }
  32. },
  33. /*
  34. routePath: function(router,event) {
  35. if (router.getAuthenticated()) {
  36. App.router.get('clusterController').loadClusterName(false);
  37. router.get('mainController').initialize();
  38. // TODO: redirect to last known state
  39. } else {
  40. Ember.run.next(function () {
  41. router.transitionTo('login');
  42. });
  43. }
  44. }, */
  45. index: Ember.Route.extend({
  46. route: '/',
  47. redirectsTo: 'dashboard'
  48. }),
  49. test: Em.Route.extend({
  50. route: '/test',
  51. connectOutlets: function (router, context) {
  52. router.get('mainController').connectOutlet('mainTest');
  53. }
  54. }),
  55. connectOutlets: function (router, context) {
  56. router.get('applicationController').connectOutlet('main');
  57. },
  58. charts: Em.Route.extend({
  59. route: '/charts',
  60. connectOutlets: function (router, context) {
  61. router.get('mainController').connectOutlet('mainCharts');
  62. },
  63. enter: function (router) {
  64. Em.run.next(function () {
  65. router.transitionTo('heatmap');
  66. });
  67. },
  68. index: Ember.Route.extend({
  69. route: '/',
  70. redirectsTo: 'heatmap'
  71. }),
  72. heatmap: Em.Route.extend({
  73. route: '/heatmap',
  74. connectOutlets: function (router, context) {
  75. router.get('mainChartsController').connectOutlet('mainChartsHeatmap');
  76. }
  77. }),
  78. horizon_chart: Em.Route.extend({
  79. route: '/horizon_chart',
  80. connectOutlets: function (router, context) {
  81. router.get('mainChartsController').connectOutlet('mainChartsHorizon');
  82. }
  83. }),
  84. showChart: function (router, event) {
  85. var parent = event.view._parentView;
  86. parent.deactivateChildViews();
  87. event.view.set('active', "active");
  88. router.transitionTo(event.context);
  89. }
  90. }),
  91. apps: Em.Route.extend({
  92. route: '/apps',
  93. connectOutlets: function (router) {
  94. //router.get('clusterController').loadRuns();
  95. router.get('mainAppsController').loadRuns();
  96. router.get('mainController').connectOutlet('mainApps');
  97. }
  98. }),
  99. mirroring: Em.Route.extend({
  100. route: '/mirroring',
  101. index: Ember.Route.extend({
  102. route: '/',
  103. enter: function () {
  104. this.setupController()
  105. },
  106. setupController: function () {
  107. var controller = App.router.get('mainMirroringController');
  108. var datasets = App.Dataset.find();
  109. controller.set('datasets', datasets);
  110. },
  111. connectOutlets: function (router, context) {
  112. console.debug('Inside connectOutlets in ' + App.get('router.currentState.path'));
  113. router.get('mainController').connectOutlet('mainMirroring');
  114. }
  115. }),
  116. gotoMirroringHome : function(router){
  117. router.transitionTo('mirroring/index');
  118. },
  119. addNewDataset: function (router) {
  120. router.transitionTo('addNewDatasetRoute');
  121. },
  122. addTargetCluster: function (router, event) {
  123. router.transitionTo('addTargetClusterRoute');
  124. },
  125. addNewDatasetRoute: Em.Route.extend({
  126. route: '/dataset/add',
  127. setupController: function (controller) {
  128. controller.createNewDataSet();
  129. },
  130. enter: function (router) {
  131. var controller = router.get('mainMirroringDataSetController');
  132. // if we are coming from closing AddCluster popup
  133. if (controller.isReturning) {
  134. controller.isReturning = false;
  135. return;
  136. }
  137. controller.set('isPopupForEdit', false);
  138. this.setupController(controller);
  139. var self = this;
  140. controller.set('isSubmitted', false);
  141. App.ModalPopup.show({
  142. classNames: ['sixty-percent-width-modal', 'hideCloseLink'],
  143. header: Em.I18n.t('mirroring.dataset.newDataset'),
  144. primary: Em.I18n.t('mirroring.dataset.save'),
  145. secondary: Em.I18n.t('common.cancel'),
  146. onPrimary: function () {
  147. controller.set('isSubmitted', true);
  148. var isValid = controller.validate();
  149. if (!isValid) {
  150. return;
  151. }
  152. newDataSet = controller.getNewDataSet();
  153. var schedule = newDataSet.get('schedule');
  154. var targetCluster = newDataSet.get('targetCluster');
  155. console.debug('Before setting, schedule = ' + schedule + " , targetCluster = " + targetCluster);
  156. var scheduleRecord = App.Dataset.Schedule.createRecord(schedule);
  157. var dataSetRecord = App.Dataset.createRecord(newDataSet);
  158. scheduleRecord.set('dataset', dataSetRecord);
  159. dataSetRecord.set('schedule', scheduleRecord);
  160. console.debug('After setting, schedule = ' + dataSetRecord.get('schedule') + " , targetCluster = " + dataSetRecord.get('targetCluster'));
  161. this.hide();
  162. router.transitionTo('main.mirroring.index');
  163. },
  164. onSecondary: function () {
  165. this.hide();
  166. router.transitionTo('main.mirroring.index');
  167. },
  168. bodyClass: App.MainMirroringDataSetView.extend({
  169. controller: router.get('mainMirroringDataSetController')
  170. })
  171. });
  172. }
  173. }),
  174. gotoShowJobs: function (router, event) {
  175. router.transitionTo('showDatasetJobs', event.context);
  176. },
  177. showDatasetJobs: Em.Route.extend({
  178. route: '/dataset/:dataset_id',
  179. connectOutlets: function (router, dataset) {
  180. router.get('mainController').connectOutlet('mainJobs', dataset);
  181. }
  182. }),
  183. editDataset: Em.Route.extend({
  184. route: '/dataset/:dataset_id/edit',
  185. setupController: function (controller, dataset) {
  186. controller.setOriginalDataSetRecord(dataset);
  187. controller.setDataSet(dataset);
  188. },
  189. connectOutlets: function (router, dataset) {
  190. var controller = router.get('mainMirroringDataSetController');
  191. // if we are coming from closing AddCluster popup
  192. if (controller.isReturning) {
  193. controller.isReturning = false;
  194. return;
  195. }
  196. // for showing delete button
  197. controller.set('isPopupForEdit', true);
  198. this.setupController(controller, dataset);
  199. var self = this;
  200. controller.set('isSubmitted', false);
  201. controller.set('popup', App.ModalPopup.show({
  202. classNames: ['sixty-percent-width-modal'],
  203. header: Em.I18n.t('mirroring.dataset.editDataset'),
  204. primary: Em.I18n.t('mirroring.dataset.save'),
  205. secondary: Em.I18n.t('common.cancel'),
  206. onPrimary: function () {
  207. controller.set('isSubmitted', true);
  208. var isValid = controller.validate();
  209. if (!isValid) {
  210. return;
  211. }
  212. newDataSet = controller.getNewDataSet();
  213. var originalRecord = controller.get('model.originalRecord');
  214. originalRecord.set('name', newDataSet.get('name'));
  215. originalRecord.set('sourceDir', newDataSet.get('sourceDir'));
  216. originalRecord.set('targetCluster', newDataSet.get('targetCluster'));
  217. originalRecord.set('targetDir', newDataSet.get('targetDir'));
  218. originalRecord.set('schedule', newDataSet.get('schedule'));
  219. this.hide();
  220. router.transitionTo('main.mirroring.index');
  221. },
  222. onSecondary: function () {
  223. this.hide();
  224. router.transitionTo('main.mirroring.index');
  225. },
  226. bodyClass: App.MainMirroringDataSetView.extend({
  227. controller: router.get('mainMirroringDataSetController')
  228. })
  229. })
  230. );
  231. }
  232. }),
  233. gotoEditDataset: function (router, event) {
  234. router.transitionTo('editDataset', event.context);
  235. },
  236. addTargetClusterRoute: Ember.Route.extend({
  237. route: '/targetCluster/add',
  238. initialState: 'testConnectionRoute',
  239. testConnectionRoute: Ember.Route.extend({
  240. setupController: function (controller) {
  241. controller.createTargetCluster();
  242. controller.set('model.isPopupForEdit', false);
  243. },
  244. enter: function (router, context) {
  245. console.debug('Inside connectOutlets in ' + App.get('router.currentState.path'));
  246. var self = this;
  247. var controller = App.router.get('mainMirroringTargetClusterController');
  248. this.setupController(controller);
  249. controller.set('isSubmitted1', false);
  250. controller.set('isSubmitted2', false);
  251. controller.set('popup', App.ModalPopup.show({
  252. classNames: ['sixty-percent-width-modal', 'hideCloseLink'],
  253. header: Em.I18n.t('mirroring.targetcluster.addCluster'),
  254. primary: Em.I18n.t('mirroring.targetcluster.testConnection'),
  255. onPrimary: function () {
  256. controller.set('isSubmitted1', true);
  257. var isValid = controller.validate1();
  258. if (!isValid) {
  259. return;
  260. }
  261. App.router.transitionTo('testConnectionResultsRoute');
  262. },
  263. onSecondary: function () {
  264. this.hide();
  265. var dscontroller = App.router.get('mainMirroringDataSetController');
  266. var tccontroller = App.router.get('mainMirroringTargetClusterController');
  267. var returnRoute = tccontroller.get('returnRoute');
  268. // if we have come from addNewDatasetRoute
  269. if (returnRoute) {
  270. dscontroller.isReturning = true;
  271. App.router.transitionTo(returnRoute);
  272. }
  273. else
  274. App.router.transitionTo('main.mirroring.index');
  275. },
  276. bodyClass: App.MainMirroringAddTargetClusterView.extend({
  277. controller: App.router.get('mainMirroringTargetClusterController')
  278. })
  279. }));
  280. },
  281. connectOutlets: function (router, context) {
  282. console.log("entering the connectOutlets method of testConnectionRoute.")
  283. var parentController = router.get('mainMirroringTargetClusterController');
  284. parentController.connectOutlet('testConnection', parentController.get('model'));
  285. },
  286. exit: function (stateManager) {
  287. console.log("exiting the testConnectionRoute state")
  288. }
  289. }),
  290. testConnectionResultsRoute: Ember.Route.extend({
  291. enter: function (stateManager) {
  292. console.log("entering the testConnectionResultsRoute state.")
  293. // lets change the primary button
  294. var controller = App.router.get('mainMirroringTargetClusterController');
  295. var popup = controller.get('popup');
  296. popup.set('primary', Em.I18n.t('common.save'));
  297. popup.set('onPrimary',
  298. function () {
  299. var controller = App.router.get('mainMirroringTargetClusterController');
  300. controller.set('isSubmitted2', true);
  301. var isValid = controller.validate2();
  302. if (!isValid) {
  303. return;
  304. }
  305. var controller = App.router.get('testConnectionResultsController');
  306. controller.saveClusterName();
  307. }
  308. );
  309. },
  310. connectOutlets: function (router, context) {
  311. console.log("entering the connectOutlets method of testConnectionResultsRoute.")
  312. var parentController = router.get('mainMirroringTargetClusterController');
  313. parentController.connectOutlet('testConnectionResults', parentController.get('model'));
  314. },
  315. exit: function (stateManager) {
  316. console.log("exiting the connectionSuccessRoute state")
  317. }
  318. })
  319. }),
  320. editTargetClusterRoute: Em.Route.extend({
  321. route: '/targetCluster/:targetCluster_id/edit',
  322. initialState: 'testConnectionRoute',
  323. setupController: function (controller, targetCluster) {
  324. controller.setOriginalRecord(targetCluster);
  325. controller.setTargetCluster(targetCluster);
  326. },
  327. connectOutlets: function (router, targetCluster) {
  328. // this connectOutlets is mainly to receive the 'targetCluster' argument
  329. var controller = router.get('mainMirroringTargetClusterController');
  330. // for showing delete button
  331. controller.set('model.isPopupForEdit', true);
  332. this.setupController(controller, targetCluster);
  333. },
  334. testConnectionRoute: Em.Route.extend({
  335. connectOutlets: function (router, targetCluster) {
  336. var controller = router.get('mainMirroringTargetClusterController');
  337. controller.set('isSubmitted1', false);
  338. controller.set('isSubmitted2', false);
  339. controller.set('popup', App.ModalPopup.show({
  340. classNames: ['sixty-percent-width-modal'],
  341. header: Em.I18n.t('mirroring.dataset.editDataset'),
  342. primary: Em.I18n.t('mirroring.targetcluster.testConnection'),
  343. onPrimary: function () {
  344. var controller = App.router.get('mainMirroringTargetClusterController');
  345. controller.set('isSubmitted1', true);
  346. var isValid = controller.validate1();
  347. if (!isValid) {
  348. return;
  349. }
  350. App.router.transitionTo('testConnectionResultsRoute');
  351. },
  352. secondary: Em.I18n.t('common.cancel'),
  353. onSecondary: function () {
  354. this.hide();
  355. router.transitionTo('main.mirroring.index');
  356. },
  357. bodyClass: App.MainMirroringAddTargetClusterView.extend({
  358. controller: App.router.get('mainMirroringTargetClusterController')
  359. })
  360. }));
  361. console.log("entering the connectOutlets method of testConnectionRoute.")
  362. var parentController = router.get('mainMirroringTargetClusterController');
  363. parentController.connectOutlet('testConnection', parentController.get('model'));
  364. }
  365. }),
  366. testConnection: function () {
  367. App.router.transitionTo('testConnectionResultsRoute');
  368. },
  369. testConnectionResultsRoute: Ember.Route.extend({
  370. enter: function (stateManager) {
  371. console.log("entering the testConnectionResultsRoute state.")
  372. // lets change the primary button
  373. var controller = App.router.get('mainMirroringTargetClusterController');
  374. var popup = controller.get('popup');
  375. popup.set('primary', Em.I18n.t('common.save'));
  376. popup.set('onPrimary',
  377. function () {
  378. var controller = App.router.get('mainMirroringTargetClusterController');
  379. controller.set('isSubmitted2', true);
  380. var isValid = controller.validate1();
  381. if (!isValid) {
  382. return;
  383. }
  384. var controller2 = App.router.get('testConnectionResultsController');
  385. controller2.saveClusterName();
  386. }
  387. );
  388. },
  389. connectOutlets: function (router, context) {
  390. console.log("entering the connectOutlets method of testConnectionResultsRoute.");
  391. var parentController = router.get('mainMirroringTargetClusterController');
  392. parentController.connectOutlet('testConnectionResults', parentController.get('model'));
  393. },
  394. exit: function (stateManager) {
  395. console.log("exiting the connectionSuccessRoute state")
  396. }
  397. })
  398. }),
  399. editTargetCluster: function (router, event) {
  400. router.transitionTo('editTargetClusterRoute', event.context);
  401. }
  402. }),
  403. hosts: Em.Route.extend({
  404. route: '/hosts',
  405. index: Ember.Route.extend({
  406. route: '/',
  407. connectOutlets: function (router, context) {
  408. router.get('mainController').connectOutlet('mainHost');
  409. }
  410. }),
  411. hostDetails: Em.Route.extend({
  412. route: '/:host_id',
  413. connectOutlets: function (router, host) {
  414. router.get('mainController').connectOutlet('mainHostDetails', host);
  415. },
  416. index: Ember.Route.extend({
  417. route: '/',
  418. redirectsTo: 'summary'
  419. }),
  420. summary: Em.Route.extend({
  421. route: '/summary',
  422. connectOutlets: function (router, context) {
  423. router.get('mainHostDetailsController').connectOutlet('mainHostSummary');
  424. }
  425. }),
  426. configs: Em.Route.extend({
  427. route: '/configs',
  428. connectOutlets: function (router, context) {
  429. router.get('mainHostDetailsController').connectOutlet('mainHostConfigs');
  430. }
  431. }),
  432. metrics: Em.Route.extend({
  433. route: '/metrics',
  434. connectOutlets: function (router, context) {
  435. router.get('mainHostDetailsController').connectOutlet('mainHostMetrics');
  436. }
  437. }),
  438. audit: Em.Route.extend({
  439. route: '/audit',
  440. connectOutlets: function (router, context) {
  441. router.get('mainHostDetailsController').connectOutlet('mainHostAudit');
  442. }
  443. }),
  444. hostNavigate: function (router, event) {
  445. var parent = event.view._parentView;
  446. parent.deactivateChildViews();
  447. event.view.set('active', "active");
  448. router.transitionTo(event.context);
  449. }
  450. }),
  451. backToHostsList: function (router, event) {
  452. router.transitionTo('hosts.index');
  453. },
  454. showDetails: function (router, event) {
  455. router.get('mainHostDetailsController').setBack(true);
  456. router.transitionTo('hostDetails.summary', event.context)
  457. },
  458. addHost: function (router) {
  459. if (App.clusterStatus) {
  460. App.clusterStatus.updateFromServer();
  461. var currentClusterStatus = App.clusterStatus.get('value');
  462. if (currentClusterStatus && currentClusterStatus.clusterState == "ADD_HOSTS_COMPLETED_5") {
  463. // The last time add hosts ran, it left the status
  464. // in this state. We need to clear any previous status
  465. // so that the hosts page starts from fresh.
  466. currentClusterStatus.clusterState = 'CLUSTER_STARTED_5';
  467. }
  468. }
  469. router.transitionTo('hostAdd');
  470. }
  471. }),
  472. hostAdd: require('routes/add_host_routes'),
  473. admin: Em.Route.extend({
  474. route: '/admin',
  475. enter: function (router, transition) {
  476. if (!App.isAdmin) {
  477. Em.run.next(function () {
  478. router.transitionTo('main.dashboard');
  479. });
  480. }
  481. },
  482. routePath: function (router, event) {
  483. if (!App.isAdmin) {
  484. Em.run.next(function () {
  485. App.router.transitionTo('main.dashboard');
  486. });
  487. } else {
  488. var controller = router.get('mainAdminController');
  489. router.transitionTo('admin' + controller.get('category').capitalize());
  490. }
  491. },
  492. connectOutlets: function (router, context) {
  493. router.get('mainController').connectOutlet('mainAdmin');
  494. },
  495. index: Em.Route.extend({
  496. /* enter: function(router, transition){
  497. var controller = router.get('mainAdminController');
  498. router.transitionTo('admin' + controller.get('category').capitalize());
  499. }, */
  500. route: '/',
  501. redirectsTo: 'adminUser'
  502. }),
  503. adminUser: Em.Route.extend({
  504. route: '/user',
  505. index: Em.Route.extend({
  506. route: '/',
  507. redirectsTo: 'allUsers'
  508. }),
  509. enter: function (router) {
  510. router.set('mainAdminController.category', "user");
  511. Em.run.next(function () {
  512. router.transitionTo('allUsers');
  513. });
  514. },
  515. routePath: function (router, event) {
  516. router.set('mainAdminController.category', "user");
  517. router.transitionTo('allUsers');
  518. Em.run.next(function () {
  519. router.transitionTo('allUsers');
  520. });
  521. },
  522. // events
  523. gotoUsers: Em.Router.transitionTo("allUsers"),
  524. gotoCreateUser: Em.Router.transitionTo("createUser"),
  525. gotoEditUser: function (router, event) {
  526. router.transitionTo("editUser", event.context)
  527. },
  528. // states
  529. allUsers: Em.Route.extend({
  530. route: '/allUsers',
  531. // index: Ember.Route.extend({
  532. //route: '/',
  533. connectOutlets: function (router) {
  534. router.get('mainAdminController').connectOutlet('mainAdminUser');
  535. }
  536. //})
  537. }),
  538. createUser: Em.Route.extend({
  539. route: '/create',
  540. connectOutlets: function (router) {
  541. router.get('mainAdminController').connectOutlet('mainAdminUserCreate', {});
  542. }
  543. }),
  544. editUser: Em.Route.extend({
  545. route: '/edit/:user_id',
  546. connectOutlets: function (router, user) {
  547. router.get('mainAdminController').connectOutlet('mainAdminUserEdit', user);
  548. }
  549. })
  550. }),
  551. adminAuthentication: Em.Route.extend({
  552. route: '/authentication',
  553. connectOutlets: function (router, context) {
  554. router.set('mainAdminController.category', "authentication");
  555. router.get('mainAdminController').connectOutlet('mainAdminAuthentication');
  556. }
  557. }),
  558. adminSecurity: Em.Route.extend({
  559. route: '/security',
  560. enter: function (router) {
  561. router.set('mainAdminController.category', "security");
  562. var controller = router.get('mainAdminSecurityController');
  563. if (!(controller.getAddSecurityWizardStatus() === 'RUNNING')) {
  564. Em.run.next(function () {
  565. router.transitionTo('adminSecurity.index');
  566. });
  567. } else {
  568. Em.run.next(function () {
  569. router.transitionTo('adminAddSecurity');
  570. });
  571. }
  572. },
  573. index: Ember.Route.extend({
  574. route: '/',
  575. connectOutlets: function (router, context) {
  576. var controller = router.get('mainAdminController');
  577. controller.set('category', "security");
  578. controller.connectOutlet('mainAdminSecurity');
  579. }
  580. }),
  581. addSecurity: function (router, object) {
  582. router.transitionTo('adminAddSecurity');
  583. },
  584. disableSecurity: Ember.Route.extend({
  585. route: '/',
  586. enter: function (router) {
  587. Ember.run.next(function () {
  588. App.router.get('updateController').set('isWorking', false);
  589. App.ModalPopup.show({
  590. classNames: ['full-width-modal'],
  591. header: Em.I18n.t('admin.removeSecurity.header'),
  592. bodyClass: App.MainAdminSecurityDisableView.extend({
  593. controllerBinding: 'App.router.mainAdminSecurityDisableController'
  594. }),
  595. primary: Em.I18n.t('form.cancel'),
  596. secondary: null,
  597. showFooter: false,
  598. onPrimary: function () {
  599. this.hide();
  600. App.router.get('updateController').set('isWorking', true);
  601. },
  602. onClose: function () {
  603. if (router.get('mainAdminSecurityDisableController.isSubmitDisabled') === false) {
  604. this.hide();
  605. App.router.get('updateController').set('isWorking', true);
  606. router.transitionTo('adminSecurity.index');
  607. }
  608. },
  609. didInsertElement: function () {
  610. this.fitHeight();
  611. }
  612. });
  613. });
  614. },
  615. unroutePath: function () {
  616. return false;
  617. },
  618. done: function (router, context) {
  619. $(context.currentTarget).parents("#modal").find(".close").trigger('click');
  620. }
  621. }),
  622. adminAddSecurity: require('routes/add_security')
  623. }),
  624. adminCluster: Em.Route.extend({
  625. route: '/cluster',
  626. connectOutlets: function (router) {
  627. router.set('mainAdminController.category', "cluster");
  628. router.get('mainAdminController').connectOutlet('mainAdminCluster');
  629. }
  630. }),
  631. adminAdvanced: Em.Route.extend({
  632. route: '/advanced',
  633. connectOutlets: function (router) {
  634. router.set('mainAdminController.category', "advanced");
  635. router.get('mainAdminController').connectOutlet('mainAdminAdvanced');
  636. }
  637. }),
  638. adminMisc: Em.Route.extend({
  639. route: '/misc',
  640. connectOutlets: function (router) {
  641. router.set('mainAdminController.category', "misc");
  642. router.get('mainAdminController').connectOutlet('mainAdminMisc');
  643. }
  644. }),
  645. adminAudit: Em.Route.extend({
  646. route: '/audit',
  647. connectOutlets: function (router) {
  648. router.set('mainAdminController.category', "audit");
  649. router.get('mainAdminController').connectOutlet('mainAdminAudit');
  650. }
  651. }),
  652. upgradeStack: function (router, event) {
  653. if (!$(event.currentTarget).hasClass('inactive')) {
  654. router.transitionTo('stackUpgrade');
  655. }
  656. },
  657. adminNavigate: function (router, object) {
  658. router.transitionTo('admin' + object.context.capitalize());
  659. },
  660. //events
  661. goToAdmin: function (router, event) {
  662. router.transitionTo(event.context);
  663. }
  664. }),
  665. stackUpgrade: require('routes/stack_upgrade'),
  666. dashboard: Em.Route.extend({
  667. route: '/dashboard',
  668. connectOutlets: function (router, context) {
  669. router.get('mainController').connectOutlet('mainDashboard');
  670. },
  671. showDetails: function (router, event) {
  672. router.get('mainHostDetailsController').setBack(true);
  673. router.transitionTo('hosts.hostDetails.summary', event.context);
  674. }
  675. }),
  676. services: Em.Route.extend({
  677. route: '/services',
  678. index: Ember.Route.extend({
  679. route: '/',
  680. enter: function (router) {
  681. Ember.run.next(function(){
  682. var controller = router.get('mainController');
  683. controller.dataLoading().done(function () {
  684. var service = router.get('mainServiceItemController.content');
  685. if (!service) {
  686. service = App.Service.find().objectAt(0); // getting the first service to display
  687. }
  688. router.transitionTo('service.summary', service);
  689. });
  690. });
  691. }
  692. }),
  693. connectOutlets: function (router, context) {
  694. router.get('mainController').connectOutlet('mainService');
  695. },
  696. service: Em.Route.extend({
  697. route: '/:service_id',
  698. connectOutlets: function (router, service) {
  699. router.get('mainServiceController').connectOutlet('mainServiceItem', service);
  700. router.transitionTo('summary');
  701. },
  702. index: Ember.Route.extend({
  703. route: '/'
  704. }),
  705. summary: Em.Route.extend({
  706. route: '/summary',
  707. connectOutlets: function (router, context) {
  708. var item = router.get('mainServiceItemController.content');
  709. var viewName = 'mainServiceInfoSummary';
  710. router.get('mainServiceItemController').connectOutlet('mainServiceInfoSummary', item);
  711. }
  712. }),
  713. metrics: Em.Route.extend({
  714. route: '/metrics',
  715. connectOutlets: function (router, context) {
  716. var item = router.get('mainServiceItemController.content');
  717. router.get('mainServiceItemController').connectOutlet('mainServiceInfoMetrics', item);
  718. }
  719. }),
  720. configs: Em.Route.extend({
  721. route: '/configs',
  722. connectOutlets: function (router, context) {
  723. var item = router.get('mainServiceItemController.content');
  724. router.get('mainServiceItemController').connectOutlet('mainServiceInfoConfigs', item);
  725. }
  726. }),
  727. audit: Em.Route.extend({
  728. route: '/audit',
  729. connectOutlets: function (router, context) {
  730. var item = router.get('mainServiceItemController.content');
  731. router.get('mainServiceItemController').connectOutlet('mainServiceInfoAudit', item);
  732. }
  733. }),
  734. showInfo: function (router, event) {
  735. var parent = event.view._parentView;
  736. parent.deactivateChildViews();
  737. event.view.set('active', "active");
  738. router.transitionTo(event.context);
  739. },
  740. showDetails: function (router, event) {
  741. router.get('mainHostDetailsController').setBack(true);
  742. router.transitionTo('hosts.hostDetails.summary', event.context);
  743. }
  744. }),
  745. showService: Em.Router.transitionTo('service'),
  746. addService: Em.Router.transitionTo('serviceAdd')
  747. }),
  748. serviceAdd: require('routes/add_service_routes'),
  749. reassignMaster: require('routes/reassign_master_routes'),
  750. selectService: Em.Route.transitionTo('services.service'),
  751. selectHost: function (router, event) {
  752. router.get('mainHostDetailsController').setBack(false);
  753. router.transitionTo('hosts.hostDetails.index', event.context);
  754. },
  755. filterHosts: function (router, component) {
  756. router.get('mainHostController').filterByComponent(component.context);
  757. router.transitionTo('hosts.index');
  758. }
  759. });