Code coverage report for app/views/main/service/info/configs.js

Statements: 90.48% (19 / 21)      Branches: 100% (2 / 2)      Functions: 90% (9 / 10)      Lines: 90.48% (19 / 21)      Ignored: none     

All files » app/views/main/service/info/ » configs.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 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107    1                                     1 1   1         2 2 2   2                           1             1                                               6 6 6 6 4   6                   1             2 2        
'use strict';
 
;require.register("views/main/service/info/configs", 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 batchUtils = require('utils/batch_scheduled_requests');
 
  App.MainServiceInfoConfigsView = Em.View.extend({
 
    templateName: require('templates/main/service/info/configs'),
 
    didInsertElement: function didInsertElement() {
      var self = this;
      App.router.get('mainController').isLoading.call(App.router.get('clusterController'), 'isConfigsPropertiesLoaded').done(function () {
        self.get('controller').loadStep();
      });
      this.resetConfigTabSelection();
    },
 
    /**
     * If user A is on the Service Configs page and B starts some Wizard, user A should be moved-out and then moved-in this page
     * It's done to properly disable "admin"-elements
     * This code can't be moved to the controller, because it should work only if user is in the configs page (this view exists)
     */
    simulateRefresh: function () {
      App.router.transitionTo('main.services.service.summary', this.get('controller.content'));
      App.router.transitionTo('main.services.service.configs', this.get('controller.content'));
    }.observes('App.router.wizardWatcherController.isWizardRunning'),
 
    willDestroyElement: function willDestroyElement() {
      this.get('controller').clearStep();
    },
 
    /**
     * reset selection flag of tabs on entering Configs page
     */
    resetConfigTabSelection: function resetConfigTabSelection() {
      App.Tab.find().filterProperty('serviceName', this.get('controller.content.serviceName')).setEach('isActive', false);
    },
 
    /**
     * Number of components that should be restarted
     * @type {number}
     */
    componentsCount: null,
 
    /**
     * Number of hosts with components that should be restarted
     * @type {number}
     */
    hostsCount: null,
 
    /**
     * @type {boolean}
     */
    isStopCommand: true,
 
    /**
     * @method updateComponentInformation
     */
    updateComponentInformation: function () {
      var hc = this.get('controller.content.restartRequiredHostsAndComponents');
      var componentsCount = 0;
      var hosts = Em.keys(hc);
      hosts.forEach(function (host) {
        componentsCount += hc[host].length;
      });
      this.setProperties({
        componentsCount: componentsCount,
        hostsCount: hosts.length
      });
    }.observes('controller.content.restartRequiredHostsAndComponents'),
 
    /**
     * @type {string}
     */
    rollingRestartSlaveComponentName: function () {
      return batchUtils.getRollingRestartComponentName(this.get('controller.content.serviceName'));
    }.property('controller.content.serviceName'),
 
    /**
     * @type {string}
     */
    rollingRestartActionName: function () {
      var componentName = this.get('rollingRestartSlaveComponentName');
      return componentName ? Em.I18n.t('rollingrestart.dialog.title').format(App.format.role(componentName, false)) : '';
    }.property('rollingRestartSlaveComponentName')
 
  });
});