|
@@ -24,9 +24,11 @@ angular.module('kibana.table', [])
|
|
|
|
|
|
|
|
$scope.set_listeners = function(group) {
|
|
$scope.set_listeners = function(group) {
|
|
|
eventBus.register($scope,'time',function(event,time) {
|
|
eventBus.register($scope,'time',function(event,time) {
|
|
|
|
|
+ $scope.panel.offset = 0;
|
|
|
set_time(time)
|
|
set_time(time)
|
|
|
});
|
|
});
|
|
|
eventBus.register($scope,'query',function(event,query) {
|
|
eventBus.register($scope,'query',function(event,query) {
|
|
|
|
|
+ $scope.panel.offset = 0;
|
|
|
$scope.panel.query = query;
|
|
$scope.panel.query = query;
|
|
|
$scope.get_data();
|
|
$scope.get_data();
|
|
|
});
|
|
});
|
|
@@ -55,11 +57,25 @@ angular.module('kibana.table', [])
|
|
|
broadcast_fields();
|
|
broadcast_fields();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ $scope.toggle_details = function(row) {
|
|
|
|
|
+ row.kibana = row.kibana || {};
|
|
|
|
|
+ row.kibana.details = !row.kibana.details ? $scope.without_kibana(row) : false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
$scope.page = function(page) {
|
|
$scope.page = function(page) {
|
|
|
$scope.panel.offset = page*$scope.panel.size
|
|
$scope.panel.offset = page*$scope.panel.size
|
|
|
$scope.get_data();
|
|
$scope.get_data();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ $scope.build_search = function(field, value) {
|
|
|
|
|
+ var query = field + ":" + "\"" + addslashes(value.toString()) + "\"";
|
|
|
|
|
+ var glue = $scope.panel.query != "" ? " AND " : "";
|
|
|
|
|
+ $scope.panel.query = $scope.panel.query + glue + query;
|
|
|
|
|
+ $scope.panel.offset = 0;
|
|
|
|
|
+ $scope.get_data();
|
|
|
|
|
+ eventBus.broadcast($scope.$id,$scope.panel.group,'query',$scope.panel.query);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
$scope.get_data = function() {
|
|
$scope.get_data = function() {
|
|
|
// Make sure we have everything for the request to complete
|
|
// Make sure we have everything for the request to complete
|
|
|
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
|
|
if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
|
|
@@ -88,13 +104,22 @@ angular.module('kibana.table', [])
|
|
|
}
|
|
}
|
|
|
$scope.panel.error = false;
|
|
$scope.panel.error = false;
|
|
|
$scope.hits = results.hits.total;
|
|
$scope.hits = results.hits.total;
|
|
|
- $scope.data = results.hits.hits;
|
|
|
|
|
|
|
+ $scope.data = []
|
|
|
|
|
+ _.each(results.hits.hits, function(v,k) {
|
|
|
|
|
+ $scope.data.push(flatten_json(v['_source']))
|
|
|
|
|
+ })
|
|
|
$scope.all_fields = get_all_fields(results);
|
|
$scope.all_fields = get_all_fields(results);
|
|
|
|
|
|
|
|
broadcast_fields();
|
|
broadcast_fields();
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ $scope.without_kibana = function (row) {
|
|
|
|
|
+ row = _.clone(row)
|
|
|
|
|
+ delete row.kibana
|
|
|
|
|
+ return row
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Broadcast a list of all fields. Note that receivers of field array
|
|
// Broadcast a list of all fields. Note that receivers of field array
|
|
|
// events should be able to receive from multiple sources, merge, dedupe
|
|
// events should be able to receive from multiple sources, merge, dedupe
|
|
|
// and sort on the fly if needed.
|
|
// and sort on the fly if needed.
|