You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2016/06/30 14:26:57 UTC
ambari git commit: AMBARI-17500. UI: a popup with a property
descriprtion doesn't fade away (onechiporenko)
Repository: ambari
Updated Branches:
refs/heads/branch-2.4 129d965d7 -> 52d7fe447
AMBARI-17500. UI: a popup with a property descriprtion doesn't fade away (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/52d7fe44
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/52d7fe44
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/52d7fe44
Branch: refs/heads/branch-2.4
Commit: 52d7fe4478fdd13deb4654b3d47ef326b7a15689
Parents: 129d965
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Thu Jun 30 15:00:52 2016 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Thu Jun 30 17:26:51 2016 +0300
----------------------------------------------------------------------
.../service/configs/widget_popover_support.js | 30 ++++++++++++++++----
.../configs/widgets/config_widget_view.js | 16 +++++------
.../test/mixins/common/serverValidator_test.js | 2 +-
.../widgets/combo_config_widget_view_test.js | 3 +-
.../configs/widgets/config_widget_view_test.js | 1 +
.../widgets/list_config_widget_view_test.js | 1 +
.../widgets/slider_config_widget_view_test.js | 1 +
.../widgets/time_interval_spinner_view_test.js | 1 +
.../widgets/toggle_config_widget_view_test.js | 1 +
9 files changed, 40 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/app/mixins/main/service/configs/widget_popover_support.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/main/service/configs/widget_popover_support.js b/ambari-web/app/mixins/main/service/configs/widget_popover_support.js
index 3974465..ded8dd9 100644
--- a/ambari-web/app/mixins/main/service/configs/widget_popover_support.js
+++ b/ambari-web/app/mixins/main/service/configs/widget_popover_support.js
@@ -39,24 +39,26 @@ App.WidgetPopoverSupport = Em.Mixin.create({
/**
* Where popover should be displayed - top|left|right|bottom
+ * popover to left if config is located at the right most sub-section of the right most section.
+ *
* @type {string}
*/
popoverPlacement: function () {
- // popover to left if config is located at the right most sub-section of the right most section.
return this.get('section.isLastColumn') && this.get('subSection.isLastColumn')? 'left' : 'right';
- }.property(),
+ }.property('section.isLastColumn', 'subSection.isLastColumn'),
initPopover: function () {
if (this.get('isPopoverEnabled') !== false) {
+ this.destroyPopover();
var leftPopoverTemplate = '<div class="popover config-widget-left-popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>',
isWidget = !Em.isEmpty(this.$('.original-widget')),
popoverSelector = isWidget ? this.$('.original-widget') : this.$('.input-append');
App.popover(popoverSelector, {
- template: this.get('popoverPlacement') == 'left'? leftPopoverTemplate : undefined,
+ template: this.get('popoverPlacement') === 'left'? leftPopoverTemplate : undefined,
title: Em.I18n.t('installer.controls.serviceConfigPopover.title').format(
this.get('configLabel'),
- (this.get('configLabel') == this.get('config.name')) ? '' : this.get('config.name')
+ this.get('configLabel') === this.get('config.name') ? '' : this.get('config.name')
),
content: this.get('config.description'),
placement: this.get('popoverPlacement'),
@@ -66,11 +68,27 @@ App.WidgetPopoverSupport = Em.Mixin.create({
hide: 0
}
});
+ this.on('willDestroyElement', this, this.destroyPopover);
}
},
- willDestroyElement: function() {
- this.$().popover('destroy');
+ /**
+ * Destroy popover after config becomes hidden
+ */
+ destroyPopover: function () {
+ this.movePopover('destroy');
+ },
+
+ /**
+ * Hide popover on config state changing (from widget-view to raw-mode and from raw-mode to widget-view)
+ */
+ hidePopover: function () {
+ this.movePopover('hide');
+ }.observes('config.showAsTextBox'),
+
+ movePopover: function (action) {
+ var popoverSelector = Em.isEmpty(this.$('.original-widget')) ? this.$('.input-append') : this.$('.original-widget');
+ this.$(popoverSelector).popover(action);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/app/views/common/configs/widgets/config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/config_widget_view.js b/ambari-web/app/views/common/configs/widgets/config_widget_view.js
index 817643a..86ae3f3 100644
--- a/ambari-web/app/views/common/configs/widgets/config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/config_widget_view.js
@@ -320,7 +320,7 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
*/
showFinalConfig: function () {
var config = this.get('config');
- return config.get('isFinal') || (!config.get('isNotEditable') && this.get('isHover'));
+ return config.get('isFinal') || !config.get('isNotEditable') && this.get('isHover');
}.property('config.isFinal', 'config.isNotEditable', 'isHover'),
/**
@@ -376,7 +376,7 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
this.configValueObserverForAttributes();
//Add Observer to configCondition that depends on another config value
- var isConditionConfigDependent = configConditions.filterProperty('resource', 'config').length;
+ var isConditionConfigDependent = configConditions.filterProperty('resource', 'config').length;
if (isConditionConfigDependent) {
this.addObserver('config.value', this, this.configValueObserverForAttributes);
}
@@ -405,7 +405,7 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
var serviceConfigs = this.get('controller.stepConfigs').findProperty('serviceName',serviceName).get('configs');
var isConditionTrue;
configConditions.forEach(function(configCondition){
- var ifStatement = configCondition.get("if");
+ var ifStatement = configCondition.get("if");
if (configCondition.get("resource") === 'config') {
isConditionTrue = App.configTheme.calculateConfigCondition(ifStatement, serviceConfigs);
if (configCondition.get("type") === 'subsection' || configCondition.get("type") === 'subsectionTab') {
@@ -434,7 +434,7 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
* @method {configValueObserverForAction}
*/
configValueObserverForAction: function() {
- var assignMasterOnStep7Controller = App.router.get('assignMasterOnStep7Controller');
+ var assignMasterOnStep7Controller = App.router.get('assignMasterOnStep7Controller');
var configAction = this.get('config.configAction');
var serviceName = this.get('config.serviceName');
var serviceConfigs = this.get('controller.stepConfigs').findProperty('serviceName', serviceName).get('configs');
@@ -512,15 +512,15 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
var action = isConditionTrue ? subsectionCondition.get("then") : subsectionCondition.get("else");
if (subsectionCondition.get('id')) {
var valueAttributes = action.property_value_attributes;
- if (valueAttributes && !Em.none(valueAttributes['visible'])) {
+ if (valueAttributes && !Em.none(valueAttributes.visible)) {
var themeResource;
if (subsectionCondition.get('type') === 'subsection') {
themeResource = App.SubSection.find().findProperty('name', subsectionConditionName);
} else if (subsectionCondition.get('type') === 'subsectionTab') {
themeResource = App.SubSectionTab.find().findProperty('name', subsectionConditionName);
}
- themeResource.set('isHiddenByConfig', !valueAttributes['visible']);
- themeResource.get('configs').setEach('hiddenBySection', !valueAttributes['visible']);
+ themeResource.set('isHiddenByConfig', !valueAttributes.visible);
+ themeResource.get('configs').setEach('hiddenBySection', !valueAttributes.visible);
}
}
},
@@ -584,7 +584,7 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
* @returns {boolean}
*/
isValueCompatibleWithWidget: function() {
- return (this.get('isOverrideEqualityError') && !this.get('config.isValid')) || this.get('config.isValid') || !this.get('supportSwitchToTextBox');
+ return this.get('isOverrideEqualityError') && !this.get('config.isValid') || this.get('config.isValid') || !this.get('supportSwitchToTextBox');
},
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/test/mixins/common/serverValidator_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/common/serverValidator_test.js b/ambari-web/test/mixins/common/serverValidator_test.js
index 4a22e28..943eb57 100644
--- a/ambari-web/test/mixins/common/serverValidator_test.js
+++ b/ambari-web/test/mixins/common/serverValidator_test.js
@@ -177,7 +177,7 @@ describe('App.ServerValidatorMixin', function () {
});
});
- it('creates general issue object', function() {
+ it('creates WRONG TYPE issue object', function() {
expect(instanceObject.createErrorMessage.bind(instanceObject, 'WRONG TYPE', null, ['msg3']))
.to.throw(Error, 'Unknown config error type WRONG TYPE');
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/test/views/common/configs/widgets/combo_config_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/configs/widgets/combo_config_widget_view_test.js b/ambari-web/test/views/common/configs/widgets/combo_config_widget_view_test.js
index 9f3c254..9cf2d85 100644
--- a/ambari-web/test/views/common/configs/widgets/combo_config_widget_view_test.js
+++ b/ambari-web/test/views/common/configs/widgets/combo_config_widget_view_test.js
@@ -22,7 +22,8 @@ describe('App.ComboConfigWidgetView', function() {
beforeEach(function() {
this.view = App.ComboConfigWidgetView.create({
- initPopover: Em.K
+ initPopover: Em.K,
+ movePopover: Em.K
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js b/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js
index 096918e..f7efd7f 100644
--- a/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js
+++ b/ambari-web/test/views/common/configs/widgets/config_widget_view_test.js
@@ -23,6 +23,7 @@ var view;
function getView() {
return App.ConfigWidgetView.create({
initPopover: Em.K,
+ movePopover: Em.K,
config: Em.Object.create({
isOriginalSCP: false,
isPropertyOverridable: false,
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js b/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
index 47dfc5d..66f9d09 100644
--- a/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
+++ b/ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
@@ -25,6 +25,7 @@ describe('App.ListConfigWidgetView', function () {
view = App.ListConfigWidgetView.create({
initPopover: Em.K,
+ movePopover: Em.K,
config: Em.Object.create({
validate: App.ServiceConfigProperty.prototype.validate,
name: 'a.b.c',
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/test/views/common/configs/widgets/slider_config_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/configs/widgets/slider_config_widget_view_test.js b/ambari-web/test/views/common/configs/widgets/slider_config_widget_view_test.js
index d757b2e..86f9431 100644
--- a/ambari-web/test/views/common/configs/widgets/slider_config_widget_view_test.js
+++ b/ambari-web/test/views/common/configs/widgets/slider_config_widget_view_test.js
@@ -26,6 +26,7 @@ describe('App.SliderConfigWidgetView', function () {
viewInt = App.SliderConfigWidgetView.create({
initSlider: Em.K,
initPopover: Em.K,
+ movePopover: Em.K,
slider: {
enable: Em.K,
disable: Em.K,
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/test/views/common/configs/widgets/time_interval_spinner_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/configs/widgets/time_interval_spinner_view_test.js b/ambari-web/test/views/common/configs/widgets/time_interval_spinner_view_test.js
index 04564a3..b6300d3 100644
--- a/ambari-web/test/views/common/configs/widgets/time_interval_spinner_view_test.js
+++ b/ambari-web/test/views/common/configs/widgets/time_interval_spinner_view_test.js
@@ -23,6 +23,7 @@ describe('App.TimeIntervalSpinnerView', function () {
beforeEach(function () {
view = App.TimeIntervalSpinnerView.create({
+ movePopover: Em.K,
controller: Em.Object.create({
removeCurrentFromDependentList: Em.K
}),
http://git-wip-us.apache.org/repos/asf/ambari/blob/52d7fe44/ambari-web/test/views/common/configs/widgets/toggle_config_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/configs/widgets/toggle_config_widget_view_test.js b/ambari-web/test/views/common/configs/widgets/toggle_config_widget_view_test.js
index 44d8322..4c54b8a 100644
--- a/ambari-web/test/views/common/configs/widgets/toggle_config_widget_view_test.js
+++ b/ambari-web/test/views/common/configs/widgets/toggle_config_widget_view_test.js
@@ -25,6 +25,7 @@ describe('App.ToggleConfigWidgetView', function () {
this.view = App.ToggleConfigWidgetView.create({
initSwitcher: Em.K,
initPopover: Em.K,
+ movePopover: Em.K,
config: Em.Object.create({
name: 'a.b.c',
value: 'active',