snappymail/dev/Boots/Boot.js

77 lines
1.8 KiB
JavaScript
Raw Normal View History

2014-08-22 23:08:56 +08:00
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
2014-08-25 15:10:51 +08:00
'use strict';
2014-08-22 23:08:56 +08:00
(function (module) {
var
window = require('../External/window.js'),
2014-08-25 15:10:51 +08:00
_ = require('../External/underscore.js'),
2014-08-22 23:08:56 +08:00
$ = require('../External/jquery.js'),
$window = require('../External/$window.js'),
$html = require('../External/$html.js'),
2014-08-25 15:10:51 +08:00
2014-08-22 23:08:56 +08:00
Globals = require('../Common/Globals.js'),
Plugins = require('../Common/Plugins.js'),
Utils = require('../Common/Utils.js')
;
2014-08-25 15:10:51 +08:00
module.exports = function (App) {
2014-08-22 23:08:56 +08:00
2014-08-25 15:10:51 +08:00
Globals.__RL = App;
2014-08-22 23:08:56 +08:00
2014-08-25 15:10:51 +08:00
App.setupSettings();
2014-08-22 23:08:56 +08:00
2014-08-25 15:10:51 +08:00
Plugins.__boot = App;
Plugins.__remote = App.remote();
Plugins.__data = App.data();
2014-08-22 23:08:56 +08:00
$html.addClass(Globals.bMobileDevice ? 'mobile' : 'no-mobile');
$window.keydown(Utils.killCtrlAandS).keyup(Utils.killCtrlAandS);
$window.unload(function () {
Globals.bUnload = true;
});
$html.on('click.dropdown.data-api', function () {
Utils.detectDropdownVisibility();
});
// export
window['rl'] = window['rl'] || {};
window['rl']['addHook'] = Plugins.addHook;
window['rl']['settingsGet'] = Plugins.mainSettingsGet;
window['rl']['remoteRequest'] = Plugins.remoteRequest;
window['rl']['pluginSettingsGet'] = Plugins.settingsGet;
window['rl']['createCommand'] = Utils.createCommand;
window['rl']['EmailModel'] = require('../Models/EmailModel.js');
window['rl']['Enums'] = require('../Common/Enums.js');
window['__RLBOOT'] = function (fCall) {
// boot
$(function () {
if (window['rainloopTEMPLATES'] && window['rainloopTEMPLATES'][0])
{
$('#rl-templates').html(window['rainloopTEMPLATES'][0]);
_.delay(function () {
2014-08-25 15:10:51 +08:00
App.bootstart();
2014-08-22 23:08:56 +08:00
$html.removeClass('no-js rl-booted-trigger').addClass('rl-booted');
}, 50);
}
else
{
fCall(false);
}
window['__RLBOOT'] = null;
});
};
};
}(module));