'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')
});
}); |