kibana-123
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
80 lines (71 loc) • 2.48 kB
JavaScript
import 'plugins/table_vis/table_vis.less';
import 'plugins/table_vis/table_vis_controller';
import 'plugins/table_vis/table_vis_params';
import 'ui/agg_table';
import 'ui/agg_table/agg_table_group';
import TemplateVisTypeTemplateVisTypeProvider from 'ui/template_vis_type/template_vis_type';
import VisSchemasProvider from 'ui/vis/schemas';
import tableVisTemplate from 'plugins/table_vis/table_vis.html';
// we need to load the css ourselves
// we also need to load the controller and used by the template
// our params are a bit complex so we will manage them with a directive
// require the directives that we use as well
// register the provider with the visTypes registry
require('ui/registry/vis_types').register(TableVisTypeProvider);
// define the TableVisType
function TableVisTypeProvider(Private) {
const TemplateVisType = Private(TemplateVisTypeTemplateVisTypeProvider);
const Schemas = Private(VisSchemasProvider);
// define the TableVisController which is used in the template
// by angular's ng-controller directive
// return the visType object, which kibana will use to display and configure new
// Vis object of this type.
return new TemplateVisType({
name: 'table',
title: 'Data table',
icon: 'fa-table',
description: 'The data table provides a detailed breakdown, in tabular format, of the results of a composed ' +
'aggregation. Tip, a data table is available from many other charts by clicking the grey bar at the bottom of the chart.',
template: tableVisTemplate,
params: {
defaults: {
perPage: 10,
showPartialRows: false,
showMeticsAtAllLevels: false,
sort: {
columnIndex: null,
direction: null
},
showTotal: false,
totalFunc: 'sum'
},
editor: '<table-vis-params></table-vis-params>'
},
implementsRenderComplete: true,
hierarchicalData: function (vis) {
return Boolean(vis.params.showPartialRows || vis.params.showMeticsAtAllLevels);
},
schemas: new Schemas([
{
group: 'metrics',
name: 'metric',
title: 'Metric',
min: 1,
defaults: [
{ type: 'count', schema: 'metric' }
]
},
{
group: 'buckets',
name: 'bucket',
title: 'Split Rows'
},
{
group: 'buckets',
name: 'split',
title: 'Split Table'
}
])
});
}
export default TableVisTypeProvider;