module.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. angular.module('kibana.table', [])
  2. .controller('table', function($scope, $location) {
  3. // Set and populate defaults
  4. var _d = {
  5. query : "*",
  6. size : 100,
  7. sort : [config.timefield,'desc'],
  8. }
  9. _.each(_d, function(v, k) {
  10. $scope.panel[k] = _.isUndefined($scope.panel[k])
  11. ? _d[k] : $scope.panel[k];
  12. });
  13. if (!(_.isUndefined($scope.panel.group))) {
  14. $scope.$on($scope.panel.group+"-query", function(event, query) {
  15. $scope.panel.query = query;
  16. $scope.get_data();
  17. });
  18. }
  19. $scope.get_data = function() {
  20. var request = $scope.ejs.Request().indices($scope.index);
  21. var results = request
  22. .query(ejs.FilteredQuery(
  23. ejs.QueryStringQuery($scope.panel.query || '*'),
  24. ejs.RangeFilter(config.timefield)
  25. .from($scope.from)
  26. .to($scope.to)
  27. .cache(false)
  28. )
  29. )
  30. .size($scope.panel.size)
  31. .sort($scope.panel.sort[0],$scope.panel.sort[1])
  32. .doSearch();
  33. // Populate scope when we have results
  34. results.then(function(results) {
  35. $scope.hits = results.hits.total;
  36. $scope.data = results.hits.hits;
  37. /*
  38. _.each(results.facets.pie.terms, function(v) {
  39. var slice = { label : v.term, data : v.count };
  40. $scope.data.push();
  41. if(!(_.isUndefined($scope.panel.colors))
  42. && _.isArray($scope.panel.colors)
  43. && $scope.panel.colors.length > 0) {
  44. slice.color = $scope.panel.colors[k%$scope.panel.colors.length];
  45. }
  46. $scope.data.push(slice)
  47. k = k + 1;
  48. });
  49. */
  50. });
  51. }
  52. $scope.$watch(function() {
  53. return angular.toJson([$scope.from, $scope.to])
  54. }, function(){
  55. $scope.get_data();
  56. });
  57. })