diff --git a/src/plugins/kibana/index.js b/src/plugins/kibana/index.js
index 045b442374f39..61b83cb38c9d0 100644
--- a/src/plugins/kibana/index.js
+++ b/src/plugins/kibana/index.js
@@ -19,14 +19,13 @@ module.exports = function (kibana) {
title: 'Kibana',
listed: false,
description: 'the kibana you know and love',
- //icon: 'plugins/kibana/settings/sections/about/barcode.svg',
main: 'plugins/kibana/kibana',
uses: [
'visTypes',
'spyModes',
'fieldFormats',
'navbarExtensions',
- 'settingsSections',
+ 'managementSections',
'docViews'
],
@@ -62,11 +61,12 @@ module.exports = function (kibana) {
icon: 'plugins/kibana/assets/dashboard.svg',
},
{
- title: 'Settings',
+ title: 'Management',
order: 1000,
- url: '/app/kibana#/settings',
+ url: '/app/kibana#/management',
description: 'define index patterns, change config, and more',
icon: 'plugins/kibana/assets/settings.svg',
+ linkToLastSubUrl: false
}
],
injectDefaultVars(server, options) {
diff --git a/src/plugins/kibana/public/dashboard/components/panel/panel.js b/src/plugins/kibana/public/dashboard/components/panel/panel.js
index 940948d31d291..5cdf1a8469dfa 100644
--- a/src/plugins/kibana/public/dashboard/components/panel/panel.js
+++ b/src/plugins/kibana/public/dashboard/components/panel/panel.js
@@ -15,7 +15,7 @@ uiModules
const filterManager = Private(FilterManagerProvider);
const notify = new Notifier();
- const services = require('plugins/kibana/settings/saved_object_registry').all().map(function (serviceObj) {
+ const services = require('plugins/kibana/management/saved_object_registry').all().map(function (serviceObj) {
const service = $injector.get(serviceObj.service);
return {
type: service.type,
@@ -79,7 +79,7 @@ uiModules
const service = _.find(services, { type: type });
if (!service) return;
- $scope.editUrl = '#settings/objects/' + service.name + '/' + id + '?notFound=' + e.savedObjectType;
+ $scope.editUrl = '#management/kibana/objects/' + service.name + '/' + id + '?notFound=' + e.savedObjectType;
});
});
diff --git a/src/plugins/kibana/public/dashboard/services/saved_dashboards.js b/src/plugins/kibana/public/dashboard/services/saved_dashboards.js
index bca33d1a2f573..d90f5faa750f7 100644
--- a/src/plugins/kibana/public/dashboard/services/saved_dashboards.js
+++ b/src/plugins/kibana/public/dashboard/services/saved_dashboards.js
@@ -9,7 +9,7 @@ const module = uiModules.get('app/dashboard');
// Register this service with the saved object registry so it can be
// edited by the object editor.
-require('plugins/kibana/settings/saved_object_registry').register({
+require('plugins/kibana/management/saved_object_registry').register({
service: 'savedDashboards',
title: 'dashboards'
});
diff --git a/src/plugins/kibana/public/discover/controllers/discover.js b/src/plugins/kibana/public/discover/controllers/discover.js
index a8c0a01ef37bf..87ce5f4f74e0b 100644
--- a/src/plugins/kibana/public/discover/controllers/discover.js
+++ b/src/plugins/kibana/public/discover/controllers/discover.js
@@ -65,7 +65,7 @@ uiRoutes
return savedSearches.get($route.current.params.id)
.catch(courier.redirectWhenMissing({
'search': '/discover',
- 'index-pattern': '/settings/objects/savedSearches/' + $route.current.params.id
+ 'index-pattern': '/management/kibana/objects/savedSearches/' + $route.current.params.id
}));
}
}
diff --git a/src/plugins/kibana/public/discover/saved_searches/saved_searches.js b/src/plugins/kibana/public/discover/saved_searches/saved_searches.js
index 0244613baeccb..0ad2526d78bc8 100644
--- a/src/plugins/kibana/public/discover/saved_searches/saved_searches.js
+++ b/src/plugins/kibana/public/discover/saved_searches/saved_searches.js
@@ -11,7 +11,7 @@ const module = uiModules.get('discover/saved_searches', [
// Register this service with the saved object registry so it can be
// edited by the object editor.
-require('plugins/kibana/settings/saved_object_registry').register({
+require('plugins/kibana/management/saved_object_registry').register({
service: 'savedSearches',
title: 'searches'
});
diff --git a/src/plugins/kibana/public/kibana.js b/src/plugins/kibana/public/kibana.js
index 764f19dec9f77..bf96cf92207d2 100644
--- a/src/plugins/kibana/public/kibana.js
+++ b/src/plugins/kibana/public/kibana.js
@@ -11,7 +11,7 @@ import 'ui/autoload/all';
import 'plugins/kibana/discover/index';
import 'plugins/kibana/visualize/index';
import 'plugins/kibana/dashboard/index';
-import 'plugins/kibana/settings/index';
+import 'plugins/kibana/management/index';
import 'plugins/kibana/doc';
import 'ui/vislib';
import 'ui/agg_response';
diff --git a/src/plugins/kibana/public/management/app.html b/src/plugins/kibana/public/management/app.html
new file mode 100644
index 0000000000000..ae024a25622f0
--- /dev/null
+++ b/src/plugins/kibana/public/management/app.html
@@ -0,0 +1,23 @@
+
diff --git a/src/plugins/kibana/public/management/index.js b/src/plugins/kibana/public/management/index.js
new file mode 100644
index 0000000000000..03e3884df165a
--- /dev/null
+++ b/src/plugins/kibana/public/management/index.js
@@ -0,0 +1,64 @@
+import _ from 'lodash';
+
+import 'plugins/kibana/management/sections';
+import 'plugins/kibana/management/styles/main.less';
+import 'ui/filters/start_from';
+import 'ui/field_editor';
+import 'plugins/kibana/management/sections/indices/_indexed_fields';
+import 'plugins/kibana/management/sections/indices/_scripted_fields';
+import 'ui/directives/bread_crumbs';
+import uiRoutes from 'ui/routes';
+import uiModules from 'ui/modules';
+import appTemplate from 'plugins/kibana/management/app.html';
+import landingTemplate from 'plugins/kibana/management/landing.html';
+import chrome from 'ui/chrome/chrome';
+import management from 'ui/management';
+
+uiRoutes
+.when('/management', {
+ template: landingTemplate
+});
+
+require('ui/index_patterns/route_setup/load_default')({
+ notRequiredRe: /^\/management\/data\//,
+ whenMissingRedirectTo: '/management/data/index'
+});
+
+uiModules
+.get('apps/management')
+.directive('kbnManagementApp', function (Private, $route, $location, timefilter, buildNum, buildSha) {
+ return {
+ restrict: 'E',
+ template: appTemplate,
+ transclude: true,
+ scope: {
+ sectionName: '@section'
+ },
+
+ link: function ($scope) {
+ timefilter.enabled = false;
+ $scope.sections = management.items.inOrder;
+ $scope.section = management.getSection($scope.sectionName) || management;
+
+ if ($scope.section) {
+ $scope.section.items.forEach(item => {
+ item.class = `#${$location.path()}`.indexOf(item.url) > -1 ? 'active' : undefined;
+ });
+ }
+
+ management.getSection('kibana').info = `Build ${buildNum}, Commit SHA ${buildSha.substr(0, 8)}`;
+ }
+ };
+});
+
+uiModules
+.get('apps/management')
+.directive('kbnManagementLanding', function (kbnVersion) {
+ return {
+ restrict: 'E',
+ link: function ($scope) {
+ $scope.sections = management.items.inOrder;
+ $scope.kbnVersion = kbnVersion;
+ }
+ };
+});
diff --git a/src/plugins/kibana/public/management/landing.html b/src/plugins/kibana/public/management/landing.html
new file mode 100644
index 0000000000000..81a761c4e0c5e
--- /dev/null
+++ b/src/plugins/kibana/public/management/landing.html
@@ -0,0 +1,45 @@
+
+
+
+ Version: {{::kbnVersion}}
+
+
+
+
+
+
+ {{::section.display}}
+
+
+
+
+
+
+
+
+ {{::section.info}}
+
+
+
+
+
+
+
diff --git a/src/plugins/kibana/public/settings/saved_object_registry.js b/src/plugins/kibana/public/management/saved_object_registry.js
similarity index 100%
rename from src/plugins/kibana/public/settings/saved_object_registry.js
rename to src/plugins/kibana/public/management/saved_object_registry.js
diff --git a/src/plugins/kibana/public/management/sections/index.js b/src/plugins/kibana/public/management/sections/index.js
new file mode 100644
index 0000000000000..34a0f1e43b8de
--- /dev/null
+++ b/src/plugins/kibana/public/management/sections/index.js
@@ -0,0 +1,3 @@
+import 'plugins/kibana/management/sections/settings';
+import 'plugins/kibana/management/sections/objects';
+import 'plugins/kibana/management/sections/indices';
diff --git a/src/plugins/kibana/public/settings/sections/indices/_create.html b/src/plugins/kibana/public/management/sections/indices/_create.html
similarity index 97%
rename from src/plugins/kibana/public/settings/sections/indices/_create.html
rename to src/plugins/kibana/public/management/sections/indices/_create.html
index 4bf6c76fec6c5..6eaa9d95279a1 100644
--- a/src/plugins/kibana/public/settings/sections/indices/_create.html
+++ b/src/plugins/kibana/public/management/sections/indices/_create.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
-
-
+
+
diff --git a/src/plugins/kibana/public/settings/sections/indices/_create.js b/src/plugins/kibana/public/management/sections/indices/_create.js
similarity index 93%
rename from src/plugins/kibana/public/settings/sections/indices/_create.js
rename to src/plugins/kibana/public/management/sections/indices/_create.js
index 78069125040df..cb98e86824576 100644
--- a/src/plugins/kibana/public/settings/sections/indices/_create.js
+++ b/src/plugins/kibana/public/management/sections/indices/_create.js
@@ -3,21 +3,20 @@ import moment from 'moment';
import { IndexPatternMissingIndices } from 'ui/errors';
import 'ui/directives/validate_index_name';
import 'ui/directives/auto_select_if_only_one';
-import PluginsKibanaSettingsSectionsIndicesRefreshKibanaIndexProvider from 'plugins/kibana/settings/sections/indices/_refresh_kibana_index';
+import RefreshKibanaIndex from 'plugins/kibana/management/sections/indices/_refresh_kibana_index';
import uiRoutes from 'ui/routes';
import uiModules from 'ui/modules';
-import createTemplate from 'plugins/kibana/settings/sections/indices/_create.html';
-
+import createTemplate from 'plugins/kibana/management/sections/indices/_create.html';
uiRoutes
-.when('/settings/indices/', {
+.when('/management/data/index/', {
template: createTemplate
});
-uiModules.get('apps/settings')
-.controller('settingsIndicesCreate', function ($scope, kbnUrl, Private, Notifier, indexPatterns, es, config, Promise) {
+uiModules.get('apps/management')
+.controller('managementIndicesCreate', function ($scope, kbnUrl, Private, Notifier, indexPatterns, es, config, Promise) {
const notify = new Notifier();
- const refreshKibanaIndex = Private(PluginsKibanaSettingsSectionsIndicesRefreshKibanaIndexProvider);
+ const refreshKibanaIndex = Private(RefreshKibanaIndex);
const intervals = indexPatterns.intervals;
let samplePromise;
@@ -73,7 +72,7 @@ uiModules.get('apps/settings')
config.set('defaultIndex', indexPattern.id);
}
indexPatterns.cache.clear(indexPattern.id);
- kbnUrl.change('/settings/indices/' + indexPattern.id);
+ kbnUrl.change('/management/kibana/indices/' + indexPattern.id);
});
}
});
diff --git a/src/plugins/kibana/public/settings/sections/indices/_date_scripts.js b/src/plugins/kibana/public/management/sections/indices/_date_scripts.js
similarity index 100%
rename from src/plugins/kibana/public/settings/sections/indices/_date_scripts.js
rename to src/plugins/kibana/public/management/sections/indices/_date_scripts.js
diff --git a/src/plugins/kibana/public/settings/sections/indices/_edit.html b/src/plugins/kibana/public/management/sections/indices/_edit.html
similarity index 87%
rename from src/plugins/kibana/public/settings/sections/indices/_edit.html
rename to src/plugins/kibana/public/management/sections/indices/_edit.html
index ee0e6f65a307c..31c9d7bc8df4b 100644
--- a/src/plugins/kibana/public/settings/sections/indices/_edit.html
+++ b/src/plugins/kibana/public/management/sections/indices/_edit.html
@@ -1,13 +1,13 @@
-
-
-
+
+
+
-
-
+
+
diff --git a/src/plugins/kibana/public/settings/sections/indices/_edit.js b/src/plugins/kibana/public/management/sections/indices/_edit.js
similarity index 60%
rename from src/plugins/kibana/public/settings/sections/indices/_edit.js
rename to src/plugins/kibana/public/management/sections/indices/_edit.js
index c9c6388222b83..663f917356b4c 100644
--- a/src/plugins/kibana/public/settings/sections/indices/_edit.js
+++ b/src/plugins/kibana/public/management/sections/indices/_edit.js
@@ -1,38 +1,44 @@
import _ from 'lodash';
-import 'plugins/kibana/settings/sections/indices/_indexed_fields';
-import 'plugins/kibana/settings/sections/indices/_scripted_fields';
-import 'plugins/kibana/settings/sections/indices/_index_header';
-import PluginsKibanaSettingsSectionsIndicesRefreshKibanaIndexProvider from 'plugins/kibana/settings/sections/indices/_refresh_kibana_index';
+import 'plugins/kibana/management/sections/indices/_indexed_fields';
+import 'plugins/kibana/management/sections/indices/_scripted_fields';
+import 'plugins/kibana/management/sections/indices/_index_header';
+import RefreshKibanaIndex from 'plugins/kibana/management/sections/indices/_refresh_kibana_index';
import UrlProvider from 'ui/url';
-import PluginsKibanaSettingsSectionsIndicesFieldTypesProvider from 'plugins/kibana/settings/sections/indices/_field_types';
+import IndicesFieldTypesProvider from 'plugins/kibana/management/sections/indices/_field_types';
import uiRoutes from 'ui/routes';
import uiModules from 'ui/modules';
-import editTemplate from 'plugins/kibana/settings/sections/indices/_edit.html';
+import editTemplate from 'plugins/kibana/management/sections/indices/_edit.html';
uiRoutes
-.when('/settings/indices/:indexPatternId', {
+.when('/management/kibana/indices/:indexPatternId?', {
template: editTemplate,
resolve: {
- indexPattern: function ($route, courier) {
- return courier.indexPatterns.get($route.current.params.indexPatternId)
- .catch(courier.redirectWhenMissing('/settings/indices'));
+ indexPattern: function ($route, config, courier) {
+ const params = $route.current.params;
+
+ if (typeof params.indexPatternId === 'undefined') {
+ params.indexPatternId = config.get('defaultIndex');
+ }
+
+ return courier.indexPatterns.get(params.indexPatternId)
+ .catch(courier.redirectWhenMissing('/management/data/index'));
}
}
});
-uiModules.get('apps/settings')
-.controller('settingsIndicesEdit', function ($scope, $location, $route, config, courier, Notifier, Private, AppState, docTitle) {
+uiModules.get('apps/management')
+.controller('managementIndicesEdit', function ($scope, $location, $route, config, courier, Notifier, Private, AppState, docTitle) {
const notify = new Notifier();
const $state = $scope.state = new AppState();
- const refreshKibanaIndex = Private(PluginsKibanaSettingsSectionsIndicesRefreshKibanaIndexProvider);
+ const refreshKibanaIndex = Private(RefreshKibanaIndex);
$scope.kbnUrl = Private(UrlProvider);
$scope.indexPattern = $route.current.locals.indexPattern;
docTitle.change($scope.indexPattern.id);
const otherIds = _.without($route.current.locals.indexPatternIds, $scope.indexPattern.id);
- const fieldTypes = Private(PluginsKibanaSettingsSectionsIndicesFieldTypesProvider);
+ const fieldTypes = Private(IndicesFieldTypesProvider);
$scope.$watch('indexPattern.fields', function () {
$scope.fieldTypes = fieldTypes($scope.indexPattern);
});
@@ -65,7 +71,7 @@ uiModules.get('apps/settings')
courier.indexPatterns.delete($scope.indexPattern)
.then(refreshKibanaIndex)
.then(function () {
- $location.url('/settings/indices');
+ $location.url('/management/data/index');
})
.catch(notify.fatal);
};
diff --git a/src/plugins/kibana/public/settings/sections/indices/_field_controls.html b/src/plugins/kibana/public/management/sections/indices/_field_controls.html
similarity index 100%
rename from src/plugins/kibana/public/settings/sections/indices/_field_controls.html
rename to src/plugins/kibana/public/management/sections/indices/_field_controls.html
diff --git a/src/plugins/kibana/public/settings/sections/indices/_field_editor.html b/src/plugins/kibana/public/management/sections/indices/_field_editor.html
similarity index 63%
rename from src/plugins/kibana/public/settings/sections/indices/_field_editor.html
rename to src/plugins/kibana/public/management/sections/indices/_field_editor.html
index c5f0312503219..d1427e780f274 100644
--- a/src/plugins/kibana/public/settings/sections/indices/_field_editor.html
+++ b/src/plugins/kibana/public/management/sections/indices/_field_editor.html
@@ -1,7 +1,7 @@
-
-
+
+