diff --git a/Gruntfile.js b/Gruntfile.js index 15a48895bfbb..60b3780169eb 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -8,6 +8,7 @@ module.exports = function (grunt) { src: __dirname + '/src', // unbuild version of build build: __dirname + '/build', // copy of source, but optimized 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 target: __dirname + '/target', // location of the compressed build targets buildApp: __dirname + '/build/kibana', // build directory for the app @@ -31,6 +32,14 @@ module.exports = function (grunt) { 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 require('load-grunt-config')(grunt, { configPath: __dirname + '/tasks/config', diff --git a/src/kibana/apps/discover/index.js b/src/kibana/apps/discover/index.js deleted file mode 100644 index c15e612f6a31..000000000000 --- a/src/kibana/apps/discover/index.js +++ /dev/null @@ -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'); -}); \ No newline at end of file diff --git a/src/kibana/apps/settings/sections/index.js b/src/kibana/apps/settings/sections/index.js deleted file mode 100644 index 7de5f4aae847..000000000000 --- a/src/kibana/apps/settings/sections/index.js +++ /dev/null @@ -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'), - - ]; -}); \ No newline at end of file diff --git a/src/kibana/apps/visualize/index.js b/src/kibana/apps/visualize/index.js deleted file mode 100644 index 4edfdad9412b..000000000000 --- a/src/kibana/apps/visualize/index.js +++ /dev/null @@ -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' - }); -}); \ No newline at end of file diff --git a/src/kibana/components/agg_types/_agg_params.js b/src/kibana/components/agg_types/_agg_params.js index 086cbccbce33..09bff787337d 100644 --- a/src/kibana/components/agg_types/_agg_params.js +++ b/src/kibana/components/agg_types/_agg_params.js @@ -1,7 +1,7 @@ define(function (require) { return function AggParamsFactory(Private) { 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 FieldAggParam = Private(require('components/agg_types/param_types/field')); @@ -18,10 +18,10 @@ define(function (require) { * * @class AggParams * @constructor - * @extends Registry + * @extends IndexedArray * @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) { if (_.isPlainObject(params)) { // convert the names: details format into details[].name diff --git a/src/kibana/components/agg_types/index.js b/src/kibana/components/agg_types/index.js index de37c0f31b8f..019126bf714b 100644 --- a/src/kibana/components/agg_types/index.js +++ b/src/kibana/components/agg_types/index.js @@ -1,6 +1,6 @@ define(function (require) { return function AggTypeService(Private) { - var Registry = require('utils/registry/registry'); + var IndexedArray = require('utils/indexed_array/index'); var 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. * * @module agg_types - * @type {Registry} + * @type {IndexedArray} */ - return new Registry({ + return new IndexedArray({ /** * @type {Array} diff --git a/src/kibana/components/agg_types/param_types/optioned.js b/src/kibana/components/agg_types/param_types/optioned.js index 8025afbfceaa..09367d863bea 100644 --- a/src/kibana/components/agg_types/param_types/optioned.js +++ b/src/kibana/components/agg_types/param_types/optioned.js @@ -2,14 +2,14 @@ define(function (require) { return function OptionedAggParamFactory(Private) { 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')); _(OptionedAggParam).inherits(BaseAggParam); function OptionedAggParam(config) { OptionedAggParam.Super.call(this, config); - this.options = new Registry({ + this.options = new IndexedArray({ index: ['val'], immutable: true, initialSet: this.options diff --git a/src/kibana/components/index_patterns/_field_formats.js b/src/kibana/components/index_patterns/_field_formats.js index 35f522ca0033..e89794e6af41 100644 --- a/src/kibana/components/index_patterns/_field_formats.js +++ b/src/kibana/components/index_patterns/_field_formats.js @@ -23,7 +23,7 @@ $scope.onChangeFormat = function (field, format) { ``` ### 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 */ diff --git a/src/kibana/components/index_patterns/_index_pattern.js b/src/kibana/components/index_patterns/_index_pattern.js index 0b259e933b05..f1ed7c6f5946 100644 --- a/src/kibana/components/index_patterns/_index_pattern.js +++ b/src/kibana/components/index_patterns/_index_pattern.js @@ -12,7 +12,7 @@ define(function (require) { var mappingSetup = Private(require('utils/mapping_setup')); var DocSource = Private(require('components/courier/data_source/doc_source')); 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'; @@ -84,7 +84,7 @@ define(function (require) { }; function afterFieldsSet() { - pattern.fields = new Registry({ + pattern.fields = new IndexedArray({ index: ['name'], group: ['type'], initialSet: pattern.fields.map(function (field) { diff --git a/src/kibana/components/vis/_agg_configs.js b/src/kibana/components/vis/_agg_configs.js index 7376aed7c036..c5712b1754d4 100644 --- a/src/kibana/components/vis/_agg_configs.js +++ b/src/kibana/components/vis/_agg_configs.js @@ -2,9 +2,9 @@ define(function (require) { return function AggConfigsFactory(Private) { var _ = require('lodash'); 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) { var self = this; this.vis = vis; diff --git a/src/kibana/components/vis/vis.js b/src/kibana/components/vis/vis.js index 29567958756e..54ffd38aefc6 100644 --- a/src/kibana/components/vis/vis.js +++ b/src/kibana/components/vis/vis.js @@ -2,7 +2,7 @@ define(function (require) { return function VisFactory(Notifier, Private) { var _ = require('lodash'); 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 notify = new Notifier({ diff --git a/src/kibana/components/vis_types/index.js b/src/kibana/components/vis_types/index.js deleted file mode 100644 index 278d18cd3381..000000000000 --- a/src/kibana/components/vis_types/index.js +++ /dev/null @@ -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')) - ] - }); - }; -}); \ No newline at end of file diff --git a/src/kibana/components/visualize/_hierarchial_tooltip_formatter.js b/src/kibana/components/visualize/_hierarchial_tooltip_formatter.js index af76869e4046..294ce0eafe94 100644 --- a/src/kibana/components/visualize/_hierarchial_tooltip_formatter.js +++ b/src/kibana/components/visualize/_hierarchial_tooltip_formatter.js @@ -2,7 +2,7 @@ define(function (require) { return function HierarchialTooltipFormaterProvider($rootScope, $compile, $sce) { var _ = require('lodash'); 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(); $compile($tooltip)($tooltipScope); diff --git a/src/kibana/components/visualize/visualize.js b/src/kibana/components/visualize/visualize.js index 69ea23abff78..8d829573e1ba 100644 --- a/src/kibana/components/visualize/visualize.js +++ b/src/kibana/components/visualize/visualize.js @@ -7,7 +7,7 @@ define(function (require) { require('css!components/visualize/visualize.css'); var $ = require('jquery'); 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 buildHierarchialData = Private(require('components/visualize/_build_hierarchial_data')); diff --git a/src/kibana/controllers/kibana.js b/src/kibana/controllers/kibana.js index 0bb862ff19b5..08bdce957d45 100644 --- a/src/kibana/controllers/kibana.js +++ b/src/kibana/controllers/kibana.js @@ -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(); $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) $scope.apps.forEach(function (app) { lastPathFor(app); }); diff --git a/src/kibana/index.html b/src/kibana/index.html index 2c3737bea0e3..55d6c012582a 100644 --- a/src/kibana/index.html +++ b/src/kibana/index.html @@ -48,7 +48,7 @@