module.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. angular.module('kibana.stringquery', [])
  2. .controller('stringquery', function($scope, eventBus) {
  3. // Set and populate defaults
  4. var _d = {
  5. label : "Search",
  6. query : "*",
  7. size : 100,
  8. sort : ['_score','desc'],
  9. group : "default",
  10. multi : false,
  11. multi_arrange: 'horizontal',
  12. }
  13. _.defaults($scope.panel,_d);
  14. $scope.init = function() {
  15. // If we're in multi query mode, they all get wiped out if we receive a
  16. // query. Query events must be exchanged as arrays.
  17. eventBus.register($scope,'query',function(event,query) {
  18. $scope.panel.query = query;
  19. });
  20. }
  21. $scope.send_query = function(query) {
  22. var _query = _.isArray(query) ? query : [query]
  23. eventBus.broadcast($scope.$id,$scope.panel.group,'query',_query)
  24. }
  25. $scope.add_query = function() {
  26. if (_.isArray($scope.panel.query))
  27. $scope.panel.query.push("")
  28. else {
  29. $scope.panel.query = new Array($scope.panel.query)
  30. $scope.panel.query.push("")
  31. }
  32. }
  33. $scope.set_multi = function(multi) {
  34. $scope.panel.query = multi ?
  35. new Array($scope.panel.query) : $scope.panel.query[0];
  36. }
  37. $scope.set_sort = function(field) {
  38. if($scope.panel.sort[0] === field)
  39. $scope.panel.sort[1] = $scope.panel.sort[1] == 'asc' ? 'desc' : 'asc';
  40. else
  41. $scope.panel.sort[0] = field;
  42. }
  43. $scope.remove_query = function(index) {
  44. $scope.panel.query.splice(index,1);
  45. }
  46. });