Fix render of node label filter

Also node label name and value are not trimmed any more

Closes-Bug: #1508084

Change-Id: I95960a168832e5bee57000a8a5357cc4e1cf89d9
This commit is contained in:
Julia Aranovich 2015-11-25 16:40:31 +03:00
parent 0f4dfa4c5d
commit 5fb121c890
1 changed files with 14 additions and 8 deletions

View File

@ -1151,7 +1151,10 @@ function($, _, i18n, Backbone, React, utils, models, dispatcher, controls, dialo
return (
<div
key={'sort_by-' + sorter.name + (sorter.isLabel && '-label')}
className={'sorter-control pull-left sort-by-' + sorter.name + '-' + sorter.order}
className={utils.classNames({
'sorter-control pull-left': true,
['sort-by-' + sorter.name + '-' + sorter.order]: !sorter.isLabel
})}
>
<button className='btn btn-default' onClick={_.partial(this.props.changeSortingOrder, sorter)}>
{sorter.title}
@ -1196,7 +1199,10 @@ function($, _, i18n, Backbone, React, utils, models, dispatcher, controls, dialo
ref: filter.name,
name: filter.name,
values: filter.values,
className: 'filter-control filter-by-' + filter.name,
className: utils.classNames({
'filter-control': true,
['filter-by-' + filter.name]: !filter.isLabel
}),
label: filter.title,
extraContent: this.renderDeleteFilterButton(filter),
onChange: _.partial(this.props.changeFilter, filter),
@ -1337,7 +1343,7 @@ function($, _, i18n, Backbone, React, utils, models, dispatcher, controls, dialo
changeLabelKey: function(index, oldKey, newKey) {
var labels = this.state.labels,
labelData = labels[index];
labelData.key = _.trim(newKey);
labelData.key = newKey;
if (!labelData.indeterminate) labelData.checked = true;
labelData.error = this.validateLabelKey(labelData, index);
this.setState({labels: labels});
@ -1353,7 +1359,7 @@ function($, _, i18n, Backbone, React, utils, models, dispatcher, controls, dialo
changeLabelValue: function(index, key, value) {
var labels = this.state.labels,
labelData = labels[index];
labelData.values = [_.trim(value) || null];
labelData.values = [value || null];
if (!labelData.indeterminate) labelData.checked = true;
labelData.error = this.validateLabelKey(labelData, index);
this.setState({labels: labels});
@ -1361,12 +1367,12 @@ function($, _, i18n, Backbone, React, utils, models, dispatcher, controls, dialo
validateLabelKey: function(labelData, labelIndex) {
if (labelData.checked || labelData.indeterminate) {
var ns = 'cluster_page.nodes_tab.node_management_panel.labels.';
if (!labelData.key) {
if (!_.trim(labelData.key)) {
return i18n(ns + 'empty_label_key');
}
if (_.any(this.state.labels, function(data, index) {
if (index == labelIndex) return false;
return data.key == labelData.key && (data.checked || data.indeterminate);
return _.trim(data.key) == _.trim(labelData.key) && (data.checked || data.indeterminate);
})) {
return i18n(ns + 'existing_label');
}
@ -1472,7 +1478,7 @@ function($, _, i18n, Backbone, React, utils, models, dispatcher, controls, dialo
/>
<controls.Input
type='text'
maxLength={100}
maxLength='100'
label={showControlLabels && i18n(ns + 'label_key')}
value={labelData.key}
onChange={_.partial(this.changeLabelKey, index)}
@ -1482,7 +1488,7 @@ function($, _, i18n, Backbone, React, utils, models, dispatcher, controls, dialo
/>
<controls.Input {...labelValueProps}
type='text'
maxLength={100}
maxLength='100'
label={showControlLabels && i18n(ns + 'label_value')}
onChange={_.partial(this.changeLabelValue, index)}
/>