Commit 676972e7 by Torkel Ödegaard

Variables: Do not update variable from url when value is the same (#23220)


(cherry picked from commit 49d2910e)
parent 3be46855
...@@ -330,9 +330,12 @@ export class VariableSrv { ...@@ -330,9 +330,12 @@ export class VariableSrv {
for (const v of this.variables) { for (const v of this.variables) {
const key = `var-${v.name}`; const key = `var-${v.name}`;
if (vars.hasOwnProperty(key)) { if (vars.hasOwnProperty(key)) {
update.push(v.setValueFromUrl(vars[key])); if (this.isVariableUrlValueDifferentFromCurrent(v, vars[key])) {
update.push(v.setValueFromUrl(vars[key]));
}
} }
} }
if (update.length) { if (update.length) {
Promise.all(update).then(() => { Promise.all(update).then(() => {
this.dashboard.templateVariableValueUpdated(); this.dashboard.templateVariableValueUpdated();
...@@ -341,6 +344,11 @@ export class VariableSrv { ...@@ -341,6 +344,11 @@ export class VariableSrv {
} }
} }
isVariableUrlValueDifferentFromCurrent(variable: any, urlValue: any) {
// lodash _.isEqual handles array of value equality checks as well
return !_.isEqual(variable.current.value, urlValue);
}
updateUrlParamsWithCurrentVariables() { updateUrlParamsWithCurrentVariables() {
// update url // update url
const params = this.$location.search(); const params = this.$location.search();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment