Update source for tag values

pull/10616/head
Andrew Watkins 2017-10-04 15:44:13 -07:00
parent 97ee2e3047
commit d76b1d0b0e
2 changed files with 27 additions and 8 deletions

View File

@ -8,6 +8,7 @@ import showTagKeysParser from 'shared/parsing/showTagKeys'
import showTagValuesParser from 'shared/parsing/showTagValues'
const {string, shape, func, bool} = PropTypes
const TagList = React.createClass({
propTypes: {
query: shape({
@ -18,16 +19,27 @@ const TagList = React.createClass({
}).isRequired,
onChooseTag: func.isRequired,
onGroupByTag: func.isRequired,
querySource: shape({
links: shape({
proxy: string.isRequired,
}).isRequired,
}),
},
contextTypes: {
source: PropTypes.shape({
links: PropTypes.shape({
proxy: PropTypes.string.isRequired,
source: shape({
links: shape({
proxy: string.isRequired,
}).isRequired,
}).isRequired,
},
getDefaultProps() {
return {
querySource: null,
}
},
getInitialState() {
return {
tags: {},
@ -37,9 +49,12 @@ const TagList = React.createClass({
_getTags() {
const {database, measurement, retentionPolicy} = this.props.query
const {source} = this.context
const sourceProxy = source.links.proxy
const {querySource} = this.props
showTagKeys({source: sourceProxy, database, retentionPolicy, measurement})
const proxy =
_.get(querySource, ['links', 'proxy'], null) || source.links.proxy
showTagKeys({source: proxy, database, retentionPolicy, measurement})
.then(resp => {
const {errors, tagKeys} = showTagKeysParser(resp.data)
if (errors.length) {
@ -47,7 +62,7 @@ const TagList = React.createClass({
}
return showTagValues({
source: sourceProxy,
source: proxy,
database,
retentionPolicy,
measurement,
@ -74,7 +89,9 @@ const TagList = React.createClass({
},
componentDidUpdate(prevProps) {
const {database, measurement, retentionPolicy} = this.props.query
const {query, querySource} = this.props
const {database, measurement, retentionPolicy} = query
const {
database: prevDB,
measurement: prevMeas,
@ -87,7 +104,8 @@ const TagList = React.createClass({
if (
database === prevDB &&
measurement === prevMeas &&
retentionPolicy === prevRP
retentionPolicy === prevRP &&
_.isEqual(prevProps.querySource, querySource)
) {
return
}

View File

@ -182,6 +182,7 @@ const MeasurementList = React.createClass({
{isActive
? <TagList
query={this.props.query}
querySource={this.props.querySource}
onChooseTag={this.props.onChooseTag}
onGroupByTag={this.props.onGroupByTag}
/>