module.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. angular.module('kibana.hits', [])
  2. .controller('hits', function($scope, eventBus) {
  3. var _id = _.uniqueId();
  4. // Set and populate defaults
  5. var _d = {
  6. query : "*",
  7. group : "default",
  8. style : { "font-size": '36pt', "font-weight": "bold" },
  9. }
  10. _.defaults($scope.panel,_d)
  11. $scope.init = function () {
  12. eventBus.register($scope,'time', function(event,time){set_time(time)});
  13. eventBus.register($scope,'query', function(event, query) {
  14. $scope.panel.query = query;
  15. $scope.get_data();
  16. });
  17. // Now that we're all setup, request the time from our group
  18. eventBus.broadcast($scope.$id,$scope.panel.group,'get_time')
  19. }
  20. $scope.get_data = function() {
  21. // Make sure we have everything for the request to complete
  22. if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
  23. return
  24. var request = $scope.ejs.Request().indices($scope.panel.index);
  25. var results = request
  26. .query(ejs.FilteredQuery(
  27. ejs.QueryStringQuery($scope.panel.query || '*'),
  28. ejs.RangeFilter(config.timefield)
  29. .from($scope.panel.time.from)
  30. .to($scope.panel.time.to)
  31. )
  32. )
  33. .size(0)
  34. .doSearch();
  35. // Populate scope when we have results
  36. results.then(function(results) {
  37. if(_.isUndefined(results)) {
  38. $scope.panel.error = 'Your query was unsuccessful';
  39. return;
  40. }
  41. $scope.panel.error = false;
  42. $scope.hits = results.hits.total;
  43. });
  44. }
  45. function set_time(time) {
  46. $scope.panel.time = time;
  47. $scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
  48. $scope.get_data();
  49. }
  50. $scope.init();
  51. })