Fix not spam translate (Closes #168)

Small refactoring and fixes
This commit is contained in:
RainLoop Team 2014-05-16 19:57:50 +04:00
parent 07b0f20305
commit d3ee36bb97
68 changed files with 629 additions and 392 deletions

View file

@ -207,6 +207,7 @@ module.exports = function (grunt) {
"dev/Admin/Plugins.js",
"dev/Admin/Packages.js",
"dev/Admin/Licensing.js",
"dev/Admin/About.js",
"dev/Storages/AbstractData.js",
"dev/Storages/AdminData.js",

16
dev/Admin/About.js Normal file
View file

@ -0,0 +1,16 @@
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
/**
* @constructor
*/
function AdminAbout()
{
this.version = ko.observable(RL.settingsGet('Version'));
}
Utils.addSettingsViewModel(AdminAbout, 'AdminSettingsAbout', 'About', 'about');
//AdminAbout.prototype.onBuild = function ()
//{
//
//};

View file

@ -13,11 +13,11 @@ function AdminGeneral()
this.language = oData.language;
this.theme = oData.theme;
this.allowThemes = oData.allowThemes;
this.allowLanguagesOnSettings = oData.allowLanguagesOnSettings;
this.allowAdditionalAccounts = oData.allowAdditionalAccounts;
this.allowIdentities = oData.allowIdentities;
this.allowGravatar = oData.allowGravatar;
this.capaThemes = oData.capaThemes;
this.capaGravatar = oData.capaGravatar;
this.capaAdditionalAccounts = oData.capaAdditionalAccounts;
this.capaAdditionalIdentities = oData.capaAdditionalIdentities;
this.themesOptions = ko.computed(function () {
return _.map(oData.themes(), function (sTheme) {
@ -62,27 +62,27 @@ AdminGeneral.prototype.onBuild = function ()
});
});
self.allowAdditionalAccounts.subscribe(function (bValue) {
self.capaAdditionalAccounts.subscribe(function (bValue) {
RL.remote().saveAdminConfig(null, {
'AllowAdditionalAccounts': bValue ? '1' : '0'
'CapaAdditionalAccounts': bValue ? '1' : '0'
});
});
self.allowIdentities.subscribe(function (bValue) {
self.capaAdditionalIdentities.subscribe(function (bValue) {
RL.remote().saveAdminConfig(null, {
'AllowIdentities': bValue ? '1' : '0'
'CapaAdditionalIdentities': bValue ? '1' : '0'
});
});
self.allowGravatar.subscribe(function (bValue) {
self.capaGravatar.subscribe(function (bValue) {
RL.remote().saveAdminConfig(null, {
'AllowGravatar': bValue ? '1' : '0'
'CapaGravatar': bValue ? '1' : '0'
});
});
self.allowThemes.subscribe(function (bValue) {
self.capaThemes.subscribe(function (bValue) {
RL.remote().saveAdminConfig(null, {
'AllowThemes': bValue ? '1' : '0'
'CapaThemes': bValue ? '1' : '0'
});
});

View file

@ -6,8 +6,8 @@
function AdminSecurity()
{
this.csrfProtection = ko.observable(!!RL.settingsGet('UseTokenProtection'));
this.openPGP = ko.observable(!!RL.settingsGet('OpenPGP'));
this.allowTwoFactorAuth = ko.observable(!!RL.settingsGet('AllowTwoFactorAuth'));
this.capaOpenPGP = ko.observable(RL.capa(Enums.Capa.OpenPGP));
this.capaTwoFactorAuth = ko.observable(RL.capa(Enums.Capa.TwoFactor));
this.adminLogin = ko.observable(RL.settingsGet('AdminLogin'));
this.adminPassword = ko.observable('');
@ -84,15 +84,15 @@ AdminSecurity.prototype.onBuild = function ()
});
});
this.openPGP.subscribe(function (bValue) {
this.capaOpenPGP.subscribe(function (bValue) {
RL.remote().saveAdminConfig(Utils.emptyFunction, {
'OpenPGP': bValue ? '1' : '0'
'CapaOpenPGP': bValue ? '1' : '0'
});
});
this.allowTwoFactorAuth.subscribe(function (bValue) {
this.capaTwoFactorAuth.subscribe(function (bValue) {
RL.remote().saveAdminConfig(Utils.emptyFunction, {
'AllowTwoFactorAuth': bValue ? '1' : '0'
'CapaTwoFactorAuth': bValue ? '1' : '0'
});
});
};

View file

@ -212,6 +212,8 @@ AdminApp.prototype.bootstart = function ()
}
else
{
Utils.removeSettingsViewModel(AdminAbout);
if (!RL.capa(Enums.Capa.Prem))
{
Utils.removeSettingsViewModel(AdminBranding);

View file

@ -425,7 +425,7 @@ RainLoopApp.prototype.folders = function (fCallback)
RainLoopApp.prototype.reloadOpenPgpKeys = function ()
{
if (RL.data().allowOpenPGP())
if (RL.data().capaOpenPGP())
{
var
aKeys = [],
@ -1043,12 +1043,12 @@ RainLoopApp.prototype.bootstart = function ()
Utils.removeSettingsViewModel(SettingsContacts);
}
if (!RL.settingsGet('AllowAdditionalAccounts'))
if (!RL.capa(Enums.Capa.AdditionalAccounts))
{
Utils.removeSettingsViewModel(SettingsAccounts);
}
if (RL.settingsGet('AllowIdentities'))
if (RL.capa(Enums.Capa.AdditionalIdentities))
{
Utils.removeSettingsViewModel(SettingsIdentity);
}
@ -1057,26 +1057,26 @@ RainLoopApp.prototype.bootstart = function ()
Utils.removeSettingsViewModel(SettingsIdentities);
}
if (!RL.settingsGet('OpenPGP'))
if (!RL.capa(Enums.Capa.OpenPGP))
{
Utils.removeSettingsViewModel(SettingsOpenPGP);
}
if (!RL.settingsGet('AllowTwoFactorAuth'))
if (!RL.capa(Enums.Capa.TwoFactor))
{
Utils.removeSettingsViewModel(SettingsSecurity);
}
if (!RL.capa(Enums.Capa.Themes))
{
Utils.removeSettingsViewModel(SettingsThemes);
}
if (!bGoogle && !bFacebook && !bTwitter)
{
Utils.removeSettingsViewModel(SettingsSocialScreen);
}
if (!RL.settingsGet('AllowThemes'))
{
Utils.removeSettingsViewModel(SettingsThemes);
}
Utils.initOnStartOrLangChange(function () {
$.extend(true, $.magnificPopup.defaults, {
@ -1113,7 +1113,7 @@ RainLoopApp.prototype.bootstart = function ()
if (bValue)
{
if (window.crypto && window.crypto.getRandomValues && RL.settingsGet('OpenPGP'))
if (window.crypto && window.crypto.getRandomValues && RL.capa(Enums.Capa.OpenPGP))
{
$.ajax({
'url': RL.link().openPgpJs(),
@ -1123,7 +1123,7 @@ RainLoopApp.prototype.bootstart = function ()
if (window.openpgp)
{
RL.data().openpgpKeyring = new window.openpgp.Keyring();
RL.data().allowOpenPGP(true);
RL.data().capaOpenPGP(true);
RL.pub('openpgp.init');
@ -1134,7 +1134,7 @@ RainLoopApp.prototype.bootstart = function ()
}
else
{
RL.data().allowOpenPGP(false);
RL.data().capaOpenPGP(false);
}
kn.startScreens([MailBoxScreen, SettingsScreen]);

View file

@ -31,7 +31,14 @@ Enums.StateType = {
* @enum {string}
*/
Enums.Capa = {
'Prem': 'PREM'
'Prem': 'PREM',
'TwoFactor': 'TWO_FACTOR',
'OpenPGP': 'OPEN_PGP',
'Prefetch': 'PREFETCH',
'Gravatar': 'GRAVATAR',
'Themes': 'THEMES',
'AdditionalAccounts': 'ADDITIONAL_ACCOUNTS',
'AdditionalIdentities': 'ADDITIONAL_IDENTITIES'
};
/**

View file

@ -772,7 +772,7 @@ Utils.initDataConstructorBySettings = function (oData)
Globals.sAnimationType = Enums.InterfaceAnimation.Full;
oData.allowThemes = ko.observable(true);
oData.capaThemes = ko.observable(false);
oData.allowCustomLogin = ko.observable(false);
oData.allowLanguagesOnSettings = ko.observable(true);
oData.allowLanguagesOnLogin = ko.observable(true);
@ -940,9 +940,9 @@ Utils.initDataConstructorBySettings = function (oData)
}
});
oData.allowAdditionalAccounts = ko.observable(false);
oData.allowIdentities = ko.observable(false);
oData.allowGravatar = ko.observable(false);
oData.capaAdditionalAccounts = ko.observable(false);
oData.capaAdditionalIdentities = ko.observable(false);
oData.capaGravatar = ko.observable(false);
oData.determineUserLanguage = ko.observable(false);
oData.messagesPerPage = ko.observable(Consts.Defaults.MessagesPerPage);//.extend({'throttle': 200});

View file

@ -362,7 +362,7 @@ MessageModel.prototype.initUpdateByMessageJson = function (oJsonMessage)
this.sInReplyTo = oJsonMessage.InReplyTo;
this.sReferences = oJsonMessage.References;
if (RL.data().allowOpenPGP())
if (RL.data().capaOpenPGP())
{
this.isPgpSigned(!!oJsonMessage.PgpSigned);
this.isPgpEncrypted(!!oJsonMessage.PgpEncrypted);
@ -997,7 +997,7 @@ MessageModel.prototype.storeDataToDom = function ()
this.body.data('rl-plain-raw', this.plainRaw);
if (RL.data().allowOpenPGP())
if (RL.data().capaOpenPGP())
{
this.body.data('rl-plain-pgp-signed', !!this.isPgpSigned());
this.body.data('rl-plain-pgp-encrypted', !!this.isPgpEncrypted());
@ -1009,7 +1009,7 @@ MessageModel.prototype.storeDataToDom = function ()
MessageModel.prototype.storePgpVerifyDataToDom = function ()
{
if (this.body && RL.data().allowOpenPGP())
if (this.body && RL.data().capaOpenPGP())
{
this.body.data('rl-pgp-verify-status', this.pgpSignedVerifyStatus());
this.body.data('rl-pgp-verify-user', this.pgpSignedVerifyUser());
@ -1026,7 +1026,7 @@ MessageModel.prototype.fetchDataToDom = function ()
this.plainRaw = Utils.pString(this.body.data('rl-plain-raw'));
if (RL.data().allowOpenPGP())
if (RL.data().capaOpenPGP())
{
this.isPgpSigned(!!this.body.data('rl-plain-pgp-signed'));
this.isPgpEncrypted(!!this.body.data('rl-plain-pgp-encrypted'));

View file

@ -91,7 +91,7 @@ MailBoxScreen.prototype.onStart = function ()
}
;
if (RL.settingsGet('AllowAdditionalAccounts') || RL.settingsGet('AllowIdentities'))
if (RL.capa(Enums.Capa.AdditionalAccounts) || RL.capa(Enums.Capa.AdditionalIdentities))
{
RL.accountsAndIdentities();
}

View file

@ -7,7 +7,7 @@ function AbstractCacheStorage()
{
this.oEmailsPicsHashes = {};
this.oServices = {};
this.bAllowGravatar = !!RL.settingsGet('AllowGravatar');
this.bCapaGravatar = RL.capa(Enums.Capa.Gravatar);
}
/**
@ -23,7 +23,7 @@ AbstractCacheStorage.prototype.oServices = {};
/**
* @type {boolean}
*/
AbstractCacheStorage.prototype.bAllowGravatar = false;
AbstractCacheStorage.prototype.bCapaGravatar = false;
AbstractCacheStorage.prototype.clear = function ()
{
@ -57,7 +57,7 @@ AbstractCacheStorage.prototype.getUserPic = function (sEmail, fCallback)
}
if (this.bAllowGravatar && '' === sUrl)
if (this.bCapaGravatar && '' === sUrl)
{
fCallback('//secure.gravatar.com/avatar/' + Utils.md5(sEmailLower) + '.jpg?s=80&d=mm', sEmail);
}

View file

@ -84,12 +84,12 @@ AbstractData.prototype.populateDataOnStart = function()
this.mainLanguage(RL.settingsGet('Language'));
this.mainTheme(RL.settingsGet('Theme'));
this.allowAdditionalAccounts(!!RL.settingsGet('AllowAdditionalAccounts'));
this.allowIdentities(!!RL.settingsGet('AllowIdentities'));
this.allowGravatar(!!RL.settingsGet('AllowGravatar'));
this.capaAdditionalAccounts(RL.capa(Enums.Capa.AdditionalAccounts));
this.capaAdditionalIdentities(RL.capa(Enums.Capa.AdditionalIdentities));
this.capaGravatar(RL.capa(Enums.Capa.Gravatar));
this.determineUserLanguage(!!RL.settingsGet('DetermineUserLanguage'));
this.allowThemes(!!RL.settingsGet('AllowThemes'));
this.capaThemes(RL.capa(Enums.Capa.Themes));
this.allowCustomLogin(!!RL.settingsGet('AllowCustomLogin'));
this.allowLanguagesOnLogin(!!RL.settingsGet('AllowLanguagesOnLogin'));
this.allowLanguagesOnSettings(!!RL.settingsGet('AllowLanguagesOnSettings'));

View file

@ -402,7 +402,7 @@ function WebMailDataStorage()
}, this);
// other
this.allowOpenPGP = ko.observable(false);
this.capaOpenPGP = ko.observable(false);
this.openpgpkeys = ko.observableArray([]);
this.openpgpKeyring = null;
@ -929,8 +929,7 @@ WebMailDataStorage.prototype.setMessage = function (oData, bCached)
sPlain = oData.Result.Plain.toString();
if ((oMessage.isPgpSigned() || oMessage.isPgpEncrypted()) &&
RL.data().allowOpenPGP() &&
Utils.isNormal(oData.Result.PlainRaw))
RL.data().capaOpenPGP() && Utils.isNormal(oData.Result.PlainRaw))
{
oMessage.plainRaw = Utils.pString(oData.Result.PlainRaw);

View file

@ -70,6 +70,7 @@
@import "AdminPackages.less";
@import "AdminPlugins.less";
@import "AdminPlugin.less";
@import "AdminAbout.less";
@import "Activate.less";
@import "Settings.less";
@import "SettingsGeneral.less";

View file

@ -0,0 +1,10 @@
.b-admin-about {
.rl-logo {
display: inline-block;
width: 250px;
height: 250px;
background-image: url("images/rainloop-logo.png");
}
}

View file

@ -16,7 +16,7 @@ function AbstractSystemDropDownViewModel()
this.accountMenuDropdownTrigger = ko.observable(false);
this.allowAddAccount = RL.settingsGet('AllowAdditionalAccounts');
this.capaAdditionalAccounts = RL.capa(Enums.Capa.AdditionalAccounts);
this.loading = ko.computed(function () {
return this.accountsLoading();
@ -58,7 +58,7 @@ AbstractSystemDropDownViewModel.prototype.settingsHelp = function ()
AbstractSystemDropDownViewModel.prototype.addAccountClick = function ()
{
if (this.allowAddAccount)
if (this.capaAdditionalAccounts)
{
kn.showScreenPopup(PopupsAddAccountViewModel);
}

View file

@ -665,7 +665,7 @@ MailBoxMessageListViewModel.prototype.onBuild = function (oDom)
this.initUploaderForAppend();
this.initShortcuts();
if (!Globals.bMobileDevice && !!RL.settingsGet('AllowPrefetch') && ifvisible)
if (!Globals.bMobileDevice && RL.capa(Enums.Capa.Prefetch) && ifvisible)
{
ifvisible.setIdleDuration(10);

View file

@ -14,8 +14,8 @@ function PopupsComposeViewModel()
this.bFromDraft = false;
this.bSkipNext = false;
this.sReferences = '';
this.bAllowIdentities = RL.settingsGet('AllowIdentities');
this.bCapaAdditionalIdentities = RL.capa(Enums.Capa.AdditionalIdentities);
var
self = this,
@ -28,7 +28,7 @@ function PopupsComposeViewModel()
}
;
this.allowOpenPGP = oRainLoopData.allowOpenPGP;
this.capaOpenPGP = oRainLoopData.capaOpenPGP;
this.resizer = ko.observable(false).extend({'throttle': 50});
@ -125,7 +125,7 @@ function PopupsComposeViewModel()
sID = this.currentIdentityID()
;
if (this.bAllowIdentities && sID && sID !== RL.data().accountEmail())
if (this.bCapaAdditionalIdentities && sID && sID !== RL.data().accountEmail())
{
oItem = _.find(aList, function (oItem) {
return oItem && sID === oItem['id'];
@ -366,7 +366,7 @@ Utils.extendAsViewModel('PopupsComposeViewModel', PopupsComposeViewModel);
PopupsComposeViewModel.prototype.openOpenPgpPopup = function ()
{
if (this.allowOpenPGP() && this.oEditor && !this.oEditor.isHtml())
if (this.capaOpenPGP() && this.oEditor && !this.oEditor.isHtml())
{
var self = this;
kn.showScreenPopup(PopupsComposeOpenPgpViewModel, [
@ -417,7 +417,7 @@ PopupsComposeViewModel.prototype.findIdentityIdByMessage = function (sComposeTyp
}
;
if (this.bAllowIdentities)
if (this.bCapaAdditionalIdentities)
{
_.each(this.identities(), function (oItem) {
oIDs[oItem.email()] = oItem['id'];

View file

@ -47,6 +47,13 @@ function PopupsGenerateNewOpenPgpKeyViewModel()
_.delay(function () {
mKeyPair = window.openpgp.generateKeyPair(1, Utils.pInt(self.keyBitLength()), sUserID, Utils.trim(self.password()));
// 0.6.0
// mKeyPair = window.openpgp.generateKeyPair({
// 'numBits': Utils.pInt(self.keyBitLength()),
// 'userId': sUserID,
// 'passphrase': Utils.trim(self.password())
// });
if (mKeyPair && mKeyPair.privateKeyArmored)
{
oOpenpgpKeyring.privateKeys.importKey(mKeyPair.privateKeyArmored);

View file

@ -981,28 +981,21 @@ class Actions
'LoginDescription' => '',
'LoginCss' => '',
'Token' => $oConfig->Get('security', 'csrf_protection', false) ? \RainLoop\Utils::GetCsrfToken() : '',
'OpenPGP' => $oConfig->Get('security', 'openpgp', false),
'AllowTwoFactorAuth' => (bool) $oConfig->Get('security', 'allow_two_factor_auth', false),
'InIframe' => (bool) $oConfig->Get('labs', 'in_iframe', false),
'AllowAdminPanel' => (bool) $oConfig->Get('security', 'allow_admin_panel', true),
'AllowHtmlEditorSourceButton' => (bool) $oConfig->Get('labs', 'allow_html_editor_source_button', false),
'CustomLoginLink' => $oConfig->Get('labs', 'custom_login_link', ''),
'CustomLogoutLink' => $oConfig->Get('labs', 'custom_logout_link', ''),
'AllowAdditionalAccounts' => (bool) $oConfig->Get('webmail', 'allow_additional_accounts', true),
'AllowIdentities' => (bool) $oConfig->Get('webmail', 'allow_identities', true),
'AllowPrefetch' => (bool) $oConfig->Get('labs', 'allow_prefetch', true),
'AllowGravatar' => (bool) $oConfig->Get('labs', 'allow_gravatar', true),
'AllowCustomLogin' => (bool) $oConfig->Get('login', 'allow_custom_login', false),
'LoginDefaultDomain' => $oConfig->Get('login', 'default_domain', ''),
'DetermineUserLanguage' => (bool) $oConfig->Get('login', 'determine_user_language', true),
'AllowThemes' => (bool) $oConfig->Get('webmail', 'allow_themes', true),
'ChangePasswordIsAllowed' => false,
'ContactsIsAllowed' => false,
'ChangePasswordIsAllowed' => false,
'JsHash' => \md5(\RainLoop\Utils::GetConnectionToken()),
'UseImapThread' => (bool) $oConfig->Get('labs', 'use_imap_thread', false),
'UseImapSubscribe' => (bool) $oConfig->Get('labs', 'use_imap_list_subscribe', true),
'AllowAppendMessage' => (bool) $oConfig->Get('labs', 'allow_message_append', false),
'Capa' => $this->Capa(),
'Capa' => array(),
'Plugins' => array()
);
@ -1011,7 +1004,7 @@ class Actions
$aResult['AuthAccountHash'] = $sAuthAccountHash;
}
if ($this->GetCapa(\RainLoop\Enumerations\Capa::PREM))
if ($this->GetCapa(true, \RainLoop\Enumerations\Capa::PREM))
{
$aResult['Title'] = $oConfig->Get('webmail', 'title', '');
$aResult['LoadingDescription'] = $oConfig->Get('webmail', 'loading_description', '');
@ -1113,6 +1106,8 @@ class Actions
{
$aResult['AllowDropboxSocial'] = false;
}
$aResult['Capa'] = $this->Capa(false, $oAccount);
}
else
{
@ -1157,6 +1152,8 @@ class Actions
$aResult['WeakPassword'] = $oConfig->ValidatePassword('12345');
}
$aResult['Capa'] = $this->Capa(true);
}
$aResult['ProjectHash'] = \md5($aResult['AccountHash'].APP_VERSION.$this->Plugins()->Hash());
@ -2034,6 +2031,36 @@ class Actions
}
}
/**
* @param \RainLoop\Config\Application $oConfig
* @param string $sParamName
* @param string $sCapa
*/
private function setCapaFromParams(&$oConfig, $sParamName, $sCapa)
{
switch ($sCapa)
{
case \RainLoop\Enumerations\Capa::ADDITIONAL_ACCOUNTS:
$this->setConfigFromParams($oConfig, $sParamName, 'webmail', 'allow_additional_accounts', 'bool');
break;
case \RainLoop\Enumerations\Capa::ADDITIONAL_IDENTITIES:
$this->setConfigFromParams($oConfig, $sParamName, 'webmail', 'allow_identities', 'bool');
break;
case \RainLoop\Enumerations\Capa::TWO_FACTOR:
$this->setConfigFromParams($oConfig, $sParamName, 'security', 'allow_two_factor_auth', 'bool');
break;
case \RainLoop\Enumerations\Capa::GRAVATAR:
$this->setConfigFromParams($oConfig, $sParamName, 'labs', 'allow_gravatar', 'bool');
break;
case \RainLoop\Enumerations\Capa::THEMES:
$this->setConfigFromParams($oConfig, $sParamName, 'webmail', 'allow_themes', 'bool');
break;
case \RainLoop\Enumerations\Capa::OPEN_PGP:
$this->setConfigFromParams($oConfig, $sParamName, 'security', 'openpgp', 'bool');
break;
}
}
/**
* @param \RainLoop\Settings $oSettings
* @param string $sConfigName
@ -2091,7 +2118,6 @@ class Actions
return $self->ValidateTheme($sTheme);
});
$this->setConfigFromParams($oConfig, 'AllowThemes', 'webmail', 'allow_themes', 'bool');
$this->setConfigFromParams($oConfig, 'AllowLanguagesOnSettings', 'webmail', 'allow_languages_on_settings', 'bool');
$this->setConfigFromParams($oConfig, 'AllowLanguagesOnLogin', 'login', 'allow_languages_on_login', 'bool');
$this->setConfigFromParams($oConfig, 'AllowCustomLogin', 'login', 'allow_custom_login', 'bool');
@ -2108,14 +2134,16 @@ class Actions
return $self->ValidateContactPdoType($sType);
});
$this->setConfigFromParams($oConfig, 'AllowAdditionalAccounts', 'webmail', 'allow_additional_accounts', 'bool');
$this->setConfigFromParams($oConfig, 'AllowIdentities', 'webmail', 'allow_identities', 'bool');
$this->setConfigFromParams($oConfig, 'AllowGravatar', 'labs', 'allow_gravatar', 'bool');
$this->setCapaFromParams($oConfig, 'CapaAdditionalAccounts', \RainLoop\Enumerations\Capa::ADDITIONAL_ACCOUNTS);
$this->setCapaFromParams($oConfig, 'CapaAdditionalIdentities', \RainLoop\Enumerations\Capa::ADDITIONAL_IDENTITIES);
$this->setCapaFromParams($oConfig, 'CapaTwoFactorAuth', \RainLoop\Enumerations\Capa::TWO_FACTOR);
$this->setCapaFromParams($oConfig, 'CapaOpenPGP', \RainLoop\Enumerations\Capa::OPEN_PGP);
$this->setCapaFromParams($oConfig, 'CapaGravatar', \RainLoop\Enumerations\Capa::GRAVATAR);
$this->setCapaFromParams($oConfig, 'CapaThemes', \RainLoop\Enumerations\Capa::THEMES);
$this->setConfigFromParams($oConfig, 'DetermineUserLanguage', 'login', 'determine_user_language', 'bool');
if ($this->GetCapa(\RainLoop\Enumerations\Capa::PREM))
if ($this->GetCapa(true, \RainLoop\Enumerations\Capa::PREM))
{
$this->setConfigFromParams($oConfig, 'Title', 'webmail', 'title', 'string');
$this->setConfigFromParams($oConfig, 'LoadingDescription', 'webmail', 'loading_description', 'string');
@ -2126,8 +2154,6 @@ class Actions
}
$this->setConfigFromParams($oConfig, 'TokenProtection', 'security', 'csrf_protection', 'bool');
$this->setConfigFromParams($oConfig, 'OpenPGP', 'security', 'openpgp', 'bool');
$this->setConfigFromParams($oConfig, 'AllowTwoFactorAuth', 'security', 'allow_two_factor_auth', 'bool');
$this->setConfigFromParams($oConfig, 'EnabledPlugins', 'plugins', 'enable', 'bool');
$this->setConfigFromParams($oConfig, 'GoogleEnable', 'social', 'google_enable', 'bool');
@ -5959,23 +5985,64 @@ class Actions
}
/**
* @param bool $bAdmin
* @param \RainLoop\Account $oAccount
*
* @return array
*/
public function Capa()
public function Capa($bAdmin, $oAccount = null)
{
return array(
\RainLoop\Enumerations\Capa::PREM
);
$oConfig = $this->Config();
$aResult = array(\RainLoop\Enumerations\Capa::PREM);
if ($oConfig->Get('webmail', 'allow_additional_accounts', false))
{
$aResult[] = \RainLoop\Enumerations\Capa::ADDITIONAL_ACCOUNTS;
}
if ($oConfig->Get('webmail', 'allow_identities', true))
{
$aResult[] = \RainLoop\Enumerations\Capa::ADDITIONAL_IDENTITIES;
}
if ($oConfig->Get('security', 'allow_two_factor_auth', false))
{
$aResult[] = \RainLoop\Enumerations\Capa::TWO_FACTOR;
}
if ($oConfig->Get('labs', 'allow_gravatar', false))
{
$aResult[] = \RainLoop\Enumerations\Capa::GRAVATAR;
}
if ($oConfig->Get('labs', 'allow_prefetch', false))
{
$aResult[] = \RainLoop\Enumerations\Capa::PREFETCH;
}
if ($oConfig->Get('webmail', 'allow_themes', false))
{
$aResult[] = \RainLoop\Enumerations\Capa::THEMES;
}
if ($oConfig->Get('security', 'openpgp', false))
{
$aResult[] = \RainLoop\Enumerations\Capa::OPEN_PGP;
}
return $aResult;
}
/**
* @param bool $bAdmin
* @param string $sName
*
* @return bool
*/
public function GetCapa($sName)
public function GetCapa($bAdmin, $sName)
{
return \in_array($sName, $this->Capa());
return \in_array($sName, $this->Capa($bAdmin));
}
/**

View file

@ -5,4 +5,11 @@ namespace RainLoop\Enumerations;
class Capa
{
const PREM = 'PREM';
const TWO_FACTOR = 'TWO_FACTOR';
const OPEN_PGP = 'OPEN_PGP';
const PREFETCH = 'PREFETCH';
const GRAVATAR = 'GRAVATAR';
const THEMES = 'THEMES';
const ADDITIONAL_ACCOUNTS = 'ADDITIONAL_ACCOUNTS';
const ADDITIONAL_IDENTITIES = 'ADDITIONAL_IDENTITIES';
}

View file

@ -2,7 +2,7 @@
<div class="b-toolbar">
<div class="btn-group show-on-panel-disabled">
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
<i class="icon-resize"></i>
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
</a>
</div>
</div>

View file

@ -0,0 +1,22 @@
<div class="b-admin-about">
<div class="form-horizontal">
<div class="legend">
About
</div>
<div class="control-group">
<div class="raw">
<div class="span4">
<div class="rl-logo"></div>
</div>
<div class="span4">
RainLoop Webmail
<br />
v<span data-bind="text: version"></span>
</div>
</div>
</div>
<div class="control-group">
</div>
</div>
</div>

View file

@ -4,9 +4,9 @@
Branding
</div>
<div class="control-group">
<label class="control-label">
<label class="control-label">
Page Title
</label>
</label>
<div class="controls">
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: title, saveTrigger: title.trigger" />

View file

@ -42,28 +42,28 @@
<i data-bind="css: allowLanguagesOnSettings() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
Allow language selection on settings screen
</label>
<label data-bind="click: function () { allowThemes(!allowThemes()); }">
<i data-bind="css: allowThemes() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
<label data-bind="click: function () { capaThemes(!capaThemes()); }">
<i data-bind="css: capaThemes() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
Allow theme selection on settings screen
</label>
</div>
</div>
<div class="control-group">
<div class="controls">
<label data-bind="click: function () { allowAdditionalAccounts(!allowAdditionalAccounts()); }">
<i data-bind="css: allowAdditionalAccounts() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
<label data-bind="click: function () { capaAdditionalAccounts(!capaAdditionalAccounts()); }">
<i data-bind="css: capaAdditionalAccounts() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
Allow additional accounts
</label>
<label data-bind="click: function () { allowIdentities(!allowIdentities()); }">
<i data-bind="css: allowIdentities() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
<label data-bind="click: function () { capaAdditionalIdentities(!capaAdditionalIdentities()); }">
<i data-bind="css: capaAdditionalIdentities() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
Allow additional identities
</label>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="inline" data-bind="click: function () { allowGravatar(!allowGravatar()); }">
<i data-bind="css: allowGravatar() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
<label class="inline" data-bind="click: function () { capaGravatar(!capaGravatar()); }">
<i data-bind="css: capaGravatar() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
Allow Gravatar
</label>
(<a class="g-ui-link" href="http://en.gravatar.com/" target="_blank">http://en.gravatar.com/</a>)

View file

@ -14,8 +14,8 @@
</div>
<div class="control-group">
<div class="controls">
<label data-bind="click: function () { openPGP(!openPGP()); }">
<i data-bind="css: openPGP() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
<label data-bind="click: function () { capaOpenPGP(!capaOpenPGP()); }">
<i data-bind="css: capaOpenPGP() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
&nbsp;&nbsp;
Allow OpenPGP <span style="color:red">(beta)</span>
</label>
@ -23,8 +23,8 @@
</div>
<div class="control-group">
<div class="controls">
<label data-bind="click: function () { allowTwoFactorAuth(!allowTwoFactorAuth()); }">
<i data-bind="css: allowTwoFactorAuth() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
<label data-bind="click: function () { capaTwoFactorAuth(!capaTwoFactorAuth()); }">
<i data-bind="css: capaTwoFactorAuth() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
&nbsp;&nbsp;
Allow 2-Step Verification (Google Authenticator)
</label>

View file

@ -30,7 +30,7 @@
</div>
<div class="btn-group">
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
<i class="icon-resize"></i>
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
</a>
</div>
</div>

View file

@ -120,7 +120,7 @@
</a>
</li>
<li class="divider"></li>
<li class="e-item" data-bind="visible: allowOpenPGP, click: openOpenPgpPopup, css: {'disabled': isHtml()}">
<li class="e-item" data-bind="visible: capaOpenPGP, click: openOpenPgpPopup, css: {'disabled': isHtml()}">
<a class="e-link">
<i class="icon-key"></i>
&nbsp;&nbsp;

View file

@ -1,8 +1,8 @@
<div class="b-settins-left g-ui-user-select-none">
<div class="b-toolbar">
<div class="btn-group show-on-panel-disabled">
<div class="btn-group">
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
<i class="icon-resize"></i>
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
</a>
</div>
</div>

View file

@ -32,7 +32,7 @@
<!-- /ko -->
<li class="divider" role="presentation"></li>
<!-- /ko -->
<!-- ko if: allowAddAccount -->
<!-- ko if: capaAdditionalAccounts -->
<li class="e-item" role="presentation">
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="click: addAccountClick">
<i class="icon-user-add"></i>

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Verschieben nach"
BUTTON_DELETE = "Löschen"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Ordner leeren"
BUTTON_MULTY_FORWARD = "Nachrichten weiterleiten"
BUTTON_DELETE_WITHOUT_MOVE = "Endgültig löschen"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Schließen"
BUTTON_DELETE = "Löschen"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Verschieben nach"
BUTTON_MORE = "Mehr"
BUTTON_REPLY = "Antworten"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Move To"
BUTTON_DELETE = "Delete"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Clear Folder"
BUTTON_MULTY_FORWARD = "Forward messages"
BUTTON_DELETE_WITHOUT_MOVE = "Delete permanently"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Close"
BUTTON_DELETE = "Delete"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Move To"
BUTTON_MORE = "More"
BUTTON_REPLY = "Reply"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Mover a..."
BUTTON_DELETE = "Eliminar"
BUTTON_ARCHIVE = "Archivo"
BUTTON_SPAM = "Marcar como Spam (Basura)"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Vaciar carpeta"
BUTTON_MULTY_FORWARD = "Reenviar mensajes"
BUTTON_DELETE_WITHOUT_MOVE = "Eliminar permanentemente"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Cerrar"
BUTTON_DELETE = "Eliminar"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam (Basura)"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Mover a"
BUTTON_MORE = "Más"
BUTTON_REPLY = "Responder"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Déplacer vers"
BUTTON_DELETE = "Supprimer"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Vider le dossier"
BUTTON_MULTY_FORWARD = "Transmettre les messages"
BUTTON_DELETE_WITHOUT_MOVE = "Supprimer définitivement"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Fermer"
BUTTON_DELETE = "Supprimer"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Déplacer vers"
BUTTON_MORE = "Plus"
BUTTON_REPLY = "Répondre"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Áthelyezés"
BUTTON_DELETE = "Törlés"
BUTTON_ARCHIVE = "Archívum"
BUTTON_SPAM = "Levélszemét"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Mappa űrítés"
BUTTON_MULTY_FORWARD = "Levél továbbítás"
BUTTON_DELETE_WITHOUT_MOVE = "Végleges tőrlés"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Bezárás"
BUTTON_DELETE = "Tőrlés"
BUTTON_ARCHIVE = "Archiválás"
BUTTON_SPAM = "Levélszemét"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Áthelyezés"
BUTTON_MORE = "Egyéb"
BUTTON_REPLY = "Válasz"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Færa í"
BUTTON_DELETE = "Eyða"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Ruslpóstur"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Hreinsa Möppu"
BUTTON_MULTY_FORWARD = "Áframsenda skilaboð"
BUTTON_DELETE_WITHOUT_MOVE = "Eyða endanlega"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Loka"
BUTTON_DELETE = "Eyða"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Ruslpóstur"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Færa í"
BUTTON_MORE = "Meira"
BUTTON_REPLY = "Svara"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Sposta in"
BUTTON_DELETE = "Cancella"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Marca come indesiderati"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Pulisci cartella"
BUTTON_MULTY_FORWARD = "Inoltra messaggi"
BUTTON_DELETE_WITHOUT_MOVE = "Cancella permanentemente"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Chiudi"
BUTTON_DELETE = "Cancella"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Marca come indesiderato"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Sposta in"
BUTTON_MORE = "Di più"
BUTTON_REPLY = "Rispondi"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "移動"
BUTTON_DELETE = "削除"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "迷惑メールにする"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "フォルダを空に"
BUTTON_MULTY_FORWARD = "転送"
BUTTON_DELETE_WITHOUT_MOVE = "完全に削除"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "閉じる"
BUTTON_DELETE = "削除"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "迷惑メール"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "移動"
BUTTON_MORE = "その他"
BUTTON_REPLY = "返信"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "이동"
BUTTON_DELETE = "삭제"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "스팸"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "폴더 비우기"
BUTTON_MULTY_FORWARD = "전달"
BUTTON_DELETE_WITHOUT_MOVE = "완전히 삭제"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "닫기"
BUTTON_DELETE = "삭제"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "스팸"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "이동"
BUTTON_MORE = "더보기"
BUTTON_REPLY = "답장"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Pārvietot uz"
BUTTON_DELETE = "Dzēst"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spams"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Iztīrīt mapi"
BUTTON_MULTY_FORWARD = "Pārsūtīt ziņojumus"
BUTTON_DELETE_WITHOUT_MOVE = "Dzēst pavisam"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Aizvērt"
BUTTON_DELETE = "Dzēst"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spams"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Pārvietot uz"
BUTTON_MORE = "Vairāk"
BUTTON_REPLY = "Atbildēt"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Verplaatsen naar"
BUTTON_DELETE = "Verwijderen"
BUTTON_ARCHIVE = "Archief"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Map leeg maken"
BUTTON_MULTY_FORWARD = "Berichten Doorsturen"
BUTTON_DELETE_WITHOUT_MOVE = "Permanent Verwijderen"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Sluiten"
BUTTON_DELETE = "Verwijderen"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Verplaatsen naar"
BUTTON_MORE = "Meer"
BUTTON_REPLY = "Antwoorden"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Flytt til"
BUTTON_DELETE = "Slett"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Fjern mappe"
BUTTON_MULTY_FORWARD = "Videresend meldinger"
BUTTON_DELETE_WITHOUT_MOVE = "Slett permanent"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Lukk"
BUTTON_DELETE = "Slett"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Flytt til"
BUTTON_MORE = "Mer"
BUTTON_REPLY = "Svar"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Przenieś do"
BUTTON_DELETE = "Usuń"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Oznacz jako spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Wyczyść folder"
BUTTON_MULTY_FORWARD = "Przekaż dalej"
BUTTON_DELETE_WITHOUT_MOVE = "Usuń na stałe"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Zamknij"
BUTTON_DELETE = "Usuń"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Oznacz jako spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Przenieś Do"
BUTTON_MORE = "Więcej"
BUTTON_REPLY = "Odpowiedz"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Mover Para"
BUTTON_DELETE = "Excluir"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Lixo Eletrônico"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Limpar Pasta"
BUTTON_MULTY_FORWARD = "Encaminhar mensagens"
BUTTON_DELETE_WITHOUT_MOVE = "Excluir penmanentemente"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Fechar"
BUTTON_DELETE = "Excluir"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Lixo Eletrônico"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Mover para"
BUTTON_MORE = "Mais"
BUTTON_REPLY = "Responder"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Mover Para"
BUTTON_DELETE = "Excluir"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Lixo Eletrônico"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Limpar Pasta"
BUTTON_MULTY_FORWARD = "Encaminhar mensagens"
BUTTON_DELETE_WITHOUT_MOVE = "Excluir penmanentemente"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Fechar"
BUTTON_DELETE = "Excluir"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Lixo Eletrônico"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Mover para"
BUTTON_MORE = "Mais"
BUTTON_REPLY = "Responder"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Mută la"
BUTTON_DELETE = "Șterge"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "SPAM"
BUTTON_NOT_SPAM = "Not SPAM"
BUTTON_EMPTY_FOLDER = "Golește folderul"
BUTTON_MULTY_FORWARD = "Redirecționează mesajul"
BUTTON_DELETE_WITHOUT_MOVE = "Șterge definitiv"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Închide"
BUTTON_DELETE = "Șterge"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "SPAM"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Mută la"
BUTTON_MORE = "Mai mult"
BUTTON_REPLY = "Răspunde"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Переместить"
BUTTON_DELETE = "Удалить"
BUTTON_ARCHIVE = "Архивировать"
BUTTON_SPAM = "В спам"
BUTTON_NOT_SPAM = "Не спам"
BUTTON_EMPTY_FOLDER = "Очистить всю папку"
BUTTON_MULTY_FORWARD = "Переслать сообщения"
BUTTON_DELETE_WITHOUT_MOVE = "Удалить мимо корзины"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Закрыть"
BUTTON_DELETE = "Удалить"
BUTTON_ARCHIVE = "Архивировать"
BUTTON_SPAM = "В спам"
BUTTON_NOT_SPAM = "Не спам"
BUTTON_MOVE_TO = "Переместить"
BUTTON_MORE = "Еще"
BUTTON_REPLY = "Ответить на Письмо"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "Presunúť do"
BUTTON_DELETE = "Odstrániť"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_EMPTY_FOLDER = "Vyčistiť priečinok"
BUTTON_MULTY_FORWARD = "Preposlať správy"
BUTTON_DELETE_WITHOUT_MOVE = "Navždy odstrániť"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "Zatvoriť"
BUTTON_DELETE = "Odstrániť"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "Presunúť do"
BUTTON_MORE = "Viac"
BUTTON_REPLY = "Odpovedať"

View file

@ -65,6 +65,7 @@ BUTTON_MOVE_TO = "移至"
BUTTON_DELETE = "已删除邮件"
BUTTON_ARCHIVE = "存档"
BUTTON_SPAM = "垃圾邮件"
BUTTON_NOT_SPAM = "Не спам"
BUTTON_EMPTY_FOLDER = "清空文件夹"
BUTTON_MULTY_FORWARD = "转发邮件"
BUTTON_DELETE_WITHOUT_MOVE = "永久删除"
@ -100,6 +101,7 @@ BUTTON_CLOSE = "关闭"
BUTTON_DELETE = "删除"
BUTTON_ARCHIVE = "存档"
BUTTON_SPAM = "垃圾邮件"
BUTTON_NOT_SPAM = "Not Spam"
BUTTON_MOVE_TO = "移至"
BUTTON_MORE = "更多"
BUTTON_REPLY = "回复"

View file

@ -637,7 +637,7 @@
border-radius: 8px;
}
/*! normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */
/* =============================================================================
@ -1142,7 +1142,7 @@ table {
border-collapse: collapse;
border-spacing: 0;
}
@charset "UTF-8";
@font-face {
@ -1477,40 +1477,43 @@ table {
.icon-filter:before {
content: "\e061";
}
.icon-resize:before {
.icon-sync:before {
content: "\e062";
}
.icon-sync:before {
.icon-ellipsis-alt:before {
content: "\e063";
}
.icon-ellipsis-alt:before {
.icon-cloud-up:before {
content: "\e064";
}
.icon-cloud-up:before {
.icon-cloud-down:before {
content: "\e065";
}
.icon-cloud-down:before {
.icon-import:before {
content: "\e066";
}
.icon-import:before {
.icon-export:before {
content: "\e067";
}
.icon-export:before {
.icon-copy:before {
content: "\e068";
}
.icon-copy:before {
.icon-angry-smiley:before {
content: "\e069";
}
.icon-angry-smiley:before {
.icon-happy-smiley:before {
content: "\e06a";
}
.icon-happy-smiley:before {
.icon-help:before {
content: "\e06b";
}
.icon-help:before {
.icon-resize-in:before {
content: "\e06c";
}
.icon-resize-out:before {
content: "\e06d";
}
/** initial setup **/
.nano {
/*
@ -1627,7 +1630,7 @@ table {
.nano > .pane2:hover > .slider2, .nano > .pane2.active > .slider2 {
background-color: rgba(0, 0, 0, 0.4);
}
/* Magnific Popup CSS */
.mfp-bg {
top: 0;
@ -1992,7 +1995,7 @@ img.mfp-img {
right: 0;
padding-top: 0; }
/* overlay at start */
.mfp-fade.mfp-bg {
@ -2038,7 +2041,7 @@ img.mfp-img {
-moz-transform: translateX(50px);
transform: translateX(50px);
}
.simple-pace {
-webkit-pointer-events: none;
pointer-events: none;
@ -2109,7 +2112,7 @@ img.mfp-img {
@keyframes simple-pace-stripe-animation {
0% { transform: none; transform: none; }
100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }
}
}
.inputosaurus-container {
background-color:#fff;
border:1px solid #bcbec0;
@ -2177,7 +2180,7 @@ img.mfp-img {
box-shadow:none;
}
.inputosaurus-input-hidden { display:none; }
.flag-wrapper {
width: 24px;
height: 16px;
@ -2221,7 +2224,7 @@ img.mfp-img {
.flag.flag-pt-br {background-position: -192px -11px}
.flag.flag-cn, .flag.flag-zh-tw, .flag.flag-zh-cn, .flag.flag-zh-hk {background-position: -208px -22px}
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
.clearfix {
*zoom: 1;
@ -9175,6 +9178,12 @@ html.rl-message-fullscreen .messageView .b-content .buttonFull {
width: 400px;
height: 50px;
}
.b-admin-about .rl-logo {
display: inline-block;
width: 250px;
height: 250px;
background-image: url("images/rainloop-logo.png");
}
.popups .b-activate-content {
width: 700px;
}

File diff suppressed because one or more lines are too long

View file

@ -105,15 +105,16 @@
<glyph unicode="&#57439;" d="M456 343c0 1 0 1 0 1 0 5-2 10-5 13l0 1-40 69c-1 6-6 10-13 10 0 0 0 0-1 0l0 0-283 0 0 0c0 0 0 0 0 0-5 0-9-3-12-7l0 0-42-72 0 0c-3-4-4-9-4-14 0 0 0 0 0-1l0-247c0 0 0 0 0 0 0-12 9-21 20-21 1 0 1 0 1 0l358 0c0 0 0 0 0 0 12 0 21 9 21 21 0 0 0 0 0 0l0 247z m-131-125l-64-90c-1-1-3-2-5-2 0 0 0 0 0 0-2 0-4 1-5 2l-64 90c-1 2-1 4 0 6 1 2 3 3 5 3l30 0 0 81c0 3 3 6 6 6l56 0c3 0 6-3 6-6l0-81 30 0c2 0 4-1 5-3 1-2 1-4 0-6z m-231 147l27 47 270 0 27-47z"/>
<glyph unicode="&#57440;" d="M96 288l64 0 0-32-64 0z m0-64l64 0 0-32-64 0z m384 160l-448 0c-18 0-32-14-32-32l0-224c0-18 14-32 32-32l448 0c18 0 32 14 32 32l0 224c0 18-14 32-32 32m-288-224l-128 0 0 160 128 0z m128 0l-96 0 0 160 32 0 0-128 32 0 0 128 32 0z m128 64l-32 0 0-64-32 0 0 64-32 0 0 96 32 0 0-64 32 0 0 64 32 0z"/>
<glyph unicode="&#57441;" d="M456 428c3-8 2-15-4-20l-141-141 0-212c0-8-4-14-11-17-3-1-5-1-7-1-6 0-10 1-13 5l-73 73c-4 4-6 8-6 13l0 139-141 141c-6 5-7 12-4 20 4 7 9 11 17 11l366 0c8 0 13-4 17-11z"/>
<glyph unicode="&#57442;" d="M148 367l-111-111 111-111 0 74 216 0 0-74 111 111-111 111 0-74-216 0z"/>
<glyph unicode="&#57443;" d="M341 94c0-2-1-4-2-6-2-2-4-3-6-3l-256 0c-2 0-3 1-4 1-1 0-2 1-2 2-1 1-1 1-2 2 0 0 0 1 0 3-1 1-1 2-1 3l0 160-51 0c-5 0-9 2-12 5-3 3-5 7-5 12 0 4 1 8 4 11l85 102c4 4 8 6 13 6 6 0 10-2 13-6l86-102c2-3 4-7 4-11 0-5-2-9-5-12-4-3-8-5-12-5l-51 0 0-102 153 0c3 0 5-1 7-3l42-52c2-1 2-3 2-5z m171 111c0-4-1-8-4-11l-85-103c-4-4-8-6-13-6-6 0-10 2-13 6l-86 103c-2 3-4 7-4 11 0 4 2 8 5 12 4 3 8 5 12 5l51 0 0 102-153 0c-3 0-5 1-7 3l-42 52c-2 1-2 3-2 5 0 2 1 4 2 6 2 2 4 3 6 3l256 0c2 0 3-1 4-1 1 0 2-1 2-2 1-1 1-1 2-2 0-1 0-2 0-3 1-2 1-3 1-3l0-160 51 0c5 0 9-2 12-5 3-4 5-8 5-12z"/>
<glyph unicode="&#57444;" d="M311 155l0-54c0-8-3-15-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 5-8 12-8 20l0 54c0 8 3 15 8 20 5 5 12 8 20 8l54 0c8 0 15-3 20-8 5-5 8-12 8-20z m0 147l0-55c0-8-3-14-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 6-8 12-8 20l0 55c0 7 3 14 8 19 5 5 12 8 20 8l54 0c8 0 15-3 20-8 5-5 8-12 8-19z m0 146l0-55c0-7-3-14-8-19-5-6-12-8-20-8l-54 0c-8 0-15 2-20 8-5 5-8 12-8 19l0 55c0 8 3 14 8 19 5 6 12 8 20 8l54 0c8 0 15-2 20-8 5-5 8-11 8-19z"/>
<glyph unicode="&#57445;" d="M341 265c0 2 0 4-2 6l-94 94c-2 1-4 2-6 2-3 0-5-1-6-2l-94-94c-2-2-2-4-2-6 0-3 0-5 2-7 2-1 4-2 6-2l60 0 0-94c0-2 1-4 2-6 2-2 4-2 6-2l52 0c2 0 4 0 6 2 1 2 2 4 2 6l0 94 60 0c2 0 4 1 6 3 1 1 2 3 2 6z m171-77c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
<glyph unicode="&#57446;" d="M341 247c0 3 0 5-2 7-2 1-4 2-6 2l-60 0 0 94c0 2-1 4-2 6-2 2-4 2-6 2l-52 0c-2 0-4 0-6-2-1-2-2-4-2-6l0-94-60 0c-2 0-4-1-6-3-2-1-2-3-2-6 0-2 0-4 2-6l94-94c1-1 3-2 6-2 2 0 4 1 6 2l94 94c1 2 2 4 2 6z m171-59c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
<glyph unicode="&#57447;" d="M375 256c0-5-2-9-6-13l-155-155c-4-4-8-6-13-6-5 0-9 2-13 6-3 3-5 8-5 13l0 82-128 0c-5 0-9 2-13 5-4 4-5 8-5 13l0 110c0 5 1 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 5 13 4 4 8 6 13 6 5 0 9-2 13-6l155-155c4-4 6-8 6-13z m100 101l0-202c0-22-8-42-24-58-16-16-35-24-58-24l-91 0c-3 0-5 1-7 3-2 2-2 4-2 6 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c13 0 23 4 32 13 9 9 14 20 14 32l0 202c0 12-5 23-14 32-9 9-19 13-32 13l-89 0c0 0-1 0-3 1-2 0-4 0-4 0 0 1 0 1-2 2-1 1-2 2-2 3 0 1 0 2 0 3 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c23 0 42-8 58-24 16-16 24-36 24-58z"/>
<glyph unicode="&#57448;" d="M201 101c0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-23 0-42 8-59 24-16 16-24 36-24 58l0 202c0 22 8 42 24 58 17 16 36 24 59 24l91 0c2 0 5-1 6-3 2-2 3-4 3-6 0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-13 0-24-4-33-13-9-9-13-20-13-32l0-202c0-12 4-23 13-32 9-9 20-13 33-13l89 0c0 0 1 0 3-1 2 0 3 0 3 0 0-1 1-1 3-2 1-1 2-2 2-3-1-1 0-2 0-3z m265 155c0-5-2-9-5-13l-156-155c-3-4-7-6-12-6-5 0-10 2-13 6-4 3-6 8-6 13l0 82-128 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 110c0 5 2 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 6 13 3 4 8 6 13 6 5 0 9-2 12-6l156-155c3-4 5-8 5-13z"/>
<glyph unicode="&#57449;" d="M485 402c7 0 14-2 19-8 5-5 8-12 8-19l0-348c0-7-3-14-8-19-5-5-12-8-19-8l-275 0c-7 0-14 3-19 8-5 5-8 12-8 19l0 83-156 0c-7 0-14 2-19 8-5 5-8 12-8 19l0 192c0 8 2 16 6 25 4 9 8 17 13 22l117 117c5 5 13 9 22 13 9 4 17 6 25 6l119 0c7 0 14-3 19-8 5-5 8-12 8-19l0-94c13 7 25 11 37 11z m-156-61l-85-85 85 0z m-183 110l-85-85 85 0z m56-185l91 91 0 118-110 0 0-118c0-8-3-15-8-20-5-5-12-8-20-8l-118 0 0-183 146 0 0 73c0 8 2 16 6 26 3 9 8 16 13 21z m273-229l0 329-109 0 0-119c0-8-3-14-8-20-6-5-12-8-20-8l-119 0 0-182z"/>
<glyph unicode="&#57450;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256m0-480c-123 0-224 100-224 224 0 123 101 224 224 224 123 0 224-101 224-224 0-124-101-224-224-224m0 192c-81 0-113-38-160-96l4 0c40 39 95 64 156 64 61 0 116-25 157-64l3 0c-47 58-79 96-160 96m-64 64c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48m128 0c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48"/>
<glyph unicode="&#57451;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256m0-480c-123 0-224 100-224 224 0 123 101 224 224 224 123 0 224-101 224-224 0-124-101-224-224-224m157 192c-41-40-96-64-157-64-61 0-116 24-156 64l-4 0c47-58 79-96 160-96 81 0 113 38 160 96z m-221 64c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48m128 0c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48"/>
<glyph unicode="&#57452;" d="M256 484c-126 0-228-102-228-228 0-126 102-228 228-228 126 0 228 102 228 228 0 126-102 228-228 228z m0-399c-94 0-171 77-171 171 0 94 77 171 171 171 94 0 171-77 171-171 0-94-77-171-171-171z m58 173c-10-9-27-16-31-18-4-2-4-4-4-10l0-8-57 0 0 18c0 14 1 22 16 30l20 10c7 5 16 8 16 15 0 8-7 11-24 11-16 0-33-6-45-14l-15 50c8 4 30 18 72 18 42 0 72-26 72-57 0-26-9-36-20-45z m-64-111c-22 0-37 12-37 32 0 21 15 33 37 33 22 0 37-12 37-33 0-20-15-32-37-32z"/>
<glyph unicode="&#57442;" d="M341 94c0-2-1-4-2-6-2-2-4-3-6-3l-256 0c-2 0-3 1-4 1-1 0-2 1-2 2-1 1-1 1-2 2 0 0 0 1 0 3-1 1-1 2-1 3l0 160-51 0c-5 0-9 2-12 5-3 3-5 7-5 12 0 4 1 8 4 11l85 102c4 4 8 6 13 6 6 0 10-2 13-6l86-102c2-3 4-7 4-11 0-5-2-9-5-12-4-3-8-5-12-5l-51 0 0-102 153 0c3 0 5-1 7-3l42-52c2-1 2-3 2-5z m171 111c0-4-1-8-4-11l-85-103c-4-4-8-6-13-6-6 0-10 2-13 6l-86 103c-2 3-4 7-4 11 0 4 2 8 5 12 4 3 8 5 12 5l51 0 0 102-153 0c-3 0-5 1-7 3l-42 52c-2 1-2 3-2 5 0 2 1 4 2 6 2 2 4 3 6 3l256 0c2 0 3-1 4-1 1 0 2-1 2-2 1-1 1-1 2-2 0-1 0-2 0-3 1-2 1-3 1-3l0-160 51 0c5 0 9-2 12-5 3-4 5-8 5-12z"/>
<glyph unicode="&#57443;" d="M311 155l0-54c0-8-3-15-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 5-8 12-8 20l0 54c0 8 3 15 8 20 5 5 12 8 20 8l54 0c8 0 15-3 20-8 5-5 8-12 8-20z m0 147l0-55c0-8-3-14-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 6-8 12-8 20l0 55c0 7 3 14 8 19 5 5 12 8 20 8l54 0c8 0 15-3 20-8 5-5 8-12 8-19z m0 146l0-55c0-7-3-14-8-19-5-6-12-8-20-8l-54 0c-8 0-15 2-20 8-5 5-8 12-8 19l0 55c0 8 3 14 8 19 5 6 12 8 20 8l54 0c8 0 15-2 20-8 5-5 8-11 8-19z"/>
<glyph unicode="&#57444;" d="M341 265c0 2 0 4-2 6l-94 94c-2 1-4 2-6 2-3 0-5-1-6-2l-94-94c-2-2-2-4-2-6 0-3 0-5 2-7 2-1 4-2 6-2l60 0 0-94c0-2 1-4 2-6 2-2 4-2 6-2l52 0c2 0 4 0 6 2 1 2 2 4 2 6l0 94 60 0c2 0 4 1 6 3 1 1 2 3 2 6z m171-77c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
<glyph unicode="&#57445;" d="M341 247c0 3 0 5-2 7-2 1-4 2-6 2l-60 0 0 94c0 2-1 4-2 6-2 2-4 2-6 2l-52 0c-2 0-4 0-6-2-1-2-2-4-2-6l0-94-60 0c-2 0-4-1-6-3-2-1-2-3-2-6 0-2 0-4 2-6l94-94c1-1 3-2 6-2 2 0 4 1 6 2l94 94c1 2 2 4 2 6z m171-59c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
<glyph unicode="&#57446;" d="M375 256c0-5-2-9-6-13l-155-155c-4-4-8-6-13-6-5 0-9 2-13 6-3 3-5 8-5 13l0 82-128 0c-5 0-9 2-13 5-4 4-5 8-5 13l0 110c0 5 1 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 5 13 4 4 8 6 13 6 5 0 9-2 13-6l155-155c4-4 6-8 6-13z m100 101l0-202c0-22-8-42-24-58-16-16-35-24-58-24l-91 0c-3 0-5 1-7 3-2 2-2 4-2 6 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c13 0 23 4 32 13 9 9 14 20 14 32l0 202c0 12-5 23-14 32-9 9-19 13-32 13l-89 0c0 0-1 0-3 1-2 0-4 0-4 0 0 1 0 1-2 2-1 1-2 2-2 3 0 1 0 2 0 3 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c23 0 42-8 58-24 16-16 24-36 24-58z"/>
<glyph unicode="&#57447;" d="M201 101c0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-23 0-42 8-59 24-16 16-24 36-24 58l0 202c0 22 8 42 24 58 17 16 36 24 59 24l91 0c2 0 5-1 6-3 2-2 3-4 3-6 0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-13 0-24-4-33-13-9-9-13-20-13-32l0-202c0-12 4-23 13-32 9-9 20-13 33-13l89 0c0 0 1 0 3-1 2 0 3 0 3 0 0-1 1-1 3-2 1-1 2-2 2-3-1-1 0-2 0-3z m265 155c0-5-2-9-5-13l-156-155c-3-4-7-6-12-6-5 0-10 2-13 6-4 3-6 8-6 13l0 82-128 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 110c0 5 2 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 6 13 3 4 8 6 13 6 5 0 9-2 12-6l156-155c3-4 5-8 5-13z"/>
<glyph unicode="&#57448;" d="M485 402c7 0 14-2 19-8 5-5 8-12 8-19l0-348c0-7-3-14-8-19-5-5-12-8-19-8l-275 0c-7 0-14 3-19 8-5 5-8 12-8 19l0 83-156 0c-7 0-14 2-19 8-5 5-8 12-8 19l0 192c0 8 2 16 6 25 4 9 8 17 13 22l117 117c5 5 13 9 22 13 9 4 17 6 25 6l119 0c7 0 14-3 19-8 5-5 8-12 8-19l0-94c13 7 25 11 37 11z m-156-61l-85-85 85 0z m-183 110l-85-85 85 0z m56-185l91 91 0 118-110 0 0-118c0-8-3-15-8-20-5-5-12-8-20-8l-118 0 0-183 146 0 0 73c0 8 2 16 6 26 3 9 8 16 13 21z m273-229l0 329-109 0 0-119c0-8-3-14-8-20-6-5-12-8-20-8l-119 0 0-182z"/>
<glyph unicode="&#57449;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256m0-480c-123 0-224 100-224 224 0 123 101 224 224 224 123 0 224-101 224-224 0-124-101-224-224-224m0 192c-81 0-113-38-160-96l4 0c40 39 95 64 156 64 61 0 116-25 157-64l3 0c-47 58-79 96-160 96m-64 64c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48m128 0c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48"/>
<glyph unicode="&#57450;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256m0-480c-123 0-224 100-224 224 0 123 101 224 224 224 123 0 224-101 224-224 0-124-101-224-224-224m157 192c-41-40-96-64-157-64-61 0-116 24-156 64l-4 0c47-58 79-96 160-96 81 0 113 38 160 96z m-221 64c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48m128 0c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48"/>
<glyph unicode="&#57451;" d="M256 484c-126 0-228-102-228-228 0-126 102-228 228-228 126 0 228 102 228 228 0 126-102 228-228 228z m0-399c-94 0-171 77-171 171 0 94 77 171 171 171 94 0 171-77 171-171 0-94-77-171-171-171z m58 173c-10-9-27-16-31-18-4-2-4-4-4-10l0-8-57 0 0 18c0 14 1 22 16 30l20 10c7 5 16 8 16 15 0 8-7 11-24 11-16 0-33-6-45-14l-15 50c8 4 30 18 72 18 42 0 72-26 72-57 0-26-9-36-20-45z m-64-111c-22 0-37 12-37 32 0 21 15 33 37 33 22 0 37-12 37-33 0-20-15-32-37-32z"/>
<glyph unicode="&#57452;" d="M411 475l-88-88-65 65 0-194 194 0-65 65 88 88z m-351-221l65-65-88-88 64-64 88 88 65-65 0 194z"/>
<glyph unicode="&#57453;" d="M282 475l65-64-89-89 64-64 89 89 64-65 0 193z m-92-221l-89-89-64 65 0-193 193 0-65 64 89 89z"/>
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -1,5 +1,5 @@
/*! RainLoop Webmail Admin Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
(function (window, $, ko, crossroads, hasher, _) {
/*! RainLoop Webmail Admin Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
(function (window, $, ko, crossroads, hasher, _) {
'use strict';
@ -77,14 +77,14 @@ var
$document = $(window.document),
NotificationClass = window.Notification && window.Notification.requestPermission ? window.Notification : null
;
;
/*jshint onevar: false*/
/**
* @type {?AdminApp}
*/
var RL = null;
/*jshint onevar: true*/
/**
* @type {?}
*/
@ -233,7 +233,7 @@ if (Globals.bAllowPdfPreview && navigator && navigator.mimeTypes)
return oType && 'application/pdf' === oType.type;
});
}
Consts.Defaults = {};
Consts.Values = {};
Consts.DataImages = {};
@ -351,7 +351,7 @@ Consts.DataImages.UserDotPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA
* @type {string}
*/
Consts.DataImages.TranspPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=';
/**
* @enum {string}
*/
@ -383,7 +383,14 @@ Enums.StateType = {
* @enum {string}
*/
Enums.Capa = {
'Prem': 'PREM'
'Prem': 'PREM',
'TwoFactor': 'TWO_FACTOR',
'OpenPGP': 'OPEN_PGP',
'Prefetch': 'PREFETCH',
'Gravatar': 'GRAVATAR',
'Themes': 'THEMES',
'AdditionalAccounts': 'ADDITIONAL_ACCOUNTS',
'AdditionalIdentities': 'ADDITIONAL_IDENTITIES'
};
/**
@ -733,7 +740,7 @@ Enums.Notification = {
'UnknownNotification': 999,
'UnknownError': 999
};
Utils.trim = $.trim;
Utils.inArray = $.inArray;
Utils.isArray = _.isArray;
@ -1506,7 +1513,7 @@ Utils.initDataConstructorBySettings = function (oData)
Globals.sAnimationType = Enums.InterfaceAnimation.Full;
oData.allowThemes = ko.observable(true);
oData.capaThemes = ko.observable(false);
oData.allowCustomLogin = ko.observable(false);
oData.allowLanguagesOnSettings = ko.observable(true);
oData.allowLanguagesOnLogin = ko.observable(true);
@ -1674,9 +1681,9 @@ Utils.initDataConstructorBySettings = function (oData)
}
});
oData.allowAdditionalAccounts = ko.observable(false);
oData.allowIdentities = ko.observable(false);
oData.allowGravatar = ko.observable(false);
oData.capaAdditionalAccounts = ko.observable(false);
oData.capaAdditionalIdentities = ko.observable(false);
oData.capaGravatar = ko.observable(false);
oData.determineUserLanguage = ko.observable(false);
oData.messagesPerPage = ko.observable(Consts.Defaults.MessagesPerPage);//.extend({'throttle': 200});
@ -2483,7 +2490,7 @@ Utils.detectDropdownVisibility = _.debounce(function () {
return oItem.hasClass('open');
}));
}, 50);
// Base64 encode / decode
// http://www.webtoolkit.info/
@ -2646,7 +2653,7 @@ Base64 = {
}
};
/*jslint bitwise: false*/
/*jslint bitwise: false*/
ko.bindingHandlers.tooltip = {
'init': function (oElement, fValueAccessor) {
if (!Globals.bMobileDevice)
@ -3473,7 +3480,7 @@ ko.observable.fn.validateFunc = function (fFunc)
return this;
};
/**
* @constructor
*/
@ -3785,7 +3792,7 @@ LinkBuilder.prototype.socialFacebook = function ()
{
return this.sServer + 'SocialFacebook' + ('' !== this.sSpecSuffix ? '/' + this.sSpecSuffix + '/' : '');
};
/**
* @type {Object}
*/
@ -3879,7 +3886,7 @@ Plugins.settingsGet = function (sPluginSection, sName)
};
/**
* @constructor
*/
@ -3953,7 +3960,7 @@ CookieDriver.prototype.get = function (sKey)
return mResult;
};
/**
* @constructor
*/
@ -4024,7 +4031,7 @@ LocalStorageDriver.prototype.get = function (sKey)
return mResult;
};
/**
* @constructor
*/
@ -4067,7 +4074,7 @@ LocalStorage.prototype.get = function (iKey)
{
return this.oDriver ? this.oDriver.get('p' + iKey) : null;
};
/**
* @constructor
*/
@ -4080,7 +4087,7 @@ KnoinAbstractBoot.prototype.bootstart = function ()
{
};
/**
* @param {string=} sPosition = ''
* @param {string=} sTemplate = ''
@ -4173,7 +4180,7 @@ KnoinAbstractViewModel.prototype.registerPopupKeyDown = function ()
return true;
});
};
/**
* @param {string} sScreenName
* @param {?=} aViewModels = []
@ -4249,7 +4256,7 @@ KnoinAbstractScreen.prototype.__start = function ()
this.oCross = oRoute;
}
};
/**
* @constructor
*/
@ -4649,7 +4656,7 @@ Knoin.prototype.bootstart = function ()
};
kn = new Knoin();
/**
* @param {string=} sEmail
* @param {string=} sName
@ -5013,7 +5020,7 @@ EmailModel.prototype.inputoTagLine = function ()
{
return 0 < this.name.length ? this.name + ' (' + this.email + ')' : this.email;
};
/**
* @constructor
*/
@ -5057,7 +5064,7 @@ ContactTagModel.prototype.toLine = function (bEncodeHtml)
return (Utils.isUnd(bEncodeHtml) ? false : !!bEncodeHtml) ?
Utils.encodeHtml(this.name()) : this.name();
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -5352,7 +5359,7 @@ PopupsDomainViewModel.prototype.clearForm = function ()
this.smtpAuth(true);
this.whiteList('');
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -5489,7 +5496,7 @@ PopupsPluginViewModel.prototype.onBuild = function ()
}
}, this));
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -5605,7 +5612,7 @@ PopupsActivateViewModel.prototype.validateSubscriptionKey = function ()
{
var sValue = this.key();
return '' === sValue || !!/^RL[\d]+-[A-Z0-9\-]+Z$/.test(Utils.trim(sValue));
};
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -5665,7 +5672,7 @@ PopupsLanguagesViewModel.prototype.changeLanguage = function (sLang)
RL.data().mainLanguage(sLang);
this.cancelCommand();
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -5771,7 +5778,7 @@ PopupsAskViewModel.prototype.onBuild = function ()
}, this));
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -5858,7 +5865,7 @@ AdminLoginViewModel.prototype.onHide = function ()
{
this.loginFocus(false);
};
/**
* @param {?} oScreen
*
@ -5882,7 +5889,7 @@ AdminMenuViewModel.prototype.link = function (sRoute)
{
return '#/' + sRoute;
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -5906,7 +5913,7 @@ AdminPaneViewModel.prototype.logoutClick = function ()
RL.remote().adminLogout(function () {
RL.loginAndLogoutReload();
});
};
};
/**
* @constructor
*/
@ -5920,11 +5927,11 @@ function AdminGeneral()
this.language = oData.language;
this.theme = oData.theme;
this.allowThemes = oData.allowThemes;
this.allowLanguagesOnSettings = oData.allowLanguagesOnSettings;
this.allowAdditionalAccounts = oData.allowAdditionalAccounts;
this.allowIdentities = oData.allowIdentities;
this.allowGravatar = oData.allowGravatar;
this.capaThemes = oData.capaThemes;
this.capaGravatar = oData.capaGravatar;
this.capaAdditionalAccounts = oData.capaAdditionalAccounts;
this.capaAdditionalIdentities = oData.capaAdditionalIdentities;
this.themesOptions = ko.computed(function () {
return _.map(oData.themes(), function (sTheme) {
@ -5969,27 +5976,27 @@ AdminGeneral.prototype.onBuild = function ()
});
});
self.allowAdditionalAccounts.subscribe(function (bValue) {
self.capaAdditionalAccounts.subscribe(function (bValue) {
RL.remote().saveAdminConfig(null, {
'AllowAdditionalAccounts': bValue ? '1' : '0'
'CapaAdditionalAccounts': bValue ? '1' : '0'
});
});
self.allowIdentities.subscribe(function (bValue) {
self.capaAdditionalIdentities.subscribe(function (bValue) {
RL.remote().saveAdminConfig(null, {
'AllowIdentities': bValue ? '1' : '0'
'CapaAdditionalIdentities': bValue ? '1' : '0'
});
});
self.allowGravatar.subscribe(function (bValue) {
self.capaGravatar.subscribe(function (bValue) {
RL.remote().saveAdminConfig(null, {
'AllowGravatar': bValue ? '1' : '0'
'CapaGravatar': bValue ? '1' : '0'
});
});
self.allowThemes.subscribe(function (bValue) {
self.capaThemes.subscribe(function (bValue) {
RL.remote().saveAdminConfig(null, {
'AllowThemes': bValue ? '1' : '0'
'CapaThemes': bValue ? '1' : '0'
});
});
@ -6006,7 +6013,7 @@ AdminGeneral.prototype.selectLanguage = function ()
{
kn.showScreenPopup(PopupsLanguagesViewModel);
};
/**
* @constructor
*/
@ -6058,7 +6065,7 @@ AdminLogin.prototype.onBuild = function ()
}, 50);
};
/**
* @constructor
*/
@ -6127,7 +6134,7 @@ AdminBranding.prototype.onBuild = function ()
}, 50);
};
/**
* @constructor
*/
@ -6347,7 +6354,7 @@ AdminContacts.prototype.onBuild = function ()
}, 50);
};
/**
* @constructor
*/
@ -6436,15 +6443,15 @@ AdminDomains.prototype.onDomainListChangeRequest = function ()
{
RL.reloadDomainList();
};
/**
* @constructor
*/
function AdminSecurity()
{
this.csrfProtection = ko.observable(!!RL.settingsGet('UseTokenProtection'));
this.openPGP = ko.observable(!!RL.settingsGet('OpenPGP'));
this.allowTwoFactorAuth = ko.observable(!!RL.settingsGet('AllowTwoFactorAuth'));
this.capaOpenPGP = ko.observable(RL.capa(Enums.Capa.OpenPGP));
this.capaTwoFactorAuth = ko.observable(RL.capa(Enums.Capa.TwoFactor));
this.adminLogin = ko.observable(RL.settingsGet('AdminLogin'));
this.adminPassword = ko.observable('');
@ -6521,15 +6528,15 @@ AdminSecurity.prototype.onBuild = function ()
});
});
this.openPGP.subscribe(function (bValue) {
this.capaOpenPGP.subscribe(function (bValue) {
RL.remote().saveAdminConfig(Utils.emptyFunction, {
'OpenPGP': bValue ? '1' : '0'
'CapaOpenPGP': bValue ? '1' : '0'
});
});
this.allowTwoFactorAuth.subscribe(function (bValue) {
this.capaTwoFactorAuth.subscribe(function (bValue) {
RL.remote().saveAdminConfig(Utils.emptyFunction, {
'AllowTwoFactorAuth': bValue ? '1' : '0'
'CapaTwoFactorAuth': bValue ? '1' : '0'
});
});
};
@ -6548,7 +6555,7 @@ AdminSecurity.prototype.phpInfoLink = function ()
{
return RL.link().phpInfo();
};
/**
* @constructor
*/
@ -6664,7 +6671,7 @@ AdminSocial.prototype.onBuild = function ()
}, 50);
};
/**
* @constructor
*/
@ -6761,7 +6768,7 @@ AdminPlugins.prototype.onPluginDisableRequest = function (sResult, oData)
RL.reloadPluginList();
};
/**
* @constructor
*/
@ -6859,7 +6866,7 @@ AdminPackages.prototype.installPackage = function (oPackage)
RL.remote().packageInstall(this.requestHelper(oPackage, true), oPackage);
}
};
/**
* @constructor
*/
@ -6910,7 +6917,22 @@ AdminLicensing.prototype.licenseExpiredMomentValue = function ()
{
var oDate = moment.unix(this.licenseExpired());
return oDate.format('LL') + ' (' + oDate.from(moment()) + ')';
};
};
/**
* @constructor
*/
function AdminAbout()
{
this.version = ko.observable(RL.settingsGet('Version'));
}
Utils.addSettingsViewModel(AdminAbout, 'AdminSettingsAbout', 'About', 'about');
//AdminAbout.prototype.onBuild = function ()
//{
//
//};
/**
* @constructor
*/
@ -6995,12 +7017,12 @@ AbstractData.prototype.populateDataOnStart = function()
this.mainLanguage(RL.settingsGet('Language'));
this.mainTheme(RL.settingsGet('Theme'));
this.allowAdditionalAccounts(!!RL.settingsGet('AllowAdditionalAccounts'));
this.allowIdentities(!!RL.settingsGet('AllowIdentities'));
this.allowGravatar(!!RL.settingsGet('AllowGravatar'));
this.capaAdditionalAccounts(RL.capa(Enums.Capa.AdditionalAccounts));
this.capaAdditionalIdentities(RL.capa(Enums.Capa.AdditionalIdentities));
this.capaGravatar(RL.capa(Enums.Capa.Gravatar));
this.determineUserLanguage(!!RL.settingsGet('DetermineUserLanguage'));
this.allowThemes(!!RL.settingsGet('AllowThemes'));
this.capaThemes(RL.capa(Enums.Capa.Themes));
this.allowCustomLogin(!!RL.settingsGet('AllowCustomLogin'));
this.allowLanguagesOnLogin(!!RL.settingsGet('AllowLanguagesOnLogin'));
this.allowLanguagesOnSettings(!!RL.settingsGet('AllowLanguagesOnSettings'));
@ -7040,7 +7062,7 @@ AbstractData.prototype.populateDataOnStart = function()
this.contactsIsAllowed(!!RL.settingsGet('ContactsIsAllowed'));
};
/**
* @constructor
* @extends AbstractData
@ -7082,7 +7104,7 @@ _.extend(AdminDataStorage.prototype, AbstractData.prototype);
AdminDataStorage.prototype.populateDataOnStart = function()
{
AbstractData.prototype.populateDataOnStart.call(this);
};
};
/**
* @constructor
*/
@ -7356,7 +7378,7 @@ AbstractAjaxRemoteStorage.prototype.jsVersion = function (fCallback, sVersion)
'Version': sVersion
});
};
/**
* @constructor
* @extends AbstractAjaxRemoteStorage
@ -7601,7 +7623,7 @@ AdminAjaxRemoteStorage.prototype.adminPing = function (fCallback)
{
this.defaultRequest(fCallback, 'AdminPing');
};
/**
* @constructor
*/
@ -7609,7 +7631,7 @@ function AbstractCacheStorage()
{
this.oEmailsPicsHashes = {};
this.oServices = {};
this.bAllowGravatar = !!RL.settingsGet('AllowGravatar');
this.bCapaGravatar = RL.capa(Enums.Capa.Gravatar);
}
/**
@ -7625,7 +7647,7 @@ AbstractCacheStorage.prototype.oServices = {};
/**
* @type {boolean}
*/
AbstractCacheStorage.prototype.bAllowGravatar = false;
AbstractCacheStorage.prototype.bCapaGravatar = false;
AbstractCacheStorage.prototype.clear = function ()
{
@ -7659,7 +7681,7 @@ AbstractCacheStorage.prototype.getUserPic = function (sEmail, fCallback)
}
if (this.bAllowGravatar && '' === sUrl)
if (this.bCapaGravatar && '' === sUrl)
{
fCallback('//secure.gravatar.com/avatar/' + Utils.md5(sEmailLower) + '.jpg?s=80&d=mm', sEmail);
}
@ -7684,7 +7706,7 @@ AbstractCacheStorage.prototype.setEmailsPicsHashesData = function (oData)
{
this.oEmailsPicsHashes = oData;
};
/**
* @constructor
* @extends AbstractCacheStorage
@ -7695,7 +7717,7 @@ function AdminCacheStorage()
}
_.extend(AdminCacheStorage.prototype, AbstractCacheStorage.prototype);
/**
* @param {Array} aViewModels
* @constructor
@ -7873,7 +7895,7 @@ AbstractSettings.prototype.routes = function ()
['', oRules]
];
};
/**
* @constructor
* @extends KnoinAbstractScreen
@ -7888,7 +7910,7 @@ _.extend(AdminLoginScreen.prototype, KnoinAbstractScreen.prototype);
AdminLoginScreen.prototype.onShow = function ()
{
RL.setTitle('');
};
};
/**
* @constructor
* @extends AbstractSettings
@ -7908,7 +7930,7 @@ AdminSettingsScreen.prototype.onShow = function ()
// AbstractSettings.prototype.onShow.call(this);
RL.setTitle('');
};
};
/**
* @constructor
* @extends KnoinAbstractBoot
@ -8266,7 +8288,7 @@ AbstractApp.prototype.bootstart = function ()
ssm.ready();
};
/**
* @constructor
* @extends AbstractApp
@ -8479,6 +8501,8 @@ AdminApp.prototype.bootstart = function ()
}
else
{
Utils.removeSettingsViewModel(AdminAbout);
if (!RL.capa(Enums.Capa.Prem))
{
Utils.removeSettingsViewModel(AdminBranding);
@ -8510,7 +8534,7 @@ AdminApp.prototype.bootstart = function ()
* @type {AdminApp}
*/
RL = new AdminApp();
$html.addClass(Globals.bMobileDevice ? 'mobile' : 'no-mobile');
$window.keydown(Utils.killCtrlAandS).keyup(Utils.killCtrlAandS);
@ -8561,9 +8585,9 @@ window['__RLBOOT'] = function (fCall) {
window['__RLBOOT'] = null;
});
};
if (window.SimplePace) {
window.SimplePace.add(10);
}
}
}(window, jQuery, ko, crossroads, hasher, _));

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
/*! RainLoop Webmail Main Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
(function (window, $, ko, crossroads, hasher, moment, Jua, _, ifvisible, key) {
/*! RainLoop Webmail Main Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
(function (window, $, ko, crossroads, hasher, moment, Jua, _, ifvisible, key) {
'use strict';
@ -77,7 +77,7 @@ var
$document = $(window.document),
NotificationClass = window.Notification && window.Notification.requestPermission ? window.Notification : null
;
;
/*jshint onevar: false*/
/**
* @type {?RainLoopApp}
@ -88,7 +88,7 @@ var
$proxyDiv = $('<div></div>')
;
/*jshint onevar: true*/
/**
* @type {?}
*/
@ -237,7 +237,7 @@ if (Globals.bAllowPdfPreview && navigator && navigator.mimeTypes)
return oType && 'application/pdf' === oType.type;
});
}
Consts.Defaults = {};
Consts.Values = {};
Consts.DataImages = {};
@ -355,7 +355,7 @@ Consts.DataImages.UserDotPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA
* @type {string}
*/
Consts.DataImages.TranspPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=';
/**
* @enum {string}
*/
@ -387,7 +387,14 @@ Enums.StateType = {
* @enum {string}
*/
Enums.Capa = {
'Prem': 'PREM'
'Prem': 'PREM',
'TwoFactor': 'TWO_FACTOR',
'OpenPGP': 'OPEN_PGP',
'Prefetch': 'PREFETCH',
'Gravatar': 'GRAVATAR',
'Themes': 'THEMES',
'AdditionalAccounts': 'ADDITIONAL_ACCOUNTS',
'AdditionalIdentities': 'ADDITIONAL_IDENTITIES'
};
/**
@ -737,7 +744,7 @@ Enums.Notification = {
'UnknownNotification': 999,
'UnknownError': 999
};
Utils.trim = $.trim;
Utils.inArray = $.inArray;
Utils.isArray = _.isArray;
@ -1510,7 +1517,7 @@ Utils.initDataConstructorBySettings = function (oData)
Globals.sAnimationType = Enums.InterfaceAnimation.Full;
oData.allowThemes = ko.observable(true);
oData.capaThemes = ko.observable(false);
oData.allowCustomLogin = ko.observable(false);
oData.allowLanguagesOnSettings = ko.observable(true);
oData.allowLanguagesOnLogin = ko.observable(true);
@ -1678,9 +1685,9 @@ Utils.initDataConstructorBySettings = function (oData)
}
});
oData.allowAdditionalAccounts = ko.observable(false);
oData.allowIdentities = ko.observable(false);
oData.allowGravatar = ko.observable(false);
oData.capaAdditionalAccounts = ko.observable(false);
oData.capaAdditionalIdentities = ko.observable(false);
oData.capaGravatar = ko.observable(false);
oData.determineUserLanguage = ko.observable(false);
oData.messagesPerPage = ko.observable(Consts.Defaults.MessagesPerPage);//.extend({'throttle': 200});
@ -2487,7 +2494,7 @@ Utils.detectDropdownVisibility = _.debounce(function () {
return oItem.hasClass('open');
}));
}, 50);
// Base64 encode / decode
// http://www.webtoolkit.info/
@ -2650,7 +2657,7 @@ Base64 = {
}
};
/*jslint bitwise: false*/
/*jslint bitwise: false*/
ko.bindingHandlers.tooltip = {
'init': function (oElement, fValueAccessor) {
if (!Globals.bMobileDevice)
@ -3477,7 +3484,7 @@ ko.observable.fn.validateFunc = function (fFunc)
return this;
};
/**
* @constructor
*/
@ -3789,7 +3796,7 @@ LinkBuilder.prototype.socialFacebook = function ()
{
return this.sServer + 'SocialFacebook' + ('' !== this.sSpecSuffix ? '/' + this.sSpecSuffix + '/' : '');
};
/**
* @type {Object}
*/
@ -3883,7 +3890,7 @@ Plugins.settingsGet = function (sPluginSection, sName)
};
function NewHtmlEditorWrapper(oElement, fOnBlur, fOnReady, fOnModeChange)
{
var self = this;
@ -4103,7 +4110,7 @@ NewHtmlEditorWrapper.prototype.clear = function (bFocus)
this.setHtml('', bFocus);
};
/**
* @constructor
* @param {koProperty} oKoList
@ -4812,7 +4819,7 @@ Selector.prototype.on = function (sEventName, fCallback)
{
this.oCallbacks[sEventName] = fCallback;
};
/**
* @constructor
*/
@ -4886,7 +4893,7 @@ CookieDriver.prototype.get = function (sKey)
return mResult;
};
/**
* @constructor
*/
@ -4957,7 +4964,7 @@ LocalStorageDriver.prototype.get = function (sKey)
return mResult;
};
/**
* @constructor
*/
@ -5000,7 +5007,7 @@ LocalStorage.prototype.get = function (iKey)
{
return this.oDriver ? this.oDriver.get('p' + iKey) : null;
};
/**
* @constructor
*/
@ -5013,7 +5020,7 @@ KnoinAbstractBoot.prototype.bootstart = function ()
{
};
/**
* @param {string=} sPosition = ''
* @param {string=} sTemplate = ''
@ -5106,7 +5113,7 @@ KnoinAbstractViewModel.prototype.registerPopupKeyDown = function ()
return true;
});
};
/**
* @param {string} sScreenName
* @param {?=} aViewModels = []
@ -5182,7 +5189,7 @@ KnoinAbstractScreen.prototype.__start = function ()
this.oCross = oRoute;
}
};
/**
* @constructor
*/
@ -5582,7 +5589,7 @@ Knoin.prototype.bootstart = function ()
};
kn = new Knoin();
/**
* @param {string=} sEmail
* @param {string=} sName
@ -5946,7 +5953,7 @@ EmailModel.prototype.inputoTagLine = function ()
{
return 0 < this.name.length ? this.name + ' (' + this.email + ')' : this.email;
};
/**
* @constructor
*/
@ -6070,7 +6077,7 @@ ContactModel.prototype.lineAsCcc = function ()
return aResult.join(' ');
};
/**
* @param {number=} iType = Enums.ContactPropertyType.Unknown
* @param {string=} sTypeStr = ''
@ -6099,7 +6106,7 @@ function ContactPropertyModel(iType, sTypeStr, sValue, bFocused, sPlaceholder)
}, this);
}
/**
* @constructor
*/
@ -6143,7 +6150,7 @@ ContactTagModel.prototype.toLine = function (bEncodeHtml)
return (Utils.isUnd(bEncodeHtml) ? false : !!bEncodeHtml) ?
Utils.encodeHtml(this.name()) : this.name();
};
/**
* @constructor
*/
@ -6379,7 +6386,7 @@ AttachmentModel.prototype.iconClass = function ()
return sClass;
};
/**
* @constructor
* @param {string} sId
@ -6440,7 +6447,7 @@ ComposeAttachmentModel.prototype.initByUploadJson = function (oJsonAttachment)
}
return bResult;
};
};
/**
* @constructor
*/
@ -6803,7 +6810,7 @@ MessageModel.prototype.initUpdateByMessageJson = function (oJsonMessage)
this.sInReplyTo = oJsonMessage.InReplyTo;
this.sReferences = oJsonMessage.References;
if (RL.data().allowOpenPGP())
if (RL.data().capaOpenPGP())
{
this.isPgpSigned(!!oJsonMessage.PgpSigned);
this.isPgpEncrypted(!!oJsonMessage.PgpEncrypted);
@ -7438,7 +7445,7 @@ MessageModel.prototype.storeDataToDom = function ()
this.body.data('rl-plain-raw', this.plainRaw);
if (RL.data().allowOpenPGP())
if (RL.data().capaOpenPGP())
{
this.body.data('rl-plain-pgp-signed', !!this.isPgpSigned());
this.body.data('rl-plain-pgp-encrypted', !!this.isPgpEncrypted());
@ -7450,7 +7457,7 @@ MessageModel.prototype.storeDataToDom = function ()
MessageModel.prototype.storePgpVerifyDataToDom = function ()
{
if (this.body && RL.data().allowOpenPGP())
if (this.body && RL.data().capaOpenPGP())
{
this.body.data('rl-pgp-verify-status', this.pgpSignedVerifyStatus());
this.body.data('rl-pgp-verify-user', this.pgpSignedVerifyUser());
@ -7467,7 +7474,7 @@ MessageModel.prototype.fetchDataToDom = function ()
this.plainRaw = Utils.pString(this.body.data('rl-plain-raw'));
if (RL.data().allowOpenPGP())
if (RL.data().capaOpenPGP())
{
this.isPgpSigned(!!this.body.data('rl-plain-pgp-signed'));
this.isPgpEncrypted(!!this.body.data('rl-plain-pgp-encrypted'));
@ -7634,7 +7641,7 @@ MessageModel.prototype.flagHash = function ()
return [this.deleted(), this.unseen(), this.flagged(), this.answered(), this.forwarded(),
this.isReadReceipt()].join('');
};
/**
* @constructor
*/
@ -7966,7 +7973,7 @@ FolderModel.prototype.printableFullName = function ()
{
return this.fullName.split(this.delimiter).join(' / ');
};
/**
* @param {string} sEmail
* @param {boolean=} bCanBeDelete = true
@ -7987,7 +7994,7 @@ AccountModel.prototype.email = '';
AccountModel.prototype.changeAccountLink = function ()
{
return RL.link().change(this.email);
};
};
/**
* @param {string} sId
* @param {string} sEmail
@ -8023,7 +8030,7 @@ IdentityModel.prototype.formattedNameForEmail = function ()
var sName = this.name();
return '' === sName ? this.email() : '"' + Utils.quoteName(sName) + '" <' + this.email() + '>';
};
/**
* @param {string} iIndex
* @param {string} sGuID
@ -8054,7 +8061,7 @@ OpenPgpKeyModel.prototype.user = '';
OpenPgpKeyModel.prototype.email = '';
OpenPgpKeyModel.prototype.armor = '';
OpenPgpKeyModel.prototype.isPrivate = false;
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -8150,7 +8157,7 @@ PopupsFolderClearViewModel.prototype.onShow = function (oFolder)
this.selectedFolder(oFolder);
}
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -8260,7 +8267,7 @@ PopupsFolderCreateViewModel.prototype.onFocus = function ()
{
this.folderName.focused(true);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -8373,7 +8380,7 @@ PopupsFolderSystemViewModel.prototype.onShow = function (iNotificationType)
this.notification(sNotification);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -8388,8 +8395,8 @@ function PopupsComposeViewModel()
this.bFromDraft = false;
this.bSkipNext = false;
this.sReferences = '';
this.bAllowIdentities = RL.settingsGet('AllowIdentities');
this.bCapaAdditionalIdentities = RL.capa(Enums.Capa.AdditionalIdentities);
var
self = this,
@ -8402,7 +8409,7 @@ function PopupsComposeViewModel()
}
;
this.allowOpenPGP = oRainLoopData.allowOpenPGP;
this.capaOpenPGP = oRainLoopData.capaOpenPGP;
this.resizer = ko.observable(false).extend({'throttle': 50});
@ -8499,7 +8506,7 @@ function PopupsComposeViewModel()
sID = this.currentIdentityID()
;
if (this.bAllowIdentities && sID && sID !== RL.data().accountEmail())
if (this.bCapaAdditionalIdentities && sID && sID !== RL.data().accountEmail())
{
oItem = _.find(aList, function (oItem) {
return oItem && sID === oItem['id'];
@ -8740,7 +8747,7 @@ Utils.extendAsViewModel('PopupsComposeViewModel', PopupsComposeViewModel);
PopupsComposeViewModel.prototype.openOpenPgpPopup = function ()
{
if (this.allowOpenPGP() && this.oEditor && !this.oEditor.isHtml())
if (this.capaOpenPGP() && this.oEditor && !this.oEditor.isHtml())
{
var self = this;
kn.showScreenPopup(PopupsComposeOpenPgpViewModel, [
@ -8791,7 +8798,7 @@ PopupsComposeViewModel.prototype.findIdentityIdByMessage = function (sComposeTyp
}
;
if (this.bAllowIdentities)
if (this.bCapaAdditionalIdentities)
{
_.each(this.identities(), function (oItem) {
oIDs[oItem.email()] = oItem['id'];
@ -9861,7 +9868,7 @@ PopupsComposeViewModel.prototype.triggerForResize = function ()
this.editorResizeThrottle();
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -10603,7 +10610,7 @@ PopupsContactsViewModel.prototype.onHide = function ()
// oItem.checked(false);
// });
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -10739,7 +10746,7 @@ PopupsAdvancedSearchViewModel.prototype.onFocus = function ()
{
this.fromFocus(true);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -10851,7 +10858,7 @@ PopupsAddAccountViewModel.prototype.onFocus = function ()
{
this.emailFocus(true);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -10937,7 +10944,7 @@ PopupsAddOpenPgpKeyViewModel.prototype.onFocus = function ()
{
this.key.focus(true);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -10977,7 +10984,7 @@ PopupsViewOpenPgpKeyViewModel.prototype.onShow = function (oOpenPgpKey)
this.key(oOpenPgpKey.armor);
}
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -11025,6 +11032,13 @@ function PopupsGenerateNewOpenPgpKeyViewModel()
_.delay(function () {
mKeyPair = window.openpgp.generateKeyPair(1, Utils.pInt(self.keyBitLength()), sUserID, Utils.trim(self.password()));
// 0.6.0
// mKeyPair = window.openpgp.generateKeyPair({
// 'numBits': Utils.pInt(self.keyBitLength()),
// 'userId': sUserID,
// 'passphrase': Utils.trim(self.password())
// });
if (mKeyPair && mKeyPair.privateKeyArmored)
{
oOpenpgpKeyring.privateKeys.importKey(mKeyPair.privateKeyArmored);
@ -11065,7 +11079,7 @@ PopupsGenerateNewOpenPgpKeyViewModel.prototype.onFocus = function ()
{
this.email.focus(true);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -11305,7 +11319,7 @@ PopupsComposeOpenPgpViewModel.prototype.onShow = function (fCallback, sText, sFr
this.to(aRec);
this.text(sText);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -11453,7 +11467,7 @@ PopupsIdentityViewModel.prototype.onFocus = function ()
this.email.focused(true);
}
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -11513,7 +11527,7 @@ PopupsLanguagesViewModel.prototype.changeLanguage = function (sLang)
RL.data().mainLanguage(sLang);
this.cancelCommand();
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -11567,7 +11581,7 @@ PopupsTwoFactorTestViewModel.prototype.onFocus = function ()
{
this.code.focused(true);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -11673,7 +11687,7 @@ PopupsAskViewModel.prototype.onBuild = function ()
}, this));
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -11718,7 +11732,7 @@ PopupsKeyboardShortcutsHelpViewModel.prototype.onBuild = function (oDom)
}
}, this));
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -12030,7 +12044,7 @@ LoginViewModel.prototype.selectLanguage = function ()
kn.showScreenPopup(PopupsLanguagesViewModel);
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -12047,7 +12061,7 @@ function AbstractSystemDropDownViewModel()
this.accountMenuDropdownTrigger = ko.observable(false);
this.allowAddAccount = RL.settingsGet('AllowAdditionalAccounts');
this.capaAdditionalAccounts = RL.capa(Enums.Capa.AdditionalAccounts);
this.loading = ko.computed(function () {
return this.accountsLoading();
@ -12089,7 +12103,7 @@ AbstractSystemDropDownViewModel.prototype.settingsHelp = function ()
AbstractSystemDropDownViewModel.prototype.addAccountClick = function ()
{
if (this.allowAddAccount)
if (this.capaAdditionalAccounts)
{
kn.showScreenPopup(PopupsAddAccountViewModel);
}
@ -12126,7 +12140,7 @@ AbstractSystemDropDownViewModel.prototype.onBuild = function ()
}
});
};
/**
* @constructor
* @extends AbstractSystemDropDownViewModel
@ -12138,7 +12152,7 @@ function MailBoxSystemDropDownViewModel()
}
Utils.extendAsViewModel('MailBoxSystemDropDownViewModel', MailBoxSystemDropDownViewModel, AbstractSystemDropDownViewModel);
/**
* @constructor
* @extends AbstractSystemDropDownViewModel
@ -12150,7 +12164,7 @@ function SettingsSystemDropDownViewModel()
}
Utils.extendAsViewModel('SettingsSystemDropDownViewModel', SettingsSystemDropDownViewModel, AbstractSystemDropDownViewModel);
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -12359,7 +12373,7 @@ MailBoxFolderListViewModel.prototype.contactsClick = function ()
kn.showScreenPopup(PopupsContactsViewModel);
}
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -13025,7 +13039,7 @@ MailBoxMessageListViewModel.prototype.onBuild = function (oDom)
this.initUploaderForAppend();
this.initShortcuts();
if (!Globals.bMobileDevice && !!RL.settingsGet('AllowPrefetch') && ifvisible)
if (!Globals.bMobileDevice && RL.capa(Enums.Capa.Prefetch) && ifvisible)
{
ifvisible.setIdleDuration(10);
@ -13262,7 +13276,7 @@ MailBoxMessageListViewModel.prototype.initUploaderForAppend = function ()
;
return !!oJua;
};
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -13954,7 +13968,7 @@ MailBoxMessageViewViewModel.prototype.readReceipt = function (oMessage)
RL.reloadFlagsCurrentMessageListAndMessageFromCache();
}
};
/**
* @param {?} oScreen
*
@ -13983,7 +13997,7 @@ SettingsMenuViewModel.prototype.backToMailBoxClick = function ()
{
kn.setHash(RL.link().inbox());
};
/**
* @constructor
* @extends KnoinAbstractViewModel
@ -14014,7 +14028,7 @@ SettingsPaneViewModel.prototype.backToMailBoxClick = function ()
{
kn.setHash(RL.link().inbox());
};
/**
* @constructor
*/
@ -14174,7 +14188,7 @@ SettingsGeneral.prototype.selectLanguage = function ()
{
kn.showScreenPopup(PopupsLanguagesViewModel);
};
/**
* @constructor
*/
@ -14224,7 +14238,7 @@ SettingsContacts.prototype.onBuild = function ()
//{
//
//};
/**
* @constructor
*/
@ -14305,7 +14319,7 @@ SettingsAccounts.prototype.deleteAccount = function (oAccountToRemove)
}
}
};
/**
* @constructor
*/
@ -14393,7 +14407,7 @@ SettingsIdentity.prototype.onBuild = function ()
}, 50);
};
/**
* @constructor
*/
@ -14551,7 +14565,7 @@ SettingsIdentities.prototype.onBuild = function (oDom)
});
}, 50);
};
};
/**
* @constructor
*/
@ -14701,7 +14715,7 @@ SettingsSecurity.prototype.onBuild = function ()
this.processing(true);
RL.remote().getTwoFactor(this.onResult);
};
/**
* @constructor
*/
@ -14768,7 +14782,7 @@ function SettingsSocialScreen()
}
Utils.addSettingsViewModel(SettingsSocialScreen, 'SettingsSocial', 'SETTINGS_LABELS/LABEL_SOCIAL_NAME', 'social');
/**
* @constructor
*/
@ -14873,7 +14887,7 @@ SettingsChangePasswordScreen.prototype.onChangePasswordResponse = function (sRes
Utils.getNotification(Enums.Notification.CouldNotSaveNewPassword));
}
};
/**
* @constructor
*/
@ -15068,7 +15082,7 @@ SettingsFolders.prototype.unSubscribeFolder = function (oFolder)
oFolder.subScribed(false);
};
/**
* @constructor
*/
@ -15182,7 +15196,7 @@ SettingsThemes.prototype.onBuild = function ()
};
}));
};
/**
* @constructor
*/
@ -15250,7 +15264,7 @@ SettingsOpenPGP.prototype.deleteOpenPgpKey = function (oOpenPgpKeyToRemove)
RL.reloadOpenPgpKeys();
}
}
};
};
/**
* @constructor
*/
@ -15335,12 +15349,12 @@ AbstractData.prototype.populateDataOnStart = function()
this.mainLanguage(RL.settingsGet('Language'));
this.mainTheme(RL.settingsGet('Theme'));
this.allowAdditionalAccounts(!!RL.settingsGet('AllowAdditionalAccounts'));
this.allowIdentities(!!RL.settingsGet('AllowIdentities'));
this.allowGravatar(!!RL.settingsGet('AllowGravatar'));
this.capaAdditionalAccounts(RL.capa(Enums.Capa.AdditionalAccounts));
this.capaAdditionalIdentities(RL.capa(Enums.Capa.AdditionalIdentities));
this.capaGravatar(RL.capa(Enums.Capa.Gravatar));
this.determineUserLanguage(!!RL.settingsGet('DetermineUserLanguage'));
this.allowThemes(!!RL.settingsGet('AllowThemes'));
this.capaThemes(RL.capa(Enums.Capa.Themes));
this.allowCustomLogin(!!RL.settingsGet('AllowCustomLogin'));
this.allowLanguagesOnLogin(!!RL.settingsGet('AllowLanguagesOnLogin'));
this.allowLanguagesOnSettings(!!RL.settingsGet('AllowLanguagesOnSettings'));
@ -15380,7 +15394,7 @@ AbstractData.prototype.populateDataOnStart = function()
this.contactsIsAllowed(!!RL.settingsGet('ContactsIsAllowed'));
};
/**
* @constructor
* @extends AbstractData
@ -15783,7 +15797,7 @@ function WebMailDataStorage()
}, this);
// other
this.allowOpenPGP = ko.observable(false);
this.capaOpenPGP = ko.observable(false);
this.openpgpkeys = ko.observableArray([]);
this.openpgpKeyring = null;
@ -16310,8 +16324,7 @@ WebMailDataStorage.prototype.setMessage = function (oData, bCached)
sPlain = oData.Result.Plain.toString();
if ((oMessage.isPgpSigned() || oMessage.isPgpEncrypted()) &&
RL.data().allowOpenPGP() &&
Utils.isNormal(oData.Result.PlainRaw))
RL.data().capaOpenPGP() && Utils.isNormal(oData.Result.PlainRaw))
{
oMessage.plainRaw = Utils.pString(oData.Result.PlainRaw);
@ -16634,7 +16647,7 @@ WebMailDataStorage.prototype.findSelfPrivateKey = function (sPassword)
{
return this.findPrivateKeyByEmail(this.accountEmail(), sPassword);
};
/**
* @constructor
*/
@ -16908,7 +16921,7 @@ AbstractAjaxRemoteStorage.prototype.jsVersion = function (fCallback, sVersion)
'Version': sVersion
});
};
/**
* @constructor
* @extends AbstractAjaxRemoteStorage
@ -17701,7 +17714,7 @@ WebMailAjaxRemoteStorage.prototype.socialUsers = function (fCallback)
this.defaultRequest(fCallback, 'SocialUsers');
};
/**
* @constructor
*/
@ -17709,7 +17722,7 @@ function AbstractCacheStorage()
{
this.oEmailsPicsHashes = {};
this.oServices = {};
this.bAllowGravatar = !!RL.settingsGet('AllowGravatar');
this.bCapaGravatar = RL.capa(Enums.Capa.Gravatar);
}
/**
@ -17725,7 +17738,7 @@ AbstractCacheStorage.prototype.oServices = {};
/**
* @type {boolean}
*/
AbstractCacheStorage.prototype.bAllowGravatar = false;
AbstractCacheStorage.prototype.bCapaGravatar = false;
AbstractCacheStorage.prototype.clear = function ()
{
@ -17759,7 +17772,7 @@ AbstractCacheStorage.prototype.getUserPic = function (sEmail, fCallback)
}
if (this.bAllowGravatar && '' === sUrl)
if (this.bCapaGravatar && '' === sUrl)
{
fCallback('//secure.gravatar.com/avatar/' + Utils.md5(sEmailLower) + '.jpg?s=80&d=mm', sEmail);
}
@ -17784,7 +17797,7 @@ AbstractCacheStorage.prototype.setEmailsPicsHashesData = function (oData)
{
this.oEmailsPicsHashes = oData;
};
/**
* @constructor
* @extends AbstractCacheStorage
@ -18102,7 +18115,7 @@ WebMailCacheStorage.prototype.storeMessageFlagsToCacheByFolderAndUid = function
this.setMessageFlagsToCache(sFolder, sUid, aFlags);
}
};
/**
* @param {Array} aViewModels
* @constructor
@ -18280,7 +18293,7 @@ AbstractSettings.prototype.routes = function ()
['', oRules]
];
};
/**
* @constructor
* @extends KnoinAbstractScreen
@ -18295,7 +18308,7 @@ _.extend(LoginScreen.prototype, KnoinAbstractScreen.prototype);
LoginScreen.prototype.onShow = function ()
{
RL.setTitle('');
};
};
/**
* @constructor
* @extends KnoinAbstractScreen
@ -18387,7 +18400,7 @@ MailBoxScreen.prototype.onStart = function ()
}
;
if (RL.settingsGet('AllowAdditionalAccounts') || RL.settingsGet('AllowIdentities'))
if (RL.capa(Enums.Capa.AdditionalAccounts) || RL.capa(Enums.Capa.AdditionalIdentities))
{
RL.accountsAndIdentities();
}
@ -18466,7 +18479,7 @@ MailBoxScreen.prototype.routes = function ()
[/^([^\/]*)$/, {'normalize_': fNormS}]
];
};
/**
* @constructor
* @extends AbstractSettings
@ -18495,7 +18508,7 @@ SettingsScreen.prototype.onShow = function ()
RL.setTitle(this.sSettingsTitle);
RL.data().keyScope(Enums.KeyState.Settings);
};
/**
* @constructor
* @extends KnoinAbstractBoot
@ -18853,7 +18866,7 @@ AbstractApp.prototype.bootstart = function ()
ssm.ready();
};
/**
* @constructor
* @extends AbstractApp
@ -19279,7 +19292,7 @@ RainLoopApp.prototype.folders = function (fCallback)
RainLoopApp.prototype.reloadOpenPgpKeys = function ()
{
if (RL.data().allowOpenPGP())
if (RL.data().capaOpenPGP())
{
var
aKeys = [],
@ -19897,12 +19910,12 @@ RainLoopApp.prototype.bootstart = function ()
Utils.removeSettingsViewModel(SettingsContacts);
}
if (!RL.settingsGet('AllowAdditionalAccounts'))
if (!RL.capa(Enums.Capa.AdditionalAccounts))
{
Utils.removeSettingsViewModel(SettingsAccounts);
}
if (RL.settingsGet('AllowIdentities'))
if (RL.capa(Enums.Capa.AdditionalIdentities))
{
Utils.removeSettingsViewModel(SettingsIdentity);
}
@ -19911,26 +19924,26 @@ RainLoopApp.prototype.bootstart = function ()
Utils.removeSettingsViewModel(SettingsIdentities);
}
if (!RL.settingsGet('OpenPGP'))
if (!RL.capa(Enums.Capa.OpenPGP))
{
Utils.removeSettingsViewModel(SettingsOpenPGP);
}
if (!RL.settingsGet('AllowTwoFactorAuth'))
if (!RL.capa(Enums.Capa.TwoFactor))
{
Utils.removeSettingsViewModel(SettingsSecurity);
}
if (!RL.capa(Enums.Capa.Themes))
{
Utils.removeSettingsViewModel(SettingsThemes);
}
if (!bGoogle && !bFacebook && !bTwitter)
{
Utils.removeSettingsViewModel(SettingsSocialScreen);
}
if (!RL.settingsGet('AllowThemes'))
{
Utils.removeSettingsViewModel(SettingsThemes);
}
Utils.initOnStartOrLangChange(function () {
$.extend(true, $.magnificPopup.defaults, {
@ -19967,7 +19980,7 @@ RainLoopApp.prototype.bootstart = function ()
if (bValue)
{
if (window.crypto && window.crypto.getRandomValues && RL.settingsGet('OpenPGP'))
if (window.crypto && window.crypto.getRandomValues && RL.capa(Enums.Capa.OpenPGP))
{
$.ajax({
'url': RL.link().openPgpJs(),
@ -19977,7 +19990,7 @@ RainLoopApp.prototype.bootstart = function ()
if (window.openpgp)
{
RL.data().openpgpKeyring = new window.openpgp.Keyring();
RL.data().allowOpenPGP(true);
RL.data().capaOpenPGP(true);
RL.pub('openpgp.init');
@ -19988,7 +20001,7 @@ RainLoopApp.prototype.bootstart = function ()
}
else
{
RL.data().allowOpenPGP(false);
RL.data().capaOpenPGP(false);
}
kn.startScreens([MailBoxScreen, SettingsScreen]);
@ -20155,7 +20168,7 @@ RainLoopApp.prototype.bootstart = function ()
* @type {RainLoopApp}
*/
RL = new RainLoopApp();
$html.addClass(Globals.bMobileDevice ? 'mobile' : 'no-mobile');
$window.keydown(Utils.killCtrlAandS).keyup(Utils.killCtrlAandS);
@ -20206,9 +20219,9 @@ window['__RLBOOT'] = function (fCall) {
window['__RLBOOT'] = null;
});
};
if (window.SimplePace) {
window.SimplePace.add(10);
}
}
}(window, jQuery, ko, crossroads, hasher, moment, Jua, _, ifvisible, key));

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -105,15 +105,16 @@
<glyph unicode="&#57439;" d="M456 343c0 1 0 1 0 1 0 5-2 10-5 13l0 1-40 69c-1 6-6 10-13 10 0 0 0 0-1 0l0 0-283 0 0 0c0 0 0 0 0 0-5 0-9-3-12-7l0 0-42-72 0 0c-3-4-4-9-4-14 0 0 0 0 0-1l0-247c0 0 0 0 0 0 0-12 9-21 20-21 1 0 1 0 1 0l358 0c0 0 0 0 0 0 12 0 21 9 21 21 0 0 0 0 0 0l0 247z m-131-125l-64-90c-1-1-3-2-5-2 0 0 0 0 0 0-2 0-4 1-5 2l-64 90c-1 2-1 4 0 6 1 2 3 3 5 3l30 0 0 81c0 3 3 6 6 6l56 0c3 0 6-3 6-6l0-81 30 0c2 0 4-1 5-3 1-2 1-4 0-6z m-231 147l27 47 270 0 27-47z"/>
<glyph unicode="&#57440;" d="M96 288l64 0 0-32-64 0z m0-64l64 0 0-32-64 0z m384 160l-448 0c-18 0-32-14-32-32l0-224c0-18 14-32 32-32l448 0c18 0 32 14 32 32l0 224c0 18-14 32-32 32m-288-224l-128 0 0 160 128 0z m128 0l-96 0 0 160 32 0 0-128 32 0 0 128 32 0z m128 64l-32 0 0-64-32 0 0 64-32 0 0 96 32 0 0-64 32 0 0 64 32 0z"/>
<glyph unicode="&#57441;" d="M456 428c3-8 2-15-4-20l-141-141 0-212c0-8-4-14-11-17-3-1-5-1-7-1-6 0-10 1-13 5l-73 73c-4 4-6 8-6 13l0 139-141 141c-6 5-7 12-4 20 4 7 9 11 17 11l366 0c8 0 13-4 17-11z"/>
<glyph unicode="&#57442;" d="M148 367l-111-111 111-111 0 74 216 0 0-74 111 111-111 111 0-74-216 0z"/>
<glyph unicode="&#57443;" d="M341 94c0-2-1-4-2-6-2-2-4-3-6-3l-256 0c-2 0-3 1-4 1-1 0-2 1-2 2-1 1-1 1-2 2 0 0 0 1 0 3-1 1-1 2-1 3l0 160-51 0c-5 0-9 2-12 5-3 3-5 7-5 12 0 4 1 8 4 11l85 102c4 4 8 6 13 6 6 0 10-2 13-6l86-102c2-3 4-7 4-11 0-5-2-9-5-12-4-3-8-5-12-5l-51 0 0-102 153 0c3 0 5-1 7-3l42-52c2-1 2-3 2-5z m171 111c0-4-1-8-4-11l-85-103c-4-4-8-6-13-6-6 0-10 2-13 6l-86 103c-2 3-4 7-4 11 0 4 2 8 5 12 4 3 8 5 12 5l51 0 0 102-153 0c-3 0-5 1-7 3l-42 52c-2 1-2 3-2 5 0 2 1 4 2 6 2 2 4 3 6 3l256 0c2 0 3-1 4-1 1 0 2-1 2-2 1-1 1-1 2-2 0-1 0-2 0-3 1-2 1-3 1-3l0-160 51 0c5 0 9-2 12-5 3-4 5-8 5-12z"/>
<glyph unicode="&#57444;" d="M311 155l0-54c0-8-3-15-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 5-8 12-8 20l0 54c0 8 3 15 8 20 5 5 12 8 20 8l54 0c8 0 15-3 20-8 5-5 8-12 8-20z m0 147l0-55c0-8-3-14-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 6-8 12-8 20l0 55c0 7 3 14 8 19 5 5 12 8 20 8l54 0c8 0 15-3 20-8 5-5 8-12 8-19z m0 146l0-55c0-7-3-14-8-19-5-6-12-8-20-8l-54 0c-8 0-15 2-20 8-5 5-8 12-8 19l0 55c0 8 3 14 8 19 5 6 12 8 20 8l54 0c8 0 15-2 20-8 5-5 8-11 8-19z"/>
<glyph unicode="&#57445;" d="M341 265c0 2 0 4-2 6l-94 94c-2 1-4 2-6 2-3 0-5-1-6-2l-94-94c-2-2-2-4-2-6 0-3 0-5 2-7 2-1 4-2 6-2l60 0 0-94c0-2 1-4 2-6 2-2 4-2 6-2l52 0c2 0 4 0 6 2 1 2 2 4 2 6l0 94 60 0c2 0 4 1 6 3 1 1 2 3 2 6z m171-77c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
<glyph unicode="&#57446;" d="M341 247c0 3 0 5-2 7-2 1-4 2-6 2l-60 0 0 94c0 2-1 4-2 6-2 2-4 2-6 2l-52 0c-2 0-4 0-6-2-1-2-2-4-2-6l0-94-60 0c-2 0-4-1-6-3-2-1-2-3-2-6 0-2 0-4 2-6l94-94c1-1 3-2 6-2 2 0 4 1 6 2l94 94c1 2 2 4 2 6z m171-59c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
<glyph unicode="&#57447;" d="M375 256c0-5-2-9-6-13l-155-155c-4-4-8-6-13-6-5 0-9 2-13 6-3 3-5 8-5 13l0 82-128 0c-5 0-9 2-13 5-4 4-5 8-5 13l0 110c0 5 1 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 5 13 4 4 8 6 13 6 5 0 9-2 13-6l155-155c4-4 6-8 6-13z m100 101l0-202c0-22-8-42-24-58-16-16-35-24-58-24l-91 0c-3 0-5 1-7 3-2 2-2 4-2 6 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c13 0 23 4 32 13 9 9 14 20 14 32l0 202c0 12-5 23-14 32-9 9-19 13-32 13l-89 0c0 0-1 0-3 1-2 0-4 0-4 0 0 1 0 1-2 2-1 1-2 2-2 3 0 1 0 2 0 3 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c23 0 42-8 58-24 16-16 24-36 24-58z"/>
<glyph unicode="&#57448;" d="M201 101c0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-23 0-42 8-59 24-16 16-24 36-24 58l0 202c0 22 8 42 24 58 17 16 36 24 59 24l91 0c2 0 5-1 6-3 2-2 3-4 3-6 0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-13 0-24-4-33-13-9-9-13-20-13-32l0-202c0-12 4-23 13-32 9-9 20-13 33-13l89 0c0 0 1 0 3-1 2 0 3 0 3 0 0-1 1-1 3-2 1-1 2-2 2-3-1-1 0-2 0-3z m265 155c0-5-2-9-5-13l-156-155c-3-4-7-6-12-6-5 0-10 2-13 6-4 3-6 8-6 13l0 82-128 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 110c0 5 2 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 6 13 3 4 8 6 13 6 5 0 9-2 12-6l156-155c3-4 5-8 5-13z"/>
<glyph unicode="&#57449;" d="M485 402c7 0 14-2 19-8 5-5 8-12 8-19l0-348c0-7-3-14-8-19-5-5-12-8-19-8l-275 0c-7 0-14 3-19 8-5 5-8 12-8 19l0 83-156 0c-7 0-14 2-19 8-5 5-8 12-8 19l0 192c0 8 2 16 6 25 4 9 8 17 13 22l117 117c5 5 13 9 22 13 9 4 17 6 25 6l119 0c7 0 14-3 19-8 5-5 8-12 8-19l0-94c13 7 25 11 37 11z m-156-61l-85-85 85 0z m-183 110l-85-85 85 0z m56-185l91 91 0 118-110 0 0-118c0-8-3-15-8-20-5-5-12-8-20-8l-118 0 0-183 146 0 0 73c0 8 2 16 6 26 3 9 8 16 13 21z m273-229l0 329-109 0 0-119c0-8-3-14-8-20-6-5-12-8-20-8l-119 0 0-182z"/>
<glyph unicode="&#57450;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256m0-480c-123 0-224 100-224 224 0 123 101 224 224 224 123 0 224-101 224-224 0-124-101-224-224-224m0 192c-81 0-113-38-160-96l4 0c40 39 95 64 156 64 61 0 116-25 157-64l3 0c-47 58-79 96-160 96m-64 64c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48m128 0c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48"/>
<glyph unicode="&#57451;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256m0-480c-123 0-224 100-224 224 0 123 101 224 224 224 123 0 224-101 224-224 0-124-101-224-224-224m157 192c-41-40-96-64-157-64-61 0-116 24-156 64l-4 0c47-58 79-96 160-96 81 0 113 38 160 96z m-221 64c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48m128 0c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48"/>
<glyph unicode="&#57452;" d="M256 484c-126 0-228-102-228-228 0-126 102-228 228-228 126 0 228 102 228 228 0 126-102 228-228 228z m0-399c-94 0-171 77-171 171 0 94 77 171 171 171 94 0 171-77 171-171 0-94-77-171-171-171z m58 173c-10-9-27-16-31-18-4-2-4-4-4-10l0-8-57 0 0 18c0 14 1 22 16 30l20 10c7 5 16 8 16 15 0 8-7 11-24 11-16 0-33-6-45-14l-15 50c8 4 30 18 72 18 42 0 72-26 72-57 0-26-9-36-20-45z m-64-111c-22 0-37 12-37 32 0 21 15 33 37 33 22 0 37-12 37-33 0-20-15-32-37-32z"/>
<glyph unicode="&#57442;" d="M341 94c0-2-1-4-2-6-2-2-4-3-6-3l-256 0c-2 0-3 1-4 1-1 0-2 1-2 2-1 1-1 1-2 2 0 0 0 1 0 3-1 1-1 2-1 3l0 160-51 0c-5 0-9 2-12 5-3 3-5 7-5 12 0 4 1 8 4 11l85 102c4 4 8 6 13 6 6 0 10-2 13-6l86-102c2-3 4-7 4-11 0-5-2-9-5-12-4-3-8-5-12-5l-51 0 0-102 153 0c3 0 5-1 7-3l42-52c2-1 2-3 2-5z m171 111c0-4-1-8-4-11l-85-103c-4-4-8-6-13-6-6 0-10 2-13 6l-86 103c-2 3-4 7-4 11 0 4 2 8 5 12 4 3 8 5 12 5l51 0 0 102-153 0c-3 0-5 1-7 3l-42 52c-2 1-2 3-2 5 0 2 1 4 2 6 2 2 4 3 6 3l256 0c2 0 3-1 4-1 1 0 2-1 2-2 1-1 1-1 2-2 0-1 0-2 0-3 1-2 1-3 1-3l0-160 51 0c5 0 9-2 12-5 3-4 5-8 5-12z"/>
<glyph unicode="&#57443;" d="M311 155l0-54c0-8-3-15-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 5-8 12-8 20l0 54c0 8 3 15 8 20 5 5 12 8 20 8l54 0c8 0 15-3 20-8 5-5 8-12 8-20z m0 147l0-55c0-8-3-14-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 6-8 12-8 20l0 55c0 7 3 14 8 19 5 5 12 8 20 8l54 0c8 0 15-3 20-8 5-5 8-12 8-19z m0 146l0-55c0-7-3-14-8-19-5-6-12-8-20-8l-54 0c-8 0-15 2-20 8-5 5-8 12-8 19l0 55c0 8 3 14 8 19 5 6 12 8 20 8l54 0c8 0 15-2 20-8 5-5 8-11 8-19z"/>
<glyph unicode="&#57444;" d="M341 265c0 2 0 4-2 6l-94 94c-2 1-4 2-6 2-3 0-5-1-6-2l-94-94c-2-2-2-4-2-6 0-3 0-5 2-7 2-1 4-2 6-2l60 0 0-94c0-2 1-4 2-6 2-2 4-2 6-2l52 0c2 0 4 0 6 2 1 2 2 4 2 6l0 94 60 0c2 0 4 1 6 3 1 1 2 3 2 6z m171-77c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
<glyph unicode="&#57445;" d="M341 247c0 3 0 5-2 7-2 1-4 2-6 2l-60 0 0 94c0 2-1 4-2 6-2 2-4 2-6 2l-52 0c-2 0-4 0-6-2-1-2-2-4-2-6l0-94-60 0c-2 0-4-1-6-3-2-1-2-3-2-6 0-2 0-4 2-6l94-94c1-1 3-2 6-2 2 0 4 1 6 2l94 94c1 2 2 4 2 6z m171-59c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
<glyph unicode="&#57446;" d="M375 256c0-5-2-9-6-13l-155-155c-4-4-8-6-13-6-5 0-9 2-13 6-3 3-5 8-5 13l0 82-128 0c-5 0-9 2-13 5-4 4-5 8-5 13l0 110c0 5 1 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 5 13 4 4 8 6 13 6 5 0 9-2 13-6l155-155c4-4 6-8 6-13z m100 101l0-202c0-22-8-42-24-58-16-16-35-24-58-24l-91 0c-3 0-5 1-7 3-2 2-2 4-2 6 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c13 0 23 4 32 13 9 9 14 20 14 32l0 202c0 12-5 23-14 32-9 9-19 13-32 13l-89 0c0 0-1 0-3 1-2 0-4 0-4 0 0 1 0 1-2 2-1 1-2 2-2 3 0 1 0 2 0 3 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c23 0 42-8 58-24 16-16 24-36 24-58z"/>
<glyph unicode="&#57447;" d="M201 101c0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-23 0-42 8-59 24-16 16-24 36-24 58l0 202c0 22 8 42 24 58 17 16 36 24 59 24l91 0c2 0 5-1 6-3 2-2 3-4 3-6 0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-13 0-24-4-33-13-9-9-13-20-13-32l0-202c0-12 4-23 13-32 9-9 20-13 33-13l89 0c0 0 1 0 3-1 2 0 3 0 3 0 0-1 1-1 3-2 1-1 2-2 2-3-1-1 0-2 0-3z m265 155c0-5-2-9-5-13l-156-155c-3-4-7-6-12-6-5 0-10 2-13 6-4 3-6 8-6 13l0 82-128 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 110c0 5 2 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 6 13 3 4 8 6 13 6 5 0 9-2 12-6l156-155c3-4 5-8 5-13z"/>
<glyph unicode="&#57448;" d="M485 402c7 0 14-2 19-8 5-5 8-12 8-19l0-348c0-7-3-14-8-19-5-5-12-8-19-8l-275 0c-7 0-14 3-19 8-5 5-8 12-8 19l0 83-156 0c-7 0-14 2-19 8-5 5-8 12-8 19l0 192c0 8 2 16 6 25 4 9 8 17 13 22l117 117c5 5 13 9 22 13 9 4 17 6 25 6l119 0c7 0 14-3 19-8 5-5 8-12 8-19l0-94c13 7 25 11 37 11z m-156-61l-85-85 85 0z m-183 110l-85-85 85 0z m56-185l91 91 0 118-110 0 0-118c0-8-3-15-8-20-5-5-12-8-20-8l-118 0 0-183 146 0 0 73c0 8 2 16 6 26 3 9 8 16 13 21z m273-229l0 329-109 0 0-119c0-8-3-14-8-20-6-5-12-8-20-8l-119 0 0-182z"/>
<glyph unicode="&#57449;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256m0-480c-123 0-224 100-224 224 0 123 101 224 224 224 123 0 224-101 224-224 0-124-101-224-224-224m0 192c-81 0-113-38-160-96l4 0c40 39 95 64 156 64 61 0 116-25 157-64l3 0c-47 58-79 96-160 96m-64 64c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48m128 0c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48"/>
<glyph unicode="&#57450;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256m0-480c-123 0-224 100-224 224 0 123 101 224 224 224 123 0 224-101 224-224 0-124-101-224-224-224m157 192c-41-40-96-64-157-64-61 0-116 24-156 64l-4 0c47-58 79-96 160-96 81 0 113 38 160 96z m-221 64c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48m128 0c18 0 32 21 32 48 0 26-14 48-32 48-18 0-32-22-32-48 0-27 14-48 32-48"/>
<glyph unicode="&#57451;" d="M256 484c-126 0-228-102-228-228 0-126 102-228 228-228 126 0 228 102 228 228 0 126-102 228-228 228z m0-399c-94 0-171 77-171 171 0 94 77 171 171 171 94 0 171-77 171-171 0-94-77-171-171-171z m58 173c-10-9-27-16-31-18-4-2-4-4-4-10l0-8-57 0 0 18c0 14 1 22 16 30l20 10c7 5 16 8 16 15 0 8-7 11-24 11-16 0-33-6-45-14l-15 50c8 4 30 18 72 18 42 0 72-26 72-57 0-26-9-36-20-45z m-64-111c-22 0-37 12-37 32 0 21 15 33 37 33 22 0 37-12 37-33 0-20-15-32-37-32z"/>
<glyph unicode="&#57452;" d="M411 475l-88-88-65 65 0-194 194 0-65 65 88 88z m-351-221l65-65-88-88 64-64 88 88 65-65 0 194z"/>
<glyph unicode="&#57453;" d="M282 475l65-64-89-89 64-64 89 89 64-65 0 193z m-92-221l-89-89-64 65 0-193 193 0-65 64 89 89z"/>
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Binary file not shown.

View file

@ -481,6 +481,10 @@ h2{font-size:18px;padding:0 0 21px 5px;margin:45px 0 0 0;text-transform:uppercas
<div data-icon="&#xe06c;" class="icon"></div>
<input type="text" readonly="readonly" value="&amp;#xe06c;">
</li>
<li>
<div data-icon="&#xe06d;" class="icon"></div>
<input type="text" readonly="readonly" value="&amp;#xe06d;">
</li>
</ul>
<h2>CSS mapping</h2>
<ul class="glyphs css-mapping">
@ -876,10 +880,6 @@ h2{font-size:18px;padding:0 0 21px 5px;margin:45px 0 0 0;text-transform:uppercas
<div class="icon icon-filter"></div>
<input type="text" readonly="readonly" value="filter">
</li>
<li>
<div class="icon icon-resize"></div>
<input type="text" readonly="readonly" value="resize">
</li>
<li>
<div class="icon icon-sync"></div>
<input type="text" readonly="readonly" value="sync">
@ -920,6 +920,14 @@ h2{font-size:18px;padding:0 0 21px 5px;margin:45px 0 0 0;text-transform:uppercas
<div class="icon icon-help"></div>
<input type="text" readonly="readonly" value="help">
</li>
<li>
<div class="icon icon-resize-in"></div>
<input type="text" readonly="readonly" value="resize-in">
</li>
<li>
<div class="icon icon-resize-out"></div>
<input type="text" readonly="readonly" value="resize-out">
</li>
</ul>
</div><script type="text/javascript">
(function() {

View file

@ -332,36 +332,39 @@
.icon-filter:before {
content: "\e061";
}
.icon-resize:before {
.icon-sync:before {
content: "\e062";
}
.icon-sync:before {
.icon-ellipsis-alt:before {
content: "\e063";
}
.icon-ellipsis-alt:before {
.icon-cloud-up:before {
content: "\e064";
}
.icon-cloud-up:before {
.icon-cloud-down:before {
content: "\e065";
}
.icon-cloud-down:before {
.icon-import:before {
content: "\e066";
}
.icon-import:before {
.icon-export:before {
content: "\e067";
}
.icon-export:before {
.icon-copy:before {
content: "\e068";
}
.icon-copy:before {
.icon-angry-smiley:before {
content: "\e069";
}
.icon-angry-smiley:before {
.icon-happy-smiley:before {
content: "\e06a";
}
.icon-happy-smiley:before {
.icon-help:before {
content: "\e06b";
}
.icon-help:before {
.icon-resize-in:before {
content: "\e06c";
}
.icon-resize-out:before {
content: "\e06d";
}

File diff suppressed because one or more lines are too long

7
vendors/openpgp/openpgp-0.6.0.min.js vendored Normal file

File diff suppressed because one or more lines are too long