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 <[email protected]> Authored: Wed May 6 13:03:38 2015 -0700 Committer: Srimanth Gunturi <[email protected]> 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('[email protected]'), + } + }.property('[email protected]'), /** * 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 */
