Code coverage report for app/views/common/configs/config_category_container_view.js

Statements: 21.05% (4 / 19)      Branches: 0% (0 / 6)      Functions: 16.67% (1 / 6)      Lines: 22.22% (4 / 18)      Ignored: none     

All files » app/views/common/configs/ » config_category_container_view.js
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    1                                     1   1   1                                                                                                                                
'use strict';
 
;require.register("views/common/configs/config_category_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.ConfigCategoryContainerView = Em.ContainerView.extend(App.LoadingOverlaySupport, {
 
    lazyLoading: null,
 
    categories: [],
 
    classNames: ['accordion'],
 
    fieldToObserve: 'controller.recommendationsInProgress',
 
    handleFieldChangesOnDidInsert: false,
 
    didInsertElement: function didInsertElement() {
      this.pushViews();
      this._super();
    },
 
    willDestroyElement: function willDestroyElement() {
      if (this.get('lazyLoading')) {
        lazyLoading.terminate(this.get('lazyLoading'));
      }
      this._super();
    },
 
    /**
     * extra calls for <code>handleFieldChanges</code>:
     * <ul>
     *  <li>child views are pushed to this (lazy loading is used)</li>
     *  <li>tab is switched</li>
     * </ul>
     */
    checkOverlay: function () {
      this.handleFieldChanges();
    }.observes('isLoaded', 'controller.activeTab.id', 'controller.activeTab.isRendered'),
 
    pushViews: function pushViews() {
      var self = this;
      // Create view with loading-overlay. For some unknown reasons overlay can't be added to the container view
      var categoriesViews = [Em.View.extend({
        template: Em.Handlebars.compile('<div class="loading-overlay"></div>')
      }).create()];
      var categories = this.get('categories');
      if (!categories) return;
      categories.forEach(function (category) {
        var viewClass = category.isCustomView ? category.customView : App.ServiceConfigsByCategoryView;
        categoriesViews.push(viewClass.create({
          category: category,
          canEdit: self.get("canEdit"),
          service: self.get("service"),
          serviceConfigs: self.get("serviceConfigs"),
          supportsHostOverrides: self.get("supportsHostOverrides")
        }));
      });
      this.set('lazyLoading', lazyLoading.run({
        destination: self.get('childViews'),
        source: categoriesViews,
        initSize: 3,
        chunkSize: 3,
        delay: 200,
        context: this
      }));
    }
 
  });
});