Repository: ambari
Updated Branches:
  refs/heads/trunk b20dbb7fa -> 1f1742b1d


AMBARI-11484. Configs: when doing override, it's hard to find config override 
(onechiporenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1f1742b1
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1f1742b1
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1f1742b1

Branch: refs/heads/trunk
Commit: 1f1742b1d7f2eb4f4e5bfd1b64c565fcdcf18553
Parents: b20dbb7
Author: Oleg Nechiporenko <onechipore...@apache.org>
Authored: Thu May 28 17:33:14 2015 +0300
Committer: Oleg Nechiporenko <onechipore...@apache.org>
Committed: Thu May 28 17:33:14 2015 +0300

----------------------------------------------------------------------
 ambari-web/app/styles/widgets.less              | 20 ++++++++++++
 .../configs/widgets/config_widget_view.js       |  2 +-
 .../widgets/slider_config_widget_view.js        | 34 ++++++++++++++++----
 3 files changed, 48 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/1f1742b1/ambari-web/app/styles/widgets.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/widgets.less 
b/ambari-web/app/styles/widgets.less
index efaf7b7..897c6e5 100644
--- a/ambari-web/app/styles/widgets.less
+++ b/ambari-web/app/styles/widgets.less
@@ -20,6 +20,8 @@
 @undo-btn-margin: 10px;
 @controls-min-width: 55px;
 @combo-widget-width: 100px;
+@overriden-property-bg-color: rgba(211, 237, 247, 0.39);
+@overriden-property-widget-padding: 8px;
 @green: #6ebd45;
 @slider-light-grey: #e6e6e6;
 @slider-dark-grey: #aaaaaa;
@@ -113,6 +115,24 @@
     margin-right: 0;
     padding-left: 20px;
   }
+  // background hack instead of increasing padding,
+  // because we have lack of space for widget container.
+  &.overridden-property {
+    background-color: @overriden-property-bg-color;
+    position: relative;
+    &:before {
+      height: 100%;
+      width: @overriden-property-widget-padding;
+      content: '';
+      position: absolute;
+      top: 0;
+      display: block;
+      background-color: @overriden-property-bg-color;
+    }
+    &:before {
+      left: -@overriden-property-widget-padding;
+    }
+  }
 }
 
 .directory-textarea-wrapper {

http://git-wip-us.apache.org/repos/asf/ambari/blob/1f1742b1/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 92dc8c1..5d1dcab 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
@@ -117,7 +117,7 @@ App.ConfigWidgetView = 
Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
    */
   isComparisonBinding: 'config.isComparison',
 
-  classNameBindings:['isComparison:compare-mode'],
+  classNameBindings:['isComparison:compare-mode', 
'config.overrides.length:overridden-property'],
 
   issueMessage: '',
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/1f1742b1/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 d8434b5..7732026 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
@@ -27,6 +27,8 @@ var validator = require('utils/validator');
  */
 App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
 
+  classNames: ['widget-config'],
+
   templateName: 
require('templates/common/configs/widgets/slider_config_widget'),
 
   supportSwitchToCheckBox: true,
@@ -274,7 +276,7 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
       config = this.get('config'),
       valueAttributes = config.get('stackConfigProperty.valueAttributes'),
       parseFunction = this.get('parseFunction'),
-      ticks = [this.get('minMirrorValue')],
+      ticks = [this.valueForTick(this.get('minMirrorValue'), true)],
       ticksLabels = [],
       recommendedValue = 
this.valueForTick(+this.get('widgetRecommendedValue')),
       range = this.get('maxMirrorValue') - this.get('minMirrorValue'),
@@ -287,15 +289,24 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
     for (var i = 1; i <= 3; i++) {
       var val = this.get('minMirrorValue') + range * (i / (isSmallInt ? 3 : 
4));
       // if value's type is float, ticks may be float too
-      ticks.push(this.valueForTick(val));
+      ticks.push(this.valueForTick(val, false));
     }
 
-    ticks.push(this.get('maxMirrorValue'));
+    ticks.push(this.valueForTick(this.get('maxMirrorValue'), false));
     ticks = ticks.uniq();
     ticks.forEach(function (tick, index, items) {
       ticksLabels.push((items.length < 5 || index % 2 === 0 || items.length - 
1 == index) ? tick + ' ' + self.get('unitLabel') : '');
     });
 
+    if(!isSmallInt) {
+      ticks.push(this.get('maxMirrorValue'));
+    }
+    var ticksLength = ticks.length;
+    ticks = ticks.uniq();
+    if (ticksLength === ticks.length) {
+      ticksLabels.insertAt(1, '');
+    }
+
     // default marker should be added only if recommendedValue is in range 
[min, max]
     if (recommendedValue <= this.get('maxMirrorValue') && recommendedValue >= 
this.get('minMirrorValue') && recommendedValue != '') {
       // process additional tick for default value if it not defined in 
previous computation
@@ -322,7 +333,8 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
         ticks.insertAt(recommendedValueMirroredId, 
this.valueForTick((ticks[recommendedValueMirroredId] + 
ticks[recommendedValueMirroredId - 1]) / 2));
         // get new index for default value
         recommendedValueId = ticks.indexOf(recommendedValue);
-      } else {
+      }
+      else {
         recommendedValueId = ticks.indexOf(recommendedValue);
       }
     }
@@ -331,7 +343,7 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
      * Slider some times change config value while being created,
      * this may happens when slider recreating couple times during small 
period.
      * To cover this situation need to reset config value after slider 
initializing
-     * @type {Sting}
+     * @type {String}
      */
     var correctConfigValue = this.get('config.value');
 
@@ -394,11 +406,19 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
    *
    * @method valueForTick
    * @param {Number} val
+   * @param {Boolean} [toGreater]
    * @private
    * @returns {Number}
    */
-  valueForTick: function(val) {
-    return this.get('unitType') === 'int' ? Math.round(val) : 
parseFloat(val.toFixed(3));
+  valueForTick: function(val, toGreater) {
+    toGreater = toGreater || false;
+    var func = toGreater ? Math.round : Math.floor;
+    if (this.get('unitType') === 'int') {
+      return func(val);
+    }
+    var mirrorStep = this.get('mirrorStep');
+    var r = func(val / mirrorStep);
+    return parseFloat((r * mirrorStep).toFixed(3));
   },
 
   /**

Reply via email to