blob: 6cd307395318d1d88707482faf9b2e8e389e024a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
(function(window, $) {
'use strict';
var IncubatorComponentLoader = function () {
this.components = [];
};
IncubatorComponentLoader.prototype = {
initialize: function (icinga) {
this.icinga = icinga;
// Trigger module loading - always
icinga.module('incubator');
$.each(this.components, function (_, component) {
component.initialize(icinga);
});
icinga.logger.info('Incubator is ready');
},
addComponent: function (component) {
this.components.push(component);
},
destroy: function () {
// Eventually: this.unbindEventHandlers();
$.each(this.components, function (_, component) {
if (typeof component.destroy === 'function') {
component.destroy();
}
});
this.components = [];
this.icinga = null;
}
};
var startup;
var w = window;
function safeLaunch()
{
if (typeof(w.icinga) !== 'undefined' && w.icinga.initialized) {
clearInterval(startup);
w.incubatorComponentLoader.initialize(w.icinga);
} else {
console.log('Incubator module is still waiting for icinga');
}
}
$(document).ready(function () {
startup = setInterval(safeLaunch, 30);
safeLaunch();
});
w.incubatorComponentLoader = new IncubatorComponentLoader();
})(window, jQuery);
|