1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | 1 1 1 1 7 6 6 6 3 3 6 6 4 4 4 6 8 3 3 1 3 3 8 8 13 13 6 7 7 5 | 'use strict'; ;require.register("views/common/configs/service_config_container_view", function (exports, require, module) { /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var App = require('app'); var lazyLoading = require('utils/lazy_loading'); App.ServiceConfigContainerView = Em.ContainerView.extend({ view: null, lazyLoading: null, pushViewTimeout: null, didInsertElement: function didInsertElement() { if (this.get('controller.isInstallWizard')) { this.selectedServiceObserver(); } }, pushView: function pushView() { if (this.get('controller.selectedService')) { var self = this; var controllerRoute = 'App.router.' + this.get('controller.name'); if (!this.get('view')) { this.get('childViews').pushObject(App.ServiceConfigView.create({ templateName: require('templates/common/configs/service_config_wizard'), controllerBinding: controllerRoute, isNotEditableBinding: controllerRoute + '.isNotEditable', filterBinding: controllerRoute + '.filter', columnsBinding: controllerRoute + '.filterColumns', selectedServiceBinding: controllerRoute + '.selectedService', actionsStacked: function () { return this.get('controller.isInstallWizard') && this.get('supportsConfigLayout'); }.property('controller.isInstallWizard', 'supportsConfigLayout'), serviceConfigsByCategoryView: Em.ContainerView.create(), willDestroyElement: function willDestroyElement() { $('.loading').append(Em.I18n.t('common.loading.eclipses')); }, didInsertElement: function didInsertElement() { $('.loading').empty(); this._super(); }, setActiveTab: function setActiveTab(event) { if (event.context.get('isHiddenByFilter')) return false; this.get('tabs').forEach(function (tab) { tab.set('isActive', false); }); var currentTab = event.context; currentTab.set('isActive', true); } })); } else { this.get('childViews').pushObject(this.get('view')); } var categoriesToPush = []; this.get('controller.selectedService.configCategories').forEach(function (item) { var categoryView = item.get('isCustomView') ? item.get('customView') : App.ServiceConfigsByCategoryView; Eif (categoryView !== null) { categoriesToPush.pushObject(categoryView.extend({ category: item, controllerBinding: controllerRoute, canEditBinding: 'parentView.canEdit', serviceBinding: controllerRoute + '.selectedService', serviceConfigsBinding: controllerRoute + '.selectedService.configs', supportsHostOverridesBinding: 'parentView.supportsHostOverrides' })); } }); this.set('lazyLoading', lazyLoading.run({ destination: self.get('childViews.lastObject.serviceConfigsByCategoryView.childViews'), source: categoriesToPush, initSize: 3, chunkSize: 3, delay: 200, context: this })); } }, selectedServiceObserver: function () { if (this.get('childViews.length')) { var view = this.get('childViews.firstObject'); if (view.get('serviceConfigsByCategoryView.childViews.length')) { view.get('serviceConfigsByCategoryView.childViews').clear(); } view.removeFromParent(); this.set('view', view); } //terminate lazy loading when switch service if (this.get('lazyLoading')) lazyLoading.terminate(this.get('lazyLoading')); this.pushViewAfterRecommendation(); }.observes('controller.selectedService', 'controller.selectedService.redrawConfigs'), pushViewAfterRecommendation: function pushViewAfterRecommendation() { var _this = this; if (this.get('controller.isRecommendedLoaded')) { this.pushView(); } else { clearTimeout(this.get('pushViewTimeout')); this.set('pushViewTimeout', setTimeout(function () { return _this.pushViewAfterRecommendation(); }, 300)); } } }); }); |