snappymail/dev/bootstrap.jsx
RainLoop Team 08ccf55577 js -> jsx
2016-06-07 00:58:44 +03:00

81 lines
1.7 KiB
JavaScript

import window from 'window';
import _ from '_';
import $ from '$';
import {kill_CtrlA_CtrlS, detectDropdownVisibility, createCommand} from 'Common/Utils';
import {$win, $html, data as GlobalsData, bMobileDevice} from 'Common/Globals';
import Plugins from 'Common/Plugins';
import Translator from 'Common/Translator';
import EmailModel from 'Model/Email';
import * as Enums from 'Common/Enums';
export default (App) => {
GlobalsData.__APP__ = App;
$win
.on('keydown', kill_CtrlA_CtrlS)
.on('unload', () => {
GlobalsData.bUnload = true;
})
;
$html
.addClass(bMobileDevice ? 'mobile' : 'no-mobile')
.on('click.dropdown.data-api', () => {
detectDropdownVisibility();
})
;
const rl = window.rl || {};
rl.i18n = _.bind(Translator.i18n, Translator);
rl.addHook = _.bind(Plugins.addHook, Plugins);
rl.settingsGet = _.bind(Plugins.mainSettingsGet, Plugins);
rl.createCommand = createCommand;
rl.addSettingsViewModel = _.bind(Plugins.addSettingsViewModel, Plugins);
rl.addSettingsViewModelForAdmin = _.bind(Plugins.addSettingsViewModelForAdmin, Plugins);
rl.pluginRemoteRequest = _.bind(Plugins.remoteRequest, Plugins);
rl.pluginSettingsGet = _.bind(Plugins.settingsGet, Plugins);
rl.EmailModel = EmailModel;
rl.Enums = Enums;
window.rl = rl;
window.__APP_BOOT = (fErrorCallback) => {
$(() => {
_.delay(() => {
if (window.rainloopTEMPLATES && window.rainloopTEMPLATES[0])
{
$('#rl-templates').html(window.rainloopTEMPLATES[0]);
_.delay(() => {
App.bootstart();
$html
.removeClass('no-js rl-booted-trigger')
.addClass('rl-booted')
;
}, 10);
}
else
{
fErrorCallback();
}
window.__APP_BOOT = null;
}, 10);
});
};
};