mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
moved the settings app's files into more logical groups
This commit is contained in:
parent
9b7f6fa2e8
commit
9c3765e3d4
18 changed files with 146 additions and 136 deletions
|
@ -1,5 +0,0 @@
|
|||
define(function (require) {
|
||||
// sections are defined by the controllers required by the index, and are defined by
|
||||
// the controller, but written here so that they can easily be shared
|
||||
return [];
|
||||
});
|
|
@ -3,11 +3,6 @@ define(function (require, module, exports) {
|
|||
|
||||
require('css!./styles/main.css');
|
||||
require('filters/start_from');
|
||||
require('./directives/advanced');
|
||||
require('./directives/objects');
|
||||
require('./directives/indices/indices');
|
||||
require('./directives/indices/create');
|
||||
require('./directives/indices/edit');
|
||||
|
||||
require('routes')
|
||||
.when('/settings', {
|
||||
|
@ -15,21 +10,17 @@ define(function (require, module, exports) {
|
|||
});
|
||||
|
||||
require('modules').get('app/settings')
|
||||
.directive('kbnSettingsApp', function ($route, timefilter) {
|
||||
.directive('kbnSettingsApp', function (Private, $route, timefilter) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
template: require('text!./partials/app.html'),
|
||||
template: require('text!./app.html'),
|
||||
transclude: true,
|
||||
scope: {
|
||||
sectionName: '@section'
|
||||
},
|
||||
link: function ($scope, $el) {
|
||||
|
||||
timefilter.enabled(false);
|
||||
|
||||
var sections = require('./_sections');
|
||||
|
||||
$scope.sections = _.sortBy(sections, 'order');
|
||||
$scope.sections = require('./sections/index');
|
||||
$scope.section = _.find($scope.sections, { name: $scope.sectionName });
|
||||
|
||||
$scope.sections.forEach(function (section) {
|
||||
|
|
|
@ -2,16 +2,9 @@ define(function (require) {
|
|||
var _ = require('lodash');
|
||||
var configDefaults = require('config/defaults');
|
||||
|
||||
require('../_sections').push({
|
||||
order: 2,
|
||||
name: 'advanced',
|
||||
display: 'Advanced',
|
||||
url: '#/settings/advanced'
|
||||
});
|
||||
|
||||
require('routes')
|
||||
.when('/settings/advanced', {
|
||||
template: require('text!../partials/advanced.html')
|
||||
template: require('text!./index.html')
|
||||
});
|
||||
|
||||
require('modules').get('app/settings')
|
||||
|
@ -93,4 +86,11 @@ define(function (require) {
|
|||
}
|
||||
};
|
||||
});
|
||||
|
||||
return {
|
||||
order: 2,
|
||||
name: 'advanced',
|
||||
display: 'Advanced',
|
||||
url: '#/settings/advanced'
|
||||
};
|
||||
});
|
9
src/kibana/apps/settings/sections/index.js
Normal file
9
src/kibana/apps/settings/sections/index.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
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('./indices/index'),
|
||||
require('./advanced/index'),
|
||||
require('./objects/index')
|
||||
];
|
||||
});
|
|
@ -1,6 +1,6 @@
|
|||
<kbn-settings-app section="indices">
|
||||
<kbn-settings-indices>
|
||||
<div ng-controller="kbnSettingsIndicesCreate" class="kbn-settings-indices-create">
|
||||
<div ng-controller="settingsIndicesCreate" class="kbn-settings-indices-create">
|
||||
<div class="page-header">
|
||||
<h1>Configure an index pattern</h1>
|
||||
In order to use Kibana you must configure at least one index pattern. Index patterns are
|
|
@ -3,15 +3,16 @@ define(function (require) {
|
|||
var moment = require('moment');
|
||||
var errors = require('errors');
|
||||
|
||||
require('routes').when('/settings/indices/', {
|
||||
template: require('text!../../partials/indices/create.html')
|
||||
require('routes')
|
||||
.when('/settings/indices/', {
|
||||
template: require('text!./_create.html')
|
||||
});
|
||||
|
||||
require('modules').get('app/settings')
|
||||
.controller('kbnSettingsIndicesCreate', function ($scope, $location, Notifier, Private, indexPatterns, es, config) {
|
||||
.controller('settingsIndicesCreate', function ($scope, $location, Private, Notifier, indexPatterns, es, config) {
|
||||
var notify = new Notifier();
|
||||
var refreshKibanaIndex = Private(require('./_refresh_kibana_index'));
|
||||
var MissingIndices = errors.IndexPatternMissingIndices;
|
||||
var refreshKibanaIndex = Private(require('./_refresh_kibana_index'));
|
||||
var intervals = indexPatterns.intervals;
|
||||
|
||||
// this and child scopes will write pattern vars here
|
|
@ -1,6 +1,6 @@
|
|||
<kbn-settings-app section="indices">
|
||||
<kbn-settings-indices>
|
||||
<div ng-controller="kbnSettingsIndicesEdit" bindonce>
|
||||
<div ng-controller="settingsIndicesEdit" bindonce>
|
||||
<div class="page-header">
|
||||
<h1>
|
||||
<i ng-if="defaultIndex === indexPattern.id" class="fa fa-star"></i>
|
|
@ -1,10 +1,9 @@
|
|||
define(function (require) {
|
||||
var _ = require('lodash');
|
||||
var module = require('modules').get('app/settings');
|
||||
|
||||
require('routes')
|
||||
.when('/settings/indices/:id', {
|
||||
template: require('text!../../partials/indices/edit.html'),
|
||||
template: require('text!./_edit.html'),
|
||||
resolve: {
|
||||
indexPattern: function ($route, courier) {
|
||||
return courier.indexPatterns.get($route.current.params.id)
|
||||
|
@ -13,7 +12,8 @@ define(function (require) {
|
|||
}
|
||||
});
|
||||
|
||||
module.controller('kbnSettingsIndicesEdit', function ($scope, $location, $route, config, courier, Notifier, Private) {
|
||||
require('modules').get('app/settings')
|
||||
.controller('settingsIndicesEdit', function ($scope, $location, $route, config, courier, Notifier, Private) {
|
||||
var notify = new Notifier();
|
||||
var refreshKibanaIndex = Private(require('./_refresh_kibana_index'));
|
||||
|
||||
|
@ -45,7 +45,6 @@ define(function (require) {
|
|||
.then(refreshKibanaIndex)
|
||||
.then(function () {
|
||||
$location.url('/settings/indices');
|
||||
$route.reload();
|
||||
})
|
||||
.catch(notify.fatal);
|
||||
};
|
|
@ -1,13 +1,10 @@
|
|||
define(function (require) {
|
||||
var _ = require('lodash');
|
||||
|
||||
require('../../_sections').push({
|
||||
order: 1,
|
||||
name: 'indices',
|
||||
display: 'Indices',
|
||||
url: '#/settings/indices',
|
||||
});
|
||||
require('./_create');
|
||||
require('./_edit');
|
||||
|
||||
// add a dependency to all of the subsection routes
|
||||
require('routes')
|
||||
.addResolves(/settings\/indices/, {
|
||||
indexPatternIds: function (courier) {
|
||||
|
@ -15,12 +12,13 @@ define(function (require) {
|
|||
}
|
||||
});
|
||||
|
||||
// wrapper directive, which sets some global stuff up like the left nav
|
||||
require('modules').get('app/settings')
|
||||
.directive('kbnSettingsIndices', function ($route, config) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
transclude: true,
|
||||
template: require('text!../../partials/indices/indices.html'),
|
||||
template: require('text!./index.html'),
|
||||
link: function ($scope) {
|
||||
$scope.edittingId = $route.current.params.id;
|
||||
$scope.defaultIndex = config.get('defaultIndex');
|
||||
|
@ -46,5 +44,9 @@ define(function (require) {
|
|||
};
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
return {
|
||||
name: 'indices',
|
||||
display: 'Indices',
|
||||
url: '#/settings/indices',
|
||||
};
|
||||
});
|
84
src/kibana/apps/settings/sections/objects/_objects.js
Normal file
84
src/kibana/apps/settings/sections/objects/_objects.js
Normal file
|
@ -0,0 +1,84 @@
|
|||
define(function (require) {
|
||||
var _ = require('lodash');
|
||||
var registry = require('../../saved_object_registry');
|
||||
|
||||
require('routes')
|
||||
.when('/settings/objects', {
|
||||
template: require('text!./_objects.html')
|
||||
});
|
||||
|
||||
require('modules').get('app/settings')
|
||||
.directive('kbnSettingsObjects', function (config, Notifier, Private) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
controller: function ($scope, $injector, $q, AppState) {
|
||||
|
||||
var $state = $scope.state = new AppState();
|
||||
|
||||
var resetCheckBoxes = function () {
|
||||
$scope.deleteAll = false;
|
||||
_.each($scope.services, function (service) {
|
||||
_.each(service.data, function (item) {
|
||||
item.checked = false;
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
var getData = function (filter) {
|
||||
var services = registry.all().map(function (obj) {
|
||||
var service = $injector.get(obj.service);
|
||||
return service.find(filter).then(function (data) {
|
||||
return { service: obj.service, title: obj.title, data: data.hits, hits: data.total };
|
||||
});
|
||||
});
|
||||
$q.all(services).then(function (data) {
|
||||
$scope.services = _.sortBy(data, 'title');
|
||||
if (!$state.tab) {
|
||||
$scope.changeTab($scope.services[0]);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.$watch('deleteAll', function (checked) {
|
||||
var service = _.find($scope.services, { title: $state.tab });
|
||||
if (!service) return;
|
||||
_.each(service.data, function (item) {
|
||||
item.checked = checked;
|
||||
});
|
||||
$scope.toggleDeleteBtn(service);
|
||||
});
|
||||
|
||||
$scope.toggleDeleteBtn = function (service) {
|
||||
$scope.deleteAllBtn = _.some(service.data, { checked: true});
|
||||
};
|
||||
|
||||
$scope.bulkDelete = function () {
|
||||
var serviceObj = _.find($scope.services, { title: $state.tab });
|
||||
if (!serviceObj) return;
|
||||
var service = $injector.get(serviceObj.service);
|
||||
var ids = _(serviceObj.data)
|
||||
.filter({ checked: true})
|
||||
.pluck('id')
|
||||
.value();
|
||||
service.delete(ids).then(function (resp) {
|
||||
serviceObj.data = _.filter(serviceObj.data, function (obj) {
|
||||
return !obj.checked;
|
||||
});
|
||||
resetCheckBoxes();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.changeTab = function (obj) {
|
||||
$state.tab = obj.title;
|
||||
$state.commit();
|
||||
resetCheckBoxes();
|
||||
};
|
||||
|
||||
$scope.$watch('advancedFilter', function (filter) {
|
||||
getData(filter);
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
|
@ -1,102 +1,15 @@
|
|||
define(function (require) {
|
||||
var _ = require('lodash');
|
||||
var inflection = require('inflection');
|
||||
var registry = require('../saved_object_registry');
|
||||
var rison = require('utils/rison');
|
||||
|
||||
require('angular-ui-ace');
|
||||
require('angular-elastic');
|
||||
require('directives/confirm_click');
|
||||
|
||||
require('../_sections').push({
|
||||
order: 3,
|
||||
name: 'objects',
|
||||
display: 'Objects',
|
||||
url: '#/settings/objects'
|
||||
});
|
||||
var registry = require('../../saved_object_registry');
|
||||
|
||||
require('routes')
|
||||
.when('/settings/objects', {
|
||||
template: require('text!../partials/objects.html')
|
||||
})
|
||||
.when('/settings/objects/:service/:id', {
|
||||
template: require('text!../partials/objects_view.html')
|
||||
template: require('text!./_view.html')
|
||||
});
|
||||
|
||||
require('modules').get('app/settings', ['ui.ace', 'monospaced.elastic'])
|
||||
.directive('kbnSettingsObjects', function (config, Notifier, Private) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
controller: function ($scope, $injector, $q, AppState) {
|
||||
|
||||
var $state = $scope.state = new AppState();
|
||||
|
||||
var resetCheckBoxes = function () {
|
||||
$scope.deleteAll = false;
|
||||
_.each($scope.services, function (service) {
|
||||
_.each(service.data, function (item) {
|
||||
item.checked = false;
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
var getData = function (filter) {
|
||||
var services = registry.all().map(function (obj) {
|
||||
var service = $injector.get(obj.service);
|
||||
return service.find(filter).then(function (data) {
|
||||
return { service: obj.service, title: obj.title, data: data.hits, hits: data.total };
|
||||
});
|
||||
});
|
||||
$q.all(services).then(function (data) {
|
||||
$scope.services = _.sortBy(data, 'title');
|
||||
if (!$state.tab) {
|
||||
$scope.changeTab($scope.services[0]);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.$watch('deleteAll', function (checked) {
|
||||
var service = _.find($scope.services, { title: $state.tab });
|
||||
if (!service) return;
|
||||
_.each(service.data, function (item) {
|
||||
item.checked = checked;
|
||||
});
|
||||
$scope.toggleDeleteBtn(service);
|
||||
});
|
||||
|
||||
$scope.toggleDeleteBtn = function (service) {
|
||||
$scope.deleteAllBtn = _.some(service.data, { checked: true});
|
||||
};
|
||||
|
||||
$scope.bulkDelete = function () {
|
||||
var serviceObj = _.find($scope.services, { title: $state.tab });
|
||||
if (!serviceObj) return;
|
||||
var service = $injector.get(serviceObj.service);
|
||||
var ids = _(serviceObj.data)
|
||||
.filter({ checked: true})
|
||||
.pluck('id')
|
||||
.value();
|
||||
service.delete(ids).then(function (resp) {
|
||||
serviceObj.data = _.filter(serviceObj.data, function (obj) {
|
||||
return !obj.checked;
|
||||
});
|
||||
resetCheckBoxes();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.changeTab = function (obj) {
|
||||
$state.tab = obj.title;
|
||||
$state.commit();
|
||||
resetCheckBoxes();
|
||||
};
|
||||
|
||||
$scope.$watch('advancedFilter', function (filter) {
|
||||
getData(filter);
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
})
|
||||
require('modules').get('app/settings')
|
||||
.directive('kbnSettingsObjectsView', function (config, Notifier) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
|
@ -218,5 +131,4 @@ define(function (require) {
|
|||
}
|
||||
};
|
||||
});
|
||||
|
||||
});
|
||||
});
|
17
src/kibana/apps/settings/sections/objects/index.js
Normal file
17
src/kibana/apps/settings/sections/objects/index.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
define(function (require) {
|
||||
require('./_view');
|
||||
require('./_objects');
|
||||
|
||||
require('angular-ui-ace');
|
||||
require('angular-elastic');
|
||||
require('directives/confirm_click');
|
||||
|
||||
// add the module deps to this module
|
||||
require('modules').get('app/settings', ['ui.ace', 'monospaced.elastic']);
|
||||
|
||||
return {
|
||||
name: 'objects',
|
||||
display: 'Objects',
|
||||
url: '#/settings/objects'
|
||||
};
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue