Commit 94e5001c by Torkel Ödegaard

feat(templating): making progress on adhoc template variable, #6038

parent 83b9db51
......@@ -21,7 +21,7 @@ export class AdHocFiltersCtrl {
if (this.variable.value && !_.isArray(this.variable.value)) {
}
for (let tag of this.variable.value) {
for (let tag of this.variable.tags) {
if (this.segments.length > 0) {
this.segments.push(this.uiSegmentSrv.newCondition('AND'));
}
......@@ -130,7 +130,7 @@ export class AdHocFiltersCtrl {
});
this.$rootScope.$broadcast('refresh');
this.variable.value = tags;
this.variable.tags = tags;
}
}
......
......@@ -189,6 +189,7 @@ function (angular, _, $, kbn) {
}
if (variable.type === 'adhoc') {
variable.current = {};
variable.options = [];
return;
}
......
......@@ -56,7 +56,7 @@ export default class InfluxDatasource {
// apply add hoc filters
for (let variable of this.templateSrv.variables) {
if (variable.type === 'adhoc' && variable.datasource === this.name) {
for (let tag of variable.value) {
for (let tag of variable.tags) {
if (tag.key !== undefined && tag.value !== undefined) {
target.tags.push({key: tag.key, value: tag.value, condition: 'AND'});
}
......
......@@ -28,24 +28,43 @@ define([
});
describe('when template variable is present in url', function() {
var variable = {
name: 'apps',
current: {text: "test", value: "test"},
options: [{text: "test", value: "test"}]
};
describe('and setting simple variable', function() {
var variable = {
name: 'apps',
current: {text: "test", value: "test"},
options: [{text: "test", value: "test"}]
};
beforeEach(function(done) {
var dashboard = { templating: { list: [variable] } };
var urlParams = {};
urlParams["var-apps"] = "new";
ctx.$location.search = sinon.stub().returns(urlParams);
ctx.service.init(dashboard).then(function() { done(); });
ctx.$rootScope.$digest();
beforeEach(function(done) {
var dashboard = { templating: { list: [variable] } };
var urlParams = {};
urlParams["var-apps"] = "new";
ctx.$location.search = sinon.stub().returns(urlParams);
ctx.service.init(dashboard).then(function() { done(); });
ctx.$rootScope.$digest();
});
it('should update current value', function() {
expect(variable.current.value).to.be("new");
expect(variable.current.text).to.be("new");
});
});
it('should update current value', function() {
expect(variable.current.value).to.be("new");
expect(variable.current.text).to.be("new");
describe('and setting adhoc variable', function() {
var variable = {name: 'filters', type: 'adhoc'};
beforeEach(function(done) {
var dashboard = { templating: { list: [variable] } };
var urlParams = {};
urlParams["var-filters"] = "hostname|gt|server2";
ctx.$location.search = sinon.stub().returns(urlParams);
ctx.service.init(dashboard).then(function() { done(); });
ctx.$rootScope.$digest();
});
it('should update current value', function() {
expect(variable.tags[0]).to.eq({tag: 'hostname', value: 'server2'});
});
});
});
......
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