Merge pull request #1672 from spenceralger/plugins

Plugins
This commit is contained in:
Spencer 2014-10-22 05:55:27 -07:00
commit 6f857658c6
168 changed files with 525 additions and 298 deletions

View file

@ -8,6 +8,7 @@ module.exports = function (grunt) {
src: __dirname + '/src', // unbuild version of build src: __dirname + '/src', // unbuild version of build
build: __dirname + '/build', // copy of source, but optimized build: __dirname + '/build', // copy of source, but optimized
app: __dirname + '/src/kibana', // source directory for the app app: __dirname + '/src/kibana', // source directory for the app
plugins: __dirname + '/src/kibana/plugins', // source directory for the app
server: __dirname + '/src/server', // source directory for the server server: __dirname + '/src/server', // source directory for the server
target: __dirname + '/target', // location of the compressed build targets target: __dirname + '/target', // location of the compressed build targets
buildApp: __dirname + '/build/kibana', // build directory for the app buildApp: __dirname + '/build/kibana', // build directory for the app
@ -31,6 +32,14 @@ module.exports = function (grunt) {
grunt.config.merge(config); grunt.config.merge(config);
var dirname = require('path').dirname;
var indexFiles = grunt.file.expand({ cwd: 'src/kibana/plugins' }, '*/index.js');
var moduleIds = indexFiles.map(function (fileName) {
return 'plugins/' + dirname(fileName) + '/index';
});
config.bundledPluginModuleIds = grunt.bundledPluginModuleIds = moduleIds;
// load plugins // load plugins
require('load-grunt-config')(grunt, { require('load-grunt-config')(grunt, {
configPath: __dirname + '/tasks/config', configPath: __dirname + '/tasks/config',

View file

@ -1,8 +0,0 @@
define(function (require, module, exports) {
require('apps/discover/directives/table');
require('apps/discover/saved_searches/saved_searches');
require('apps/discover/directives/timechart');
require('apps/discover/components/field_chooser/field_chooser');
require('apps/discover/controllers/discover');
require('css!apps/discover/styles/main.css');
});

View file

@ -1,11 +0,0 @@
define(function (require) {
// each of these private modules returns an object defining that section, their properties
// are used to create the nav bar
return [
require('apps/settings/sections/indices/index'),
require('apps/settings/sections/advanced/index'),
require('apps/settings/sections/objects/index'),
require('apps/settings/sections/about/index'),
];
});

View file

@ -1,11 +0,0 @@
define(function (require) {
require('css!apps/visualize/styles/main.css');
require('apps/visualize/editor/editor');
require('apps/visualize/wizard/wizard');
require('routes')
.when('/visualize', {
redirectTo: '/visualize/step/1'
});
});

View file

@ -1,7 +1,7 @@
define(function (require) { define(function (require) {
return function AggParamsFactory(Private) { return function AggParamsFactory(Private) {
var _ = require('lodash'); var _ = require('lodash');
var Registry = require('utils/registry/registry'); var IndexedArray = require('utils/indexed_array/index');
var BaseAggParam = Private(require('components/agg_types/param_types/base')); var BaseAggParam = Private(require('components/agg_types/param_types/base'));
var FieldAggParam = Private(require('components/agg_types/param_types/field')); var FieldAggParam = Private(require('components/agg_types/param_types/field'));
@ -18,10 +18,10 @@ define(function (require) {
* *
* @class AggParams * @class AggParams
* @constructor * @constructor
* @extends Registry * @extends IndexedArray
* @param {object[]} params - array of params that get new-ed up as AggParam objects as descibed above * @param {object[]} params - array of params that get new-ed up as AggParam objects as descibed above
*/ */
_(AggParams).inherits(Registry); _(AggParams).inherits(IndexedArray);
function AggParams(params) { function AggParams(params) {
if (_.isPlainObject(params)) { if (_.isPlainObject(params)) {
// convert the names: details format into details[].name // convert the names: details format into details[].name

View file

@ -1,6 +1,6 @@
define(function (require) { define(function (require) {
return function AggTypeService(Private) { return function AggTypeService(Private) {
var Registry = require('utils/registry/registry'); var IndexedArray = require('utils/indexed_array/index');
var aggs = { var aggs = {
metrics: Private(require('components/agg_types/metric_aggs')), metrics: Private(require('components/agg_types/metric_aggs')),
@ -22,14 +22,14 @@ define(function (require) {
/** /**
* Registry of Aggregation Types. * IndexedArray of Aggregation Types.
* *
* These types form two groups, metric and buckets. * These types form two groups, metric and buckets.
* *
* @module agg_types * @module agg_types
* @type {Registry} * @type {IndexedArray}
*/ */
return new Registry({ return new IndexedArray({
/** /**
* @type {Array} * @type {Array}

View file

@ -2,14 +2,14 @@ define(function (require) {
return function OptionedAggParamFactory(Private) { return function OptionedAggParamFactory(Private) {
var _ = require('lodash'); var _ = require('lodash');
var Registry = require('utils/registry/registry'); var IndexedArray = require('utils/indexed_array/index');
var BaseAggParam = Private(require('components/agg_types/param_types/base')); var BaseAggParam = Private(require('components/agg_types/param_types/base'));
_(OptionedAggParam).inherits(BaseAggParam); _(OptionedAggParam).inherits(BaseAggParam);
function OptionedAggParam(config) { function OptionedAggParam(config) {
OptionedAggParam.Super.call(this, config); OptionedAggParam.Super.call(this, config);
this.options = new Registry({ this.options = new IndexedArray({
index: ['val'], index: ['val'],
immutable: true, immutable: true,
initialSet: this.options initialSet: this.options

View file

@ -23,7 +23,7 @@ $scope.onChangeFormat = function (field, format) {
``` ```
### Passing the formats to a chart ### Passing the formats to a chart
Currently, the [histogram formatter](https://github.com/elasticsearch/kibana4/blob/master/src/kibana/apps/visualize/saved_visualizations/resp_converters/histogram.js) passes the formatting function as the `xAxisFormatter` and `yAxisFormatter` function. Currently, the [histogram formatter](https://github.com/elasticsearch/kibana4/blob/master/src/plugins/visualize/saved_visualizations/resp_converters/histogram.js) passes the formatting function as the `xAxisFormatter` and `yAxisFormatter` function.
*/ */
/* jshint ignore:end */ /* jshint ignore:end */

View file

@ -12,7 +12,7 @@ define(function (require) {
var mappingSetup = Private(require('utils/mapping_setup')); var mappingSetup = Private(require('utils/mapping_setup'));
var DocSource = Private(require('components/courier/data_source/doc_source')); var DocSource = Private(require('components/courier/data_source/doc_source'));
var flattenSearchResponse = require('components/index_patterns/_flatten_search_response'); var flattenSearchResponse = require('components/index_patterns/_flatten_search_response');
var Registry = require('utils/registry/registry'); var IndexedArray = require('utils/indexed_array/index');
var type = 'index-pattern'; var type = 'index-pattern';
@ -84,7 +84,7 @@ define(function (require) {
}; };
function afterFieldsSet() { function afterFieldsSet() {
pattern.fields = new Registry({ pattern.fields = new IndexedArray({
index: ['name'], index: ['name'],
group: ['type'], group: ['type'],
initialSet: pattern.fields.map(function (field) { initialSet: pattern.fields.map(function (field) {

View file

@ -2,9 +2,9 @@ define(function (require) {
return function AggConfigsFactory(Private) { return function AggConfigsFactory(Private) {
var _ = require('lodash'); var _ = require('lodash');
var AggConfig = Private(require('components/vis/_agg_config')); var AggConfig = Private(require('components/vis/_agg_config'));
var Registry = require('utils/registry/registry'); var IndexedArray = require('utils/indexed_array/index');
_(AggConfigs).inherits(Registry); _(AggConfigs).inherits(IndexedArray);
function AggConfigs(vis, configStates) { function AggConfigs(vis, configStates) {
var self = this; var self = this;
this.vis = vis; this.vis = vis;

View file

@ -2,7 +2,7 @@ define(function (require) {
return function VisFactory(Notifier, Private) { return function VisFactory(Notifier, Private) {
var _ = require('lodash'); var _ = require('lodash');
var aggTypes = Private(require('components/agg_types/index')); var aggTypes = Private(require('components/agg_types/index'));
var visTypes = Private(require('components/vis_types/index')); var visTypes = Private(require('registry/vis_types'));
var AggConfigs = Private(require('components/vis/_agg_configs')); var AggConfigs = Private(require('components/vis/_agg_configs'));
var notify = new Notifier({ var notify = new Notifier({

View file

@ -1,15 +0,0 @@
define(function (require) {
return function VisTypeService(Private) {
var _ = require('lodash');
var Registry = require('utils/registry/registry');
return new Registry({
index: ['name'],
initialSet: [
Private(require('components/vis_types/histogram')),
Private(require('components/vis_types/line')),
Private(require('components/vis_types/pie'))
]
});
};
});

View file

@ -2,7 +2,7 @@ define(function (require) {
return function HierarchialTooltipFormaterProvider($rootScope, $compile, $sce) { return function HierarchialTooltipFormaterProvider($rootScope, $compile, $sce) {
var _ = require('lodash'); var _ = require('lodash');
var $ = require('jquery'); var $ = require('jquery');
var $tooltip = $(require('text!components/vis_types/tooltips/pie.html')); var $tooltip = $(require('text!plugins/vis_types/tooltips/pie.html'));
var $tooltipScope = $rootScope.$new(); var $tooltipScope = $rootScope.$new();
$compile($tooltip)($tooltipScope); $compile($tooltip)($tooltipScope);

View file

@ -7,7 +7,7 @@ define(function (require) {
require('css!components/visualize/visualize.css'); require('css!components/visualize/visualize.css');
var $ = require('jquery'); var $ = require('jquery');
var _ = require('lodash'); var _ = require('lodash');
var visTypes = Private(require('components/vis_types/index')); var visTypes = Private(require('registry/vis_types'));
var buildChartData = Private(require('components/visualize/_build_chart_data')); var buildChartData = Private(require('components/visualize/_build_chart_data'));
var buildHierarchialData = Private(require('components/visualize/_build_hierarchial_data')); var buildHierarchialData = Private(require('components/visualize/_build_hierarchial_data'));

View file

@ -74,7 +74,7 @@ define(function (require) {
}); });
}; };
}) })
.controller('kibana', function ($rootScope, $location, $scope, Notifier, $injector, $q, $http, config, kbnSetup) { .controller('kibana', function ($rootScope, $location, $scope, Notifier, $injector, $q, $http, config, kbnSetup, Private) {
var notify = new Notifier(); var notify = new Notifier();
$scope.appEmbedded = $location.search().embed; $scope.appEmbedded = $location.search().embed;
@ -107,7 +107,7 @@ define(function (require) {
} }
}; };
$scope.apps = configFile.apps; $scope.apps = Private(require('registry/apps'));
// initialize each apps lastPath (fetch it from storage) // initialize each apps lastPath (fetch it from storage)
$scope.apps.forEach(function (app) { lastPathFor(app); }); $scope.apps.forEach(function (app) { lastPathFor(app); });

View file

@ -48,7 +48,7 @@
<!-- Full navbar --> <!-- Full navbar -->
<div collapse="!showCollapsed" class="navbar-collapse" id="kibana-primary-navbar"> <div collapse="!showCollapsed" class="navbar-collapse" id="kibana-primary-navbar">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li ng-repeat="app in apps" ng-class="{active: activeApp == app.id}"> <li ng-repeat="app in apps.inOrderOrder" ng-class="{active: activeApp == app.id}">
<a ng-href="#{{app.lastPath}}" bo-text="app.name"></a> <a ng-href="#{{app.lastPath}}" bo-text="app.name"></a>
</li> </li>
</ul> </ul>

View file

@ -56,17 +56,11 @@ define(function (require) {
// tell the modules util to add it's modules as requirements for kibana // tell the modules util to add it's modules as requirements for kibana
modules.link(kibana); modules.link(kibana);
// list of modules that will require all possible applications
var appModules = configFile.apps.map(function (app) {
return 'apps/' + app.id + '/index';
});
kibana.load = _.onceWithCb(function (cb) { kibana.load = _.onceWithCb(function (cb) {
require([ require([
'controllers/kibana' 'controllers/kibana'
], function loadApps() { ], function loadApps() {
require(appModules, cb); require(configFile.plugins, cb);
}); });
}); });

View file

@ -0,0 +1,7 @@
# Kibana Plugins
### Please don't write custom plugins
While Kibana has a directory called plugins, and a way to load plugin-provided modules, the API is perpousfully undocumented as the underlying mechanisms making plugins possible are undocumented and very likely to change.
Also, please keep in mind that, at this time, issues filed to aid in the development of plugins will be closed with a link to this file.

View file

@ -10,7 +10,7 @@ define(function (require) {
return { return {
restrict: 'E', restrict: 'E',
template: require('text!apps/dashboard/partials/panel.html'), template: require('text!plugins/dashboard/partials/panel.html'),
requires: '^dashboardGrid', requires: '^dashboardGrid',
link: function ($scope, $el) { link: function ($scope, $el) {
// using $scope inheritance, panels are available in AppState // using $scope inheritance, panels are available in AppState

View file

@ -11,10 +11,10 @@ define(function (require) {
require('components/clipboard/clipboard'); require('components/clipboard/clipboard');
require('apps/dashboard/directives/grid'); require('plugins/dashboard/directives/grid');
require('apps/dashboard/directives/panel'); require('plugins/dashboard/directives/panel');
require('apps/dashboard/services/saved_dashboards'); require('plugins/dashboard/services/saved_dashboards');
require('css!apps/dashboard/styles/main.css'); require('css!plugins/dashboard/styles/main.css');
var app = require('modules').get('app/dashboard', [ var app = require('modules').get('app/dashboard', [
'elasticsearch', 'elasticsearch',
@ -27,7 +27,7 @@ define(function (require) {
require('routes') require('routes')
.when('/dashboard', { .when('/dashboard', {
template: require('text!apps/dashboard/index.html'), template: require('text!plugins/dashboard/index.html'),
resolve: { resolve: {
dash: function (savedDashboards) { dash: function (savedDashboards) {
return savedDashboards.get(); return savedDashboards.get();
@ -35,7 +35,7 @@ define(function (require) {
} }
}) })
.when('/dashboard/:id', { .when('/dashboard/:id', {
template: require('text!apps/dashboard/index.html'), template: require('text!plugins/dashboard/index.html'),
resolve: { resolve: {
dash: function (savedDashboards, Notifier, $route, $location, courier) { dash: function (savedDashboards, Notifier, $route, $location, courier) {
return savedDashboards.get($route.current.params.id) return savedDashboards.get($route.current.params.id)
@ -65,10 +65,10 @@ define(function (require) {
var $state = $scope.state = new AppState(stateDefaults); var $state = $scope.state = new AppState(stateDefaults);
$scope.configTemplate = new ConfigTemplate({ $scope.configTemplate = new ConfigTemplate({
save: require('text!apps/dashboard/partials/save_dashboard.html'), save: require('text!plugins/dashboard/partials/save_dashboard.html'),
load: require('text!apps/dashboard/partials/load_dashboard.html'), load: require('text!plugins/dashboard/partials/load_dashboard.html'),
share: require('text!apps/dashboard/partials/share.html'), share: require('text!plugins/dashboard/partials/share.html'),
pickVis: require('text!apps/dashboard/partials/pick_visualization.html') pickVis: require('text!plugins/dashboard/partials/pick_visualization.html')
}); });
$scope.openSave = _.partial($scope.configTemplate.toggle, 'save'); $scope.openSave = _.partial($scope.configTemplate.toggle, 'save');
@ -163,4 +163,13 @@ define(function (require) {
} }
}; };
}); });
var apps = require('registry/apps');
apps.register(function DashboardAppModule() {
return {
id: 'dashboard',
name: 'Dashboard',
order: 2
};
});
}); });

View file

@ -2,12 +2,12 @@ define(function (require) {
var module = require('modules').get('app/dashboard'); var module = require('modules').get('app/dashboard');
var _ = require('lodash'); var _ = require('lodash');
// bring in the factory // bring in the factory
require('apps/dashboard/services/_saved_dashboard'); require('plugins/dashboard/services/_saved_dashboard');
// Register this service with the saved object registry so it can be // Register this service with the saved object registry so it can be
// edited by the object editor. // edited by the object editor.
require('apps/settings/saved_object_registry').register({ require('plugins/settings/saved_object_registry').register({
service: 'savedDashboards', service: 'savedDashboards',
title: 'dashboards' title: 'dashboards'
}); });

View file

@ -1,8 +1,8 @@
define(function (require) { define(function (require) {
var $ = require('jquery'); var $ = require('jquery');
var app = require('modules').get('apps/discover'); var app = require('modules').get('apps/discover');
var html = require('text!apps/discover/components/field_chooser/discover_field.html'); var html = require('text!plugins/discover/components/field_chooser/discover_field.html');
var detailsHtml = require('text!apps/discover/components/field_chooser/discover_field_details.html'); var detailsHtml = require('text!plugins/discover/components/field_chooser/discover_field_details.html');
var _ = require('lodash'); var _ = require('lodash');
require('directives/css_truncate'); require('directives/css_truncate');

View file

@ -1,17 +1,17 @@
define(function (require) { define(function (require) {
var app = require('modules').get('apps/discover'); var app = require('modules').get('apps/discover');
var html = require('text!apps/discover/components/field_chooser/field_chooser.html'); var html = require('text!plugins/discover/components/field_chooser/field_chooser.html');
var _ = require('lodash'); var _ = require('lodash');
var jsonPath = require('jsonpath'); var jsonPath = require('jsonpath');
var rison = require('utils/rison'); var rison = require('utils/rison');
var qs = require('utils/query_string'); var qs = require('utils/query_string');
var fieldCalculator = require('apps/discover/components/field_chooser/lib/field_calculator'); var fieldCalculator = require('plugins/discover/components/field_chooser/lib/field_calculator');
require('directives/css_truncate'); require('directives/css_truncate');
require('directives/field_name'); require('directives/field_name');
require('filters/unique'); require('filters/unique');
require('apps/discover/components/field_chooser/discover_field'); require('plugins/discover/components/field_chooser/discover_field');
app.directive('discFieldChooser', function ($location, globalState, config) { app.directive('discFieldChooser', function ($location, globalState, config) {
return { return {

View file

@ -2,9 +2,9 @@ define(function (require) {
var _ = require('lodash'); var _ = require('lodash');
var angular = require('angular'); var angular = require('angular');
var moment = require('moment'); var moment = require('moment');
var settingsHtml = require('text!apps/discover/partials/settings.html'); var settingsHtml = require('text!plugins/discover/partials/settings.html');
var saveHtml = require('text!apps/discover/partials/save_search.html'); var saveHtml = require('text!plugins/discover/partials/save_search.html');
var loadHtml = require('text!apps/discover/partials/load_search.html'); var loadHtml = require('text!plugins/discover/partials/load_search.html');
var interval = require('utils/interval'); var interval = require('utils/interval');
var datemath = require('utils/datemath'); var datemath = require('utils/datemath');
@ -19,7 +19,7 @@ define(function (require) {
require('components/state_management/app_state'); require('components/state_management/app_state');
require('services/timefilter'); require('services/timefilter');
require('apps/discover/directives/table'); require('plugins/discover/directives/table');
var app = require('modules').get('apps/discover', [ var app = require('modules').get('apps/discover', [
'kibana/notify', 'kibana/notify',
@ -29,7 +29,7 @@ define(function (require) {
require('routes') require('routes')
.when('/discover/:id?', { .when('/discover/:id?', {
template: require('text!apps/discover/index.html'), template: require('text!plugins/discover/index.html'),
reloadOnSearch: false, reloadOnSearch: false,
resolve: { resolve: {
indexList: function (courier) { indexList: function (courier) {
@ -48,9 +48,9 @@ define(function (require) {
app.controller('discover', function ($scope, config, courier, $route, $window, Notifier, AppState, timefilter, Promise, Private, kbnUrl) { app.controller('discover', function ($scope, config, courier, $route, $window, Notifier, AppState, timefilter, Promise, Private, kbnUrl) {
var Vis = Private(require('components/vis/vis')); var Vis = Private(require('components/vis/vis'));
var SegmentedFetch = Private(require('apps/discover/_segmented_fetch')); var SegmentedFetch = Private(require('plugins/discover/_segmented_fetch'));
var HitSortFn = Private(require('apps/discover/_hit_sort_fn')); var HitSortFn = Private(require('plugins/discover/_hit_sort_fn'));
var notify = new Notifier({ var notify = new Notifier({
location: 'Discover' location: 'Discover'

View file

@ -1,10 +1,10 @@
define(function (require) { define(function (require) {
var html = require('text!apps/discover/partials/table.html'); var html = require('text!plugins/discover/partials/table.html');
require('directives/truncated'); require('directives/truncated');
require('directives/infinite_scroll'); require('directives/infinite_scroll');
require('apps/discover/directives/table_header'); require('plugins/discover/directives/table_header');
require('apps/discover/directives/table_row'); require('plugins/discover/directives/table_row');
var module = require('modules').get('app/discover'); var module = require('modules').get('app/discover');

View file

@ -3,7 +3,7 @@ define(function (require) {
var module = require('modules').get('app/discover'); var module = require('modules').get('app/discover');
module.directive('kbnTableHeader', function () { module.directive('kbnTableHeader', function () {
var headerHtml = require('text!apps/discover/partials/table_header.html'); var headerHtml = require('text!plugins/discover/partials/table_header.html');
return { return {
restrict: 'A', restrict: 'A',
scope: { scope: {

View file

@ -13,9 +13,9 @@ define(function (require) {
* ``` * ```
*/ */
module.directive('kbnTableRow', function ($compile, config) { module.directive('kbnTableRow', function ($compile, config) {
var openRowHtml = require('text!apps/discover/partials/table_row/open.html'); var openRowHtml = require('text!plugins/discover/partials/table_row/open.html');
var detailsHtml = require('text!apps/discover/partials/table_row/details.html'); var detailsHtml = require('text!plugins/discover/partials/table_row/details.html');
var cellTemplate = _.template(require('text!apps/discover/partials/table_row/cell.html')); var cellTemplate = _.template(require('text!plugins/discover/partials/table_row/cell.html'));
var truncateByHeightTemplate = _.template(require('text!partials/truncate_by_height.html')); var truncateByHeightTemplate = _.template(require('text!partials/truncate_by_height.html'));
return { return {

View file

@ -0,0 +1,17 @@
define(function (require, module, exports) {
require('plugins/discover/directives/table');
require('plugins/discover/saved_searches/saved_searches');
require('plugins/discover/directives/timechart');
require('plugins/discover/components/field_chooser/field_chooser');
require('plugins/discover/controllers/discover');
require('css!plugins/discover/styles/main.css');
var apps = require('registry/apps');
apps.register(function DiscoverAppModule() {
return {
id: 'discover',
name: 'Discover',
order: 0
};
});
});

View file

@ -1,7 +1,7 @@
define(function (require) { define(function (require) {
var _ = require('lodash'); var _ = require('lodash');
require('apps/discover/saved_searches/_saved_search'); require('plugins/discover/saved_searches/_saved_search');
require('components/notify/notify'); require('components/notify/notify');
var module = require('modules').get('discover/saved_searches', [ var module = require('modules').get('discover/saved_searches', [
@ -10,7 +10,7 @@ define(function (require) {
// Register this service with the saved object registry so it can be // Register this service with the saved object registry so it can be
// edited by the object editor. // edited by the object editor.
require('apps/settings/saved_object_registry').register({ require('plugins/settings/saved_object_registry').register({
service: 'savedSearches', service: 'savedSearches',
title: 'searches' title: 'searches'
}); });

View file

@ -1,7 +1,7 @@
define(function (require, module, exports) { define(function (require, module, exports) {
var _ = require('lodash'); var _ = require('lodash');
require('css!apps/settings/styles/main.css'); require('css!plugins/settings/styles/main.css');
require('filters/start_from'); require('filters/start_from');
require('routes') require('routes')
@ -13,14 +13,14 @@ define(function (require, module, exports) {
.directive('kbnSettingsApp', function (Private, $route, timefilter) { .directive('kbnSettingsApp', function (Private, $route, timefilter) {
return { return {
restrict: 'E', restrict: 'E',
template: require('text!apps/settings/app.html'), template: require('text!plugins/settings/app.html'),
transclude: true, transclude: true,
scope: { scope: {
sectionName: '@section' sectionName: '@section'
}, },
link: function ($scope, $el) { link: function ($scope, $el) {
timefilter.enabled = false; timefilter.enabled = false;
$scope.sections = require('apps/settings/sections/index'); $scope.sections = require('plugins/settings/sections/index');
$scope.section = _.find($scope.sections, { name: $scope.sectionName }); $scope.section = _.find($scope.sections, { name: $scope.sectionName });
$scope.sections.forEach(function (section) { $scope.sections.forEach(function (section) {
@ -29,4 +29,13 @@ define(function (require, module, exports) {
} }
}; };
}); });
var apps = require('registry/apps');
apps.register(function SettingsAppModule() {
return {
id: 'settings',
name: 'Settings',
order: 3
};
});
}); });

View file

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Before After
Before After

View file

@ -2,7 +2,7 @@
<div class="kbn-settings-about container" ng-controller="settingsAbout"> <div class="kbn-settings-about container" ng-controller="settingsAbout">
<div class="col-md-4 col-md-offset-4 jumbotron"> <div class="col-md-4 col-md-offset-4 jumbotron">
<center> <center>
<img src='apps/settings/sections/about/elk.png'><br> <img src='plugins/settings/sections/about/elk.png'><br>
<h1>Kibana</h1> <h1>Kibana</h1>
<p> <p>
<table class="table table-condensed kbn-settings-about-versions"> <table class="table table-condensed kbn-settings-about-versions">

View file

@ -3,7 +3,7 @@ define(function (require) {
require('routes') require('routes')
.when('/settings/about', { .when('/settings/about', {
template: require('text!apps/settings/sections/about/index.html') template: require('text!plugins/settings/sections/about/index.html')
}); });
require('modules').get('apps/settings') require('modules').get('apps/settings')

View file

@ -4,7 +4,7 @@ define(function (require) {
require('routes') require('routes')
.when('/settings/advanced', { .when('/settings/advanced', {
template: require('text!apps/settings/sections/advanced/index.html') template: require('text!plugins/settings/sections/advanced/index.html')
}); });
require('modules').get('apps/settings') require('modules').get('apps/settings')

View file

@ -0,0 +1,10 @@
define(function (require) {
// each of these private modules returns an object defining that section, their properties
// are used to create the nav bar
return [
require('plugins/settings/sections/indices/index'),
require('plugins/settings/sections/advanced/index'),
require('plugins/settings/sections/objects/index'),
require('plugins/settings/sections/about/index')
];
});

View file

@ -5,14 +5,14 @@ define(function (require) {
require('routes') require('routes')
.when('/settings/indices/', { .when('/settings/indices/', {
template: require('text!apps/settings/sections/indices/_create.html') template: require('text!plugins/settings/sections/indices/_create.html')
}); });
require('modules').get('apps/settings') require('modules').get('apps/settings')
.controller('settingsIndicesCreate', function ($scope, kbnUrl, Private, Notifier, indexPatterns, es, config) { .controller('settingsIndicesCreate', function ($scope, kbnUrl, Private, Notifier, indexPatterns, es, config) {
var notify = new Notifier(); var notify = new Notifier();
var MissingIndices = errors.IndexPatternMissingIndices; var MissingIndices = errors.IndexPatternMissingIndices;
var refreshKibanaIndex = Private(require('apps/settings/sections/indices/_refresh_kibana_index')); var refreshKibanaIndex = Private(require('plugins/settings/sections/indices/_refresh_kibana_index'));
var intervals = indexPatterns.intervals; var intervals = indexPatterns.intervals;
// this and child scopes will write pattern vars here // this and child scopes will write pattern vars here

View file

@ -3,7 +3,7 @@ define(function (require) {
require('routes') require('routes')
.when('/settings/indices/:id', { .when('/settings/indices/:id', {
template: require('text!apps/settings/sections/indices/_edit.html'), template: require('text!plugins/settings/sections/indices/_edit.html'),
resolve: { resolve: {
indexPattern: function ($route, courier) { indexPattern: function ($route, courier) {
return courier.indexPatterns.get($route.current.params.id) return courier.indexPatterns.get($route.current.params.id)
@ -15,7 +15,7 @@ define(function (require) {
require('modules').get('apps/settings') require('modules').get('apps/settings')
.controller('settingsIndicesEdit', function ($scope, $location, $route, config, courier, Notifier, Private) { .controller('settingsIndicesEdit', function ($scope, $location, $route, config, courier, Notifier, Private) {
var notify = new Notifier(); var notify = new Notifier();
var refreshKibanaIndex = Private(require('apps/settings/sections/indices/_refresh_kibana_index')); var refreshKibanaIndex = Private(require('plugins/settings/sections/indices/_refresh_kibana_index'));
$scope.indexPattern = $route.current.locals.indexPattern; $scope.indexPattern = $route.current.locals.indexPattern;
var otherIds = _.without($route.current.locals.indexPatternIds, $scope.indexPattern.id); var otherIds = _.without($route.current.locals.indexPatternIds, $scope.indexPattern.id);

View file

@ -1,8 +1,8 @@
define(function (require) { define(function (require) {
var _ = require('lodash'); var _ = require('lodash');
require('apps/settings/sections/indices/_create'); require('plugins/settings/sections/indices/_create');
require('apps/settings/sections/indices/_edit'); require('plugins/settings/sections/indices/_edit');
// add a dependency to all of the subsection routes // add a dependency to all of the subsection routes
require('routes') require('routes')
@ -18,7 +18,7 @@ define(function (require) {
return { return {
restrict: 'E', restrict: 'E',
transclude: true, transclude: true,
template: require('text!apps/settings/sections/indices/index.html'), template: require('text!plugins/settings/sections/indices/index.html'),
link: function ($scope) { link: function ($scope) {
$scope.edittingId = $route.current.params.id; $scope.edittingId = $route.current.params.id;
$scope.defaultIndex = config.get('defaultIndex'); $scope.defaultIndex = config.get('defaultIndex');

View file

@ -1,7 +1,7 @@
define(function (require) { define(function (require) {
var _ = require('lodash'); var _ = require('lodash');
var registry = require('apps/settings/saved_object_registry'); var registry = require('plugins/settings/saved_object_registry');
var objectIndexHTML = require('text!apps/settings/sections/objects/_objects.html'); var objectIndexHTML = require('text!plugins/settings/sections/objects/_objects.html');
require('routes') require('routes')
.when('/settings/objects', { .when('/settings/objects', {

View file

@ -2,8 +2,8 @@ define(function (require) {
var _ = require('lodash'); var _ = require('lodash');
var inflection = require('inflection'); var inflection = require('inflection');
var rison = require('utils/rison'); var rison = require('utils/rison');
var registry = require('apps/settings/saved_object_registry'); var registry = require('plugins/settings/saved_object_registry');
var objectViewHTML = require('text!apps/settings/sections/objects/_view.html'); var objectViewHTML = require('text!plugins/settings/sections/objects/_view.html');
require('routes') require('routes')
.when('/settings/objects/:service/:id', { .when('/settings/objects/:service/:id', {

View file

@ -1,6 +1,6 @@
define(function (require) { define(function (require) {
require('apps/settings/sections/objects/_view'); require('plugins/settings/sections/objects/_view');
require('apps/settings/sections/objects/_objects'); require('plugins/settings/sections/objects/_objects');
require('angular-ui-ace'); require('angular-ui-ace');
require('angular-elastic'); require('angular-elastic');

View file

@ -1,7 +1,7 @@
define(function (require) { define(function (require) {
return function VisTypeSchemasFactory(Private) { return function VisTypeSchemasFactory(Private) {
var _ = require('lodash'); var _ = require('lodash');
var Registry = require('utils/registry/registry'); var IndexedArray = require('utils/indexed_array/index');
var AggParams = Private(require('components/agg_types/_agg_params')); var AggParams = Private(require('components/agg_types/_agg_params'));
function Schemas(schemas) { function Schemas(schemas) {
@ -18,7 +18,7 @@ define(function (require) {
default: true default: true
} }
]; ];
schema.editor = require('text!components/vis_types/controls/rows_or_columns.html'); schema.editor = require('text!plugins/vis_types/controls/rows_or_columns.html');
} }
_.defaults(schema, { _.defaults(schema, {
@ -37,7 +37,7 @@ define(function (require) {
return schema; return schema;
}) })
.tap(function (schemas) { .tap(function (schemas) {
self.all = new Registry({ self.all = new IndexedArray({
index: ['name'], index: ['name'],
group: ['group'], group: ['group'],
immutable: true, immutable: true,
@ -46,7 +46,7 @@ define(function (require) {
}) })
.groupBy('group') .groupBy('group')
.forOwn(function (group, groupName) { .forOwn(function (group, groupName) {
self[groupName] = new Registry({ self[groupName] = new IndexedArray({
index: ['name'], index: ['name'],
immutable: true, immutable: true,
initialSet: group initialSet: group

View file

@ -2,8 +2,8 @@ define(function (require) {
return function VisTypeFactory(Private) { return function VisTypeFactory(Private) {
var _ = require('lodash'); var _ = require('lodash');
var VisTypeSchemas = Private(require('components/vis_types/_schemas')); var VisTypeSchemas = Private(require('plugins/vis_types/_schemas'));
var HistogramConverter = Private(require('components/vis_types/converters/histogram')); var HistogramConverter = Private(require('plugins/vis_types/converters/histogram'));
function VisType(opts) { function VisType(opts) {
opts = opts || {}; opts = opts || {};

View file

@ -6,7 +6,7 @@ define(function (require) {
var interval = require('utils/interval'); var interval = require('utils/interval');
var $tooltipScope = $rootScope.$new(); var $tooltipScope = $rootScope.$new();
var $tooltip = $(require('text!components/vis_types/tooltips/histogram.html')); var $tooltip = $(require('text!plugins/vis_types/tooltips/histogram.html'));
$compile($tooltip)($tooltipScope); $compile($tooltip)($tooltipScope);
return function (chart, columns, rows) { return function (chart, columns, rows) {

View file

@ -5,7 +5,7 @@ define(function (require) {
var moment = require('moment'); var moment = require('moment');
var interval = require('utils/interval'); var interval = require('utils/interval');
var $tooltip = $(require('text!components/vis_types/tooltips/pie.html')); var $tooltip = $(require('text!plugins/vis_types/tooltips/pie.html'));
var $tooltipScope = $rootScope.$new(); var $tooltipScope = $rootScope.$new();
$compile($tooltip)($tooltipScope); $compile($tooltip)($tooltipScope);

View file

@ -1,7 +1,7 @@
define(function (require) { define(function (require) {
return function HistogramVisType(Private) { return function HistogramVisType(Private) {
var VisType = Private(require('components/vis_types/_vis_type')); var VisType = Private(require('plugins/vis_types/_vis_type'));
var Schemas = Private(require('components/vis_types/_schemas')); var Schemas = Private(require('plugins/vis_types/_schemas'));
return new VisType({ return new VisType({
name: 'histogram', name: 'histogram',

View file

@ -0,0 +1,7 @@
define(function (require) {
var visTypes = require('registry/vis_types');
visTypes.register(require('plugins/vis_types/histogram'));
visTypes.register(require('plugins/vis_types/line'));
visTypes.register(require('plugins/vis_types/pie'));
});

View file

@ -1,7 +1,7 @@
define(function (require) { define(function (require) {
return function HistogramVisType(Private) { return function HistogramVisType(Private) {
var VisType = Private(require('components/vis_types/_vis_type')); var VisType = Private(require('plugins/vis_types/_vis_type'));
var Schemas = Private(require('components/vis_types/_schemas')); var Schemas = Private(require('plugins/vis_types/_schemas'));
return new VisType({ return new VisType({
name: 'line', name: 'line',

View file

@ -1,8 +1,8 @@
define(function (require) { define(function (require) {
return function HistogramVisType(Private) { return function HistogramVisType(Private) {
var VisType = Private(require('components/vis_types/_vis_type')); var VisType = Private(require('plugins/vis_types/_vis_type'));
var Schemas = Private(require('components/vis_types/_schemas')); var Schemas = Private(require('plugins/vis_types/_schemas'));
var PieConverter = Private(require('components/vis_types/converters/pie')); var PieConverter = Private(require('plugins/vis_types/converters/pie'));
return new VisType({ return new VisType({
name: 'pie', name: 'pie',

View file

@ -5,11 +5,11 @@ define(function (require) {
var _ = require('lodash'); var _ = require('lodash');
var $ = require('jquery'); var $ = require('jquery');
var aggTypes = Private(require('components/agg_types/index')); var aggTypes = Private(require('components/agg_types/index'));
var aggSelectHtml = require('text!apps/visualize/editor/agg_select.html'); var aggSelectHtml = require('text!plugins/visualize/editor/agg_select.html');
var advancedToggleHtml = require('text!apps/visualize/partials/advanced_toggle.html'); var advancedToggleHtml = require('text!plugins/visualize/editor/advanced_toggle.html');
var chosen = require('angular-chosen'); var chosen = require('angular-chosen');
require('apps/visualize/editor/agg_param'); require('plugins/visualize/editor/agg_param');
var notify = new Notifier({ var notify = new Notifier({
location: 'visAggGroup' location: 'visAggGroup'
@ -18,7 +18,7 @@ define(function (require) {
return { return {
restrict: 'E', restrict: 'E',
replace: true, replace: true,
template: require('text!apps/visualize/editor/agg.html'), template: require('text!plugins/visualize/editor/agg.html'),
scope: { scope: {
vis: '=', vis: '=',
agg: '=', agg: '=',

View file

@ -2,15 +2,15 @@ define(function (require) {
require('modules') require('modules')
.get('app/visualize') .get('app/visualize')
.directive('visEditorAggGroup', function (Private) { .directive('visEditorAggGroup', function (Private) {
require('apps/visualize/editor/agg'); require('plugins/visualize/editor/agg');
require('apps/visualize/editor/nesting_indicator'); require('plugins/visualize/editor/nesting_indicator');
var eachGroupHtml = require('text!apps/visualize/editor/agg_group.html'); var eachGroupHtml = require('text!plugins/visualize/editor/agg_group.html');
var AggConfig = Private(require('components/vis/_agg_config')); var AggConfig = Private(require('components/vis/_agg_config'));
return { return {
restrict: 'E', restrict: 'E',
template: require('text!apps/visualize/editor/agg_group.html'), template: require('text!plugins/visualize/editor/agg_group.html'),
replace: true, replace: true,
scope: { scope: {
vis: '=', vis: '=',

View file

@ -1,7 +1,7 @@
define(function (require) { define(function (require) {
require('apps/visualize/saved_visualizations/saved_visualizations'); require('plugins/visualize/saved_visualizations/saved_visualizations');
require('apps/visualize/editor/sidebar'); require('plugins/visualize/editor/sidebar');
require('apps/visualize/editor/agg_filter'); require('plugins/visualize/editor/agg_filter');
require('directives/saved_object_finder'); require('directives/saved_object_finder');
@ -12,7 +12,7 @@ define(function (require) {
require('routes') require('routes')
.when('/visualize/create', { .when('/visualize/create', {
template: require('text!apps/visualize/editor/editor.html'), template: require('text!plugins/visualize/editor/editor.html'),
resolve: { resolve: {
savedVis: function (savedVisualizations, courier, $route) { savedVis: function (savedVisualizations, courier, $route) {
if (!$route.current.params.indexPattern && !$route.current.params.savedSearchId) { if (!$route.current.params.indexPattern && !$route.current.params.savedSearchId) {
@ -27,7 +27,7 @@ define(function (require) {
} }
}) })
.when('/visualize/edit/:id', { .when('/visualize/edit/:id', {
template: require('text!apps/visualize/editor/editor.html'), template: require('text!plugins/visualize/editor/editor.html'),
resolve: { resolve: {
savedVis: function (savedVisualizations, courier, $route) { savedVis: function (savedVisualizations, courier, $route) {
return savedVisualizations.get($route.current.params.id) return savedVisualizations.get($route.current.params.id)
@ -62,9 +62,9 @@ define(function (require) {
// config panel templates // config panel templates
var configTemplate = new ConfigTemplate({ var configTemplate = new ConfigTemplate({
save: require('text!apps/visualize/editor/panels/save.html'), save: require('text!plugins/visualize/editor/panels/save.html'),
load: require('text!apps/visualize/editor/panels/load.html'), load: require('text!plugins/visualize/editor/panels/load.html'),
share: require('text!apps/visualize/editor/panels/share.html'), share: require('text!plugins/visualize/editor/panels/share.html'),
}); });
var $state = (function initState() { var $state = (function initState() {

Some files were not shown because too many files have changed in this diff Show more