Code refactoring

This commit is contained in:
RainLoop Team 2014-08-26 19:24:47 +04:00
parent 4a95dd6195
commit 36329110e5
81 changed files with 3474 additions and 2124 deletions

View file

@ -2,5 +2,5 @@
(function (require) { (function (require) {
'use strict'; 'use strict';
require('Boot')(require('./Boots/AdminApp.js')); require('./Boot.js')(require('./Apps/AdminApp.js'));
}(require)); }(require));

View file

@ -48,40 +48,40 @@
AdminApp.prototype.setupSettings = function () AdminApp.prototype.setupSettings = function ()
{ {
kn.addSettingsViewModel(require('../Admin/AdminSettingsGeneral.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsGeneral.js'),
'AdminSettingsGeneral', 'General', 'general', true); 'AdminSettingsGeneral', 'General', 'general', true);
kn.addSettingsViewModel(require('../Admin/AdminSettingsLogin.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsLogin.js'),
'AdminSettingsLogin', 'Login', 'login'); 'AdminSettingsLogin', 'Login', 'login');
if (AppSettings.capa(Enums.Capa.Prem)) if (AppSettings.capa(Enums.Capa.Prem))
{ {
kn.addSettingsViewModel(require('../Admin/AdminSettingsBranding.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsBranding.js'),
'AdminSettingsBranding', 'Branding', 'branding'); 'AdminSettingsBranding', 'Branding', 'branding');
} }
kn.addSettingsViewModel(require('../Admin/AdminSettingsContacts.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsContacts.js'),
'AdminSettingsContacts', 'Contacts', 'contacts'); 'AdminSettingsContacts', 'Contacts', 'contacts');
kn.addSettingsViewModel(require('../Admin/AdminSettingsDomains.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsDomains.js'),
'AdminSettingsDomains', 'Domains', 'domains'); 'AdminSettingsDomains', 'Domains', 'domains');
kn.addSettingsViewModel(require('../Admin/AdminSettingsSecurity.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsSecurity.js'),
'AdminSettingsSecurity', 'Security', 'security'); 'AdminSettingsSecurity', 'Security', 'security');
kn.addSettingsViewModel(require('../Admin/AdminSettingsSocial.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsSocial.js'),
'AdminSettingsSocial', 'Social', 'social'); 'AdminSettingsSocial', 'Social', 'social');
kn.addSettingsViewModel(require('../Admin/AdminSettingsPlugins.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsPlugins.js'),
'AdminSettingsPlugins', 'Plugins', 'plugins'); 'AdminSettingsPlugins', 'Plugins', 'plugins');
kn.addSettingsViewModel(require('../Admin/AdminSettingsPackages.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsPackages.js'),
'AdminSettingsPackages', 'Packages', 'packages'); 'AdminSettingsPackages', 'Packages', 'packages');
kn.addSettingsViewModel(require('../Admin/AdminSettingsLicensing.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsLicensing.js'),
'AdminSettingsLicensing', 'Licensing', 'licensing'); 'AdminSettingsLicensing', 'Licensing', 'licensing');
kn.addSettingsViewModel(require('../Admin/AdminSettingsAbout.js'), kn.addSettingsViewModel(require('../Settings/Admin/AdminSettingsAbout.js'),
'AdminSettingsAbout', 'About', 'about'); 'AdminSettingsAbout', 'About', 'about');
return true; return true;

View file

@ -125,41 +125,41 @@
RainLoopApp.prototype.setupSettings = function () RainLoopApp.prototype.setupSettings = function ()
{ {
kn.addSettingsViewModel(require('../Settings/SettingsGeneral.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsGeneral.js'),
'SettingsGeneral', 'SETTINGS_LABELS/LABEL_GENERAL_NAME', 'general', true); 'SettingsGeneral', 'SETTINGS_LABELS/LABEL_GENERAL_NAME', 'general', true);
if (AppSettings.settingsGet('ContactsIsAllowed')) if (AppSettings.settingsGet('ContactsIsAllowed'))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsContacts.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsContacts.js'),
'SettingsContacts', 'SETTINGS_LABELS/LABEL_CONTACTS_NAME', 'contacts'); 'SettingsContacts', 'SETTINGS_LABELS/LABEL_CONTACTS_NAME', 'contacts');
} }
if (AppSettings.capa(Enums.Capa.AdditionalAccounts)) if (AppSettings.capa(Enums.Capa.AdditionalAccounts))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsAccounts.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsAccounts.js'),
'SettingsAccounts', 'SETTINGS_LABELS/LABEL_ACCOUNTS_NAME', 'accounts'); 'SettingsAccounts', 'SETTINGS_LABELS/LABEL_ACCOUNTS_NAME', 'accounts');
} }
if (AppSettings.capa(Enums.Capa.AdditionalIdentities)) if (AppSettings.capa(Enums.Capa.AdditionalIdentities))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsIdentities.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsIdentities.js'),
'SettingsIdentities', 'SETTINGS_LABELS/LABEL_IDENTITIES_NAME', 'identities'); 'SettingsIdentities', 'SETTINGS_LABELS/LABEL_IDENTITIES_NAME', 'identities');
} }
else else
{ {
kn.addSettingsViewModel(require('../Settings/SettingsIdentity.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsIdentity.js'),
'SettingsIdentity', 'SETTINGS_LABELS/LABEL_IDENTITY_NAME', 'identity'); 'SettingsIdentity', 'SETTINGS_LABELS/LABEL_IDENTITY_NAME', 'identity');
} }
if (AppSettings.capa(Enums.Capa.Filters)) if (AppSettings.capa(Enums.Capa.Filters))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsFilters.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsFilters.js'),
'SettingsFilters', 'SETTINGS_LABELS/LABEL_FILTERS_NAME', 'filters'); 'SettingsFilters', 'SETTINGS_LABELS/LABEL_FILTERS_NAME', 'filters');
} }
if (AppSettings.capa(Enums.Capa.TwoFactor)) if (AppSettings.capa(Enums.Capa.TwoFactor))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsSecurity.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsSecurity.js'),
'SettingsSecurity', 'SETTINGS_LABELS/LABEL_SECURITY_NAME', 'security'); 'SettingsSecurity', 'SETTINGS_LABELS/LABEL_SECURITY_NAME', 'security');
} }
@ -167,28 +167,28 @@
AppSettings.settingsGet('AllowFacebookSocial') || AppSettings.settingsGet('AllowFacebookSocial') ||
AppSettings.settingsGet('AllowTwitterSocial')) AppSettings.settingsGet('AllowTwitterSocial'))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsSocial.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsSocial.js'),
'SettingsSocial', 'SETTINGS_LABELS/LABEL_SOCIAL_NAME', 'social'); 'SettingsSocial', 'SETTINGS_LABELS/LABEL_SOCIAL_NAME', 'social');
} }
if (AppSettings.settingsGet('ChangePasswordIsAllowed')) if (AppSettings.settingsGet('ChangePasswordIsAllowed'))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsChangePassword.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsChangePassword.js'),
'SettingsChangePassword', 'SETTINGS_LABELS/LABEL_CHANGE_PASSWORD_NAME', 'change-password'); 'SettingsChangePassword', 'SETTINGS_LABELS/LABEL_CHANGE_PASSWORD_NAME', 'change-password');
} }
kn.addSettingsViewModel(require('../Settings/SettingsFolders.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsFolders.js'),
'SettingsFolders', 'SETTINGS_LABELS/LABEL_FOLDERS_NAME', 'folders'); 'SettingsFolders', 'SETTINGS_LABELS/LABEL_FOLDERS_NAME', 'folders');
if (AppSettings.capa(Enums.Capa.Themes)) if (AppSettings.capa(Enums.Capa.Themes))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsThemes.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsThemes.js'),
'SettingsThemes', 'SETTINGS_LABELS/LABEL_THEMES_NAME', 'themes'); 'SettingsThemes', 'SETTINGS_LABELS/LABEL_THEMES_NAME', 'themes');
} }
if (AppSettings.capa(Enums.Capa.OpenPGP)) if (AppSettings.capa(Enums.Capa.OpenPGP))
{ {
kn.addSettingsViewModel(require('../Settings/SettingsOpenPGP.js'), kn.addSettingsViewModel(require('../Settings/App/SettingsOpenPGP.js'),
'SettingsOpenPGP', 'SETTINGS_LABELS/LABEL_OPEN_PGP_NAME', 'openpgp'); 'SettingsOpenPGP', 'SETTINGS_LABELS/LABEL_OPEN_PGP_NAME', 'openpgp');
} }

View file

@ -4,21 +4,24 @@
'use strict'; 'use strict';
var
window = require('window'),
_ = require('_'),
$ = require('$'),
$window = require('$window'),
$html = require('$html'),
Globals = require('Globals'),
Plugins = require('Plugins'),
Utils = require('Utils')
;
module.exports = function (App) { module.exports = function (App) {
Globals.__RL = App; var
window = require('window'),
_ = require('_'),
$ = require('$'),
$window = require('$window'),
$html = require('$html'),
Globals = require('Globals'),
Plugins = require('Plugins'),
Utils = require('Utils'),
Enums = require('Enums'),
EmailModel = require('./Models/EmailModel.js')
;
Globals.__APP = App;
App.setupSettings(); App.setupSettings();
@ -45,10 +48,10 @@
window['rl']['pluginSettingsGet'] = Plugins.settingsGet; window['rl']['pluginSettingsGet'] = Plugins.settingsGet;
window['rl']['createCommand'] = Utils.createCommand; window['rl']['createCommand'] = Utils.createCommand;
window['rl']['EmailModel'] = require('../Models/EmailModel.js'); window['rl']['EmailModel'] = EmailModel;
window['rl']['Enums'] = require('Enums'); window['rl']['Enums'] = Enums;
window['__RLBOOT'] = function (fCall) { window['__APP_BOOT'] = function (fCall) {
// boot // boot
$(function () { $(function () {
@ -69,7 +72,7 @@
fCall(false); fCall(false);
} }
window['__RLBOOT'] = null; window['__APP_BOOT'] = null;
}); });
}; };

View file

@ -112,7 +112,7 @@
/** /**
* @type {*} * @type {*}
*/ */
Globals.__RL = null; Globals.__APP = null;
/** /**
* @type {Object} * @type {Object}

View file

@ -1364,7 +1364,6 @@
}; };
/* jshint ignore:start */ /* jshint ignore:start */
/** /**
* @param {string} s * @param {string} s
* @return {string} * @return {string}

View file

@ -2,5 +2,5 @@
(function (require) { (function (require) {
'use strict'; 'use strict';
require('Boot')(require('./Boots/RainLoopApp.js')); require('./Boot.js')(require('./Apps/RainLoopApp.js'));
}(require)); }(require));

View file

@ -77,7 +77,6 @@
oViewModelPlace = this.oViewModelPlace; oViewModelPlace = this.oViewModelPlace;
if (oViewModelPlace && 1 === oViewModelPlace.length) if (oViewModelPlace && 1 === oViewModelPlace.length)
{ {
RoutedSettingsViewModel = /** @type {?Function} */ RoutedSettingsViewModel;
oSettingsScreen = new RoutedSettingsViewModel(); oSettingsScreen = new RoutedSettingsViewModel();
oViewModelDom = $('<div></div>').addClass('rl-settings-view-model').hide(); oViewModelDom = $('<div></div>').addClass('rl-settings-view-model').hide();

View file

@ -23,8 +23,8 @@
AdminLoginScreen.prototype.onShow = function () AdminLoginScreen.prototype.onShow = function ()
{ {
var RL = require('../Boots/AdminApp.js'); var App = require('../Apps/AdminApp.js');
RL.setTitle(''); App.setTitle('');
}; };
module.exports = AdminLoginScreen; module.exports = AdminLoginScreen;

View file

@ -30,8 +30,8 @@
AdminSettingsScreen.prototype.onShow = function () AdminSettingsScreen.prototype.onShow = function ()
{ {
var RL = require('../Boots/AdminApp.js'); var App = require('../Apps/AdminApp.js');
RL.setTitle(''); App.setTitle('');
}; };
module.exports = AdminSettingsScreen; module.exports = AdminSettingsScreen;

View file

@ -23,8 +23,8 @@
LoginScreen.prototype.onShow = function () LoginScreen.prototype.onShow = function ()
{ {
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
RL.setTitle(''); App.setTitle('');
}; };
module.exports = LoginScreen; module.exports = LoginScreen;

View file

@ -54,12 +54,12 @@
MailBoxScreen.prototype.setNewTitle = function () MailBoxScreen.prototype.setNewTitle = function ()
{ {
var var
RL = require('../Boots/RainLoopApp.js'), App = require('../Apps/RainLoopApp.js'),
sEmail = Data.accountEmail(), sEmail = Data.accountEmail(),
nFoldersInboxUnreadCount = Data.foldersInboxUnreadCount() nFoldersInboxUnreadCount = Data.foldersInboxUnreadCount()
; ;
RL.setTitle(('' === sEmail ? '' : App.setTitle(('' === sEmail ? '' :
(0 < nFoldersInboxUnreadCount ? '(' + nFoldersInboxUnreadCount + ') ' : ' ') + sEmail + ' - ') + Utils.i18n('TITLES/MAILBOX')); (0 < nFoldersInboxUnreadCount ? '(' + nFoldersInboxUnreadCount + ') ' : ' ') + sEmail + ' - ') + Utils.i18n('TITLES/MAILBOX'));
}; };
@ -77,12 +77,12 @@
*/ */
MailBoxScreen.prototype.onRoute = function (sFolderHash, iPage, sSearch, bPreview) MailBoxScreen.prototype.onRoute = function (sFolderHash, iPage, sSearch, bPreview)
{ {
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
if (Utils.isUnd(bPreview) ? false : !!bPreview) if (Utils.isUnd(bPreview) ? false : !!bPreview)
{ {
if (Enums.Layout.NoPreview === Data.layout() && !Data.message()) if (Enums.Layout.NoPreview === Data.layout() && !Data.message())
{ {
RL.historyBack(); App.historyBack();
} }
} }
else else
@ -105,7 +105,7 @@
Data.message(null); Data.message(null);
} }
RL.reloadMessageList(); App.reloadMessageList();
} }
} }
}; };
@ -113,7 +113,7 @@
MailBoxScreen.prototype.onStart = function () MailBoxScreen.prototype.onStart = function ()
{ {
var var
RL = require('../Boots/RainLoopApp.js'), App = require('../Apps/RainLoopApp.js'),
fResizeFunction = function () { fResizeFunction = function () {
Utils.windowResize(); Utils.windowResize();
} }
@ -121,18 +121,18 @@
if (AppSettings.capa(Enums.Capa.AdditionalAccounts) || AppSettings.capa(Enums.Capa.AdditionalIdentities)) if (AppSettings.capa(Enums.Capa.AdditionalAccounts) || AppSettings.capa(Enums.Capa.AdditionalIdentities))
{ {
RL.accountsAndIdentities(); App.accountsAndIdentities();
} }
_.delay(function () { _.delay(function () {
if ('INBOX' !== Data.currentFolderFullNameRaw()) if ('INBOX' !== Data.currentFolderFullNameRaw())
{ {
RL.folderInformation('INBOX'); App.folderInformation('INBOX');
} }
}, 1000); }, 1000);
_.delay(function () { _.delay(function () {
RL.quota(); App.quota();
}, 5000); }, 5000);
_.delay(function () { _.delay(function () {

View file

@ -21,7 +21,7 @@
function SettingsScreen() function SettingsScreen()
{ {
var var
RL = require('../Boots/RainLoopApp.js'), App = require('../Apps/RainLoopApp.js'),
SettingsSystemDropDownViewModel = require('../ViewModels/SettingsSystemDropDownViewModel.js'), SettingsSystemDropDownViewModel = require('../ViewModels/SettingsSystemDropDownViewModel.js'),
SettingsMenuViewModel = require('../ViewModels/SettingsMenuViewModel.js'), SettingsMenuViewModel = require('../ViewModels/SettingsMenuViewModel.js'),
@ -37,7 +37,7 @@
Utils.initOnStartOrLangChange(function () { Utils.initOnStartOrLangChange(function () {
this.sSettingsTitle = Utils.i18n('TITLES/SETTINGS'); this.sSettingsTitle = Utils.i18n('TITLES/SETTINGS');
}, this, function () { }, this, function () {
RL.setTitle(this.sSettingsTitle); App.setTitle(this.sSettingsTitle);
}); });
} }
@ -45,9 +45,9 @@
SettingsScreen.prototype.onShow = function () SettingsScreen.prototype.onShow = function ()
{ {
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
RL.setTitle(this.sSettingsTitle); App.setTitle(this.sSettingsTitle);
Globals.keyScope(Enums.KeyState.Settings); Globals.keyScope(Enums.KeyState.Settings);
}; };

View file

@ -14,8 +14,8 @@
function AdminSettingsAbout() function AdminSettingsAbout()
{ {
var var
AppSettings = require('../Storages/AppSettings.js'), AppSettings = require('../../Storages/AppSettings.js'),
Data = require('../Storages/AdminDataStorage.js') Data = require('../../Storages/AdminDataStorage.js')
; ;
this.version = ko.observable(AppSettings.settingsGet('Version')); this.version = ko.observable(AppSettings.settingsGet('Version'));
@ -72,7 +72,7 @@
{ {
if (this.access()) if (this.access())
{ {
require('../Boots/AdminApp.js').reloadCoreData(); require('../../Apps/AdminApp.js').reloadCoreData();
} }
}; };
@ -80,7 +80,7 @@
{ {
if (!this.coreUpdating()) if (!this.coreUpdating())
{ {
require('../Boots/AdminApp.js').updateCoreData(); require('../../Apps/AdminApp.js').updateCoreData();
} }
}; };

View file

@ -18,7 +18,7 @@
{ {
var var
Enums = require('Enums'), Enums = require('Enums'),
AppSettings = require('../Storages/AppSettings.js') AppSettings = require('../../Storages/AppSettings.js')
; ;
this.title = ko.observable(AppSettings.settingsGet('Title')); this.title = ko.observable(AppSettings.settingsGet('Title'));
@ -41,7 +41,7 @@
{ {
var var
self = this, self = this,
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
_.delay(function () { _.delay(function () {

View file

@ -11,7 +11,7 @@
Enums = require('Enums'), Enums = require('Enums'),
Utils = require('Utils'), Utils = require('Utils'),
AppSettings = require('../Storages/AppSettings.js') AppSettings = require('../../Storages/AppSettings.js')
; ;
/** /**
@ -20,7 +20,7 @@
function AdminSettingsContacts() function AdminSettingsContacts()
{ {
var var
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
this.defautOptionsAfterRender = Utils.defautOptionsAfterRender; this.defautOptionsAfterRender = Utils.defautOptionsAfterRender;
@ -179,7 +179,7 @@
{ {
var var
self = this, self = this,
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
_.delay(function () { _.delay(function () {

View file

@ -11,10 +11,10 @@
Enums = require('Enums'), Enums = require('Enums'),
PopupsDomainViewModel = require('../ViewModels/Popups/PopupsDomainViewModel.js'), PopupsDomainViewModel = require('../../ViewModels/Popups/PopupsDomainViewModel.js'),
Data = require('../Storages/AdminDataStorage.js'), Data = require('../../Storages/AdminDataStorage.js'),
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
/** /**
@ -86,7 +86,7 @@
}) })
; ;
require('../Boots/AdminApp.js').reloadDomainList(); require('../../Apps/AdminApp.js').reloadDomainList();
}; };
AdminSettingsDomains.prototype.onDomainLoadRequest = function (sResult, oData) AdminSettingsDomains.prototype.onDomainLoadRequest = function (sResult, oData)
@ -99,7 +99,7 @@
AdminSettingsDomains.prototype.onDomainListChangeRequest = function () AdminSettingsDomains.prototype.onDomainListChangeRequest = function ()
{ {
require('../Boots/AdminApp.js').reloadDomainList(); require('../../Apps/AdminApp.js').reloadDomainList();
}; };
module.exports = AdminSettingsDomains; module.exports = AdminSettingsDomains;

View file

@ -12,10 +12,10 @@
Utils = require('Utils'), Utils = require('Utils'),
LinkBuilder = require('LinkBuilder'), LinkBuilder = require('LinkBuilder'),
AppSettings = require('../Storages/AppSettings.js'), AppSettings = require('../../Storages/AppSettings.js'),
Data = require('../Storages/AdminDataStorage.js'), Data = require('../../Storages/AdminDataStorage.js'),
PopupsLanguagesViewModel = require('../ViewModels/Popups/PopupsLanguagesViewModel.js') PopupsLanguagesViewModel = require('../../ViewModels/Popups/PopupsLanguagesViewModel.js')
; ;
/** /**
@ -68,7 +68,7 @@
{ {
var var
self = this, self = this,
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
_.delay(function () { _.delay(function () {

View file

@ -8,10 +8,10 @@
ko = require('ko'), ko = require('ko'),
moment = require('moment'), moment = require('moment'),
AppSettings = require('../Storages/AppSettings.js'), AppSettings = require('../../Storages/AppSettings.js'),
Data = require('../Storages/AdminDataStorage.js'), Data = require('../../Storages/AdminDataStorage.js'),
PopupsActivateViewModel = require('../ViewModels/Popups/PopupsActivateViewModel.js') PopupsActivateViewModel = require('../../ViewModels/Popups/PopupsActivateViewModel.js')
; ;
/** /**
@ -32,7 +32,7 @@
this.licenseTrigger.subscribe(function () { this.licenseTrigger.subscribe(function () {
if (this.subscriptionEnabled()) if (this.subscriptionEnabled())
{ {
require('../Boots/AdminApp.js').reloadLicensing(true); require('../../Apps/AdminApp.js').reloadLicensing(true);
} }
}, this); }, this);
} }
@ -41,7 +41,7 @@
{ {
if (this.subscriptionEnabled()) if (this.subscriptionEnabled())
{ {
require('../Boots/AdminApp.js').reloadLicensing(false); require('../../Apps/AdminApp.js').reloadLicensing(false);
} }
}; };

View file

@ -11,8 +11,8 @@
Enums = require('Enums'), Enums = require('Enums'),
Utils = require('Utils'), Utils = require('Utils'),
AppSettings = require('../Storages/AppSettings.js'), AppSettings = require('../../Storages/AppSettings.js'),
Data = require('../Storages/AdminDataStorage.js') Data = require('../../Storages/AdminDataStorage.js')
; ;
/** /**
@ -33,7 +33,7 @@
{ {
var var
self = this, self = this,
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
_.delay(function () { _.delay(function () {

View file

@ -11,8 +11,8 @@
Enums = require('Enums'), Enums = require('Enums'),
Utils = require('Utils'), Utils = require('Utils'),
Data = require('../Storages/AdminDataStorage.js'), Data = require('../../Storages/AdminDataStorage.js'),
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
/** /**
@ -51,7 +51,7 @@
AdminSettingsPackages.prototype.onBuild = function () AdminSettingsPackages.prototype.onBuild = function ()
{ {
require('../Boots/AdminApp.js').reloadPackagesList(); require('../../Apps/AdminApp.js').reloadPackagesList();
}; };
AdminSettingsPackages.prototype.requestHelper = function (oPackage, bInstall) AdminSettingsPackages.prototype.requestHelper = function (oPackage, bInstall)
@ -86,7 +86,7 @@
} }
else else
{ {
require('../Boots/AdminApp.js').reloadPackagesList(); require('../../Apps/AdminApp.js').reloadPackagesList();
} }
}; };
}; };

View file

@ -11,11 +11,11 @@
Enums = require('Enums'), Enums = require('Enums'),
Utils = require('Utils'), Utils = require('Utils'),
AppSettings = require('../Storages/AppSettings.js'), AppSettings = require('../../Storages/AppSettings.js'),
Data = require('../Storages/AdminDataStorage.js'), Data = require('../../Storages/AdminDataStorage.js'),
Remote = require('../Storages/AdminAjaxRemoteStorage.js'), Remote = require('../../Storages/AdminAjaxRemoteStorage.js'),
PopupsPluginViewModel = require('../ViewModels/Popups/PopupsPluginViewModel.js') PopupsPluginViewModel = require('../../ViewModels/Popups/PopupsPluginViewModel.js')
; ;
/** /**
@ -80,7 +80,7 @@
AdminSettingsPlugins.prototype.onShow = function () AdminSettingsPlugins.prototype.onShow = function ()
{ {
this.pluginsError(''); this.pluginsError('');
require('../Boots/AdminApp.js').reloadPluginList(); require('../../Apps/AdminApp.js').reloadPluginList();
}; };
AdminSettingsPlugins.prototype.onPluginLoadRequest = function (sResult, oData) AdminSettingsPlugins.prototype.onPluginLoadRequest = function (sResult, oData)
@ -108,7 +108,7 @@
} }
} }
require('../Boots/AdminApp.js').reloadPluginList(); require('../../Apps/AdminApp.js').reloadPluginList();
}; };
module.exports = AdminSettingsPlugins; module.exports = AdminSettingsPlugins;

View file

@ -12,9 +12,9 @@
Utils = require('Utils'), Utils = require('Utils'),
LinkBuilder = require('LinkBuilder'), LinkBuilder = require('LinkBuilder'),
AppSettings = require('../Storages/AppSettings.js'), AppSettings = require('../../Storages/AppSettings.js'),
Data = require('../Storages/AdminDataStorage.js'), Data = require('../../Storages/AdminDataStorage.js'),
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
/** /**
@ -95,7 +95,7 @@
AdminSettingsSecurity.prototype.onBuild = function () AdminSettingsSecurity.prototype.onBuild = function ()
{ {
var var
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
this.capaOpenPGP.subscribe(function (bValue) { this.capaOpenPGP.subscribe(function (bValue) {

View file

@ -17,7 +17,7 @@
*/ */
function AdminSettingsSocial() function AdminSettingsSocial()
{ {
var Data = require('../Storages/AdminDataStorage.js'); var Data = require('../../Storages/AdminDataStorage.js');
this.googleEnable = Data.googleEnable; this.googleEnable = Data.googleEnable;
this.googleClientID = Data.googleClientID; this.googleClientID = Data.googleClientID;
@ -49,7 +49,7 @@
{ {
var var
self = this, self = this,
Remote = require('../Storages/AdminAjaxRemoteStorage.js') Remote = require('../../Storages/AdminAjaxRemoteStorage.js')
; ;
_.delay(function () { _.delay(function () {

View file

@ -13,11 +13,11 @@
Utils = require('Utils'), Utils = require('Utils'),
LinkBuilder = require('LinkBuilder'), LinkBuilder = require('LinkBuilder'),
Data = require('../Storages/WebMailDataStorage.js'), Data = require('../../Storages/WebMailDataStorage.js'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js'), Remote = require('../../Storages/WebMailAjaxRemoteStorage.js'),
kn = require('kn'), kn = require('kn'),
PopupsAddAccountViewModel = require('../ViewModels/Popups/PopupsAddAccountViewModel.js') PopupsAddAccountViewModel = require('../../ViewModels/Popups/PopupsAddAccountViewModel.js')
; ;
/** /**
@ -65,7 +65,7 @@
this.accountForDeletion(null); this.accountForDeletion(null);
var var
RL = require('../Boots/RainLoopApp.js'), App = require('../../Apps/RainLoopApp.js'),
fRemoveAccount = function (oAccount) { fRemoveAccount = function (oAccount) {
return oAccountToRemove === oAccount; return oAccountToRemove === oAccount;
} }
@ -90,7 +90,7 @@
} }
else else
{ {
RL.accountsAndIdentities(); App.accountsAndIdentities();
} }
}, oAccountToRemove.email); }, oAccountToRemove.email);

View file

@ -11,7 +11,7 @@
Enums = require('Enums'), Enums = require('Enums'),
Utils = require('Utils'), Utils = require('Utils'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js') Remote = require('../../Storages/WebMailAjaxRemoteStorage.js')
; ;
/** /**

View file

@ -9,8 +9,8 @@
Utils = require('Utils'), Utils = require('Utils'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js'), Remote = require('../../Storages/WebMailAjaxRemoteStorage.js'),
Data = require('../Storages/WebMailDataStorage.js') Data = require('../../Storages/WebMailDataStorage.js')
; ;
/** /**

View file

@ -31,8 +31,8 @@
{ {
var var
kn = require('kn'), kn = require('kn'),
FilterModel = require('../Models/FilterModel.js'), FilterModel = require('../../Models/FilterModel.js'),
PopupsFilterViewModel = require('../ViewModels/Popups/PopupsFilterViewModel.js') PopupsFilterViewModel = require('../../ViewModels/Popups/PopupsFilterViewModel.js')
; ;
kn.showScreenPopup(PopupsFilterViewModel, [new FilterModel()]); kn.showScreenPopup(PopupsFilterViewModel, [new FilterModel()]);

View file

@ -12,14 +12,14 @@
kn = require('kn'), kn = require('kn'),
AppSettings = require('../Storages/AppSettings.js'), AppSettings = require('../../Storages/AppSettings.js'),
LocalStorage = require('../Storages/LocalStorage.js'), LocalStorage = require('../../Storages/LocalStorage.js'),
Data = require('../Storages/WebMailDataStorage.js'), Data = require('../../Storages/WebMailDataStorage.js'),
Cache = require('../Storages/WebMailCacheStorage.js'), Cache = require('../../Storages/WebMailCacheStorage.js'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js'), Remote = require('../../Storages/WebMailAjaxRemoteStorage.js'),
PopupsFolderCreateViewModel = require('../ViewModels/Popups/PopupsFolderCreateViewModel.js'), PopupsFolderCreateViewModel = require('../../ViewModels/Popups/PopupsFolderCreateViewModel.js'),
PopupsFolderSystemViewModel = require('../ViewModels/Popups/PopupsFolderSystemViewModel.js') PopupsFolderSystemViewModel = require('../../ViewModels/Popups/PopupsFolderSystemViewModel.js')
; ;
/** /**
@ -98,7 +98,7 @@
SettingsFolders.prototype.folderEditOnEnter = function (oFolder) SettingsFolders.prototype.folderEditOnEnter = function (oFolder)
{ {
var var
RL = require('../Boots/RainLoopApp.js'), App = require('../../Apps/RainLoopApp.js'),
sEditName = oFolder ? Utils.trim(oFolder.nameForEdit()) : '' sEditName = oFolder ? Utils.trim(oFolder.nameForEdit()) : ''
; ;
@ -116,7 +116,7 @@
oData && oData.ErrorCode ? Utils.getNotification(oData.ErrorCode) : Utils.i18n('NOTIFICATIONS/CANT_RENAME_FOLDER')); oData && oData.ErrorCode ? Utils.getNotification(oData.ErrorCode) : Utils.i18n('NOTIFICATIONS/CANT_RENAME_FOLDER'));
} }
RL.folders(); App.folders();
}, oFolder.fullNameRaw, sEditName); }, oFolder.fullNameRaw, sEditName);
@ -159,7 +159,7 @@
this.folderForDeletion(null); this.folderForDeletion(null);
var var
RL = require('../Boots/RainLoopApp.js'), App = require('../../Apps/RainLoopApp.js'),
fRemoveFolder = function (oFolder) { fRemoveFolder = function (oFolder) {
if (oFolderToRemove === oFolder) if (oFolderToRemove === oFolder)
@ -188,7 +188,7 @@
oData && oData.ErrorCode ? Utils.getNotification(oData.ErrorCode) : Utils.i18n('NOTIFICATIONS/CANT_DELETE_FOLDER')); oData && oData.ErrorCode ? Utils.getNotification(oData.ErrorCode) : Utils.i18n('NOTIFICATIONS/CANT_DELETE_FOLDER'));
} }
RL.folders(); App.folders();
}, oFolderToRemove.fullNameRaw); }, oFolderToRemove.fullNameRaw);

View file

@ -7,6 +7,7 @@
var var
$ = require('$'), $ = require('$'),
ko = require('ko'), ko = require('ko'),
_ = require('_'),
Enums = require('Enums'), Enums = require('Enums'),
Consts = require('Consts'), Consts = require('Consts'),
@ -14,11 +15,11 @@
Utils = require('Utils'), Utils = require('Utils'),
LinkBuilder = require('LinkBuilder'), LinkBuilder = require('LinkBuilder'),
Data = require('../Storages/WebMailDataStorage.js'), Data = require('../../Storages/WebMailDataStorage.js'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js'), Remote = require('../../Storages/WebMailAjaxRemoteStorage.js'),
kn = require('kn'), kn = require('kn'),
PopupsLanguagesViewModel = require('../ViewModels/Popups/PopupsLanguagesViewModel.js') PopupsLanguagesViewModel = require('../../ViewModels/Popups/PopupsLanguagesViewModel.js')
; ;
/** /**

View file

@ -6,16 +6,17 @@
var var
ko = require('ko'), ko = require('ko'),
_ = require('_'),
Enums = require('Enums'), Enums = require('Enums'),
Utils = require('Utils'), Utils = require('Utils'),
NewHtmlEditorWrapper = require('NewHtmlEditorWrapper'), NewHtmlEditorWrapper = require('NewHtmlEditorWrapper'),
Data = require('../Storages/WebMailDataStorage.js'), Data = require('../../Storages/WebMailDataStorage.js'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js'), Remote = require('../../Storages/WebMailAjaxRemoteStorage.js'),
kn = require('kn'), kn = require('kn'),
PopupsIdentityViewModel = require('../ViewModels/Popups/PopupsIdentityViewModel.js') PopupsIdentityViewModel = require('../../ViewModels/Popups/PopupsIdentityViewModel.js')
; ;
/** /**
@ -133,7 +134,7 @@
this.identityForDeletion(null); this.identityForDeletion(null);
var var
RL = require('../Boots/RainLoopApp.js'), App = require('../../Apps/RainLoopApp.js'),
fRemoveFolder = function (oIdentity) { fRemoveFolder = function (oIdentity) {
return oIdentityToRemove === oIdentity; return oIdentityToRemove === oIdentity;
} }
@ -144,7 +145,7 @@
this.identities.remove(fRemoveFolder); this.identities.remove(fRemoveFolder);
Remote.identityDelete(function () { Remote.identityDelete(function () {
RL.accountsAndIdentities(); App.accountsAndIdentities();
}, oIdentityToRemove.id); }, oIdentityToRemove.id);
} }
} }

View file

@ -6,13 +6,14 @@
var var
ko = require('ko'), ko = require('ko'),
_ = require('_'),
Enums = require('Enums'), Enums = require('Enums'),
Utils = require('Utils'), Utils = require('Utils'),
NewHtmlEditorWrapper = require('NewHtmlEditorWrapper'), NewHtmlEditorWrapper = require('NewHtmlEditorWrapper'),
Data = require('../Storages/WebMailDataStorage.js'), Data = require('../../Storages/WebMailDataStorage.js'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js') Remote = require('../../Storages/WebMailAjaxRemoteStorage.js')
; ;
/** /**

View file

@ -9,11 +9,11 @@
kn = require('kn'), kn = require('kn'),
Data = require('../Storages/WebMailDataStorage.js'), Data = require('../../Storages/WebMailDataStorage.js'),
PopupsAddOpenPgpKeyViewModel = require('../ViewModels/Popups/PopupsAddOpenPgpKeyViewModel.js'), PopupsAddOpenPgpKeyViewModel = require('../../ViewModels/Popups/PopupsAddOpenPgpKeyViewModel.js'),
PopupsGenerateNewOpenPgpKeyViewModel = require('../ViewModels/Popups/PopupsGenerateNewOpenPgpKeyViewModel.js'), PopupsGenerateNewOpenPgpKeyViewModel = require('../../ViewModels/Popups/PopupsGenerateNewOpenPgpKeyViewModel.js'),
PopupsViewOpenPgpKeyViewModel = require('../ViewModels/Popups/PopupsViewOpenPgpKeyViewModel.js') PopupsViewOpenPgpKeyViewModel = require('../../ViewModels/Popups/PopupsViewOpenPgpKeyViewModel.js')
; ;
/** /**
@ -78,8 +78,8 @@
Data.openpgpKeyring.store(); Data.openpgpKeyring.store();
var RL = require('../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
RL.reloadOpenPgpKeys(); App.reloadOpenPgpKeys();
} }
} }
}; };

View file

@ -11,10 +11,10 @@
Globals = require('Globals'), Globals = require('Globals'),
Utils = require('Utils'), Utils = require('Utils'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js'), Remote = require('../../Storages/WebMailAjaxRemoteStorage.js'),
kn = require('kn'), kn = require('kn'),
PopupsTwoFactorTestViewModel = require('../ViewModels/Popups/PopupsTwoFactorTestViewModel.js') PopupsTwoFactorTestViewModel = require('../../ViewModels/Popups/PopupsTwoFactorTestViewModel.js')
; ;
/** /**

View file

@ -11,8 +11,8 @@
{ {
var var
Utils = require('Utils'), Utils = require('Utils'),
RL = require('../Boots/RainLoopApp.js'), App = require('../../Apps/RainLoopApp.js'),
Data = require('../Storages/WebMailDataStorage.js') Data = require('../../Storages/WebMailDataStorage.js')
; ;
this.googleEnable = Data.googleEnable; this.googleEnable = Data.googleEnable;
@ -36,40 +36,40 @@
this.connectGoogle = Utils.createCommand(this, function () { this.connectGoogle = Utils.createCommand(this, function () {
if (!this.googleLoggined()) if (!this.googleLoggined())
{ {
RL.googleConnect(); App.googleConnect();
} }
}, function () { }, function () {
return !this.googleLoggined() && !this.googleActions(); return !this.googleLoggined() && !this.googleActions();
}); });
this.disconnectGoogle = Utils.createCommand(this, function () { this.disconnectGoogle = Utils.createCommand(this, function () {
RL.googleDisconnect(); App.googleDisconnect();
}); });
this.connectFacebook = Utils.createCommand(this, function () { this.connectFacebook = Utils.createCommand(this, function () {
if (!this.facebookLoggined()) if (!this.facebookLoggined())
{ {
RL.facebookConnect(); App.facebookConnect();
} }
}, function () { }, function () {
return !this.facebookLoggined() && !this.facebookActions(); return !this.facebookLoggined() && !this.facebookActions();
}); });
this.disconnectFacebook = Utils.createCommand(this, function () { this.disconnectFacebook = Utils.createCommand(this, function () {
RL.facebookDisconnect(); App.facebookDisconnect();
}); });
this.connectTwitter = Utils.createCommand(this, function () { this.connectTwitter = Utils.createCommand(this, function () {
if (!this.twitterLoggined()) if (!this.twitterLoggined())
{ {
RL.twitterConnect(); App.twitterConnect();
} }
}, function () { }, function () {
return !this.twitterLoggined() && !this.twitterActions(); return !this.twitterLoggined() && !this.twitterActions();
}); });
this.disconnectTwitter = Utils.createCommand(this, function () { this.disconnectTwitter = Utils.createCommand(this, function () {
RL.twitterDisconnect(); App.twitterDisconnect();
}); });
} }

View file

@ -8,13 +8,14 @@
window = require('window'), window = require('window'),
$ = require('$'), $ = require('$'),
ko = require('ko'), ko = require('ko'),
_ = require('_'),
Enums = require('Enums'), Enums = require('Enums'),
Utils = require('Utils'), Utils = require('Utils'),
LinkBuilder = require('LinkBuilder'), LinkBuilder = require('LinkBuilder'),
Data = require('../Storages/WebMailDataStorage.js'), Data = require('../../Storages/WebMailDataStorage.js'),
Remote = require('../Storages/WebMailAjaxRemoteStorage.js') Remote = require('../../Storages/WebMailAjaxRemoteStorage.js')
; ;
/** /**

View file

@ -63,9 +63,9 @@
if (Consts.Values.TokenErrorLimit < Globals.iTokenErrorCount) if (Consts.Values.TokenErrorLimit < Globals.iTokenErrorCount)
{ {
if (Globals.__RL) if (Globals.__APP)
{ {
Globals.__RL.loginAndLogoutReload(true); Globals.__APP.loginAndLogoutReload(true);
} }
} }
@ -76,9 +76,9 @@
window.__rlah_clear(); window.__rlah_clear();
} }
if (Globals.__RL) if (Globals.__APP)
{ {
Globals.__RL.loginAndLogoutReload(true); Globals.__APP.loginAndLogoutReload(true);
} }
} }
} }

View file

@ -381,9 +381,9 @@
} }
else if (Data.useThreads()) else if (Data.useThreads())
{ {
if (Globals.__RL) if (Globals.__APP)
{ {
Globals.__RL.reloadFlagsCurrentMessageListAndMessageFromCache(); Globals.__APP.reloadFlagsCurrentMessageListAndMessageFromCache();
} }
} }
}; };

View file

@ -325,9 +325,9 @@
if (Enums.Layout.NoPreview === this.layout() && if (Enums.Layout.NoPreview === this.layout() &&
-1 < window.location.hash.indexOf('message-preview')) -1 < window.location.hash.indexOf('message-preview'))
{ {
if (Globals.__RL) if (Globals.__APP)
{ {
Globals.__RL.historyBack(); Globals.__APP.historyBack();
} }
} }
} }
@ -925,9 +925,9 @@
Cache.initMessageFlagsFromCache(oMessage); Cache.initMessageFlagsFromCache(oMessage);
if (oMessage.unseen()) if (oMessage.unseen())
{ {
if (Globals.__RL) if (Globals.__APP)
{ {
Globals.__RL.setMessageSeen(oMessage); Globals.__APP.setMessageSeen(oMessage);
} }
} }

View file

@ -89,14 +89,14 @@
AbstractSystemDropDownViewModel.prototype.logoutClick = function () AbstractSystemDropDownViewModel.prototype.logoutClick = function ()
{ {
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
Remote.logout(function () { Remote.logout(function () {
if (window.__rlah_clear) if (window.__rlah_clear)
{ {
window.__rlah_clear(); window.__rlah_clear();
} }
RL.loginAndLogoutReload(true, AppSettings.settingsGet('ParentEmail') && 0 < AppSettings.settingsGet('ParentEmail').length); App.loginAndLogoutReload(true, AppSettings.settingsGet('ParentEmail') && 0 < AppSettings.settingsGet('ParentEmail').length);
}); });
}; };

View file

@ -64,8 +64,8 @@
{ {
if (oData.Result) if (oData.Result)
{ {
var RL = require('../Boots/AdminApp.js'); var App = require('../Apps/AdminApp.js');
RL.loginAndLogoutReload(); App.loginAndLogoutReload();
} }
else if (oData.ErrorCode) else if (oData.ErrorCode)
{ {

View file

@ -36,8 +36,8 @@
AdminPaneViewModel.prototype.logoutClick = function () AdminPaneViewModel.prototype.logoutClick = function ()
{ {
Remote.adminLogout(function () { Remote.adminLogout(function () {
var RL = require('../Boots/AdminApp.js'); var App = require('../Apps/AdminApp.js');
RL.loginAndLogoutReload(); App.loginAndLogoutReload();
}); });
}; };

View file

@ -133,8 +133,8 @@
} }
else else
{ {
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
RL.loginAndLogoutReload(); App.loginAndLogoutReload();
} }
} }
else if (oData.ErrorCode) else if (oData.ErrorCode)
@ -294,8 +294,8 @@
{ {
self.submitRequest(true); self.submitRequest(true);
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
RL.loginAndLogoutReload(); App.loginAndLogoutReload();
} }
else else
{ {

View file

@ -62,7 +62,7 @@
var var
self = this, self = this,
RL = require('../Boots/RainLoopApp.js') App = require('../Apps/RainLoopApp.js')
; ;
oDom oDom
@ -76,7 +76,7 @@
if (oFolder && oEvent) if (oFolder && oEvent)
{ {
bCollapsed = oFolder.collapsed(); bCollapsed = oFolder.collapsed();
RL.setExpandedFolder(oFolder.fullNameHash, bCollapsed); App.setExpandedFolder(oFolder.fullNameHash, bCollapsed);
oFolder.collapsed(!bCollapsed); oFolder.collapsed(!bCollapsed);
oEvent.preventDefault(); oEvent.preventDefault();
@ -159,7 +159,7 @@
if (oFolder) if (oFolder)
{ {
bCollapsed = oFolder.collapsed(); bCollapsed = oFolder.collapsed();
RL.setExpandedFolder(oFolder.fullNameHash, bCollapsed); App.setExpandedFolder(oFolder.fullNameHash, bCollapsed);
oFolder.collapsed(!bCollapsed); oFolder.collapsed(!bCollapsed);
} }
} }
@ -186,10 +186,10 @@
window.clearTimeout(this.iDropOverTimer); window.clearTimeout(this.iDropOverTimer);
if (oFolder && oFolder.collapsed()) if (oFolder && oFolder.collapsed())
{ {
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
this.iDropOverTimer = window.setTimeout(function () { this.iDropOverTimer = window.setTimeout(function () {
oFolder.collapsed(false); oFolder.collapsed(false);
RL.setExpandedFolder(oFolder.fullNameHash, true); App.setExpandedFolder(oFolder.fullNameHash, true);
Utils.windowResize(); Utils.windowResize();
}, 500); }, 500);
} }
@ -242,7 +242,7 @@
if (oToFolder && oUi && oUi.helper) if (oToFolder && oUi && oUi.helper)
{ {
var var
RL = require('../Boots/RainLoopApp.js'), App = require('../Apps/RainLoopApp.js'),
sFromFolderFullNameRaw = oUi.helper.data('rl-folder'), sFromFolderFullNameRaw = oUi.helper.data('rl-folder'),
bCopy = $html.hasClass('rl-ctrl-key-pressed'), bCopy = $html.hasClass('rl-ctrl-key-pressed'),
aUids = oUi.helper.data('rl-uids') aUids = oUi.helper.data('rl-uids')
@ -250,7 +250,7 @@
if (Utils.isNormal(sFromFolderFullNameRaw) && '' !== sFromFolderFullNameRaw && Utils.isArray(aUids)) if (Utils.isNormal(sFromFolderFullNameRaw) && '' !== sFromFolderFullNameRaw && Utils.isArray(aUids))
{ {
RL.moveMessagesToFolder(sFromFolderFullNameRaw, aUids, oToFolder.fullNameRaw, bCopy); App.moveMessagesToFolder(sFromFolderFullNameRaw, aUids, oToFolder.fullNameRaw, bCopy);
} }
} }
}; };

View file

@ -39,7 +39,7 @@
*/ */
function MailBoxMessageListViewModel() function MailBoxMessageListViewModel()
{ {
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
KnoinAbstractViewModel.call(this, 'Right', 'MailMessageList'); KnoinAbstractViewModel.call(this, 'Right', 'MailMessageList');
@ -183,31 +183,31 @@
}, this.canBeMoved); }, this.canBeMoved);
this.deleteWithoutMoveCommand = Utils.createCommand(this, function () { this.deleteWithoutMoveCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Trash, App.deleteMessagesFromFolder(Enums.FolderType.Trash,
Data.currentFolderFullNameRaw(), Data.currentFolderFullNameRaw(),
Data.messageListCheckedOrSelectedUidsWithSubMails(), false); Data.messageListCheckedOrSelectedUidsWithSubMails(), false);
}, this.canBeMoved); }, this.canBeMoved);
this.deleteCommand = Utils.createCommand(this, function () { this.deleteCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Trash, App.deleteMessagesFromFolder(Enums.FolderType.Trash,
Data.currentFolderFullNameRaw(), Data.currentFolderFullNameRaw(),
Data.messageListCheckedOrSelectedUidsWithSubMails(), true); Data.messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, this.canBeMoved);
this.archiveCommand = Utils.createCommand(this, function () { this.archiveCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Archive, App.deleteMessagesFromFolder(Enums.FolderType.Archive,
Data.currentFolderFullNameRaw(), Data.currentFolderFullNameRaw(),
Data.messageListCheckedOrSelectedUidsWithSubMails(), true); Data.messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, this.canBeMoved);
this.spamCommand = Utils.createCommand(this, function () { this.spamCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Spam, App.deleteMessagesFromFolder(Enums.FolderType.Spam,
Data.currentFolderFullNameRaw(), Data.currentFolderFullNameRaw(),
Data.messageListCheckedOrSelectedUidsWithSubMails(), true); Data.messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, this.canBeMoved);
this.notSpamCommand = Utils.createCommand(this, function () { this.notSpamCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.NotSpam, App.deleteMessagesFromFolder(Enums.FolderType.NotSpam,
Data.currentFolderFullNameRaw(), Data.currentFolderFullNameRaw(),
Data.messageListCheckedOrSelectedUidsWithSubMails(), true); Data.messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, this.canBeMoved);
@ -217,7 +217,7 @@
this.reloadCommand = Utils.createCommand(this, function () { this.reloadCommand = Utils.createCommand(this, function () {
if (!Data.messageListCompleteLoadingThrottle()) if (!Data.messageListCompleteLoadingThrottle())
{ {
RL.reloadMessageList(false, true); App.reloadMessageList(false, true);
} }
}); });
@ -307,8 +307,8 @@
{ {
if (this.canBeMoved()) if (this.canBeMoved())
{ {
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
RL.moveMessagesToFolder( App.moveMessagesToFolder(
Data.currentFolderFullNameRaw(), Data.currentFolderFullNameRaw(),
Data.messageListCheckedOrSelectedUidsWithSubMails(), sToFolderFullNameRaw, bCopy); Data.messageListCheckedOrSelectedUidsWithSubMails(), sToFolderFullNameRaw, bCopy);
} }
@ -396,7 +396,7 @@
aUids = [], aUids = [],
oFolder = null, oFolder = null,
iAlreadyUnread = 0, iAlreadyUnread = 0,
RL = require('../Boots/RainLoopApp.js') App = require('../Apps/RainLoopApp.js')
; ;
if (Utils.isUnd(aMessages)) if (Utils.isUnd(aMessages))
@ -464,7 +464,7 @@
break; break;
} }
RL.reloadFlagsCurrentMessageListAndMessageFromCache(); App.reloadFlagsCurrentMessageListAndMessageFromCache();
} }
}; };
@ -477,7 +477,7 @@
var var
oFolder = null, oFolder = null,
aMessages = Data.messageList(), aMessages = Data.messageList(),
RL = require('../Boots/RainLoopApp.js') App = require('../Apps/RainLoopApp.js')
; ;
if ('' !== sFolderFullNameRaw) if ('' !== sFolderFullNameRaw)
@ -516,7 +516,7 @@
break; break;
} }
RL.reloadFlagsCurrentMessageListAndMessageFromCache(); App.reloadFlagsCurrentMessageListAndMessageFromCache();
} }
} }
}; };
@ -631,7 +631,7 @@
{ {
var var
self = this, self = this,
RL = require('../Boots/RainLoopApp.js') App = require('../Apps/RainLoopApp.js')
; ;
this.oContentVisible = $('.b-content', oDom); this.oContentVisible = $('.b-content', oDom);
@ -663,7 +663,7 @@
oMessage.lastInCollapsedThreadLoading(true); oMessage.lastInCollapsedThreadLoading(true);
oMessage.lastInCollapsedThread(!oMessage.lastInCollapsedThread()); oMessage.lastInCollapsedThread(!oMessage.lastInCollapsedThread());
RL.reloadMessageList(); App.reloadMessageList();
} }
return false; return false;
@ -894,8 +894,7 @@
} }
var var
RL = require('../Boots/RainLoopApp.js'), oJua = new Jua({
oJua = new Jua({
'action': LinkBuilder.append(), 'action': LinkBuilder.append(),
'name': 'AppendFile', 'name': 'AppendFile',
'queueSize': 1, 'queueSize': 1,
@ -934,7 +933,7 @@
return false; return false;
}, this)) }, this))
.on('onComplete', _.bind(function () { .on('onComplete', _.bind(function () {
RL.reloadMessageList(true, true); require('../Apps/RainLoopApp.js').reloadMessageList(true, true);
}, this)) }, this))
; ;

View file

@ -37,7 +37,7 @@
var var
self = this, self = this,
sLastEmail = '', sLastEmail = '',
RL = require('../Boots/RainLoopApp.js'), App = require('../Apps/RainLoopApp.js'),
createCommandHelper = function (sType) { createCommandHelper = function (sType) {
return Utils.createCommand(self, function () { return Utils.createCommand(self, function () {
this.replyOrforward(sType); this.replyOrforward(sType);
@ -102,7 +102,7 @@
this.deleteCommand = Utils.createCommand(this, function () { this.deleteCommand = Utils.createCommand(this, function () {
if (this.message()) if (this.message())
{ {
RL.deleteMessagesFromFolder(Enums.FolderType.Trash, App.deleteMessagesFromFolder(Enums.FolderType.Trash,
this.message().folderFullNameRaw, this.message().folderFullNameRaw,
[this.message().uid], true); [this.message().uid], true);
} }
@ -111,7 +111,7 @@
this.deleteWithoutMoveCommand = Utils.createCommand(this, function () { this.deleteWithoutMoveCommand = Utils.createCommand(this, function () {
if (this.message()) if (this.message())
{ {
RL.deleteMessagesFromFolder(Enums.FolderType.Trash, App.deleteMessagesFromFolder(Enums.FolderType.Trash,
Data.currentFolderFullNameRaw(), Data.currentFolderFullNameRaw(),
[this.message().uid], false); [this.message().uid], false);
} }
@ -120,7 +120,7 @@
this.archiveCommand = Utils.createCommand(this, function () { this.archiveCommand = Utils.createCommand(this, function () {
if (this.message()) if (this.message())
{ {
RL.deleteMessagesFromFolder(Enums.FolderType.Archive, App.deleteMessagesFromFolder(Enums.FolderType.Archive,
this.message().folderFullNameRaw, this.message().folderFullNameRaw,
[this.message().uid], true); [this.message().uid], true);
} }
@ -129,7 +129,7 @@
this.spamCommand = Utils.createCommand(this, function () { this.spamCommand = Utils.createCommand(this, function () {
if (this.message()) if (this.message())
{ {
RL.deleteMessagesFromFolder(Enums.FolderType.Spam, App.deleteMessagesFromFolder(Enums.FolderType.Spam,
this.message().folderFullNameRaw, this.message().folderFullNameRaw,
[this.message().uid], true); [this.message().uid], true);
} }
@ -138,7 +138,7 @@
this.notSpamCommand = Utils.createCommand(this, function () { this.notSpamCommand = Utils.createCommand(this, function () {
if (this.message()) if (this.message())
{ {
RL.deleteMessagesFromFolder(Enums.FolderType.NotSpam, App.deleteMessagesFromFolder(Enums.FolderType.NotSpam,
this.message().folderFullNameRaw, this.message().folderFullNameRaw,
[this.message().uid], true); [this.message().uid], true);
} }
@ -343,7 +343,7 @@
{ {
var var
self = this, self = this,
RL = require('../Boots/RainLoopApp.js') App = require('../Apps/RainLoopApp.js')
; ;
this.fullScreenMode.subscribe(function (bValue) { this.fullScreenMode.subscribe(function (bValue) {
@ -382,7 +382,7 @@
}) })
.on('click', 'a', function (oEvent) { .on('click', 'a', function (oEvent) {
// setup maito protocol // setup maito protocol
return !(!!oEvent && 3 !== oEvent['which'] && RL.mailToHelper($(this).attr('href'))); return !(!!oEvent && 3 !== oEvent['which'] && App.mailToHelper($(this).attr('href')));
}) })
.on('click', '.attachmentsPlace .attachmentPreview', function (oEvent) { .on('click', '.attachmentsPlace .attachmentPreview', function (oEvent) {
if (oEvent && oEvent.stopPropagation) if (oEvent && oEvent.stopPropagation)
@ -398,7 +398,7 @@
if (oAttachment && oAttachment.download) if (oAttachment && oAttachment.download)
{ {
RL.download(oAttachment.linkDownload()); App.download(oAttachment.linkDownload());
} }
}) })
; ;
@ -713,8 +713,8 @@
Cache.storeMessageFlagsToCache(oMessage); Cache.storeMessageFlagsToCache(oMessage);
var RL = require('../Boots/RainLoopApp.js'); var App = require('../Apps/RainLoopApp.js');
RL.reloadFlagsCurrentMessageListAndMessageFromCache(); App.reloadFlagsCurrentMessageListAndMessageFromCache();
} }
}; };

View file

@ -25,7 +25,7 @@
{ {
KnoinAbstractViewModel.call(this, 'Popups', 'PopupsAddAccount'); KnoinAbstractViewModel.call(this, 'Popups', 'PopupsAddAccount');
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
this.email = ko.observable(''); this.email = ko.observable('');
this.password = ko.observable(''); this.password = ko.observable('');
@ -65,7 +65,7 @@
{ {
if (oData.Result) if (oData.Result)
{ {
RL.accountsAndIdentities(); App.accountsAndIdentities();
this.cancelCommand(); this.cancelCommand();
} }
else if (oData.ErrorCode) else if (oData.ErrorCode)

View file

@ -23,7 +23,7 @@
{ {
KnoinAbstractViewModel.call(this, 'Popups', 'PopupsAddOpenPgpKey'); KnoinAbstractViewModel.call(this, 'Popups', 'PopupsAddOpenPgpKey');
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
this.key = ko.observable(''); this.key = ko.observable('');
this.key.error = ko.observable(false); this.key.error = ko.observable(false);
@ -79,7 +79,7 @@
oOpenpgpKeyring.store(); oOpenpgpKeyring.store();
RL.reloadOpenPgpKeys(); App.reloadOpenPgpKeys();
Utils.delegateRun(this, 'cancelCommand'); Utils.delegateRun(this, 'cancelCommand');
return true; return true;

View file

@ -45,7 +45,7 @@
{ {
KnoinAbstractViewModel.call(this, 'Popups', 'PopupsCompose'); KnoinAbstractViewModel.call(this, 'Popups', 'PopupsCompose');
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
this.oEditor = null; this.oEditor = null;
this.aDraftInfo = null; this.aDraftInfo = null;
@ -219,7 +219,7 @@
this.deleteCommand = Utils.createCommand(this, function () { this.deleteCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolderWithoutCheck(this.draftFolder(), [this.draftUid()]); App.deleteMessagesFromFolderWithoutCheck(this.draftFolder(), [this.draftUid()]);
kn.hideScreenPopup(PopupsComposeViewModel); kn.hideScreenPopup(PopupsComposeViewModel);
}, function () { }, function () {
@ -278,7 +278,7 @@
} }
Cache.setMessageFlagsToCache(this.aDraftInfo[2], this.aDraftInfo[1], aFlagsCache); Cache.setMessageFlagsToCache(this.aDraftInfo[2], this.aDraftInfo[1], aFlagsCache);
RL.reloadFlagsCurrentMessageListAndMessageFromCache(); App.reloadFlagsCurrentMessageListAndMessageFromCache();
Cache.setFolderHash(this.aDraftInfo[2], ''); Cache.setFolderHash(this.aDraftInfo[2], '');
} }
} }
@ -415,8 +415,8 @@
PopupsComposeViewModel.prototype.emailsSource = function (oData, fResponse) PopupsComposeViewModel.prototype.emailsSource = function (oData, fResponse)
{ {
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
RL.getAutocomplete(oData.term, function (aData) { App.getAutocomplete(oData.term, function (aData) {
fResponse(_.map(aData, function (oEmailItem) { fResponse(_.map(aData, function (oEmailItem) {
return oEmailItem.toLine(false); return oEmailItem.toLine(false);
})); }));
@ -446,7 +446,7 @@
PopupsComposeViewModel.prototype.reloadDraftFolder = function () PopupsComposeViewModel.prototype.reloadDraftFolder = function ()
{ {
var var
RL = require('../../Boots/RainLoopApp.js'), App = require('../../Apps/RainLoopApp.js'),
sDraftFolder = Data.draftFolder() sDraftFolder = Data.draftFolder()
; ;
@ -455,11 +455,11 @@
Cache.setFolderHash(sDraftFolder, ''); Cache.setFolderHash(sDraftFolder, '');
if (Data.currentFolderFullNameRaw() === sDraftFolder) if (Data.currentFolderFullNameRaw() === sDraftFolder)
{ {
RL.reloadMessageList(true); App.reloadMessageList(true);
} }
else else
{ {
RL.folderInformation(sDraftFolder); App.folderInformation(sDraftFolder);
} }
} }
}; };

View file

@ -353,10 +353,10 @@
var var
self = this, self = this,
RL = require('../../Boots/RainLoopApp.js') App = require('../../Apps/RainLoopApp.js')
; ;
RL.contactsSync(function (sResult, oData) { App.contactsSync(function (sResult, oData) {
if (Enums.StorageResultType.Success !== sResult || !oData || !oData.Result) if (Enums.StorageResultType.Success !== sResult || !oData || !oData.Result)
{ {
window.alert(Utils.getNotification( window.alert(Utils.getNotification(
@ -401,8 +401,8 @@
PopupsContactsViewModel.prototype.contactTagsSource = function (oData, fResponse) PopupsContactsViewModel.prototype.contactTagsSource = function (oData, fResponse)
{ {
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
RL.getContactTagsAutocomplete(oData.term, function (aData) { App.getContactTagsAutocomplete(oData.term, function (aData) {
fResponse(_.map(aData, function (oTagItem) { fResponse(_.map(aData, function (oTagItem) {
return oTagItem.toLine(false); return oTagItem.toLine(false);
})); }));
@ -487,14 +487,14 @@
PopupsContactsViewModel.prototype.exportVcf = function () PopupsContactsViewModel.prototype.exportVcf = function ()
{ {
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
RL.download(LinkBuilder.exportContactsVcf()); App.download(LinkBuilder.exportContactsVcf());
}; };
PopupsContactsViewModel.prototype.exportCsv = function () PopupsContactsViewModel.prototype.exportCsv = function ()
{ {
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
RL.download(LinkBuilder.exportContactsCsv()); App.download(LinkBuilder.exportContactsCsv());
}; };
PopupsContactsViewModel.prototype.initUploader = function () PopupsContactsViewModel.prototype.initUploader = function ()

View file

@ -235,8 +235,8 @@
{ {
if (oData.Result) if (oData.Result)
{ {
var RL = require('../../Boots/AdminApp.js'); var App = require('../../Apps/AdminApp.js');
RL.reloadDomainList(); App.reloadDomainList();
this.closeCommand(); this.closeCommand();
} }

View file

@ -26,7 +26,7 @@
{ {
KnoinAbstractViewModel.call(this, 'Popups', 'PopupsFolderClear'); KnoinAbstractViewModel.call(this, 'Popups', 'PopupsFolderClear');
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
this.selectedFolder = ko.observable(null); this.selectedFolder = ko.observable(null);
this.clearingProcess = ko.observable(false); this.clearingProcess = ko.observable(false);
@ -62,13 +62,17 @@
this.clearingProcess(true); this.clearingProcess(true);
oFolderToClear.messageCountAll(0);
oFolderToClear.messageCountUnread(0);
Cache.setFolderHash(oFolderToClear.fullNameRaw, ''); Cache.setFolderHash(oFolderToClear.fullNameRaw, '');
Remote.folderClear(function (sResult, oData) { Remote.folderClear(function (sResult, oData) {
self.clearingProcess(false); self.clearingProcess(false);
if (Enums.StorageResultType.Success === sResult && oData && oData.Result) if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
{ {
RL.reloadMessageList(true); App.reloadMessageList(true);
self.cancelCommand(); self.cancelCommand();
} }
else else

View file

@ -65,7 +65,7 @@
this.createFolder = Utils.createCommand(this, function () { this.createFolder = Utils.createCommand(this, function () {
var var
RL = require('../../Boots/RainLoopApp.js'), App = require('../../Apps/RainLoopApp.js'),
sParentFolderName = this.selectedParentValue() sParentFolderName = this.selectedParentValue()
; ;
@ -80,7 +80,7 @@
Data.foldersCreating(false); Data.foldersCreating(false);
if (Enums.StorageResultType.Success === sResult && oData && oData.Result) if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
{ {
RL.folders(); App.folders();
} }
else else
{ {

View file

@ -25,7 +25,7 @@
{ {
KnoinAbstractViewModel.call(this, 'Popups', 'PopupsGenerateNewOpenPgpKey'); KnoinAbstractViewModel.call(this, 'Popups', 'PopupsGenerateNewOpenPgpKey');
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
this.email = ko.observable(''); this.email = ko.observable('');
this.email.focus = ko.observable(''); this.email.focus = ko.observable('');
@ -78,7 +78,7 @@
oOpenpgpKeyring.publicKeys.importKey(mKeyPair.publicKeyArmored); oOpenpgpKeyring.publicKeys.importKey(mKeyPair.publicKeyArmored);
oOpenpgpKeyring.store(); oOpenpgpKeyring.store();
RL.reloadOpenPgpKeys(); App.reloadOpenPgpKeys();
Utils.delegateRun(self, 'cancelCommand'); Utils.delegateRun(self, 'cancelCommand');
} }

View file

@ -25,7 +25,7 @@
{ {
KnoinAbstractViewModel.call(this, 'Popups', 'PopupsIdentity'); KnoinAbstractViewModel.call(this, 'Popups', 'PopupsIdentity');
var RL = require('../../Boots/RainLoopApp.js'); var App = require('../../Apps/RainLoopApp.js');
this.id = ''; this.id = '';
this.edit = ko.observable(false); this.edit = ko.observable(false);
@ -85,7 +85,7 @@
{ {
if (oData.Result) if (oData.Result)
{ {
RL.accountsAndIdentities(); App.accountsAndIdentities();
this.cancelCommand(); this.cancelCommand();
} }
else if (oData.ErrorCode) else if (oData.ErrorCode)

View file

@ -141,7 +141,7 @@ cfg.paths.js = {
name: 'libs.js', name: 'libs.js',
src: [ src: [
'vendors/modernizr.js', 'vendors/modernizr.js',
'vendors/underscore/underscore-1.5.2.min.js', 'vendors/underscore/1.6.0/underscore-min.js',
'vendors/jquery/jquery-1.11.1.min.js', 'vendors/jquery/jquery-1.11.1.min.js',
'vendors/jquery-ui/js/jquery-ui-1.10.3.custom.min.js', 'vendors/jquery-ui/js/jquery-ui-1.10.3.custom.min.js',
'vendors/jquery-cookie/jquery.cookie-1.4.0.min.js', 'vendors/jquery-cookie/jquery.cookie-1.4.0.min.js',
@ -234,10 +234,10 @@ gulp.task('js:libs', function() {
gulp.task('js:app', function() { gulp.task('js:app', function() {
return browserify({ return browserify({
'basedir': './dev/', 'basedir': './dev/',
'entries': './RainLoop.js',
'detectGlobals': false, 'detectGlobals': false,
'debug': false 'debug': false
}) })
.add('./_RainLoopBoot.js')
.bundle() .bundle()
.pipe(source(cfg.paths.js.app.name)) .pipe(source(cfg.paths.js.app.name))
.pipe(gulp.dest(cfg.paths.staticJS)) .pipe(gulp.dest(cfg.paths.staticJS))
@ -247,10 +247,10 @@ gulp.task('js:app', function() {
gulp.task('js:admin', function() { gulp.task('js:admin', function() {
return browserify({ return browserify({
'basedir': './dev/', 'basedir': './dev/',
'entries': './Admin.js',
'detectGlobals': false, 'detectGlobals': false,
'debug': false 'debug': false
}) })
.add('./_AdminBoot.js')
.bundle() .bundle()
.pipe(source(cfg.paths.js.admin.name)) .pipe(source(cfg.paths.js.admin.name))
.pipe(gulp.dest(cfg.paths.staticJS)) .pipe(gulp.dest(cfg.paths.staticJS))

View file

@ -77,8 +77,7 @@
"KnoinAbstractBoot": "./dev/Knoin/KnoinAbstractBoot.js", "KnoinAbstractBoot": "./dev/Knoin/KnoinAbstractBoot.js",
"KnoinAbstractScreen": "./dev/Knoin/KnoinAbstractScreen.js", "KnoinAbstractScreen": "./dev/Knoin/KnoinAbstractScreen.js",
"KnoinAbstractViewModel": "./dev/Knoin/KnoinAbstractViewModel.js", "KnoinAbstractViewModel": "./dev/Knoin/KnoinAbstractViewModel.js",
"kn": "./dev/Knoin/Knoin.js", "kn": "./dev/Knoin/Knoin.js"
"Boot": "./dev/Boots/Boot.js"
}, },
"devDependencies": { "devDependencies": {

View file

@ -195,15 +195,63 @@ class ImapClient extends \MailSo\Net\NetClient
try try
{ {
if ($bUseAuthPlainIfSupported && $this->IsSupported('AUTH=PLAIN')) // TODO
if (false && $this->IsSupported('AUTH=CRAM-MD5'))
{ {
$this->SendRequest('AUTHENTICATE', array('CRAM-MD5'));
$aResponse = $this->parseResponseWithValidation();
if ($aResponse && \is_array($aResponse) && 0 < \count($aResponse) &&
\MailSo\Imap\Enumerations\ResponseType::CONTINUATION === $aResponse[\count($aResponse) - 1]->ResponseType)
{
$oContinuationResponse = null;
foreach ($aResponse as $oResponse)
{
if ($oResponse && \MailSo\Imap\Enumerations\ResponseType::CONTINUATION === $oResponse->ResponseType)
{
$oContinuationResponse = $oResponse;
}
}
if ($oContinuationResponse)
{
$sToken = \base64_encode("\0".$sLogin."\0".$sPassword);
if ($this->oLogger)
{
$this->oLogger->AddSecret($sToken);
}
$this->Logger()->WriteDump($aResponse);
$this->sendRaw($sToken, true, '*******');
$this->parseResponseWithValidation();
}
else
{
// TODO
}
}
}
else if ($bUseAuthPlainIfSupported && $this->IsSupported('AUTH=PLAIN'))
{
$sToken = \base64_encode("\0".$sLogin."\0".$sPassword);
if ($this->oLogger) if ($this->oLogger)
{ {
$this->oLogger->AddSecret(\base64_encode("\0".$sLogin."\0".$sPassword)); $this->oLogger->AddSecret($sToken);
} }
$this->SendRequestWithCheck('AUTHENTICATE', if ($this->IsSupported('AUTH=SASL-IR') && false)
array('PLAIN', \base64_encode("\0".$sLogin."\0".$sPassword))); {
$this->SendRequestWithCheck('AUTHENTICATE', array('PLAIN', $sToken));
}
else
{
$this->SendRequest('AUTHENTICATE', array('PLAIN'));
$this->parseResponseWithValidation();
$this->sendRaw($sToken, true, '*******');
$this->parseResponseWithValidation();
}
} }
else else
{ {

View file

@ -423,8 +423,17 @@ abstract class NetClient
$iReadedLen = \strlen($this->sResponseBuffer); $iReadedLen = \strlen($this->sResponseBuffer);
if (null === $mReadLen || $bForceLogin) if (null === $mReadLen || $bForceLogin)
{ {
$this->writeLogWithCrlf('< '.$this->sResponseBuffer, //.' ['.$iReadedLen.']', $iLimit = 5000; // 5kb
\MailSo\Log\Enumerations\Type::INFO); if ($iLimit < $iReadedLen)
{
$this->writeLogWithCrlf('[cutted:'.$iReadedLen.'b] < '.\substr($this->sResponseBuffer.'...', 0, $iLimit),
\MailSo\Log\Enumerations\Type::INFO);
}
else
{
$this->writeLogWithCrlf('< '.$this->sResponseBuffer, //.' ['.$iReadedLen.']',
\MailSo\Log\Enumerations\Type::INFO);
}
} }
else else
{ {

View file

@ -12,8 +12,8 @@
<meta http-equiv="refresh" content="0; URL=./?/BadBrowser" /> <meta http-equiv="refresh" content="0; URL=./?/BadBrowser" />
<![endif]--> <![endif]-->
<script type="text/javascript" data-cfasync="false"> <script type="text/javascript" data-cfasync="false">
if (!navigator || !navigator.cookieEnabled) { if (!window.navigator || !window.navigator.cookieEnabled) {
document.location.replace('./?/NoCookie'); window.document.location.replace('./?/NoCookie');
} }
</script> </script>
<meta name="Author" content="RainLoop Team" /> <meta name="Author" content="RainLoop Team" />
@ -26,11 +26,11 @@
<link type="text/css" rel="stylesheet" id="rlThemeLink" /> <link type="text/css" rel="stylesheet" id="rlThemeLink" />
<script type="text/javascript" data-cfasync="false" src="{{BaseAppBootScriptLink}}"></script> <script type="text/javascript" data-cfasync="false" src="{{BaseAppBootScriptLink}}"></script>
<script type="text/javascript" data-cfasync="false"> <script type="text/javascript" data-cfasync="false">
__includeScr('{{BaseAppDataScriptLink}}' + (window.__rlah ? window.__rlah() || '0' : '0') + '/' + Math.random().toString().substr(2) + '/'); __includeScr('{{BaseAppDataScriptLink}}' + (window.__rlah ? window.__rlah() || '0' : '0') + '/' + window.Math.random().toString().substr(2) + '/');
</script> </script>
<script type="text/javascript" data-cfasync="false"> <script type="text/javascript" data-cfasync="false">
if (window.rainloopAppData && window.rainloopAppData['NewThemeLink']) { if (window.rainloopAppData && window.rainloopAppData['NewThemeLink']) {
document.getElementById('rlThemeLink').href = window.rainloopAppData['NewThemeLink']; window.document.getElementById('rlThemeLink').href = window.rainloopAppData['NewThemeLink'];
} }
</script> </script>
</head> </head>
@ -45,7 +45,7 @@
</div> </div>
</div> </div>
<script type="text/javascript" data-cfasync="false"> <script type="text/javascript" data-cfasync="false">
var oE = document.getElementById('rl-loading'); var oE = window.document.getElementById('rl-loading');
if (oE && oE.style) { if (oE && oE.style) {
oE.style.opacity = 0; oE.style.opacity = 0;
window.setTimeout(function () { window.setTimeout(function () {

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -5,4 +5,4 @@ var JSON;JSON||(JSON={}),function(){function str(a,b){var c,d,e,f,g=gap,h,i=b[a]
/*! RainLoop Simple Pace v1.0 (c) 2013 RainLoop Team; Licensed under MIT */ /*! RainLoop Simple Pace v1.0 (c) 2013 RainLoop Team; Licensed under MIT */
!function(e){function s(){var s=this;s.el=null,s.done=!1,s.progress=0,s.addInterval=0,s.addSpeed=3,s.stopProgress=100,s.interval=e.setInterval(function(){var t=s.build();t&&e.clearInterval(s.interval)},100)}if(s.prototype.startAddInterval=function(){var s=this;s.stopAddInterval(),s.addInterval=e.setInterval(function(){0<s.progress&&s.stopProgress>s.progress&&s.add(s.addSpeed)},500)},s.prototype.stopAddInterval=function(){e.clearInterval(this.addInterval),this.addInterval=0},s.prototype.build=function(){if(null===this.el){var e=document.querySelector("body");e&&(this.el=document.createElement("div"),this.el.className="simple-pace simple-pace-active",this.el.innerHTML='<div class="simple-pace-progress"><div class="simple-pace-progress-inner"></div></div><div class="simple-pace-activity"></div>',e.firstChild?e.insertBefore(this.el,e.firstChild):e.appendChild(this.el))}return this.el},s.prototype.reset=function(){return this.progress=0,this.render()},s.prototype.update=function(s){var t=e.parseInt(s,10);return t>this.progress&&(this.progress=t,this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress),this.render()},s.prototype.add=function(s){return this.progress+=e.parseInt(s,10),this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress,this.render()},s.prototype.setSpeed=function(e,s){this.addSpeed=e,this.stopProgress=s||100},s.prototype.render=function(){var s=this.build();s&&s.children&&s.children[0]&&s.children[0].setAttribute("style","width:"+this.progress+"%"),100!==this.progress||this.done?100>this.progress&&this.done?(this.done=!1,this.startAddInterval(),s.className=s.className.replace("simple-pace-inactive",""),s.className+=" simple-pace-inactive"):100>this.progress&&!this.done&&0===this.addInterval&&this.startAddInterval():(this.done=!0,this.stopAddInterval(),e.setTimeout(function(){s.className=s.className.replace("simple-pace-active",""),s.className+=" simple-pace-inactive"},500))},!e.SimplePace){var t=new s;e.SimplePace={sleep:function(){t.setSpeed(2,95)},set:function(e){t.update(e)},add:function(e){t.add(e)}}}}(window); !function(e){function s(){var s=this;s.el=null,s.done=!1,s.progress=0,s.addInterval=0,s.addSpeed=3,s.stopProgress=100,s.interval=e.setInterval(function(){var t=s.build();t&&e.clearInterval(s.interval)},100)}if(s.prototype.startAddInterval=function(){var s=this;s.stopAddInterval(),s.addInterval=e.setInterval(function(){0<s.progress&&s.stopProgress>s.progress&&s.add(s.addSpeed)},500)},s.prototype.stopAddInterval=function(){e.clearInterval(this.addInterval),this.addInterval=0},s.prototype.build=function(){if(null===this.el){var e=document.querySelector("body");e&&(this.el=document.createElement("div"),this.el.className="simple-pace simple-pace-active",this.el.innerHTML='<div class="simple-pace-progress"><div class="simple-pace-progress-inner"></div></div><div class="simple-pace-activity"></div>',e.firstChild?e.insertBefore(this.el,e.firstChild):e.appendChild(this.el))}return this.el},s.prototype.reset=function(){return this.progress=0,this.render()},s.prototype.update=function(s){var t=e.parseInt(s,10);return t>this.progress&&(this.progress=t,this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress),this.render()},s.prototype.add=function(s){return this.progress+=e.parseInt(s,10),this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress,this.render()},s.prototype.setSpeed=function(e,s){this.addSpeed=e,this.stopProgress=s||100},s.prototype.render=function(){var s=this.build();s&&s.children&&s.children[0]&&s.children[0].setAttribute("style","width:"+this.progress+"%"),100!==this.progress||this.done?100>this.progress&&this.done?(this.done=!1,this.startAddInterval(),s.className=s.className.replace("simple-pace-inactive",""),s.className+=" simple-pace-inactive"):100>this.progress&&!this.done&&0===this.addInterval&&this.startAddInterval():(this.done=!0,this.stopAddInterval(),e.setTimeout(function(){s.className=s.className.replace("simple-pace-active",""),s.className+=" simple-pace-inactive"},500))},!e.SimplePace){var t=new s;e.SimplePace={sleep:function(){t.setSpeed(2,95)},set:function(e){t.update(e)},add:function(e){t.add(e)}}}}(window);
/*! RainLoop Index Helper v1.1 (c) 2014 RainLoop Team; Licensed under MIT */ /*! RainLoop Index Helper v1.1 (c) 2014 RainLoop Team; Licensed under MIT */
!function(t,n){function e(){}e.prototype.s=t.sessionStorage,e.prototype.t=t.top||t,e.prototype.getHash=function(){var t=null;if(this.s)t=this.s.getItem("__rlA")||null;else if(this.t){var e=this.t.name&&n&&"{"===this.t.name.toString().substr(0,1)?n.parse(this.t.name.toString()):null;t=e?e.__rlA||null:null}return t},e.prototype.setHash=function(){var e=t.rainloopAppData,s=null;this.s?this.s.setItem("__rlA",e&&e.AuthAccountHash?e.AuthAccountHash:""):this.t&&n&&(s={},s.__rlA=e&&e.AuthAccountHash?e.AuthAccountHash:"",this.t.name=n.stringify(s))},e.prototype.clearHash=function(){this.s?this.s.setItem("__rlA",""):this.t&&(this.t.name="")},t._rlhh=new e,t.__rlah=function(){return t._rlhh?t._rlhh.getHash():null},t.__rlah_set=function(){t._rlhh&&t._rlhh.setHash()},t.__rlah_clear=function(){t._rlhh&&t._rlhh.clearHash()},t.__includeScr=function(t){document.write(unescape('%3Cscript data-cfasync="false" type="text/javascript" src="'+t+'"%3E%3C/script%3E'))},t.__showError=function(){var n=document.getElementById("rl-loading"),e=document.getElementById("rl-loading-error");n&&(n.style.display="none"),e&&(e.style.display="block"),t.SimplePace&&t.SimplePace.set(100)},t.__simplePace=function(n){t.SimplePace&&t.SimplePace.add(n)},t.__runBoot=function(n){t.__RLBOOT&&!n?t.__RLBOOT(function(t){t||__showError()}):__showError()}}(window,window.JSON); !function(t,n,e){function s(){}s.prototype.s=t.sessionStorage,s.prototype.t=t.top||t,s.prototype.getHash=function(){var t=null;if(this.s)t=this.s.getItem("__rlA")||null;else if(this.t){var n=this.t.name&&e&&"{"===this.t.name.toString().substr(0,1)?e.parse(this.t.name.toString()):null;t=n?n.__rlA||null:null}return t},s.prototype.setHash=function(){var n=t.rainloopAppData,s=null;this.s?this.s.setItem("__rlA",n&&n.AuthAccountHash?n.AuthAccountHash:""):this.t&&e&&(s={},s.__rlA=n&&n.AuthAccountHash?n.AuthAccountHash:"",this.t.name=e.stringify(s))},s.prototype.clearHash=function(){this.s?this.s.setItem("__rlA",""):this.t&&(this.t.name="")},t._rlhh=new s,t.__rlah=function(){return t._rlhh?t._rlhh.getHash():null},t.__rlah_set=function(){t._rlhh&&t._rlhh.setHash()},t.__rlah_clear=function(){t._rlhh&&t._rlhh.clearHash()},t.__includeScr=function(t){n.write(unescape('%3Cscript data-cfasync="false" type="text/javascript" src="'+t+'"%3E%3C/script%3E'))},t.__showError=function(){var e=n.getElementById("rl-loading"),s=n.getElementById("rl-loading-error");e&&(e.style.display="none"),s&&(s.style.display="block"),t.SimplePace&&t.SimplePace.set(100)},t.__simplePace=function(n){t.SimplePace&&t.SimplePace.add(n)},t.__runBoot=function(n){t.__APP_BOOT&&!n?t.__APP_BOOT(function(t){t||__showError()}):__showError()}}(window,window.document,window.JSON);

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
/*! RainLoop Index Helper v1.1 (c) 2014 RainLoop Team; Licensed under MIT */ /*! RainLoop Index Helper v1.1 (c) 2014 RainLoop Team; Licensed under MIT */
!function(t,n){function e(){}e.prototype.s=t.sessionStorage,e.prototype.t=t.top||t,e.prototype.getHash=function(){var t=null;if(this.s)t=this.s.getItem("__rlA")||null;else if(this.t){var e=this.t.name&&n&&"{"===this.t.name.toString().substr(0,1)?n.parse(this.t.name.toString()):null;t=e?e.__rlA||null:null}return t},e.prototype.setHash=function(){var e=t.rainloopAppData,s=null;this.s?this.s.setItem("__rlA",e&&e.AuthAccountHash?e.AuthAccountHash:""):this.t&&n&&(s={},s.__rlA=e&&e.AuthAccountHash?e.AuthAccountHash:"",this.t.name=n.stringify(s))},e.prototype.clearHash=function(){this.s?this.s.setItem("__rlA",""):this.t&&(this.t.name="")},t._rlhh=new e,t.__rlah=function(){return t._rlhh?t._rlhh.getHash():null},t.__rlah_set=function(){t._rlhh&&t._rlhh.setHash()},t.__rlah_clear=function(){t._rlhh&&t._rlhh.clearHash()},t.__includeScr=function(t){document.write(unescape('%3Cscript data-cfasync="false" type="text/javascript" src="'+t+'"%3E%3C/script%3E'))},t.__showError=function(){var n=document.getElementById("rl-loading"),e=document.getElementById("rl-loading-error");n&&(n.style.display="none"),e&&(e.style.display="block"),t.SimplePace&&t.SimplePace.set(100)},t.__simplePace=function(n){t.SimplePace&&t.SimplePace.add(n)},t.__runBoot=function(n){t.__RLBOOT&&!n?t.__RLBOOT(function(t){t||__showError()}):__showError()}}(window,window.JSON); !function(t,n,e){function s(){}s.prototype.s=t.sessionStorage,s.prototype.t=t.top||t,s.prototype.getHash=function(){var t=null;if(this.s)t=this.s.getItem("__rlA")||null;else if(this.t){var n=this.t.name&&e&&"{"===this.t.name.toString().substr(0,1)?e.parse(this.t.name.toString()):null;t=n?n.__rlA||null:null}return t},s.prototype.setHash=function(){var n=t.rainloopAppData,s=null;this.s?this.s.setItem("__rlA",n&&n.AuthAccountHash?n.AuthAccountHash:""):this.t&&e&&(s={},s.__rlA=n&&n.AuthAccountHash?n.AuthAccountHash:"",this.t.name=e.stringify(s))},s.prototype.clearHash=function(){this.s?this.s.setItem("__rlA",""):this.t&&(this.t.name="")},t._rlhh=new s,t.__rlah=function(){return t._rlhh?t._rlhh.getHash():null},t.__rlah_set=function(){t._rlhh&&t._rlhh.setHash()},t.__rlah_clear=function(){t._rlhh&&t._rlhh.clearHash()},t.__includeScr=function(t){n.write(unescape('%3Cscript data-cfasync="false" type="text/javascript" src="'+t+'"%3E%3C/script%3E'))},t.__showError=function(){var e=n.getElementById("rl-loading"),s=n.getElementById("rl-loading-error");e&&(e.style.display="none"),s&&(s.style.display="block"),t.SimplePace&&t.SimplePace.set(100)},t.__simplePace=function(n){t.SimplePace&&t.SimplePace.add(n)},t.__runBoot=function(n){t.__APP_BOOT&&!n?t.__APP_BOOT(function(t){t||__showError()}):__showError()}}(window,window.document,window.JSON);

10
vendors/rl/rl.js vendored
View file

@ -1,5 +1,5 @@
/*! RainLoop Index Helper v1.1 (c) 2013 RainLoop Team; Licensed under MIT */ /*! RainLoop Index Helper v1.2 (c) 2013 RainLoop Team; Licensed under MIT */
(function (window, JSON) { (function (window, document, JSON) {
/** /**
* @constructor * @constructor
@ -85,8 +85,8 @@
}; };
window['__runBoot'] = function (bWithError) { window['__runBoot'] = function (bWithError) {
if (window.__RLBOOT && !bWithError) { if (window.__APP_BOOT && !bWithError) {
window.__RLBOOT(function (bV) { window.__APP_BOOT(function (bV) {
if (!bV) { if (!bV) {
__showError(); __showError();
} }
@ -96,4 +96,4 @@
} }
}; };
}(window, window.JSON)); }(window, window.document, window.JSON));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1343
vendors/underscore/1.6.0/underscore.js vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,9 +0,0 @@
## How to contribute to Underscore.js
* Before you open a ticket or send a pull request, [search](https://github.com/jashkenas/underscore/issues) for previous discussions about the same feature or issue. Add to the earlier ticket if you find one.
* Before sending a pull request for a feature, be sure to have [tests](http://underscorejs.org/test/).
* Use the same coding style as the rest of the [codebase](https://github.com/jashkenas/underscore/blob/master/underscore.js).
* In your pull request, do not add documentation or re-build the minified `underscore-min.js` file. We'll do those things before cutting a new release.

View file

@ -1,22 +0,0 @@
__
/\ \ __
__ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____
/\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\
\ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\
\ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
\/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/
\ \____/
\/___/
Underscore.js is a utility-belt library for JavaScript that provides
support for the usual functional suspects (each, map, reduce, filter...)
without extending any core JavaScript objects.
For Docs, License, Tests, and pre-packed downloads, see:
http://underscorejs.org
Underscore is an open-sourced component of DocumentCloud:
https://github.com/documentcloud
Many thanks to our contributors:
https://github.com/jashkenas/underscore/contributors

View file

@ -1,6 +0,0 @@
{
"name": "underscore",
"version": "1.5.2",
"main": "underscore.js",
"ignore" : ["underscore-min.js", "docs", "test", "*.yml", "*.map"]
}

View file

@ -1,10 +0,0 @@
{
"name" : "underscore",
"description" : "JavaScript's functional programming helper library.",
"keywords" : ["util", "functional", "server", "client", "browser"],
"repo" : "jashkenas/underscore",
"main" : "underscore.js",
"scripts" : ["underscore.js"],
"version" : "1.5.2",
"license" : "MIT"
}

View file

@ -1,25 +0,0 @@
{
"name" : "underscore",
"description" : "JavaScript's functional programming helper library.",
"homepage" : "http://underscorejs.org",
"keywords" : ["util", "functional", "server", "client", "browser"],
"author" : "Jeremy Ashkenas <jeremy@documentcloud.org>",
"repository" : {"type": "git", "url": "git://github.com/jashkenas/underscore.git"},
"main" : "underscore.js",
"version" : "1.5.2",
"devDependencies": {
"phantomjs": "1.9.0-1"
},
"scripts": {
"test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true",
"build": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m --source-map underscore-min.map -o underscore-min.js",
"doc": "docco underscore.js"
},
"licenses": [
{
"type": "MIT",
"url": "https://raw.github.com/jashkenas/underscore/master/LICENSE"
}
],
"files" : ["underscore.js", "underscore-min.js", "LICENSE"]
}