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 2015/04/24 13:16:30 UTC
ambari git commit: AMBARI-10724. Filter "Show property warnings"
doesn't affect Enhanced Configs (onechiporenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 3e30ca267 -> 27266f57d
AMBARI-10724. Filter "Show property warnings" doesn't affect Enhanced Configs (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/27266f57
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/27266f57
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/27266f57
Branch: refs/heads/trunk
Commit: 27266f57d6462730e49b7725d860558bba2d38a0
Parents: 3e30ca2
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Fri Apr 24 14:14:49 2015 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Fri Apr 24 14:14:49 2015 +0300
----------------------------------------------------------------------
.../widgets/slider_config_widget_view.js | 41 ++++++++----
.../widgets/time_interval_spinner_view.js | 8 ++-
.../widgets/slider_config_widget_view_test.js | 6 ++
.../widgets/time_interval_spinner_view_test.js | 68 +++++++++++++++++++-
4 files changed, 108 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/27266f57/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 408f199..016e7a6 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
@@ -55,6 +55,12 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
unitLabel: '',
/**
+ * List of widget's properties which <code>changeBoundaries</code>-method should observe
+ * @type {string[]}
+ */
+ changeBoundariesProperties: ['maxMirrorValue', 'widgetRecommendedValue','minMirrorValue', 'mirrorStep'],
+
+ /**
* max allowed value transformed form config unit to widget unit
* @type {Number}
*/
@@ -169,17 +175,17 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
this.initSlider();
this.toggleWidgetState();
this.initPopover();
- this.addObserver('maxMirrorValue', this, this.changeBoundaries);
- this.addObserver('widgetRecommendedValue', this, this.changeBoundaries);
- this.addObserver('minMirrorValue', this, this.changeBoundaries);
- this.addObserver('mirrorStep', this, this.changeBoundaries);
+ var self = this;
+ this.get('changeBoundariesProperties').forEach(function(property) {
+ self.addObserver(property, self, self.changeBoundaries);
+ });
},
willDestroyElement: function() {
- this.removeObserver('maxMirrorValue', this, this.changeBoundaries);
- this.removeObserver('widgetRecommendedValue', this, this.changeBoundaries);
- this.removeObserver('minMirrorValue', this, this.changeBoundaries);
- this.removeObserver('mirrorStep', this, this.changeBoundaries);
+ var self = this;
+ this.get('changeBoundariesProperties').forEach(function(property) {
+ self.removeObserver(property, self, self.changeBoundaries);
+ });
},
/**
@@ -198,15 +204,24 @@ App.SliderConfigWidgetView = App.ConfigWidgetView.extend({
var parsed = parseFunction(mirrorValue);
if (parsed > max) {
this.set('isMirrorValueValid', false);
- this.set('config.warnMessage', Em.I18n.t('config.warnMessage.outOfBoundaries.greater').format(max));
+ this.get('config').setProperties({
+ warnMessage: Em.I18n.t('config.warnMessage.outOfBoundaries.greater').format(max),
+ warn: true
+ });
} else if (parsed < min) {
this.set('isMirrorValueValid', false);
- this.set('config.warnMessage', Em.I18n.t('config.warnMessage.outOfBoundaries.less').format(min));
+ this.get('config').setProperties({
+ warnMessage: Em.I18n.t('config.warnMessage.outOfBoundaries.less').format(min),
+ warn: true
+ });
} else {
this.set('isMirrorValueValid', true);
- this.set('config.warnMessage', '');
- this.set('config.errorMessage', '');
- this.set('config.value', '' + this.configValueByWidget(parsed));
+ this.get('config').setProperties({
+ warnMessage: '',
+ errorMessage: '',
+ value: '' + this.configValueByWidget(parsed),
+ warn: false
+ });
if (slider) {
slider.setValue(parsed);
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/27266f57/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js b/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
index d4340a7..fac0149 100644
--- a/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
+++ b/ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
@@ -175,17 +175,23 @@ App.TimeIntervalSpinnerView = App.ConfigWidgetView.extend({
checkErrors: function() {
var convertedValue = this.configValueByWidget(this.get('content'));
var warnMessage = '';
+ var warn = false;
if (convertedValue < parseInt(this.get('config.stackConfigProperty.valueAttributes.minimum'))) {
warnMessage = Em.I18n.t('config.warnMessage.outOfBoundaries.less').format(this.dateToText(this.get('minValue')));
+ warn = true;
}
else if (convertedValue > parseInt(this.get('config.stackConfigProperty.valueAttributes.maximum'))) {
warnMessage = Em.I18n.t('config.warnMessage.outOfBoundaries.greater').format(this.dateToText(this.get('maxValue')));
+ warn = true;
}
this.setProperties({
isValid: !warnMessage,
warnMessage: warnMessage
});
- this.set('config.warnMessage', warnMessage);
+ this.get('config').setProperties({
+ warnMessage: warnMessage,
+ warn: warn
+ });
},
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/27266f57/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 a1096d6..40874bc 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
@@ -141,12 +141,14 @@ describe('App.SliderConfigWidgetView', function () {
expect(viewInt.get('config.value')).to.equal('1000');
expect(viewInt.get('config.errorMessage')).to.equal('');
expect(viewInt.get('config.warnMessage')).to.equal('');
+ expect(viewInt.get('config.warn')).to.be.false;
viewInt.set('mirrorValue', 100500);
expect(viewInt.get('isMirrorValueValid')).to.be.false;
expect(viewInt.get('config.value')).to.equal('1000');
expect(viewInt.get('config.errorMessage')).to.equal('');
expect(viewInt.get('config.warnMessage')).to.have.property('length').that.is.least(1);
+ expect(viewInt.get('config.warn')).to.be.true;
});
it('check float', function () {
@@ -155,12 +157,14 @@ describe('App.SliderConfigWidgetView', function () {
expect(viewFloat.get('config.value')).to.equal('55.5');
expect(viewFloat.get('config.errorMessage')).to.equal('');
expect(viewFloat.get('config.warnMessage')).to.equal('');
+ expect(viewFloat.get('config.warn')).to.be.false;
viewFloat.set('mirrorValue', 100500.5);
expect(viewFloat.get('isMirrorValueValid')).to.be.false;
expect(viewFloat.get('config.value')).to.equal('55.5');
expect(viewFloat.get('config.errorMessage')).to.equal('');
expect(viewFloat.get('config.warnMessage')).to.have.property('length').that.is.least(1);
+ expect(viewFloat.get('config.warn')).to.be.true;
});
it('check percent', function () {
@@ -169,12 +173,14 @@ describe('App.SliderConfigWidgetView', function () {
expect(viewPercent.get('config.value')).to.equal('0.32');
expect(viewPercent.get('config.errorMessage')).to.equal('');
expect(viewPercent.get('config.warnMessage')).to.equal('');
+ expect(viewPercent.get('config.warn')).to.be.false;
viewPercent.set('mirrorValue', 100500.5);
expect(viewPercent.get('isMirrorValueValid')).to.be.false;
expect(viewPercent.get('config.value')).to.equal('0.32');
expect(viewPercent.get('config.errorMessage')).to.equal('');
expect(viewPercent.get('config.warnMessage')).to.have.property('length').that.is.least(1);
+ expect(viewPercent.get('config.warn')).to.be.true;
});
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/27266f57/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 c3c9522..dc3c6dd 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
@@ -27,7 +27,7 @@ describe('App.TimeIntervalSpinnerView', function () {
removeCurrentFromDependentList: Em.K
}),
initPopover: Em.K,
- checkErrors: Em.K
+ setProperties: Em.K
});
});
@@ -178,4 +178,70 @@ describe('App.TimeIntervalSpinnerView', function () {
});
+ describe('#checkErrors', function () {
+
+ Em.A([
+ {
+ config: Em.Object.create({
+ value: "540",
+ stackConfigProperty: Em.Object.create({
+ widget: {
+ units: [
+ { unit: "hours,minutes" }
+ ]
+ },
+ valueAttributes: {type: "int", maximum: "86400", minimum: "600", unit: "seconds"}
+ })
+ }),
+ e: {
+ warnMessage: Em.I18n.t('config.warnMessage.outOfBoundaries.less').format("10 Minutes"),
+ warn: true
+ }
+ },
+ {
+ config: Em.Object.create({
+ value: "86460",
+ stackConfigProperty: Em.Object.create({
+ widget: {
+ units: [
+ { unit: "hours,minutes" }
+ ]
+ },
+ valueAttributes: {type: "int", maximum: "86400", minimum: "600", unit: "seconds"}
+ })
+ }),
+ e: {
+ warnMessage: Em.I18n.t('config.warnMessage.outOfBoundaries.greater').format("24 Hours"),
+ warn: true
+ }
+ },
+ {
+ config: Em.Object.create({
+ value: "12000",
+ stackConfigProperty: Em.Object.create({
+ widget: {
+ units: [
+ { unit: "hours,minutes" }
+ ]
+ },
+ valueAttributes: {type: "int", maximum: "86400", minimum: "600", unit: "seconds"}
+ })
+ }),
+ e: {
+ warnMessage:'',
+ warn: false
+ }
+ }
+ ]).forEach(function (test) {
+ it('', function () {
+ view.set('config', test.config);
+ view.prepareContent();
+ view.checkErrors();
+ expect(view.get('config.warnMessage')).to.equal(test.e.warnMessage);
+ expect(view.get('config.warn')).to.equal(test.e.warn);
+ });
+ });
+
+ });
+
});
\ No newline at end of file