UNPKG

@spalger/kibana

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

74 lines (66 loc) 2.67 kB
define(function (require) { var _ = require('lodash'); require('ui/paginated_table'); require('ui/modules').get('apps/settings') .directive('indexedFields', function ($filter) { var yesTemplate = '<i class="fa fa-check" aria-label="yes"></i>'; var noTemplate = ''; var nameHtml = require('plugins/kibana/settings/sections/indices/_field_name.html'); var typeHtml = require('plugins/kibana/settings/sections/indices/_field_type.html'); var controlsHtml = require('plugins/kibana/settings/sections/indices/_field_controls.html'); var filter = $filter('filter'); return { restrict: 'E', template: require('plugins/kibana/settings/sections/indices/_indexed_fields.html'), scope: true, link: function ($scope) { var rowScopes = []; // track row scopes, so they can be destroyed as needed $scope.perPage = 25; $scope.columns = [ { title: 'name' }, { title: 'type' }, { title: 'format' }, { title: 'analyzed', info: 'Analyzed fields may require extra memory to visualize' }, { title: 'indexed', info: 'Fields that are not indexed are unavailable for search' }, { title: 'controls', sortable: false } ]; $scope.$watchMulti(['[]indexPattern.fields', 'fieldFilter'], refreshRows); function refreshRows() { // clear and destroy row scopes _.invoke(rowScopes.splice(0), '$destroy'); var fields = filter($scope.indexPattern.getNonScriptedFields(), $scope.fieldFilter); _.find($scope.fieldTypes, {index: 'indexedFields'}).count = fields.length; // Update the tab count $scope.rows = fields.map(function (field) { var childScope = _.assign($scope.$new(), { field: field }); rowScopes.push(childScope); return [ { markup: nameHtml, scope: childScope, value: field.displayName }, { markup: typeHtml, scope: childScope, value: field.type }, _.get($scope.indexPattern, ['fieldFormatMap', field.name, 'type', 'title']), { markup: field.analyzed ? yesTemplate : noTemplate, value: field.analyzed }, { markup: field.indexed ? yesTemplate : noTemplate, value: field.indexed }, { markup: controlsHtml, scope: childScope } ]; }); } } }; }); });