From 75683c423d3866359cffbfea28f7861f39e90cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Sun, 23 Feb 2014 19:34:01 +0100 Subject: [PATCH] Closes #123, you can now specify template (ie filter) values in url. ?fillterName=filterValue --- src/app/services/filterSrv.js | 38 +++++++++++++++++++++++------------ src/index.html | 2 +- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/app/services/filterSrv.js b/src/app/services/filterSrv.js index 3cb85178ad5..ded750badbd 100644 --- a/src/app/services/filterSrv.js +++ b/src/app/services/filterSrv.js @@ -8,7 +8,7 @@ define([ var module = angular.module('kibana.services'); - module.service('filterSrv', function(dashboard, $rootScope, $timeout) { + module.service('filterSrv', function(dashboard, $rootScope, $timeout, $routeParams) { // defaults var _d = { list: [], @@ -26,16 +26,38 @@ define([ self.list = dashboard.current.services.filter.list; self.time = dashboard.current.services.filter.time; - self.filterTemplateData = undefined; self.templateSettings = { interpolate : /\[\[([\s\S]+?)\]\]/g, }; + + if (self.list.length) { + this.updateTemplateData(true); + } }; + this.updateTemplateData = function(initial) { + self.filterTemplateData = {}; + + _.each(self.list, function(filter) { + if (initial) { + var urlValue = $routeParams[filter.name]; + if (urlValue) { + filter.current = { text: urlValue, value: urlValue }; + } + } + + if (!filter.current || !filter.current.value) { + return; + } + + self.filterTemplateData[filter.name] = filter.current.value; + }); + } + this.filterOptionSelected = function(filter, option) { filter.current = option; - self.filterTemplateData = undefined; + this.updateTemplateData(); dashboard.refresh(); }; @@ -47,16 +69,6 @@ define([ if (target.indexOf('[[') === -1) { return target; } - if (!self.filterTemplateData) { - self.filterTemplateData = {}; - _.each(self.list, function(filter) { - if (!filter.current || !filter.current.value) { - return; - } - - self.filterTemplateData[filter.name] = filter.current.value; - }); - } return _.template(target, self.filterTemplateData, self.templateSettings); }; diff --git a/src/index.html b/src/index.html index ee927c5a05d..da89f0890e4 100644 --- a/src/index.html +++ b/src/index.html @@ -21,7 +21,7 @@ - +