mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
setup module was not using the module service, now it is and is removeing it self form the module internal list using module.close()
This commit is contained in:
parent
64cd822bd1
commit
0b217e1978
2 changed files with 52 additions and 32 deletions
|
@ -4,6 +4,7 @@ define(function (require) {
|
|||
var $ = require('jquery');
|
||||
var configFile = require('../config');
|
||||
var nextTick = require('utils/next_tick');
|
||||
var modules = require('modules');
|
||||
|
||||
/**
|
||||
* Setup the kibana application, ensuring that the kibanaIndex exists,
|
||||
|
@ -26,9 +27,7 @@ define(function (require) {
|
|||
// create the setup module, it should require the same things
|
||||
// that kibana currently requires, which should only include the
|
||||
// loaded modules
|
||||
var setup = angular.module('setup');
|
||||
var unlink = require('modules').link(setup);
|
||||
|
||||
var setup = modules.get('setup', ['elasticsearch']);
|
||||
var appEl = document.createElement('div');
|
||||
var kibanaIndexExists;
|
||||
|
||||
|
@ -48,8 +47,8 @@ define(function (require) {
|
|||
// ready to go, remove the appEl, close services and boot be done
|
||||
angular.element(appEl).remove();
|
||||
|
||||
// stop adding modules to this one
|
||||
unlink();
|
||||
// linked modules should no longer depend on this module
|
||||
setup.close();
|
||||
|
||||
console.log('booting kibana');
|
||||
return done(err);
|
||||
|
|
|
@ -4,38 +4,59 @@ define(function (require) {
|
|||
var _ = require('lodash');
|
||||
var links = [];
|
||||
|
||||
return {
|
||||
link: function (module) {
|
||||
// as modules are defined they will be set as requirements for this app
|
||||
links.push(module);
|
||||
function link(module) {
|
||||
// as modules are defined they will be set as requirements for this app
|
||||
links.push(module);
|
||||
|
||||
// merge in the existing modules
|
||||
module.requires = _.union(module.requires, _.keys(existingModules));
|
||||
// merge in the existing modules
|
||||
module.requires = _.union(module.requires, _.keys(existingModules));
|
||||
}
|
||||
|
||||
// function to call that will unlink the module
|
||||
return function unlink() {
|
||||
var i = links.indexOf(module);
|
||||
if (i > -1) links.splice(i, 1);
|
||||
};
|
||||
},
|
||||
get: function (moduleName, requires) {
|
||||
var module = existingModules[moduleName];
|
||||
function get(moduleName, requires) {
|
||||
var module = existingModules[moduleName];
|
||||
|
||||
if (module === void 0) {
|
||||
// create the module
|
||||
module = existingModules[moduleName] = angular.module(moduleName, []);
|
||||
// ensure that it is required by linked modules
|
||||
_.each(links, function (app) {
|
||||
if (!~app.requires.indexOf(moduleName)) app.requires.push(moduleName);
|
||||
});
|
||||
}
|
||||
if (module === void 0) {
|
||||
// create the module
|
||||
module = existingModules[moduleName] = angular.module(moduleName, []);
|
||||
|
||||
if (requires) {
|
||||
// update requires list with possibly new requirements
|
||||
module.requires = _.union(module.requires, requires);
|
||||
}
|
||||
module.close = _.partial(close, moduleName);
|
||||
|
||||
return module;
|
||||
// ensure that it is required by linked modules
|
||||
_.each(links, function (app) {
|
||||
if (!~app.requires.indexOf(moduleName)) app.requires.push(moduleName);
|
||||
});
|
||||
}
|
||||
|
||||
if (requires) {
|
||||
// update requires list with possibly new requirements
|
||||
module.requires = _.union(module.requires, requires);
|
||||
}
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
function close(moduleName) {
|
||||
var module = existingModules[moduleName];
|
||||
|
||||
// already closed
|
||||
if (!module) return;
|
||||
|
||||
// if the module is currently linked, unlink it
|
||||
var i = links.indexOf(module);
|
||||
if (i > -1) links.splice(i, 1);
|
||||
|
||||
// remove from linked modules list of required modules
|
||||
_.each(links, function (app) {
|
||||
_.pull(app.requires, moduleName);
|
||||
});
|
||||
|
||||
// remove module from existingModules
|
||||
delete existingModules[moduleName];
|
||||
}
|
||||
|
||||
return {
|
||||
link: link,
|
||||
get: get,
|
||||
close: close
|
||||
};
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue