mirror of
https://github.com/grafana/grafana.git
synced 2024-11-26 10:50:37 -06:00
108 lines
2.8 KiB
JavaScript
108 lines
2.8 KiB
JavaScript
define([
|
|
'angular',
|
|
'jquery',
|
|
'lodash',
|
|
'require',
|
|
'bootstrap',
|
|
'angular-route',
|
|
'angular-sanitize',
|
|
'angular-strap',
|
|
'angular-dragdrop',
|
|
'angular-ui',
|
|
'bindonce',
|
|
'app/core/core',
|
|
],
|
|
function (angular, $, _, appLevelRequire) {
|
|
"use strict";
|
|
|
|
var app = angular.module('grafana', []);
|
|
var register_fns = {};
|
|
var preBootModules = [];
|
|
|
|
// This stores the grafana version number
|
|
app.constant('grafanaVersion',"@grafanaVersion@");
|
|
|
|
/**
|
|
* Tells the application to watch the module, once bootstraping has completed
|
|
* the modules controller, service, etc. functions will be overwritten to register directly
|
|
* with this application.
|
|
* @param {[type]} module [description]
|
|
* @return {[type]} [description]
|
|
*/
|
|
app.useModule = function (module) {
|
|
if (preBootModules) {
|
|
preBootModules.push(module);
|
|
} else {
|
|
_.extend(module, register_fns);
|
|
}
|
|
return module;
|
|
};
|
|
|
|
app.config(function($locationProvider, $controllerProvider, $compileProvider, $filterProvider, $provide) {
|
|
register_fns.controller = $controllerProvider.register;
|
|
register_fns.directive = $compileProvider.directive;
|
|
register_fns.factory = $provide.factory;
|
|
register_fns.service = $provide.service;
|
|
register_fns.filter = $filterProvider.register;
|
|
});
|
|
|
|
var apps_deps = [
|
|
'grafana.core',
|
|
'ngRoute',
|
|
'ngSanitize',
|
|
'$strap.directives',
|
|
'ang-drag-drop',
|
|
'grafana',
|
|
'pasvaz.bindonce',
|
|
'ui.bootstrap',
|
|
'ui.bootstrap.tpls',
|
|
];
|
|
|
|
var module_types = ['controllers', 'directives', 'factories', 'services', 'filters', 'routes'];
|
|
|
|
_.each(module_types, function (type) {
|
|
var module_name = 'grafana.'+type;
|
|
// create the module
|
|
app.useModule(angular.module(module_name, []));
|
|
// push it into the apps dependencies
|
|
apps_deps.push(module_name);
|
|
});
|
|
|
|
var preBootRequires = [
|
|
'app/features/all',
|
|
];
|
|
|
|
app.boot = function() {
|
|
require(preBootRequires, function () {
|
|
|
|
// disable tool tip animation
|
|
$.fn.tooltip.defaults.animation = false;
|
|
|
|
// bootstrap the app
|
|
angular
|
|
.element(document)
|
|
.ready(function() {
|
|
angular.bootstrap(document, apps_deps)
|
|
.invoke(['$rootScope', function ($rootScope) {
|
|
_.each(preBootModules, function (module) {
|
|
_.extend(module, register_fns);
|
|
});
|
|
|
|
preBootModules = null;
|
|
|
|
$rootScope.requireContext = appLevelRequire;
|
|
$rootScope.require = function (deps, fn) {
|
|
var $scope = this;
|
|
$scope.requireContext(deps, function () {
|
|
var deps = _.toArray(arguments);
|
|
fn.apply($scope, deps);
|
|
});
|
|
};
|
|
}]);
|
|
});
|
|
});
|
|
};
|
|
|
|
return app;
|
|
});
|