You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sr...@apache.org on 2015/05/06 22:11:37 UTC
ambari git commit: AMBARI-10972. Add 'Set Recommended Value' action
to configs with recommended value (onechiporenko via srimanth)
Repository: ambari
Updated Branches:
refs/heads/trunk e4613a328 -> 44bfa35db
AMBARI-10972. Add 'Set Recommended Value' action to configs with recommended value (onechiporenko via srimanth)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/44bfa35d
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/44bfa35d
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/44bfa35d
Branch: refs/heads/trunk
Commit: 44bfa35dbb72380ca8608b43b1cd12158f9f26b3
Parents: e4613a3
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Wed May 6 13:03:38 2015 -0700
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Wed May 6 13:10:35 2015 -0700
----------------------------------------------------------------------
ambari-web/app/messages.js | 1 +
.../configs/objects/service_config_property.js | 11 +++++++--
ambari-web/app/styles/application.less | 13 +++++++++-
ambari-web/app/styles/widgets.less | 5 ++--
.../templates/common/configs/service_config.hbs | 2 +-
.../common/configs/service_config_category.hbs | 7 ++++++
.../common/configs/service_config_wizard.hbs | 2 +-
.../common/configs/widgets/controls.hbs | 6 +++++
.../views/common/configs/service_config_view.js | 6 +++++
.../configs/service_configs_by_category_view.js | 10 ++++++++
.../widgets/checkbox_config_widget_view.js | 9 ++++++-
.../configs/widgets/combo_config_widget_view.js | 7 ++++++
.../configs/widgets/config_widget_view.js | 7 +++++-
.../configs/widgets/list_config_widget_view.js | 8 ++++++
.../widgets/slider_config_widget_view.js | 26 +++++++++++++-------
.../widgets/toggle_config_widget_view.js | 7 ++++++
16 files changed, 109 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 5d85b19..c846e5a 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1751,6 +1751,7 @@ Em.I18n.translations = {
'services.service.config.configHistory.dismissIcon.tooltip': 'Dismiss',
'services.service.config.configHistory.makeCurrent.message': 'Created from service config version {0}',
'services.service.config.configHistory.comparing': 'Comparing',
+ 'services.service.config.setRecommendedValue': 'Set Recommended Value',
'services.service.widgets.list-widget.nothingSelected': 'Nothing selected',
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/models/configs/objects/service_config_property.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/configs/objects/service_config_property.js b/ambari-web/app/models/configs/objects/service_config_property.js
index 554e094..eeec1b1 100644
--- a/ambari-web/app/models/configs/objects/service_config_property.js
+++ b/ambari-web/app/models/configs/objects/service_config_property.js
@@ -64,7 +64,7 @@ App.ServiceConfigProperty = Em.Object.extend({
showLabel: true,
error: false,
warn: false,
- overrideErrorTrigger: 0, //Trigger for overrridable property error
+ overrideErrorTrigger: 0, //Trigger for overridable property error
isRestartRequired: false,
restartRequiredMessage: 'Restart required',
index: null, //sequence number in category
@@ -78,7 +78,14 @@ App.ServiceConfigProperty = Em.Object.extend({
* value that is returned from server as recommended
* @type {String}
*/
- recommendedValue: '',
+ recommendedValue: null,
+
+ /**
+ * @type {boolean}
+ */
+ recommendedValueExists: function () {
+ return !Em.isNone(this.get('recommendedValue'));
+ }.property('recommendedValue'),
/**
* Usage example see on <code>App.ServiceConfigRadioButtons.handleDBConnectionProperty()</code>
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index 95824fb..645d1c4 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -1322,6 +1322,17 @@ h1 {
}
}
}
+
+ .config-tabs {
+ margin-bottom: @space-m * 2;
+ }
+
+ .serviceConfigs {
+ .config-tabs {
+ margin-top: -55px;
+ }
+ }
+
}
.running-host-components-table{
@@ -5359,7 +5370,7 @@ input[type="radio"].align-checkbox, input[type="checkbox"].align-checkbox {
margin-top: @space-m;
}
-.mbm { margin-bottom: @space-m * 2; margin-top: -55px; }
+.mbm { margin-bottom: @space-m; }
.mll {
margin-left: @space-l;
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/styles/widgets.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/widgets.less b/ambari-web/app/styles/widgets.less
index c70e888..762cc8d 100644
--- a/ambari-web/app/styles/widgets.less
+++ b/ambari-web/app/styles/widgets.less
@@ -66,7 +66,7 @@
float: right;
display: inline-block;
margin-left: 10px;
- min-height: 50px;
+ min-height: 65px;
min-width: 39px;
.widget-col {
width: 18px;
@@ -79,8 +79,9 @@
}
.widget-action {
text-decoration: none;
- display: block;
+ //display: block;
}
+ .widget-action-set-recommended,
.widget-action-final,
.widget-action-switch-view {
padding-left: 1px;
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/templates/common/configs/service_config.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/configs/service_config.hbs b/ambari-web/app/templates/common/configs/service_config.hbs
index d67c92c..6b31b58 100644
--- a/ambari-web/app/templates/common/configs/service_config.hbs
+++ b/ambari-web/app/templates/common/configs/service_config.hbs
@@ -94,7 +94,7 @@
</div>
{{/unless}}
{{#if view.supportsConfigLayout}}
- <ul class="nav nav-tabs mbm">
+ <ul class="nav nav-tabs mbm config-tabs">
{{#each tab in view.tabs}}
<li {{bindAttr class="tab.isActive:active tab.isHiddenByFilter:disabled" }}>
<a href="#" {{action "setActiveTab" tab target="view"}} {{bindAttr data-target="tab.headingClass"}} data-toggle="tab">
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/templates/common/configs/service_config_category.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/configs/service_config_category.hbs b/ambari-web/app/templates/common/configs/service_config_category.hbs
index e7deefa..b58a644 100644
--- a/ambari-web/app/templates/common/configs/service_config_category.hbs
+++ b/ambari-web/app/templates/common/configs/service_config_category.hbs
@@ -116,6 +116,13 @@
</a>
{{/if}}
{{/unless}}
+ {{#if recommendedValueExists}}
+ <a class="btn btn-small" href="#" data-toggle="tooltip"
+ {{action "setRecommendedValue" this target="view"}}
+ {{translateAttr data-original-title="services.service.config.setRecommendedValue"}}>
+ <i class="icon-arrow-down text-info"></i>
+ </a>
+ {{/if}}
{{/if}}
<span class="help-inline">{{errorMessage}}</span>
<span class="help-inline">{{warnMessage}}</span>
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/templates/common/configs/service_config_wizard.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/configs/service_config_wizard.hbs b/ambari-web/app/templates/common/configs/service_config_wizard.hbs
index d3b74f2..46d0928 100644
--- a/ambari-web/app/templates/common/configs/service_config_wizard.hbs
+++ b/ambari-web/app/templates/common/configs/service_config_wizard.hbs
@@ -49,7 +49,7 @@
{{/if}}
{{#if view.supportsConfigLayout}}
- <ul class="nav nav-tabs mbm">
+ <ul class="nav nav-tabs mbm config-tabs">
{{#each tab in view.tabs}}
<li {{bindAttr class="tab.isActive:active tab.isHiddenByFilter:disabled" }}>
<a href="#" {{action "setActiveTab" tab target="view"}} {{bindAttr data-target="tab.headingClass"}} data-toggle="tab">
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/templates/common/configs/widgets/controls.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/configs/widgets/controls.hbs b/ambari-web/app/templates/common/configs/widgets/controls.hbs
index 9dcfa24..b7541c8 100644
--- a/ambari-web/app/templates/common/configs/widgets/controls.hbs
+++ b/ambari-web/app/templates/common/configs/widgets/controls.hbs
@@ -42,6 +42,12 @@
data-toggle="tooltip" {{translateAttr data-original-title="config.infoMessage.wrong.value.for.widget"}}></i>
{{/if}}
{{/if}}
+ {{#if config.recommendedValueExists}}
+ <a href="#"
+ {{bindAttr class=":icon-repeat :widget-action-set-recommended view.isHover::hide :widget-action"}}
+ {{action "setRecommendedValue" target="view"}} data-toggle="tooltip" {{translateAttr data-original-title="services.service.config.setRecommendedValue"}}>
+ </a>
+ {{/if}}
</div>
<div class="widget-col right">
{{#if view.config.supportsFinal}}
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/views/common/configs/service_config_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/service_config_view.js b/ambari-web/app/views/common/configs/service_config_view.js
index 656c095..0ef0f7a 100644
--- a/ambari-web/app/views/common/configs/service_config_view.js
+++ b/ambari-web/app/views/common/configs/service_config_view.js
@@ -37,6 +37,12 @@ App.ServiceConfigView = Em.View.extend({
}
}.property('controller.name', 'controller.selectedService'),
+ isOnTheServicePage: function () {
+ return this.get('controller.name') === 'mainServiceInfoConfigsController';
+ }.property('controller.name'),
+
+ classNameBindings: ['isOnTheServicePage:serviceConfigs'],
+
/**
* Check for layout config supports.
* @returns {Boolean}
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/views/common/configs/service_configs_by_category_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/service_configs_by_category_view.js b/ambari-web/app/views/common/configs/service_configs_by_category_view.js
index 0ff24bc..85402f0 100644
--- a/ambari-web/app/views/common/configs/service_configs_by_category_view.js
+++ b/ambari-web/app/views/common/configs/service_configs_by_category_view.js
@@ -598,6 +598,16 @@ App.ServiceConfigsByCategoryView = Em.View.extend(App.UserPref, App.ConfigOverri
},
/**
+ * Set config's value to recommended
+ * @param event
+ * @method setRecommendedValue
+ */
+ setRecommendedValue: function (event) {
+ var serviceConfigProperty = event.contexts[0];
+ serviceConfigProperty.set('value', serviceConfigProperty.get('recommendedValue'));
+ },
+
+ /**
* Restores given property's value to be its default value.
* Does not update if there is no default value.
* @method doRestoreDefaultValue
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js b/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
index 21c6563..03d3d3f 100644
--- a/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
@@ -45,7 +45,7 @@ App.CheckboxConfigWidgetView = App.ConfigWidgetView.extend({
configView: App.ServiceConfigCheckbox.extend({
serviceConfigBinding: 'parentView.config',
// @TODO maybe find use case of this method for widget
- focusIn: function() {},
+ focusIn: Em.K,
toggleValue: function() {
this._super();
this.sendRequestRorDependentConfigs(this.get('serviceConfig'));
@@ -59,6 +59,13 @@ App.CheckboxConfigWidgetView = App.ConfigWidgetView.extend({
restoreValue: function () {
this.$('input[type="checkbox"]:eq(0)').checkbox('click');
this._super();
+ },
+
+ /**
+ * @method setRecommendedValue
+ */
+ setRecommendedValue: function () {
+ this.set('config.value', this.get('config.recommendedValue'));
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js b/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
index 4c5fb9c..a9346ab 100644
--- a/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
@@ -120,6 +120,13 @@ App.ComboConfigWidgetView = App.ConfigWidgetView.extend({
},
/**
+ * @method setRecommendedValue
+ */
+ setRecommendedValue: function () {
+ this.setConfigValue({ context: this.get('config.recommendedValue')});
+ },
+
+ /**
* Delegate event from text input in combo widget to trigger dropdown
*/
click: function(event) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/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 43219e6..7de84a3 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
@@ -363,6 +363,11 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
return true;
}
return this.isValueCompatibleWithWidget();
- }.property('config.value', 'showAsTextBox')
+ }.property('config.value', 'showAsTextBox'),
+
+ /**
+ * @method setRecommendedValue
+ */
+ setRecommendedValue: Em.required(Function)
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js b/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
index aa154cf..149f87d 100644
--- a/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
@@ -240,6 +240,14 @@ App.ListConfigWidgetView = App.ConfigWidgetView.extend({
},
/**
+ * @method setRecommendedValue
+ */
+ setRecommendedValue: function () {
+ this.set('config.value', this.get('config.recommendedValue'));
+ this.calculateInitVal();
+ },
+
+ /**
* Just a small checkbox-wrapper with modified click-handler
* Should call <code>parentView.toggleOption</code>
* User may click on the checkbox or on the link which wraps it, but action in both cases should be the same (<code>toggleOption</code>)
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js b/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
index 8154990..0047893 100644
--- a/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
@@ -97,7 +97,7 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
* Default value of config property transformed according widget format
* @returns {Number}
*/
- widgetDefaultValue: function() {
+ widgetDefaultValue: function () {
var parseFunction = this.get('mirrorValueParseFunction');
return parseFunction(this.widgetValueByConfigAttributes(this.get('config.defaultValue')));
}.property('config.defaultValue'),
@@ -106,7 +106,7 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
* Default value of config property transformed according widget format
* @returns {Number}
*/
- widgetRecommendedValue: function() {
+ widgetRecommendedValue: function () {
var parseFunction = this.get('mirrorValueParseFunction');
return parseFunction(this.widgetValueByConfigAttributes(this.get('config.recommendedValue')));
}.property('config.recommendedValue'),
@@ -117,15 +117,15 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
* unit type of widget
* @type {String}
*/
- unitType: function() {
- var widgetUnit = this.get('config.stackConfigProperty.widget.units.length') && this.get('config.stackConfigProperty.widget.units')[0]['unit-name'].toLowerCase();
- var configUnit = this.get('config.stackConfigProperty.valueAttributes.type').toLowerCase();
- if (widgetUnit) {
+ unitType: function () {
+ var widgetUnit = this.get('config.stackConfigProperty.widget.units.length') && this.get('config.stackConfigProperty.widget.units')[0]['unit-name'].toLowerCase();
+ var configUnit = this.get('config.stackConfigProperty.valueAttributes.type').toLowerCase();
+ if (widgetUnit) {
return this.get('units').indexOf(widgetUnit) > this.get('units').indexOf(configUnit) ? 'float' : this.get('config.stackConfigProperty.valueAttributes.type')
- } else {
+ } else {
return 'float';
- }
- }.property('config.stackConfigProperty.widget.units.@each.unit-name'),
+ }
+ }.property('config.stackConfigProperty.widget.units.@each.unit-name'),
/**
* Function used to parse widget mirror value
* For integer - parseInt, for float - parseFloat
@@ -416,6 +416,14 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
},
/**
+ * @method setRecommendedValue
+ */
+ setRecommendedValue: function () {
+ this.setValue(this.get('config.recommendedValue'));
+ this.get('slider').setValue(this.get('mirrorValue'));
+ },
+
+ /**
* Run changeBoundariesOnce only once
* @method changeBoundaries
*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/44bfa35d/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js b/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
index 759eccf..8aec220 100644
--- a/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
+++ b/ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
@@ -160,6 +160,13 @@ App.ToggleConfigWidgetView = App.ConfigWidgetView.extend({
},
/**
+ * @method setRecommendedValue
+ */
+ setRecommendedValue: function () {
+ this.setValue(this.get('config.recommendedValue'));
+ },
+
+ /**
* Enable/disable switcher basing on config isEditable value
* @method toggleWidgetState
*/