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
    */