mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Add switch to change field list between current and all
This commit is contained in:
parent
dc242236d5
commit
c52e4006d7
@ -14,9 +14,10 @@ function($, _, moment) {
|
||||
};
|
||||
|
||||
kbn.get_all_fields = function(data) {
|
||||
var _d = data;
|
||||
var fields = [];
|
||||
_.each(data,function(hit) {
|
||||
fields = _.uniq(fields.concat(_.keys(hit)));
|
||||
_.each(_d,function(hit) {
|
||||
fields = _.uniq(fields.concat(_.keys(kbn.flatten_json(hit._source))));
|
||||
});
|
||||
// Remove stupid angular key
|
||||
fields = _.without(fields,'$$hashKey');
|
||||
|
@ -9,9 +9,17 @@
|
||||
<div class="row-fluid">
|
||||
<div ng-class="{'span3':panel.field_list}" ng-show="panel.field_list">
|
||||
<div class="sidebar-nav">
|
||||
<h5>Fields <i class=" icon-chevron-sign-left pointer " ng-click="panel.field_list = !panel.field_list" bs-tooltip="'Hide field list'" ng-show="panel.field_list"></i></h5>
|
||||
<strong>Fields <i class=" icon-chevron-sign-left pointer " ng-click="panel.field_list = !panel.field_list" bs-tooltip="'Hide field list'" ng-show="panel.field_list"></i></strong><p>
|
||||
<span class="small">
|
||||
<span class="link" ng-click="panel.all_fields = true;" ng-class="{strong:panel.all_fields}">All</span> /
|
||||
<span class="link" ng-click="panel.all_fields = false;" ng-class="{strong:!panel.all_fields}">Current</span>
|
||||
</span>
|
||||
<ul class="unstyled" style="{{panel.overflow}}:{{panel.height || row.height}};overflow-y:auto;overflow-x:hidden;">
|
||||
<li ng-style="panel.style" ng-repeat="field in fields.list" >
|
||||
<li ng-style="panel.style" ng-repeat="field in fields.list" ng-show="panel.all_fields">
|
||||
<i class="pointer" ng-class="{'icon-check': _.contains(panel.fields,field),'icon-check-empty': !_.contains(panel.fields,field)}" ng-click="toggle_field(field)"></i>
|
||||
<a class="pointer" data-unique="1" bs-popover="'app/panels/table/micropanel.html'" data-placement="rightTop" ng-click="toggle_micropanel(field,true)" ng-class="{label: _.contains(panel.fields,field)}">{{field}}</a>
|
||||
</li>
|
||||
<li ng-style="panel.style" ng-repeat="field in current_fields" ng-hide="panel.all_fields">
|
||||
<i class="pointer" ng-class="{'icon-check': _.contains(panel.fields,field),'icon-check-empty': !_.contains(panel.fields,field)}" ng-click="toggle_field(field)"></i>
|
||||
<a class="pointer" data-unique="1" bs-popover="'app/panels/table/micropanel.html'" data-placement="rightTop" ng-click="toggle_micropanel(field,true)" ng-class="{label: _.contains(panel.fields,field)}">{{field}}</a>
|
||||
</li>
|
||||
|
@ -78,6 +78,7 @@ function (angular, app, _, kbn, moment) {
|
||||
header : true,
|
||||
paging : true,
|
||||
field_list: true,
|
||||
all_fields: false,
|
||||
trimFactor: 300,
|
||||
normTimes : true,
|
||||
spyable : true
|
||||
@ -291,6 +292,9 @@ function (angular, app, _, kbn, moment) {
|
||||
// Keep only what we need for the set
|
||||
$scope.data = $scope.data.slice(0,$scope.panel.size * $scope.panel.pages);
|
||||
|
||||
// Populate current_fields list
|
||||
$scope.current_fields = kbn.get_all_fields($scope.data);
|
||||
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ function (angular, _, config) {
|
||||
if(!_.isUndefined(n) && n.length) {
|
||||
// Only get the mapping for indices we don't know it for
|
||||
var indices = _.difference(n,_.keys(self.mapping));
|
||||
// Only get the mapping if there are indices
|
||||
// Only get the mapping if there are new indices
|
||||
if(indices.length > 0) {
|
||||
self.map(indices).then(function(result) {
|
||||
self.mapping = _.extend(self.mapping,result);
|
||||
|
Loading…
Reference in New Issue
Block a user