Sync URL query upon saving temp vars in manager

Co-authored-by: Deniz Kusefoglu <denizk@gmail.com>
Co-authored-by: Jared Scheib <jared.scheib@gmail.com>
pull/3556/head
Deniz Kusefoglu 2018-05-30 11:16:11 -07:00
parent be41ac7d17
commit a706e44854
2 changed files with 23 additions and 0 deletions

View File

@ -33,6 +33,7 @@ import {showOverlay} from 'src/shared/actions/overlayTechnology'
import {
applyDashboardTempVarOverrides,
stripTempVar,
generateURLQueryFromTempVars,
} from 'src/dashboards/utils/templateVariableQueryGenerator'
import {dismissEditingAnnotation} from 'src/shared/actions/annotations'
@ -297,11 +298,20 @@ class DashboardPage extends Component {
templates,
})
onSaveTemplatesSuccess()
this.syncURLQueryFromTempVars(templates)
} catch (error) {
console.error(error)
}
}
syncURLQueryFromTempVars = tempVars => {
const {dashboardActions, location} = this.props
const updatedQueries = generateURLQueryFromTempVars(tempVars)
dashboardActions.updateURLQueryValue(location, updatedQueries)
}
handleRunQueryFailure = error => {
console.error(error)
this.props.errorThrown(error)

View File

@ -62,6 +62,19 @@ export const makeQueryForTemplate = ({influxql, db, measurement, tagKey}) =>
export const stripTempVar = tempVarName =>
tempVarName.substr(1, tempVarName.length - 2)
export const generateURLQueryFromTempVars = tempVars => {
const queries = {}
tempVars.forEach(({tempVar, values}) => {
const selected = values.find(value => value.selected === true)
const strippedTempVar = stripTempVar(tempVar)
queries[strippedTempVar] = selected.value
})
return queries
}
const reconcileTempVarsWithOverrides = (currentTempVars, tempVarOverrides) => {
if (!tempVarOverrides) {
return currentTempVars