AMBARI-20425 Empty current and recommended values in "Recommended configs" panel during Add Service. (ababiichuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/592c1a90 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/592c1a90 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/592c1a90 Branch: refs/heads/branch-feature-AMBARI-12556 Commit: 592c1a90c66b621cada4c6f335196dce2121814a Parents: 369057a Author: ababiichuk <ababiic...@hortonworks.com> Authored: Mon Mar 13 18:12:23 2017 +0200 Committer: ababiichuk <ababiic...@hortonworks.com> Committed: Mon Mar 13 19:51:42 2017 +0200 ---------------------------------------------------------------------- ambari-web/app/messages.js | 3 +- ambari-web/app/styles/application.less | 19 ++++++++----- .../views/common/configs/config_diff_view.js | 29 ++++++++++++++++++-- 3 files changed, 40 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/592c1a90/ambari-web/app/messages.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js index 2e80a2b..1a26516 100644 --- a/ambari-web/app/messages.js +++ b/ambari-web/app/messages.js @@ -477,7 +477,8 @@ Em.I18n.translations = { 'popup.dependent.configs.table.currentValue': 'Current Value', 'popup.dependent.configs.table.recommendedValue': 'Recommended Value', 'popup.dependent.configs.table.newValue': 'New Value', - 'popup.dependent.configs.table.not.defined': 'Not Defined', + 'popup.dependent.configs.table.undefined': 'Property undefined', + 'popup.dependent.configs.table.removed': 'Property removed', 'popup.dependent.configs.select.config.group.header': 'Select Config Group', http://git-wip-us.apache.org/repos/asf/ambari/blob/592c1a90/ambari-web/app/styles/application.less ---------------------------------------------------------------------- diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less index 8a15fb1..151e404 100644 --- a/ambari-web/app/styles/application.less +++ b/ambari-web/app/styles/application.less @@ -2293,6 +2293,10 @@ input[type="radio"].align-checkbox, input[type="checkbox"].align-checkbox { @config-dependency-t-group-width: 140px; @config-dependency-t-filename-width: 150px; @config-dependency-t-value-width: 230px; +@diff-background-insert: #eaffea; +@diff-background-delete: #ffecec; +@diff-background-equal: #fff; +@diff-background-empty: #ddd; #config-dependencies { max-height: 500px; @@ -2327,17 +2331,18 @@ input[type="radio"].align-checkbox, input[type="checkbox"].align-checkbox { &.empty { width: 50%; } - &.delete, &.insert, &.replace { - color: #fff; - } &.delete { - background-color: @health-status-red !important; + background-color: @diff-background-delete !important; } &.insert { - background-color: @health-status-green !important; + background-color: @diff-background-insert !important; + } + &.equal, &.not-defined:last-of-type, &.is-removed:first-of-type { + background-color: @diff-background-equal; } - &.replace { - background-color: @health-status-orange !important; + &.not-defined:first-of-type, &.is-removed:last-of-type { + background-color: @diff-background-empty; + font-style: italic; } } } http://git-wip-us.apache.org/repos/asf/ambari/blob/592c1a90/ambari-web/app/views/common/configs/config_diff_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/common/configs/config_diff_view.js b/ambari-web/app/views/common/configs/config_diff_view.js index 135efb7..cbaf2b0 100644 --- a/ambari-web/app/views/common/configs/config_diff_view.js +++ b/ambari-web/app/views/common/configs/config_diff_view.js @@ -29,12 +29,35 @@ App.ConfigDiffView = Em.View.extend({ }).sort().join("\n"); return difflib.stringAsLines(values); }; - var initialValues = trimAndSort(this.get('config.initialValue')); - var recommendedValues = trimAndSort(this.get('config.recommendedValue')); + var initialValues = trimAndSort(this.get('config.initialValue')), + recommendedValues = trimAndSort(this.get('config.recommendedValue')), + opcodes = new difflib.SequenceMatcher(initialValues, recommendedValues).get_opcodes(); + if (initialValues.length === 1 && recommendedValues.length === 1) { + // changes in properties with single-line values shouldn't be highlighted + opcodes[0][0] = 'equal'; + } + if (!initialValues.length) { + if (recommendedValues.length > 1) { + // initial and recommended values should have the same number of rows + initialValues = Array(recommendedValues.length - 1).join('.').split('.'); + } + initialValues.unshift(Em.I18n.t('popup.dependent.configs.table.undefined')); + opcodes[0][0] = 'not-defined'; // class name for cell corresponding to undefined property + opcodes[0][2] = recommendedValues.length; // specifying rows number explicitly to avoid omitting of 'Property undefined' message + } + if (!recommendedValues.length) { + if (initialValues.length > 1) { + // initial and recommended values should have the same number of rows + recommendedValues = Array(initialValues.length - 1).join('.').split('.'); + } + recommendedValues.unshift(Em.I18n.t('popup.dependent.configs.table.removed')); + opcodes[0][0] = 'is-removed'; // class name for cell corresponding to removed property + opcodes[0][4] = initialValues.length; // specifying rows number explicitly to avoid omitting of 'Property removed' message + } return new Handlebars.SafeString(diffview.buildView({ baseTextLines: initialValues, newTextLines: recommendedValues, - opcodes: new difflib.SequenceMatcher(initialValues, recommendedValues).get_opcodes() + opcodes: opcodes }).outerHTML); }.property('config.initialValues', 'config.recommendedValues') });