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

This commit is contained in:
Rashid Khan
2013-04-05 10:08:00 -07:00
parent 122d94f78c
commit 68b765789a
6 changed files with 24 additions and 6 deletions
+5 -1
View File
@@ -3,7 +3,7 @@
'use strict';
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 = {
title: "",
@@ -14,7 +14,11 @@ angular.module('kibana.controllers', [])
$scope.init = function() {
$scope.config = config;
// Make underscore.js available to views
$scope._ = _;
// Provide a global list of all see fields
$scope.fields = fields
$scope.reset_row();
$scope.clear_all_alerts();
+15
View File
@@ -67,6 +67,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) {
// This service really just tracks a list of $timeout promises to give us a
+1 -1
View File
@@ -8,7 +8,7 @@
<div class="span3">
<form>
<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>
</div>
<div class="span6">
+1 -1
View File
@@ -4,7 +4,7 @@
<div class="span4">
<form style="margin-bottom: 0px">
<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>
</div>
<div class="span8">
+1 -1
View File
@@ -11,7 +11,7 @@
<div class="span4">
<form class="input-append">
<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>
</form>
</div>
+1 -2
View File
@@ -1,5 +1,5 @@
angular.module('kibana.table', [])
.controller('table', function($scope, eventBus) {
.controller('table', function($scope, eventBus, fields) {
// Set and populate defaults
var _d = {
@@ -142,7 +142,6 @@ angular.module('kibana.table', [])
// This breaks, use $scope.data for this
$scope.all_fields = get_all_fields($scope.data);
broadcast_results();
// If we're not sorting in reverse chrono order, query every index for