mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
fix(elasticsearch): fix json escape logic when doing terms template value lookup, fixes #5485
This commit is contained in:
parent
3ae327320a
commit
474a821767
@ -205,13 +205,8 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
||||
};
|
||||
|
||||
function escapeForJson(value) {
|
||||
return value
|
||||
.replace(/\s/g, '\\ ')
|
||||
.replace(/\"/g, '\\"');
|
||||
}
|
||||
|
||||
function luceneThenJsonFormat(value) {
|
||||
return escapeForJson(templateSrv.luceneFormat(value));
|
||||
var luceneQuery = JSON.stringify(value);
|
||||
return luceneQuery.substr(1, luceneQuery.length - 2);
|
||||
}
|
||||
|
||||
this.getFields = function(query) {
|
||||
@ -256,7 +251,7 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
||||
var header = this.getQueryHeader('count', range.from, range.to);
|
||||
var esQuery = angular.toJson(this.queryBuilder.getTermsQuery(queryDef));
|
||||
|
||||
esQuery = esQuery.replace("$lucene_query", escapeForJson(queryDef.query || '*'));
|
||||
esQuery = esQuery.replace("$lucene_query", escapeForJson(queryDef.query));
|
||||
esQuery = esQuery.replace(/\$timeFrom/g, range.from.valueOf());
|
||||
esQuery = esQuery.replace(/\$timeTo/g, range.to.valueOf());
|
||||
esQuery = header + '\n' + esQuery + '\n';
|
||||
@ -270,8 +265,9 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
||||
};
|
||||
|
||||
this.metricFindQuery = function(query) {
|
||||
query = templateSrv.replace(query, {}, luceneThenJsonFormat);
|
||||
query = angular.fromJson(query);
|
||||
query.query = templateSrv.replace(query.query || '*', {}, 'lucene');
|
||||
|
||||
if (!query) {
|
||||
return $q.when([]);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user