Commit 68b76578 by Rashid Khan

Added global field list service for use in panel editor type ahead

parent 122d94f7
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
'use strict'; 'use strict';
angular.module('kibana.controllers', []) angular.module('kibana.controllers', [])
.controller('DashCtrl', function($scope, $rootScope, $http, $timeout, ejsResource, eventBus) { .controller('DashCtrl', function($scope, $rootScope, $http, $timeout, ejsResource, eventBus, fields) {
var _d = { var _d = {
title: "", title: "",
...@@ -14,7 +14,11 @@ angular.module('kibana.controllers', []) ...@@ -14,7 +14,11 @@ angular.module('kibana.controllers', [])
$scope.init = function() { $scope.init = function() {
$scope.config = config; $scope.config = config;
// Make underscore.js available to views
$scope._ = _; $scope._ = _;
// Provide a global list of all see fields
$scope.fields = fields
$scope.reset_row(); $scope.reset_row();
$scope.clear_all_alerts(); $scope.clear_all_alerts();
......
...@@ -68,6 +68,21 @@ angular.module('kibana.services', []) ...@@ -68,6 +68,21 @@ angular.module('kibana.services', [])
} }
}) })
/* Service: fields
Provides a global list of all seen fields for use in editor panels
*/
.factory('fields', function($rootScope) {
var fields = {
list : []
}
$rootScope.$on('fields', function(event,f) {
fields.list = _.union(f.data.all,fields.list)
})
return fields;
})
.service('timer', function($timeout) { .service('timer', function($timeout) {
// This service really just tracks a list of $timeout promises to give us a // This service really just tracks a list of $timeout promises to give us a
// method for cancelling them all when we need to // method for cancelling them all when we need to
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="span3"> <div class="span3">
<form> <form>
<h6>Field</h6> <h6>Field</h6>
<input type="text" class="input-small" ng-model="panel.field"> <input bs-typeahead="fields.list" type="text" class="input-small" ng-model="panel.field">
</form> </form>
</div> </div>
<div class="span6"> <div class="span6">
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="span4"> <div class="span4">
<form style="margin-bottom: 0px"> <form style="margin-bottom: 0px">
<h6> Field</h6> <h6> Field</h6>
<input type="text" style="width:90%" ng-model="panel.query.field"> <input type="text" style="width:90%" bs-typeahead="fields.list" ng-model="panel.query.field">
</form> </form>
</div> </div>
<div class="span8"> <div class="span8">
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<div class="span4"> <div class="span4">
<form class="input-append"> <form class="input-append">
<h6>Add field</h6> <h6>Add field</h6>
<input bs-typeahead="all_fields" type="text" class="input-small" ng-model='newfield'> <input bs-typeahead="fields.list" type="text" class="input-small" ng-model='newfield'>
<button class="btn" ng-click="toggle_field(newfield);newfield=''"><i class="icon-plus"></i></button> <button class="btn" ng-click="toggle_field(newfield);newfield=''"><i class="icon-plus"></i></button>
</form> </form>
</div> </div>
......
angular.module('kibana.table', []) angular.module('kibana.table', [])
.controller('table', function($scope, eventBus) { .controller('table', function($scope, eventBus, fields) {
// Set and populate defaults // Set and populate defaults
var _d = { var _d = {
...@@ -142,7 +142,6 @@ angular.module('kibana.table', []) ...@@ -142,7 +142,6 @@ angular.module('kibana.table', [])
// This breaks, use $scope.data for this // This breaks, use $scope.data for this
$scope.all_fields = get_all_fields($scope.data); $scope.all_fields = get_all_fields($scope.data);
broadcast_results(); broadcast_results();
// If we're not sorting in reverse chrono order, query every index for // If we're not sorting in reverse chrono order, query every index for
......
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