add_service_routes.js 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  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: '/services/add',
  20. enter: function (router) {
  21. console.log('in /service/add:enter');
  22. if (App.db.getUser().admin) {
  23. Em.run.next(function () {
  24. var addServiceController = router.get('addServiceController');
  25. App.ModalPopup.show({
  26. classNames: ['full-width-modal'],
  27. header:Em.I18n.t('services.add.header'),
  28. bodyClass: App.AddServiceView.extend({
  29. controllerBinding: 'App.router.addServiceController'
  30. }),
  31. primary:Em.I18n.t('form.cancel'),
  32. showFooter: false,
  33. secondary: null,
  34. onPrimary:function () {
  35. this.hide();
  36. App.router.transitionTo('main.services');
  37. },
  38. onClose: function() {
  39. this.hide();
  40. App.router.transitionTo('main.services')
  41. }
  42. });
  43. router.transitionTo('step' + addServiceController.get('currentStep'));
  44. });
  45. } else {
  46. Em.run.next(function () {
  47. App.router.transitionTo('main.services');
  48. });
  49. }
  50. },
  51. /*connectOutlets: function (router) {
  52. console.log('in /service/add:connectOutlets');
  53. router.get('mainController').connectOutlet('addService');
  54. },*/
  55. step1: Em.Route.extend({
  56. route: '/step1',
  57. connectOutlets: function (router) {
  58. console.log('in addService.step1:connectOutlets');
  59. var controller = router.get('addServiceController');
  60. controller.setCurrentStep('1');
  61. controller.set('hideBackButton', true);
  62. controller.dataLoading().done(function () {
  63. controller.loadAllPriorSteps();
  64. controller.connectOutlet('wizardStep4', controller.get('content.services'));
  65. })
  66. },
  67. next: function (router) {
  68. var addServiceController = router.get('addServiceController');
  69. var wizardStep4Controller = router.get('wizardStep4Controller');
  70. addServiceController.saveServices(wizardStep4Controller);
  71. addServiceController.saveClients(wizardStep4Controller);
  72. App.db.setMasterComponentHosts(undefined);
  73. router.transitionTo('step2');
  74. }
  75. }),
  76. step2: Em.Route.extend({
  77. route: '/step2',
  78. connectOutlets: function (router) {
  79. console.log('in addService.step2:connectOutlets');
  80. var controller = router.get('addServiceController');
  81. controller.setCurrentStep('2');
  82. controller.set('hideBackButton', false);
  83. controller.dataLoading().done(function () {
  84. controller.loadAllPriorSteps();
  85. controller.connectOutlet('wizardStep5', controller.get('content'));
  86. })
  87. },
  88. back: Em.Router.transitionTo('step1'),
  89. next: function (router) {
  90. var addServiceController = router.get('addServiceController');
  91. var wizardStep5Controller = router.get('wizardStep5Controller');
  92. addServiceController.saveMasterComponentHosts(wizardStep5Controller);
  93. App.db.setSlaveComponentHosts(undefined);
  94. router.transitionTo('step3');
  95. }
  96. }),
  97. step3: Em.Route.extend({
  98. route: '/step3',
  99. connectOutlets: function (router) {
  100. console.log('in addService.step3:connectOutlets');
  101. var controller = router.get('addServiceController');
  102. controller.setCurrentStep('3');
  103. controller.dataLoading().done(function () {
  104. controller.loadAllPriorSteps();
  105. controller.connectOutlet('wizardStep6', controller.get('content'));
  106. })
  107. },
  108. back: function(router){
  109. var controller = router.get('addServiceController');
  110. if(!controller.get('content.missMasterStep')){
  111. router.transitionTo('step2');
  112. } else {
  113. router.transitionTo('step1');
  114. }
  115. },
  116. next: function (router) {
  117. var addServiceController = router.get('addServiceController');
  118. var wizardStep6Controller = router.get('wizardStep6Controller');
  119. if (wizardStep6Controller.validate()) {
  120. addServiceController.saveSlaveComponentHosts(wizardStep6Controller);
  121. addServiceController.get('content').set('serviceConfigProperties', null);
  122. App.db.setServiceConfigProperties(null);
  123. addServiceController.loadAdvancedConfigs();
  124. router.transitionTo('step4');
  125. }
  126. }
  127. }),
  128. step4: Em.Route.extend({
  129. route: '/step4',
  130. connectOutlets: function (router) {
  131. console.log('in addService.step4:connectOutlets');
  132. var controller = router.get('addServiceController');
  133. controller.setCurrentStep('4');
  134. controller.dataLoading().done(function () {
  135. controller.loadAllPriorSteps();
  136. controller.connectOutlet('wizardStep7', controller.get('content'));
  137. })
  138. },
  139. back: function(router){
  140. var controller = router.get('addServiceController');
  141. if(!controller.get('content.missSlavesStep')){
  142. router.transitionTo('step3');
  143. } else if(!controller.get('content.missMasterStep')) {
  144. router.transitionTo('step2');
  145. } else {
  146. router.transitionTo('step1');
  147. }
  148. },
  149. next: function (router) {
  150. var addServiceController = router.get('addServiceController');
  151. var wizardStep7Controller = router.get('wizardStep7Controller');
  152. addServiceController.saveServiceConfigProperties(wizardStep7Controller);
  153. router.transitionTo('step5');
  154. }
  155. }),
  156. step5: Em.Route.extend({
  157. route: '/step5',
  158. connectOutlets: function (router, context) {
  159. console.log('in addService.step5:connectOutlets');
  160. var controller = router.get('addServiceController');
  161. controller.setCurrentStep('5');
  162. controller.dataLoading().done(function () {
  163. controller.loadAllPriorSteps();
  164. controller.connectOutlet('wizardStep8', controller.get('content'));
  165. })
  166. },
  167. back: Em.Router.transitionTo('step4'),
  168. next: function (router) {
  169. var addServiceController = router.get('addServiceController');
  170. var wizardStep8Controller = router.get('wizardStep8Controller');
  171. addServiceController.installServices();
  172. addServiceController.setInfoForStep9();
  173. router.transitionTo('step6');
  174. }
  175. }),
  176. step6: Em.Route.extend({
  177. route: '/step6',
  178. connectOutlets: function (router, context) {
  179. console.log('in addService.step6:connectOutlets');
  180. var controller = router.get('addServiceController');
  181. controller.setCurrentStep('6');
  182. controller.dataLoading().done(function () {
  183. controller.loadAllPriorSteps();
  184. if (!App.testMode) { //if test mode is ON don't disable prior steps link.
  185. controller.setLowerStepsDisable(6);
  186. }
  187. controller.connectOutlet('wizardStep9', controller.get('content'));
  188. })
  189. },
  190. back: Em.Router.transitionTo('step5'),
  191. retry: function(router,context) {
  192. var addServiceController = router.get('addServiceController');
  193. var wizardStep9Controller = router.get('wizardStep9Controller');
  194. if (!wizardStep9Controller.get('isSubmitDisabled')) {
  195. if (wizardStep9Controller.get('content.cluster.status') !== 'START FAILED') {
  196. addServiceController.installServices(true);
  197. addServiceController.setInfoForStep9();
  198. } else {
  199. wizardStep9Controller.set('content.cluster.isCompleted', false);
  200. }
  201. wizardStep9Controller.navigateStep();
  202. }
  203. },
  204. unroutePath: function() {
  205. return false;
  206. },
  207. next: function (router) {
  208. var addServiceController = router.get('addServiceController');
  209. var wizardStep9Controller = router.get('wizardStep9Controller');
  210. addServiceController.saveInstalledHosts(wizardStep9Controller);
  211. router.transitionTo('step7');
  212. }
  213. }),
  214. step7: Em.Route.extend({
  215. route: '/step7',
  216. connectOutlets: function (router, context) {
  217. console.log('in addService.step7:connectOutlets');
  218. var controller = router.get('addServiceController');
  219. controller.setCurrentStep('7');
  220. controller.dataLoading().done(function () {
  221. controller.loadAllPriorSteps();
  222. controller.connectOutlet('wizardStep10', controller.get('content'));
  223. })
  224. },
  225. back: Em.Router.transitionTo('step6'),
  226. complete: function (router, context) {
  227. if (true) { // this function will be moved to installerController where it will validate
  228. router.get('addServiceController').finish();
  229. $(context.currentTarget).parents("#modal").find(".close").trigger('click');
  230. }
  231. }
  232. }),
  233. gotoStep1: Em.Router.transitionTo('step1'),
  234. gotoStep2: Em.Router.transitionTo('step2'),
  235. gotoStep3: Em.Router.transitionTo('step3'),
  236. gotoStep4: Em.Router.transitionTo('step4'),
  237. gotoStep5: Em.Router.transitionTo('step5'),
  238. gotoStep6: Em.Router.transitionTo('step6'),
  239. gotoStep7: Em.Router.transitionTo('step7'),
  240. backToServices: function (router) {
  241. router.transitionTo('services');
  242. }
  243. });