| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- angular.module('kibana.hits', [])
- .controller('hits', function($scope, eventBus) {
- // Set and populate defaults
- var _d = {
- query : "*",
- group : "default",
- style : { "font-size": '36pt', "font-weight": "bold" },
- run_query : false
- }
- _.defaults($scope.panel,_d)
- $scope.init = function () {
- $scope.hits = 0;
- eventBus.register($scope,'time', function(event,time){
- if($scope.panel.run_query)
- set_time(time)
- });
- eventBus.register($scope,'query', function(event, query) {
- $scope.panel.query = _.isArray(query) ? query[0] : query;
- if($scope.panel.run_query)
- $scope.get_data();
- });
- eventBus.register($scope,'hits', function(event, hits) {
- $scope.hits = hits;
- })
- // Now that we're all setup, request the time from our group
- eventBus.broadcast($scope.$id,$scope.panel.group,'get_time')
- }
- $scope.get_data = function() {
- // Make sure we have everything for the request to complete
- if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
- return
- $scope.panel.loading = true;
- var request = $scope.ejs.Request().indices($scope.panel.index);
- var results = request
- .query(ejs.FilteredQuery(
- ejs.QueryStringQuery($scope.panel.query || '*'),
- ejs.RangeFilter($scope.time.field)
- .from($scope.time.from)
- .to($scope.time.to)
- )
- )
- .size(0)
- .doSearch();
- // Populate scope when we have results
- results.then(function(results) {
- $scope.panel.loading = false;
- if(_.isUndefined(results)) {
- $scope.panel.error = 'Your query was unsuccessful';
- return;
- }
- $scope.panel.error = false;
- $scope.hits = results.hits.total;
- });
- }
- function set_time(time) {
- $scope.time = time;
- $scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
- $scope.get_data();
- }
- })
|