AMBARI-10839 Move error/warning decorator from actions area to beside config-name. (ababiichuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/705a0fb6 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/705a0fb6 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/705a0fb6 Branch: refs/heads/trunk Commit: 705a0fb6f466e1b7f82def4039b814fb736c9511 Parents: 6cfff21 Author: aBabiichuk <ababiic...@hortonworks.com> Authored: Wed Apr 29 19:34:46 2015 +0300 Committer: aBabiichuk <ababiic...@hortonworks.com> Committed: Wed Apr 29 19:59:21 2015 +0300 ---------------------------------------------------------------------- .../service/configs/widget_popover_support.js | 2 - ambari-web/app/styles/widgets.less | 15 +++--- ambari-web/app/templates.js | 1 + .../configs/widgets/checkbox_config_widget.hbs | 5 +- .../configs/widgets/combo_config_widget.hbs | 5 +- .../common/configs/widgets/config_label.hbs | 25 +++++++++ .../common/configs/widgets/controls.hbs | 13 +++-- .../configs/widgets/directory_config_widget.hbs | 7 +-- .../configs/widgets/list_config_widget.hbs | 5 +- .../configs/widgets/radio_button_config.hbs | 7 +-- .../configs/widgets/slider_config_widget.hbs | 5 +- .../configs/widgets/textfield_config_widget.hbs | 5 +- .../configs/widgets/time_interval_spinner.hbs | 5 +- .../configs/widgets/toggle_config_widget.hbs | 5 +- .../configs/widgets/config_widget_view.js | 56 +++++++++++++++++--- .../widgets/directory_config_widget_view.js | 2 + 16 files changed, 106 insertions(+), 57 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/mixins/main/service/configs/widget_popover_support.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/main/service/configs/widget_popover_support.js b/ambari-web/app/mixins/main/service/configs/widget_popover_support.js index c8dc1ed..98b6f50 100644 --- a/ambari-web/app/mixins/main/service/configs/widget_popover_support.js +++ b/ambari-web/app/mixins/main/service/configs/widget_popover_support.js @@ -48,8 +48,6 @@ App.WidgetPopoverSupport = Em.Mixin.create({ initPopover: function () { if (this.get('isPopoverEnabled') !== false) { - if (this.get('config.name') == 'keyserver_port') - console.error(this.get('popoverPlacement')); var leftPopoverTemplate = '<div class="popover config-widget-left-popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'; App.popover(this.$('.original-widget'), { template: this.get('popoverPlacement') == 'left'? leftPopoverTemplate : undefined, http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/styles/widgets.less ---------------------------------------------------------------------- diff --git a/ambari-web/app/styles/widgets.less b/ambari-web/app/styles/widgets.less index b4dc883..76e4c0a 100644 --- a/ambari-web/app/styles/widgets.less +++ b/ambari-web/app/styles/widgets.less @@ -52,6 +52,11 @@ &.text-success { color: @green; } + .icon-warning-sign { + &.warning { + color: @health-status-yellow + } + } } .action-button { margin-right: @undo-btn-margin; @@ -75,18 +80,14 @@ text-decoration: none; display: block; } - .widget-action-final { + .widget-action-final, + .widget-action-switch-view { padding-left: 1px; color: @widget-config-override-action-color; &.active { color: @widget-config-override-action-active-color; } } - .icon-warning-sign { - &.warning { - color: @health-status-yellow - } - } } } @@ -130,6 +131,7 @@ line-height: 14px; min-width: 30px; z-index: 1; + visibility: inherit; &.tooltip-min, &.tooltip-max { display: none; @@ -217,6 +219,7 @@ .ui-slider-wrapper { .ui-slider-wrapper-inner { width: 68%; + padding-left: 10px; .slider.slider-horizontal { width: 100%; } http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates.js b/ambari-web/app/templates.js index af5a2c0..b181cc2 100644 --- a/ambari-web/app/templates.js +++ b/ambari-web/app/templates.js @@ -26,3 +26,4 @@ require("templates/main/service/widgets/create/step2_number"); require("templates/main/service/widgets/create/step2_template"); require("templates/main/service/widgets/create/step2_graph"); require('templates/common/configs/widgets/controls'); +require('templates/common/configs/widgets/config_label'); http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/checkbox_config_widget.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/checkbox_config_widget.hbs b/ambari-web/app/templates/common/configs/widgets/checkbox_config_widget.hbs index 25cf3fc..a420cd6 100644 --- a/ambari-web/app/templates/common/configs/widgets/checkbox_config_widget.hbs +++ b/ambari-web/app/templates/common/configs/widgets/checkbox_config_widget.hbs @@ -19,7 +19,10 @@ <label> {{view view.configView class="pull-left"}} {{#if view.isOriginalSCP}} - <span class="widget-config-label">{{view.configLabel}}</span> + <span {{bindAttr class=":widget-config-label view.configLabelClass"}}> + {{view view.issueView configBinding="view.config"}} + {{view.configLabel}} + </span> {{else}} <span class="widget-config-label text-success">{{t common.override}}</span> {{/if}} http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/combo_config_widget.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/combo_config_widget.hbs b/ambari-web/app/templates/common/configs/widgets/combo_config_widget.hbs index 10e215a..101a3c8 100644 --- a/ambari-web/app/templates/common/configs/widgets/combo_config_widget.hbs +++ b/ambari-web/app/templates/common/configs/widgets/combo_config_widget.hbs @@ -15,10 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. }} -{{#if view.isOriginalSCP}} - <div class="clearfix"></div> - <p class="widget-config-label">{{view.configLabel}}</p> -{{/if}} +{{template "templates/common/configs/widgets/config_label"}} <div {{bindAttr class=":pull-left view.isOriginalSCP:original-widget view.disabled:disabled view.showAsTextBox:hide"}}> <div class="input-append"> <div class="dropdown btn-group"> http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/config_label.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/config_label.hbs b/ambari-web/app/templates/common/configs/widgets/config_label.hbs new file mode 100644 index 0000000..6ff2952 --- /dev/null +++ b/ambari-web/app/templates/common/configs/widgets/config_label.hbs @@ -0,0 +1,25 @@ +{{! +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +}} + +{{#if view.isOriginalSCP}} + <div class="clearfix"></div> + <p {{bindAttr class=":widget-config-label view.configLabelClass"}}> + {{view view.issueView configBinding="view.config"}} + {{formatWordBreak view.configLabel}} + </p> +{{/if}} http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/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 7cac2e9..268ab26 100644 --- a/ambari-web/app/templates/common/configs/widgets/controls.hbs +++ b/ambari-web/app/templates/common/configs/widgets/controls.hbs @@ -24,13 +24,6 @@ {{/if}} <div class="widget-config-controls"> <div class="widget-col left"> - {{#if view.supportSwitchToCheckBox}} - <a href="#" - {{bindAttr class=":icon-pencil view.isHover::hide"}} - {{action "toggleWidgetView" target="view"}}> - </a> - {{/if}} - {{view view.issueView configBinding="view.config"}} {{#if view.config.isNotDefaultValue}} {{#if view.undoAllowed}} <a class="widget-action widget-action-undo" href="#" {{action "restoreValue" target="view"}}> @@ -38,6 +31,12 @@ </a> {{/if}} {{/if}} + {{#if view.supportSwitchToCheckBox}} + <a href="#" + {{bindAttr class=":icon-pencil :widget-action :widget-action-switch-view view.isHover::hide view.showAsTextBox::active"}} + {{action "toggleWidgetView" target="view"}}> + </a> + {{/if}} </div> <div class="widget-col right"> {{#if view.config.supportsFinal}} http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/directory_config_widget.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/directory_config_widget.hbs b/ambari-web/app/templates/common/configs/widgets/directory_config_widget.hbs index d8d1483..8799273 100644 --- a/ambari-web/app/templates/common/configs/widgets/directory_config_widget.hbs +++ b/ambari-web/app/templates/common/configs/widgets/directory_config_widget.hbs @@ -16,11 +16,8 @@ * limitations under the License. }} -<div class="span10"> - {{#if view.isOriginalSCP}} - <div class="clearfix"></div> - <span class="widget-config-label">{{view.config.displayName}}</span> - {{/if}} +<div {{bindAttr class="view.isOriginalSCP:original-widget"}}> + {{template "templates/common/configs/widgets/config_label"}} <div class="directory-textarea-wrapper"> {{view view.configView}} </div> http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/list_config_widget.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/list_config_widget.hbs b/ambari-web/app/templates/common/configs/widgets/list_config_widget.hbs index 13e2ce7..5b0cb05 100644 --- a/ambari-web/app/templates/common/configs/widgets/list_config_widget.hbs +++ b/ambari-web/app/templates/common/configs/widgets/list_config_widget.hbs @@ -17,10 +17,7 @@ }} <div {{bindAttr class="view.config.isHiddenByFilter:hide view.isOriginalSCP:original-widget :widget-config :list-widget"}}> - {{#if view.isOriginalSCP}} - <div class="clearfix"></div> - <p class="widget-config-label">{{view.configLabel}}</p> - {{/if}} + {{template "templates/common/configs/widgets/config_label"}} <div class="pull-left btn-group"> <a {{bindAttr class=":btn :dropdown-toggle view.config.isEditable::disabled view.showAsTextBox:hide"}} data-toggle="dropdown">{{view.displayVal}} <span class="caret"></span></a> <ul class="dropdown-menu"> http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/radio_button_config.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/radio_button_config.hbs b/ambari-web/app/templates/common/configs/widgets/radio_button_config.hbs index 995a31a..9fb4cf9 100644 --- a/ambari-web/app/templates/common/configs/widgets/radio_button_config.hbs +++ b/ambari-web/app/templates/common/configs/widgets/radio_button_config.hbs @@ -16,12 +16,7 @@ * limitations under the License. }} -{{#if view.isOriginalSCP}} - <div class="clearfix"></div> - <p class="widget-config-label"> - {{view.configLabel}} - </p> -{{/if}} +{{template "templates/common/configs/widgets/config_label"}} <div class="pull-left"> {{#each item in view.content}} <label> http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/slider_config_widget.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/slider_config_widget.hbs b/ambari-web/app/templates/common/configs/widgets/slider_config_widget.hbs index beebc0d..a1892de 100644 --- a/ambari-web/app/templates/common/configs/widgets/slider_config_widget.hbs +++ b/ambari-web/app/templates/common/configs/widgets/slider_config_widget.hbs @@ -17,10 +17,7 @@ }} <div class="widget-config slider-widget"> - {{#if view.isOriginalSCP}} - <div class="clearfix"></div> - <p class="widget-config-label">{{formatWordBreak view.configLabel}}</p> - {{/if}} + {{template "templates/common/configs/widgets/config_label"}} <div {{bindAttr class="view.isOriginalSCP:original-widget view.showAsTextBox:hide :ui-slider-wrapper"}}> <div {{bindAttr class=":pull-left :ui-slider-wrapper-inner"}}>{{view Ember.TextField valueBinding="view.config.value" class="input-mini slider-input"}}</div> </div> http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/textfield_config_widget.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/textfield_config_widget.hbs b/ambari-web/app/templates/common/configs/widgets/textfield_config_widget.hbs index 7175902..bc23838 100644 --- a/ambari-web/app/templates/common/configs/widgets/textfield_config_widget.hbs +++ b/ambari-web/app/templates/common/configs/widgets/textfield_config_widget.hbs @@ -17,10 +17,7 @@ }} <div> - {{#if view.isOriginalSCP}} - <div class="clearfix"></div> - <p class="widget-config-label">{{formatWordBreak view.configLabel}}</p> - {{/if}} + {{template "templates/common/configs/widgets/config_label"}} <div {{bindAttr class=":text-field-wrapper view.isOriginalSCP:original-widget"}}> {{view view.configView}} </div> http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/time_interval_spinner.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/time_interval_spinner.hbs b/ambari-web/app/templates/common/configs/widgets/time_interval_spinner.hbs index 3274b23..b03a5c7 100644 --- a/ambari-web/app/templates/common/configs/widgets/time_interval_spinner.hbs +++ b/ambari-web/app/templates/common/configs/widgets/time_interval_spinner.hbs @@ -16,10 +16,7 @@ * limitations under the License. }} -{{#if view.isOriginalSCP}} - <div class="clearfix"></div> - <p class="widget-config-label">{{view.configLabel}}</p> -{{/if}} +{{template "templates/common/configs/widgets/config_label"}} <div {{bindAttr class=":pull-left view.isOriginalSCP:original-widget view.showAsTextBox:hide"}}> {{#each spinnerContent in view.content}} {{view App.SpinnerInputView contentBinding="spinnerContent" disabledBinding="view.disabled"}} http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/templates/common/configs/widgets/toggle_config_widget.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/common/configs/widgets/toggle_config_widget.hbs b/ambari-web/app/templates/common/configs/widgets/toggle_config_widget.hbs index 70c300f..d2cb97f 100644 --- a/ambari-web/app/templates/common/configs/widgets/toggle_config_widget.hbs +++ b/ambari-web/app/templates/common/configs/widgets/toggle_config_widget.hbs @@ -16,10 +16,7 @@ * limitations under the License. }} -{{#if view.isOriginalSCP}} - <div class="clearfix"></div> - <p class="widget-config-label">{{view.configLabel}}</p> -{{/if}} +{{template "templates/common/configs/widgets/config_label"}} <div {{bindAttr class=":pull-left view.isOriginalSCP:original-widget"}}> {{view Ember.Checkbox checkedBinding="view.switcherValue"}} </div> http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/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 6b7dda4..bfa64a2 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 @@ -51,6 +51,12 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo canEdit: true, /** + * Config label class attribute. Displays validation status of config. + * @type {string} + */ + configLabelClass: '', + + /** * Tab where current widget placed * Bound in the template * @type {App.Tab} @@ -110,17 +116,55 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo config: null, + issueIconClass: '', + + issueMessage: false, + didInsertElement: function() { App.tooltip($(this.get('element'))); + this.errorLevelObserver(); + this.addObserver('issuedConfig.warnMessage', this, this.errorLevelObserver); + this.addObserver('issuedConfig.errorMessage', this, this.errorLevelObserver); + }, + + willDestroyElement: function() { + this.removeObserver('issuedConfig.warnMessage', this, this.errorLevelObserver); + this.removeObserver('issuedConfig.errorMessage', this, this.errorLevelObserver); + }, + + errorLevelObserver: function() { + var messageLevel = this.get('issuedConfig.errorMessage') ? 'ERROR': this.get('issuedConfig.warnMessage') ? 'WARN' : 'NONE'; + var issue = { + ERROR: { + iconClass: '', + message: this.get('issuedConfig.errorMessage'), + configLabelClass: 'text-error' + }, + WARN: { + iconClass: 'warning', + message: this.get('issuedConfig.warnMessage'), + configLabelClass: 'text-warning' + }, + NONE: { + iconClass: 'hide', + message: false, + configLabelClass: '' + } + }[messageLevel]; + this.set('parentView.configLabelClass', issue.configLabelClass); + this.set('issueIconClass', issue.iconClass); + this.set('issueMessage', issue.message); }, - issueIconClass: function() { - return this.get('config.errorMessage') ? '': this.get('config.warnMessage') ? 'warning' : 'not-show'; - }.property('config.warnMessage', 'config.errorMessage'), + issuedConfig: function() { + var config = this.get('config'); + // check editable overrides + if (!config.get('isEditable') && config.get('overrides.length') && config.get('overrides').someProperty('isEditable', true)) { + config = config.get('overrides').findProperty('isEditable', true); + } + return config; + }.property('config.isEditable', 'config.overrides.length') - issueMessage: function() { - return this.get('config.errorMessage') || this.get('config.warnMessage'); - }.property('config.warnMessage', 'config.errorMessage') }), /** http://git-wip-us.apache.org/repos/asf/ambari/blob/705a0fb6/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js b/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js index 8a39d51..be589b0 100644 --- a/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js +++ b/ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js @@ -31,12 +31,14 @@ App.DirectoryConfigWidgetView = App.ConfigWidgetView.extend({ * @property configView */ configView: App.ServiceConfigTextArea.extend({ + isPopoverEnabled: 'false', widthClass: 'span12', serviceConfigBinding: 'parentView.config', popoverPlacement: 'top' }), didInsertElement: function() { + this.initPopover(); this.set('config.displayType', this.get('config.stackConfigProperty.widget.type')); }