mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-31 04:59:21 +03:00
Code refactoring
a lot of small fixes (Closes #173) Added login field (ownCloud package)
This commit is contained in:
parent
a059b3d063
commit
fed896776f
129 changed files with 1016 additions and 804 deletions
|
|
@ -60,7 +60,7 @@ class HtmlUtils
|
|||
{
|
||||
$sHtmlAttrs = $aMatch[1];
|
||||
}
|
||||
|
||||
|
||||
$aMatch = array();
|
||||
if (preg_match('/<body([^>]+)>/im', $sHtml, $aMatch) && !empty($aMatch[1]))
|
||||
{
|
||||
|
|
@ -71,7 +71,7 @@ class HtmlUtils
|
|||
$sHtml = \preg_replace('/<\/body>/im', '', $sHtml);
|
||||
$sHtml = \preg_replace('/<html([^>]*)>/im', '', $sHtml);
|
||||
$sHtml = \preg_replace('/<\/html>/im', '', $sHtml);
|
||||
|
||||
|
||||
return $sHtml;
|
||||
}
|
||||
|
||||
|
|
@ -83,8 +83,8 @@ class HtmlUtils
|
|||
public static function ClearTags($sHtml)
|
||||
{
|
||||
$aRemoveTags = array(
|
||||
'head', 'link', 'base', 'meta', 'title', 'style', 'script', 'bgsound',
|
||||
'object', 'embed', 'applet', 'mocha', 'iframe', 'frame', 'frameset'
|
||||
'head', 'link', 'base', 'meta', 'title', 'style', 'script', 'bgsound', 'keygen', 'source',
|
||||
'object', 'embed', 'applet', 'mocha', 'iframe', 'frame', 'frameset', 'video', 'audio'
|
||||
);
|
||||
|
||||
$aToRemove = array(
|
||||
|
|
@ -116,6 +116,7 @@ class HtmlUtils
|
|||
'/on(DblClick)/si',
|
||||
'/on(Error)/si',
|
||||
'/on(Focus)/si',
|
||||
'/on(FormChange)/si',
|
||||
'/on(KeyDown)/si',
|
||||
'/on(KeyPress)/si',
|
||||
'/on(KeyUp)/si',
|
||||
|
|
@ -418,7 +419,7 @@ class HtmlUtils
|
|||
foreach ($aNodes as /* @var $oElement \DOMElement */ $oElement)
|
||||
{
|
||||
$sTagNameLower = \strtolower($oElement->tagName);
|
||||
|
||||
|
||||
// convert body attributes to styles
|
||||
if ('body' === $sTagNameLower)
|
||||
{
|
||||
|
|
@ -429,7 +430,7 @@ class HtmlUtils
|
|||
'bottommargin' => '',
|
||||
'rightmargin' => ''
|
||||
);
|
||||
|
||||
|
||||
if (isset($oElement->attributes))
|
||||
{
|
||||
foreach ($oElement->attributes as $sAttributeName => /* @var $oAttributeNode \DOMNode */ $oAttributeNode)
|
||||
|
|
@ -451,7 +452,7 @@ class HtmlUtils
|
|||
if (\is_array($aItem))
|
||||
{
|
||||
$oElement->removeAttribute($aItem[0]);
|
||||
|
||||
|
||||
switch ($sIndex)
|
||||
{
|
||||
case 'text':
|
||||
|
|
@ -484,7 +485,7 @@ class HtmlUtils
|
|||
{
|
||||
$oElement->setAttribute('src', 'javascript:false');
|
||||
}
|
||||
|
||||
|
||||
if (\in_array($sTagNameLower, array('a', 'form', 'area')))
|
||||
{
|
||||
$oElement->setAttribute('target', '_blank');
|
||||
|
|
@ -500,12 +501,22 @@ class HtmlUtils
|
|||
// $oElement->removeAttribute('style');
|
||||
// }
|
||||
|
||||
@$oElement->removeAttribute('id');
|
||||
@$oElement->removeAttribute('class');
|
||||
@$oElement->removeAttribute('contenteditable');
|
||||
@$oElement->removeAttribute('designmode');
|
||||
@$oElement->removeAttribute('data-bind');
|
||||
@$oElement->removeAttribute('xmlns');
|
||||
foreach (array(
|
||||
'id', 'class', 'contenteditable', 'designmode', 'formaction', 'data-bind', 'xmlns'
|
||||
) as $sAttr)
|
||||
{
|
||||
@$oElement->removeAttribute($sAttr);
|
||||
}
|
||||
|
||||
foreach (array(
|
||||
'load', 'blur', 'error', 'focus', 'formchange', 'change',
|
||||
'click', 'dblclick', 'keydown', 'keypress', 'keyup',
|
||||
'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup',
|
||||
'move', 'resize', 'resizeend', 'resizestart', 'scroll', 'select', 'submit', 'upload'
|
||||
) as $sAttr)
|
||||
{
|
||||
@$oElement->removeAttribute('on'.$sAttr);
|
||||
}
|
||||
|
||||
if ($oElement->hasAttribute('href'))
|
||||
{
|
||||
|
|
@ -544,7 +555,7 @@ class HtmlUtils
|
|||
{
|
||||
$oElement->setAttribute('data-x-src', $sSrc);
|
||||
}
|
||||
|
||||
|
||||
$bHasExternals = true;
|
||||
}
|
||||
else if ('data:image/' === \strtolower(\substr(\trim($sSrc), 0, 11)))
|
||||
|
|
@ -626,7 +637,7 @@ class HtmlUtils
|
|||
foreach ($aNodes as /* @var $oElement \DOMElement */ $oElement)
|
||||
{
|
||||
$sTagNameLower = \strtolower($oElement->tagName);
|
||||
|
||||
|
||||
if ($oElement->hasAttribute('data-x-src-cid'))
|
||||
{
|
||||
$sCid = $oElement->getAttribute('data-x-src-cid');
|
||||
|
|
@ -640,7 +651,7 @@ class HtmlUtils
|
|||
$oElement->setAttribute('src', 'cid:'.$sCid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($oElement->hasAttribute('data-x-src-location'))
|
||||
{
|
||||
$sSrc = $oElement->getAttribute('data-x-src-location');
|
||||
|
|
@ -838,10 +849,10 @@ class HtmlUtils
|
|||
|
||||
return $sText;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $sText
|
||||
*
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function ConvertHtmlToPlain($sText)
|
||||
|
|
@ -937,7 +948,7 @@ class HtmlUtils
|
|||
'\'',
|
||||
''
|
||||
), $sText);
|
||||
|
||||
|
||||
$sText = str_ireplace('<div>',"\n<div>", $sText);
|
||||
$sText = strip_tags($sText, '');
|
||||
$sText = preg_replace("/\n\\s+\n/", "\n", $sText);
|
||||
|
|
|
|||
|
|
@ -1295,7 +1295,7 @@ class Actions
|
|||
$aResult['Language'] = $this->ValidateLanguage($sLanguage);
|
||||
$aResult['UserLanguage'] = $bUserLanguage;
|
||||
$aResult['LangLink'] = APP_INDEX_FILE.'?/Lang/0/'.($bAdmin ? 'en' : $aResult['Language']).'/'.$sStaticCache.'/';
|
||||
$aResult['TemplatesLink'] = APP_INDEX_FILE.'?/Templates/0/'.$sStaticCache.'/';
|
||||
$aResult['TemplatesLink'] = APP_INDEX_FILE.'?/Templates/0/'.($bAdmin ? 'Admin' : 'App').'/'.$sStaticCache.'/';
|
||||
$aResult['PluginsLink'] = $sPluginsLink;
|
||||
$aResult['EditorDefaultType'] = 'Html' === $aResult['EditorDefaultType'] ? 'Html' : 'Plain';
|
||||
|
||||
|
|
@ -6079,7 +6079,10 @@ class Actions
|
|||
{
|
||||
$oConfig = $this->Config();
|
||||
|
||||
$aResult = array(\RainLoop\Enumerations\Capa::PREM);
|
||||
$aResult = array(
|
||||
\RainLoop\Enumerations\Capa::PREM,
|
||||
\RainLoop\Enumerations\Capa::FILTERS
|
||||
);
|
||||
|
||||
if ($oConfig->Get('webmail', 'allow_additional_accounts', false))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
<?php
|
||||
|
||||
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';
|
||||
}
|
||||
<?php
|
||||
|
||||
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 FILTERS = 'FILTERS';
|
||||
const ADDITIONAL_ACCOUNTS = 'ADDITIONAL_ACCOUNTS';
|
||||
const ADDITIONAL_IDENTITIES = 'ADDITIONAL_IDENTITIES';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,11 @@ class ServiceActions
|
|||
*/
|
||||
protected $aPaths;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $sQuery;
|
||||
|
||||
/**
|
||||
* @param \MailSo\Base\Http $oHttp
|
||||
* @param \RainLoop\Actions $oActions
|
||||
|
|
@ -30,6 +35,7 @@ class ServiceActions
|
|||
$this->oHttp = $oHttp;
|
||||
$this->oActions = $oActions;
|
||||
$this->aPaths = array();
|
||||
$this->sQuery = '';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -449,16 +455,18 @@ class ServiceActions
|
|||
$this->oActions->verifyCacheByKey($this->sQuery);
|
||||
}
|
||||
|
||||
$bAdmin = false !== \strpos($this->sQuery, 'Admin');
|
||||
|
||||
$sCacheFileName = '';
|
||||
if ($bCacheEnabled)
|
||||
{
|
||||
$sCacheFileName = 'TEMPLATES:'.$this->oActions->Plugins()->Hash().APP_VERSION;
|
||||
$sCacheFileName = 'TEMPLATES:'.($bAdmin ? 'Admin/' : 'App/').$this->oActions->Plugins()->Hash().APP_VERSION;
|
||||
$sResult = $this->Cacher()->Get($sCacheFileName);
|
||||
}
|
||||
|
||||
if (0 === \strlen($sResult))
|
||||
{
|
||||
$sResult = $this->compileTemplates(false);
|
||||
$sResult = $this->compileTemplates($bAdmin);
|
||||
if ($bCacheEnabled && 0 < \strlen($sCacheFileName))
|
||||
{
|
||||
$this->Cacher()->Set($sCacheFileName, $sResult);
|
||||
|
|
@ -1021,20 +1029,16 @@ class ServiceActions
|
|||
|
||||
/**
|
||||
* @param bool $bAdmin = false
|
||||
* @param bool $bWrapByScriptTag = true
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function compileTemplates($bAdmin = false, $bWrapByScriptTag = false)
|
||||
private function compileTemplates($bAdmin = false)
|
||||
{
|
||||
$sHtml = \RainLoop\Utils::CompileTemplates(APP_VERSION_ROOT_PATH.'app/templates/Views', $this->oActions).
|
||||
$sHtml = \RainLoop\Utils::CompileTemplates(APP_VERSION_ROOT_PATH.'app/templates/Views/'.($bAdmin ? 'Admin' : 'App'), $this->oActions).
|
||||
\RainLoop\Utils::CompileTemplates(APP_VERSION_ROOT_PATH.'app/templates/Views/Common', $this->oActions).
|
||||
$this->oActions->Plugins()->CompileTemplate($bAdmin);
|
||||
|
||||
return
|
||||
($bWrapByScriptTag ? '<script type="text/javascript" data-cfasync="false">' : '').
|
||||
'window.rainloopTEMPLATES='.\MailSo\Base\Utils::Php2js(array($sHtml)).';'.
|
||||
($bWrapByScriptTag ? '</script>' : '')
|
||||
;
|
||||
return 'window.rainloopTEMPLATES='.\MailSo\Base\Utils::Php2js(array($sHtml)).';';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<!--[if lte IE 7]>
|
||||
<meta http-equiv="refresh" content="0; URL={{BaseAppIndexFile}}?/BadBrowser" />
|
||||
<![endif]-->
|
||||
<script type="text/javascript">
|
||||
<script type="text/javascript" data-cfasync="false">
|
||||
function __fIncludeScr(sSrc) {
|
||||
document.write(unescape('%3Csc' + 'ript data-cfasync="false" type="text/jav' + 'ascr' + 'ipt" sr' + 'c="' + sSrc + '"%3E%3C/' + 'scr' + 'ipt%3E'));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,24 @@
|
|||
<div class="b-admin-left g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-group show-on-panel-disabled">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content thm-settings-menu opacity-on-panel-disabled">
|
||||
<div class="b-admin-menu" data-bind="foreach: menu">
|
||||
<!-- ko if: disabled -->
|
||||
<span class="e-item disabled">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</span>
|
||||
<!-- /ko -->
|
||||
<!-- ko ifnot: disabled -->
|
||||
<a class="e-item selectable" href="#" data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route) }">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</a>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
<div class="b-admin-left g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-group show-on-panel-disabled">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content thm-settings-menu opacity-on-panel-disabled">
|
||||
<div class="b-admin-menu" data-bind="foreach: menu">
|
||||
<!-- ko if: disabled -->
|
||||
<span class="e-item disabled">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</span>
|
||||
<!-- /ko -->
|
||||
<!-- ko ifnot: disabled -->
|
||||
<a class="e-item selectable" href="#" data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route) }">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</a>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
</div>
|
||||
|
|
@ -16,28 +16,41 @@
|
|||
<h1 style="margin-bottom: 0;">RainLoop</h1>
|
||||
<h4 style="margin-top: 0;"><span data-bind="text: version"></span></h4>
|
||||
<h4 style="color: #aaa; font-weight: normal;">Simple, modern & fast web-based email client</h4>
|
||||
<h5 style="color: #aaa; font-weight: normal; margin-top: 40px;">
|
||||
<h5 style="font-weight: normal; margin-top: 40px;">
|
||||
<div data-bind="visible: 'error' === statusType()">
|
||||
<i class="icon-warning" style="color: red"></i>
|
||||
|
||||
<span data-bind="text: errorDesc">Error</span>
|
||||
<span data-bind="text: errorDesc"></span>
|
||||
</div>
|
||||
<div data-bind="visible: 'available' === statusType()">
|
||||
<i class="icon-warning" style="color: blue"></i>
|
||||
<i class="icon-bolt" style="color: red"></i>
|
||||
|
||||
New <b data-bind="text: coreRemoteVersion"></b> version is available.
|
||||
<span data-bind="visible: '' !== coreRemoteRelease()">
|
||||
(<span data-bind="text: coreRemoteRelease"></span>)
|
||||
</span>
|
||||
<br />
|
||||
<br />
|
||||
<span data-bind="visible: coreUpdatable() && coreAccess()">
|
||||
<span class="g-ui-link" data-bind="click: updateCoreData">Update</span>
|
||||
<a class="btn" data-bind="click: updateCoreData">
|
||||
<i class="icon-sync"></i>
|
||||
|
||||
Update
|
||||
</a>
|
||||
|
||||
</span>
|
||||
<span data-bind="visible: coreAccess()">
|
||||
<a class="g-ui-link" href="http://rainloop.net/downloads/" target="_blank">Download</a>
|
||||
<a class="btn" href="http://rainloop.net/downloads/" target="_blank">
|
||||
<i class="icon-download"></i>
|
||||
|
||||
Download
|
||||
</a>
|
||||
|
||||
<a class="g-ui-link" href="http://rainloop.net/changelog/" target="_blank">Changelog</a>
|
||||
<a class="btn" href="http://rainloop.net/changelog/" target="_blank">
|
||||
<i class="icon-file-text"></i>
|
||||
|
||||
Changelog
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
<div data-bind="visible: 'up-to-date' === statusType()">
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
<div data-bind="visible: licensingProcess()">
|
||||
<i class="icon-spinner animated"></i>
|
||||
|
||||
checking...
|
||||
Checking…
|
||||
</div>
|
||||
<div data-bind="visible: !licensingProcess()">
|
||||
<div class="alert alert-block span8" style="margin-left: 0" data-bind="visible: !licensing()">
|
||||
|
|
@ -1,28 +1,28 @@
|
|||
<div class="b-admin-plugin-property">
|
||||
<label class="control-label">
|
||||
<span data-bind="text: Label, visible: 5 !== Type"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<!-- ko if: 0 === Type || 1 === Type -->
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: value" />
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 3 === Type -->
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: value" />
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 2 === Type -->
|
||||
<textarea autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: value"></textarea>
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 4 === Type -->
|
||||
<select data-bind="options: Default, value: value"></select>
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 5 === Type -->
|
||||
<label data-bind="click: function () { value(!value()); }">
|
||||
<i data-bind="css: value() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span data-bind="text: Label"></span>
|
||||
</label>
|
||||
<!-- /ko -->
|
||||
<span class="help-block" style="color: #ccc" data-bind="text: Desc, visible: '' !== Desc"></span>
|
||||
</div>
|
||||
<br />
|
||||
<div class="b-admin-plugin-property">
|
||||
<label class="control-label">
|
||||
<span data-bind="text: Label, visible: 5 !== Type"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<!-- ko if: 0 === Type || 1 === Type -->
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: value" />
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 3 === Type -->
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: value" />
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 2 === Type -->
|
||||
<textarea autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: value"></textarea>
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 4 === Type -->
|
||||
<select data-bind="options: Default, value: value"></select>
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 5 === Type -->
|
||||
<label data-bind="click: function () { value(!value()); }">
|
||||
<i data-bind="css: value() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<span data-bind="text: Label"></span>
|
||||
</label>
|
||||
<!-- /ko -->
|
||||
<span class="help-block" style="color: #ccc" data-bind="text: Desc, visible: '' !== Desc"></span>
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
|
|
@ -3,15 +3,6 @@
|
|||
<div class="legend">
|
||||
Security
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { csrfProtection(!csrfProtection()); }">
|
||||
<i data-bind="css: csrfProtection() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
|
||||
|
||||
<abbr title="Cross-site request forgery" class="initialism">CSRF</abbr> protection
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label data-bind="click: function () { capaOpenPGP(!capaOpenPGP()); }">
|
||||
|
|
@ -36,6 +27,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
Changer Admin Password
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<div class="e-item b-folder-system-item">
|
||||
<a class="e-link" data-bind="droppable: function (oEvent, oUi) { $root.messagesDrop($data, oUi); }, css: { 'selected': selected, 'selectable': selectable, 'print-count': 0 < printableUnreadCount().length, 'anim-action-class': actionBlink }">
|
||||
<span class="badge pull-right count" data-bind="text: printableUnreadCount"></span>
|
||||
|
||||
<span class="name" data-bind="text: localName()"></span>
|
||||
</a>
|
||||
<div class="e-item b-folder-system-item">
|
||||
<a class="e-link" data-bind="droppable: function (oEvent, oUi) { $root.messagesDrop($data, oUi); }, css: { 'selected': selected, 'selectable': selectable, 'print-count': 0 < printableUnreadCount().length, 'anim-action-class': actionBlink }">
|
||||
<span class="badge pull-right count" data-bind="text: printableUnreadCount"></span>
|
||||
|
||||
<span class="name" data-bind="text: localName()"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -1,56 +1,56 @@
|
|||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
font-family: arial, sans-serif;
|
||||
}
|
||||
|
||||
.tbl {width:100%;font-family:normal 11px Tahoma, Arial, Helvetica, "sans-serif"}
|
||||
.tt {padding:5px;border:solid #ddd;border-width:0px 0px 1px 0px}
|
||||
.tv {padding:5px;border:solid #ddd;border-width:0px 0px 1px 1px}
|
||||
.tb {padding:15px}
|
||||
a {color: blue; text-decoration: underline}
|
||||
a:visited {color: #609}
|
||||
a:active {color: red}
|
||||
blockquote {border-left: 2px solid black; margin: 0; padding: 0px 10px}
|
||||
pre {margin: 0px; padding: 0px; font-family: arial, sans-serif; background: #fff; border: none; white-space: normal}
|
||||
</style>
|
||||
|
||||
<table cellpadding="0" cellspacing="0" class="tbl">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_FROM"></td>
|
||||
<td class="tv" data-bind="text: popupFrom"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_TO"></td>
|
||||
<td class="tv" data-bind="text: popupTo"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupCc">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_CC"></td>
|
||||
<td class="tv" data-bind="text: popupCc"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupBcc">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_BCC"></td>
|
||||
<td class="tv" data-bind="text: popupBcc"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupDate">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_DATE"></td>
|
||||
<td class="tv" data-bind="text: popupDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_SUBJECT"></td>
|
||||
<td class="tv" data-bind="text: popupSubject"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupAttachments">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_ATTACHMENTS"></td>
|
||||
<td class="tv" data-bind="text: popupAttachments"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="tb">
|
||||
<div data-bind="html: popupBody"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
font-family: arial, sans-serif;
|
||||
}
|
||||
|
||||
.tbl {width:100%;font-family:normal 11px Tahoma, Arial, Helvetica, "sans-serif"}
|
||||
.tt {padding:5px;border:solid #ddd;border-width:0px 0px 1px 0px}
|
||||
.tv {padding:5px;border:solid #ddd;border-width:0px 0px 1px 1px}
|
||||
.tb {padding:15px}
|
||||
a {color: blue; text-decoration: underline}
|
||||
a:visited {color: #609}
|
||||
a:active {color: red}
|
||||
blockquote {border-left: 2px solid black; margin: 0; padding: 0px 10px}
|
||||
pre {margin: 0px; padding: 0px; font-family: arial, sans-serif; background: #fff; border: none; white-space: normal}
|
||||
</style>
|
||||
|
||||
<table cellpadding="0" cellspacing="0" class="tbl">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_FROM"></td>
|
||||
<td class="tv" data-bind="text: popupFrom"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_TO"></td>
|
||||
<td class="tv" data-bind="text: popupTo"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupCc">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_CC"></td>
|
||||
<td class="tv" data-bind="text: popupCc"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupBcc">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_BCC"></td>
|
||||
<td class="tv" data-bind="text: popupBcc"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupDate">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_DATE"></td>
|
||||
<td class="tv" data-bind="text: popupDate"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_SUBJECT"></td>
|
||||
<td class="tv" data-bind="text: popupSubject"></td>
|
||||
</tr>
|
||||
<tr data-bind="visible: '' !== popupAttachments">
|
||||
<td class="tt i18n" data-i18n-text="MESSAGE/PRINT_LABEL_ATTACHMENTS"></td>
|
||||
<td class="tv" data-bind="text: popupAttachments"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="tb">
|
||||
<div data-bind="html: popupBody"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
<div class="settingsCustom">
|
||||
CUSTOM
|
||||
<div class="settingsCustom">
|
||||
CUSTOM
|
||||
</div>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<div class="b-settings-filters g-ui-user-select-none">
|
||||
<div class="form-horizontal">
|
||||
<div class="legend">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/LEGEND_FILTERS"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div data-bind="foreach: filters">
|
||||
<div class="filter" style="background-color: #ddd">
|
||||
FILTER
|
||||
<div data-bind="foreach: conditions">
|
||||
COND
|
||||
<br />
|
||||
<span class="delete-condition" data-bind="click: function (oCondition) { $parent.deleteCondition(oCondition); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
<br />
|
||||
</div>
|
||||
<br />
|
||||
<a class="btn" data-bind="click: addCondition">
|
||||
<i class="icon-plus"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/BUTTON_ADD_CONDITION"></span>
|
||||
</a>
|
||||
<br />
|
||||
<span class="delete-filter" data-bind="click: function (oFilter) { $parent.deleteFilter(oFilter); }">
|
||||
<i class="icon-trash"></i>
|
||||
</span>
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
<a class="btn" data-bind="click: addFilter">
|
||||
<i class="icon-filter"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_FILTERS/BUTTON_ADD_FILTER"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -1,24 +1,24 @@
|
|||
<div class="b-settins-left g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-group">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content thm-settings-menu opacity-on-panel-disabled">
|
||||
<div class="b-settings-menu" data-bind="foreach: menu">
|
||||
<!-- ko if: disabled -->
|
||||
<span class="e-item disabled">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</span>
|
||||
<!-- /ko -->
|
||||
<!-- ko ifnot: disabled -->
|
||||
<a class="e-item selectable" href="#" data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route) }">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</a>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
<div class="b-settins-left g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-group">
|
||||
<a class="btn buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content thm-settings-menu opacity-on-panel-disabled">
|
||||
<div class="b-settings-menu" data-bind="foreach: menu">
|
||||
<!-- ko if: disabled -->
|
||||
<span class="e-item disabled">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</span>
|
||||
<!-- /ko -->
|
||||
<!-- ko ifnot: disabled -->
|
||||
<a class="e-item selectable" href="#" data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route) }">
|
||||
<span class="i18n e-link" data-bind="attr: { 'data-i18n-text': label }"></span>
|
||||
</a>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
</div>
|
||||
|
|
@ -1,14 +1,6 @@
|
|||
<div class="b-system-drop-down g-ui-user-select-none">
|
||||
<div class="b-toolbar">
|
||||
<div class="btn-toolbar">
|
||||
<!-- <div class="btn-group pull-right">
|
||||
<a class="btn btn-narrow" data-bind="click: logoutClick">
|
||||
<i class="icon-power"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group pull-right">
|
||||
|
||||
</div>-->
|
||||
<div class="btn-group pull-right dropdown colored-toggle" data-bind="registrateBootstrapDropdown: true, openDropdownTrigger: accountMenuDropdownTrigger">
|
||||
<a id="top-system-dropdown-id" href="#" tabindex="-1" class="btn btn-ellipsis btn-block dropdown-toggle system-dropdown"
|
||||
data-toggle="dropdown" data-tooltip-placement="left"
|
||||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "Datum"
|
|||
PRINT_LABEL_SUBJECT = "Thema"
|
||||
PRINT_LABEL_ATTACHMENTS = "Anhänge"
|
||||
MESSAGE_LOADING = "es wird geladen"
|
||||
MESSAGE_VIEW_DESC = "Wählen Sie eine Nachricht aus der Liste aus um sie anzuzeigen."
|
||||
MESSAGE_VIEW_DESC = "Wählen Sie eine Nachricht aus der Liste aus um sie anzuzeigen."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "None"
|
||||
BUTTON_SHARE_ALL = "Everyone"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -349,6 +349,7 @@ LABEL_FOLDERS_NAME = "Folders"
|
|||
LABEL_ACCOUNTS_NAME = "Accounts"
|
||||
LABEL_IDENTITY_NAME = "Identity"
|
||||
LABEL_IDENTITIES_NAME = "Identities"
|
||||
LABEL_FILTERS_NAME = "Filters"
|
||||
LABEL_SECURITY_NAME = "Security"
|
||||
LABEL_SOCIAL_NAME = "Social"
|
||||
LABEL_THEMES_NAME = "Themes"
|
||||
|
|
@ -356,6 +357,11 @@ LABEL_CHANGE_PASSWORD_NAME = "Password"
|
|||
LABEL_OPEN_PGP_NAME = "OpenPGP"
|
||||
BUTTON_BACK = "Back"
|
||||
|
||||
[SETTINGS_FILTERS]
|
||||
LEGEND_FILTERS = "Filters"
|
||||
BUTTON_ADD_FILTER = "Add Filter"
|
||||
BUTTON_ADD_CONDITION = "Add Condition"
|
||||
|
||||
[SETTINGS_IDENTITY]
|
||||
LEGEND_IDENTITY = "Identity"
|
||||
LABEL_DISPLAY_NAME = "Name"
|
||||
|
|
@ -375,8 +381,6 @@ BUTTON_CLEAR = "Clear"
|
|||
BUTTON_TEST = "Test"
|
||||
BUTTON_SHOW_SECRET = "Show Secret"
|
||||
BUTTON_HIDE_SECRET = "Hide Secret"
|
||||
BUTTON_SHOW_SECRET = "Show Secret"
|
||||
BUTTON_HIDE_SECRET = "Hide Secret"
|
||||
TWO_FACTOR_SECRET_CONFIGURED_DESC = "Configured"
|
||||
TWO_FACTOR_SECRET_NOT_CONFIGURED_DESC = "Not configured"
|
||||
TWO_FACTOR_SECRET_DESC = "Import this info into your Google Authenticator client (or other TOTP client) using the provided QR code below or by entering the code manually."
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Teléfono"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Dirección"
|
||||
ADD_MENU_BIRTHDAY = "Cumpleaños"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Ninguno"
|
||||
BUTTON_SHARE_ALL = "Todos"
|
||||
BUTTON_SYNC = "Sincronización (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Téléphone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Adresse"
|
||||
ADD_MENU_BIRTHDAY = "Anniversaire"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Personne"
|
||||
BUTTON_SHARE_ALL = "Tout le monde"
|
||||
BUTTON_SYNC = "Synchronisation (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Telefonszám"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Cím"
|
||||
ADD_MENU_BIRTHDAY = "Születésnap"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Nem"
|
||||
BUTTON_SHARE_ALL = "Mindenki"
|
||||
BUTTON_SYNC = "Szinkronizálás (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "Dagsetning"
|
|||
PRINT_LABEL_SUBJECT = "Viðhengi"
|
||||
PRINT_LABEL_ATTACHMENTS = "Viðhengi"
|
||||
MESSAGE_LOADING = "Hleð"
|
||||
MESSAGE_VIEW_DESC = "Veldu bréf úr listanum til að skoða hér."
|
||||
MESSAGE_VIEW_DESC = "Veldu bréf úr listanum til að skoða hér."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "None"
|
||||
BUTTON_SHARE_ALL = "Everyone"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ ADD_MENU_PHONE = "Telefono"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Indirizzo"
|
||||
ADD_MENU_BIRTHDAY = "Compleanno"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Nessuno"
|
||||
BUTTON_SHARE_ALL = "Tutti"
|
||||
BUTTON_SYNC = "Sincronizzazione (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "None"
|
||||
BUTTON_SHARE_ALL = "Everyone"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "날짜"
|
|||
PRINT_LABEL_SUBJECT = "제목"
|
||||
PRINT_LABEL_ATTACHMENTS = "첨부파일"
|
||||
MESSAGE_LOADING = "여는 중..."
|
||||
MESSAGE_VIEW_DESC = "목록에서 선택한 메시지가 여기에 표시됩니다."
|
||||
MESSAGE_VIEW_DESC = "목록에서 선택한 메시지가 여기에 표시됩니다."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "None"
|
||||
BUTTON_SHARE_ALL = "Everyone"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "Datums"
|
|||
PRINT_LABEL_SUBJECT = "Tēma"
|
||||
PRINT_LABEL_ATTACHMENTS = "Pielikumi"
|
||||
MESSAGE_LOADING = "Lādējās"
|
||||
MESSAGE_VIEW_DESC = "Izvēlaties ziņojumu no saraksta lai to apskatītu."
|
||||
MESSAGE_VIEW_DESC = "Izvēlaties ziņojumu no saraksta lai to apskatītu."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "None"
|
||||
BUTTON_SHARE_ALL = "Everyone"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ LABEL_ADV_UNSEEN = "Ongelezen"
|
|||
LABEL_ADV_DATE = "Datum"
|
||||
LABEL_ADV_DATE_ALL = "Alles"
|
||||
LABEL_ADV_DATE_3_DAYS = "Meer dan 3 dagen oud"
|
||||
LABEL_ADV_DATE_7_DAYS = "Meer dan 1 week oud"
|
||||
LABEL_ADV_DATE_7_DAYS = "Meer dan 1 week oud"
|
||||
LABEL_ADV_DATE_MONTH = "Meer dan 1 maand oud"
|
||||
LABEL_ADV_DATE_3_MONTHS = "Meer dan 3 maanden oud"
|
||||
LABEL_ADV_DATE_6_MONTHS = "Meer dan 6 maanden oud"
|
||||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "Datum"
|
|||
PRINT_LABEL_SUBJECT = "Onderwerp"
|
||||
PRINT_LABEL_ATTACHMENTS = "Bijlages"
|
||||
MESSAGE_LOADING = "Bericht ophalen"
|
||||
MESSAGE_VIEW_DESC = "Selecteer het bericht in de lijst om hier te bekijken."
|
||||
MESSAGE_VIEW_DESC = "Selecteer het bericht in de lijst om hier te bekijken."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "None"
|
||||
BUTTON_SHARE_ALL = "Everyone"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "None"
|
||||
BUTTON_SHARE_ALL = "Everyone"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "Data"
|
|||
PRINT_LABEL_SUBJECT = "Temat"
|
||||
PRINT_LABEL_ATTACHMENTS = "Załączniki"
|
||||
MESSAGE_LOADING = "Ładowanie..."
|
||||
MESSAGE_VIEW_DESC = "Wybierz wiadomość z listy w celu jej wyświetlenia."
|
||||
MESSAGE_VIEW_DESC = "Wybierz wiadomość z listy w celu jej wyświetlenia."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
|
|
@ -185,6 +185,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Nikomu"
|
||||
BUTTON_SHARE_ALL = "Wszystkim"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ LABEL_EMAIL = "Email"
|
|||
LABEL_LOGIN = "Usuário"
|
||||
LABEL_PASSWORD = "Senha"
|
||||
LABEL_SIGN_ME = "Lembre-me"
|
||||
LABEL_VERIFICATION_CODE = "Verification Code"
|
||||
LABEL_DONT_ASK_VERIFICATION_CODE = "Don't ask for the code for 2 weeks"
|
||||
LABEL_VERIFICATION_CODE = "Código de verificação"
|
||||
LABEL_DONT_ASK_VERIFICATION_CODE = "Não perguntar o código por 2 semanas"
|
||||
BUTTON_SIGN_IN = "Entre"
|
||||
TITLE_SIGN_IN_GOOGLE = "Entre com a conta do Google"
|
||||
TITLE_SIGN_IN_FACEBOOK = "Entre com a conta do Facebook"
|
||||
|
|
@ -13,7 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Entre com a conta do Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Adicionar Conta"
|
||||
BUTTON_SETTINGS = "Configurações"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_HELP = "Ajuda"
|
||||
BUTTON_LOGOUT = "Sair"
|
||||
|
||||
[SEARCH]
|
||||
|
|
@ -23,10 +23,10 @@ LABEL_ADV_FROM = "De"
|
|||
LABEL_ADV_TO = "Para"
|
||||
LABEL_ADV_SUBJECT = "Assunto"
|
||||
LABEL_ADV_TEXT = "Texto"
|
||||
LABEL_ADV_HAS_ATTACHMENT = "Has attachment"
|
||||
LABEL_ADV_HAS_ATTACHMENTS = "Tem Anexos"
|
||||
LABEL_ADV_FLAGGED = "Flagged"
|
||||
LABEL_ADV_UNSEEN = "Unseen"
|
||||
LABEL_ADV_HAS_ATTACHMENT = "Tem anexo"
|
||||
LABEL_ADV_HAS_ATTACHMENTS = "Tem anexos"
|
||||
LABEL_ADV_FLAGGED = "Sinalizado"
|
||||
LABEL_ADV_UNSEEN = "Não visto"
|
||||
LABEL_ADV_DATE = "Data"
|
||||
LABEL_ADV_DATE_ALL = "Todos"
|
||||
LABEL_ADV_DATE_3_DAYS = "Até 3 dias atrás"
|
||||
|
|
@ -47,14 +47,14 @@ IMAGE_ERROR = "<a href="%url%" target=\"_blank\">Imagem</a> não pode ser carreg
|
|||
AJAX_ERROR = "<a href="%url%" target=\"_blank\">Conteúdo</a> não pode ser carregado."
|
||||
|
||||
[FOLDER_LIST]
|
||||
BUTTON_COMPOSE = "Escrever"
|
||||
BUTTON_COMPOSE = "Compor"
|
||||
BUTTON_CONTACTS = "Contatos"
|
||||
INBOX_NAME = "Caixa de Entrada"
|
||||
SENT_NAME = "Enviar"
|
||||
DRAFTS_NAME = "Rascunhos"
|
||||
SPAM_NAME = "Lixo Eletrônico"
|
||||
TRASH_NAME = "Lixeira"
|
||||
ARCHIVE_NAME = "Archive"
|
||||
ARCHIVE_NAME = "Arquivo"
|
||||
|
||||
[QUOTA]
|
||||
TITLE = "Uso da Cota"
|
||||
|
|
@ -63,9 +63,9 @@ TITLE = "Uso da Cota"
|
|||
BUTTON_RELOAD = "Atualizar Lista de Mensagens"
|
||||
BUTTON_MOVE_TO = "Mover Para"
|
||||
BUTTON_DELETE = "Excluir"
|
||||
BUTTON_ARCHIVE = "Archive"
|
||||
BUTTON_ARCHIVE = "Arquivo"
|
||||
BUTTON_SPAM = "Lixo Eletrônico"
|
||||
BUTTON_NOT_SPAM = "Not Spam"
|
||||
BUTTON_NOT_SPAM = "Não é Lixo Eletrônico"
|
||||
BUTTON_EMPTY_FOLDER = "Limpar Pasta"
|
||||
BUTTON_MULTY_FORWARD = "Encaminhar mensagens"
|
||||
BUTTON_DELETE_WITHOUT_MOVE = "Excluir penmanentemente"
|
||||
|
|
@ -99,9 +99,9 @@ BUTTON_EDIT = "Editar"
|
|||
BUTTON_BACK = "Voltar"
|
||||
BUTTON_CLOSE = "Fechar"
|
||||
BUTTON_DELETE = "Excluir"
|
||||
BUTTON_ARCHIVE = "Archive"
|
||||
BUTTON_ARCHIVE = "Arquivo"
|
||||
BUTTON_SPAM = "Lixo Eletrônico"
|
||||
BUTTON_NOT_SPAM = "Not Spam"
|
||||
BUTTON_NOT_SPAM = "Não é Lixo Eletrônico"
|
||||
BUTTON_MOVE_TO = "Mover para"
|
||||
BUTTON_MORE = "Mais"
|
||||
BUTTON_REPLY = "Responder"
|
||||
|
|
@ -134,10 +134,10 @@ PRINT_LABEL_DATE = "Data"
|
|||
PRINT_LABEL_SUBJECT = "Assunto"
|
||||
PRINT_LABEL_ATTACHMENTS = "Anexos"
|
||||
MESSAGE_LOADING = "Carregando"
|
||||
MESSAGE_VIEW_DESC = "Selecione a lista de mensagens para visuzalizá-la aqui."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
MESSAGE_VIEW_DESC = "Selecione a lista de mensagens para visuzalizá-la aqui."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Senha"
|
||||
PGP_SIGNED_MESSAGE_DESC = "Mensagem assinada com OpenPGP (clique para verificar)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "Mensagem criptografada com OpenPGP (clique para descriptografar)"
|
||||
|
||||
[READ_RECEIPT]
|
||||
SUBJECT = "Aviso de recepção (informado) - %SUBJECT%"
|
||||
|
|
@ -155,9 +155,9 @@ SEARCH_INPUT_PLACEHOLDER = "Procurar"
|
|||
BUTTON_ADD_CONTACT = "Adicionar Contatos"
|
||||
BUTTON_CREATE_CONTACT = "Criar"
|
||||
BUTTON_UPDATE_CONTACT = "Atualizar"
|
||||
BUTTON_IMPORT = "Import (csv, vcf, vCard)"
|
||||
BUTTON_EXPORT_VCARD = "Export (vcf, vCard)"
|
||||
BUTTON_EXPORT_CSV = "Export (csv)"
|
||||
BUTTON_IMPORT = "Importar (csv, vcf, vCard)"
|
||||
BUTTON_EXPORT_VCARD = "Exportar (vcf, vCard)"
|
||||
BUTTON_EXPORT_CSV = "Exportar (csv)"
|
||||
ERROR_IMPORT_FILE = "Erro ao importat (formato do arquivo inválido)"
|
||||
LIST_LOADING = "Carregando"
|
||||
EMPTY_LIST = "Nenhum contato aqui"
|
||||
|
|
@ -168,27 +168,29 @@ LABEL_DISPLAY_NAME = "Nome público"
|
|||
LABEL_EMAIL = "Email"
|
||||
LABEL_PHONE = "Telefone"
|
||||
LABEL_WEB = "Web"
|
||||
LABEL_BIRTHDAY = "Birthday"
|
||||
LABEL_BIRTHDAY = "Aniversário"
|
||||
LABEL_TAGS = "Tags"
|
||||
LINK_ADD_EMAIL = "Adicionar um endereço e-mail"
|
||||
LINK_ADD_PHONE = "Adicionar um telefone"
|
||||
LINK_BIRTHDAY = "Birthday"
|
||||
LINK_BIRTHDAY = "Aniversário"
|
||||
PLACEHOLDER_ENTER_DISPLAY_NAME = "Digite um nome público"
|
||||
PLACEHOLDER_ENTER_LAST_NAME = "Digite seu último nome"
|
||||
PLACEHOLDER_ENTER_FIRST_NAME = "Digite seu primeiro nome"
|
||||
PLACEHOLDER_ENTER_NICK_NAME = "Enter nickname"
|
||||
PLACEHOLDER_ENTER_NICK_NAME = "Digite seu apelido"
|
||||
LABEL_READ_ONLY = "Ler somente"
|
||||
LABEL_SHARE = "Compartilhar"
|
||||
ADD_MENU_LABEL = "Add"
|
||||
ADD_MENU_NICKNAME = "Nickname"
|
||||
ADD_MENU_NOTES = "Notes"
|
||||
ADD_MENU_EMAIL = "Email"
|
||||
ADD_MENU_PHONE = "Phone"
|
||||
ADD_MENU_LABEL = "Adicionar"
|
||||
ADD_MENU_NICKNAME = "Apelido"
|
||||
ADD_MENU_NOTES = "Observações"
|
||||
ADD_MENU_EMAIL = "E-mail"
|
||||
ADD_MENU_PHONE = "Telefone"
|
||||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_ADDRESS = "Endereço"
|
||||
ADD_MENU_BIRTHDAY = "Aniversário"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Ninguém"
|
||||
BUTTON_SHARE_ALL = "Todo mundo"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
BUTTON_SYNC = "Sincronização (CardDAV)"
|
||||
|
||||
[COMPOSE]
|
||||
TITLE_FROM = "De"
|
||||
|
|
@ -200,7 +202,7 @@ TITLE_SUBJECT = "Assunto"
|
|||
LINK_SHOW_INPUTS = "Mostrar todos os campos"
|
||||
BUTTON_SEND = "Enviar"
|
||||
BUTTON_SAVE = "Salvar"
|
||||
BUTTON_DELETE = "Eccluir"
|
||||
BUTTON_DELETE = "Excluir"
|
||||
BUTTON_CANCEL = "Cancelar"
|
||||
SAVED_TIME = "Salvo em %TIME%"
|
||||
SAVED_ERROR_ON_SEND = "Sua mensagem foi enviada, mas não salva a pasta de itens enviados."
|
||||
|
|
@ -263,60 +265,62 @@ DANGER_DESC_HTML_2 = "Uma vez iniciado, o processo não pode ser interrompido ou
|
|||
TITLE_CLEARING_PROCESS = "Excluindo a pasta..."
|
||||
|
||||
[POPUPS_IMPORT_OPEN_PGP_KEY]
|
||||
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
|
||||
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
|
||||
TITLE_IMPORT_OPEN_PGP_KEY = "Importar chave OpenPGP"
|
||||
BUTTON_IMPORT_OPEN_PGP_KEY = "Importar"
|
||||
|
||||
[POPUPS_VIEW_OPEN_PGP_KEY]
|
||||
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
|
||||
BUTTON_SELECT = "Select"
|
||||
BUTTON_CLOSE = "Close"
|
||||
TITLE_VIEW_OPEN_PGP_KEY = "Ver chave OpenPGP"
|
||||
BUTTON_SELECT = "Selecionar"
|
||||
BUTTON_CLOSE = "Fechar"
|
||||
|
||||
[POPUPS_GENERATE_OPEN_PGP_KEYS]
|
||||
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
|
||||
LABEL_EMAIL = "Email"
|
||||
LABEL_NAME = "Name"
|
||||
LABEL_PASSWORD = "Password"
|
||||
LABEL_KEY_BIT_LENGTH = "Key length"
|
||||
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
|
||||
TITLE_GENERATE_OPEN_PGP_KEYS = "Gerar chave OpenPGP"
|
||||
LABEL_EMAIL = "E-mail"
|
||||
LABEL_NAME = "Nome"
|
||||
LABEL_PASSWORD = "Senha"
|
||||
LABEL_KEY_BIT_LENGTH = "Tamanho da chave"
|
||||
BUTTON_GENERATE_OPEN_PGP_KEYS = "Gerar"
|
||||
|
||||
[POPUPS_COMPOSE_OPEN_PGP]
|
||||
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
|
||||
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Assinar/Criptografar"
|
||||
LABEL_SIGN = "Sign"
|
||||
LABEL_ENCRYPT = "Encrypt"
|
||||
LABEL_PASSWORD = "Password"
|
||||
BUTTON_SIGN = "Sign"
|
||||
BUTTON_ENCRYPT = "Encrypt"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
|
||||
LABEL_ENCRYPT = "Criptografar"
|
||||
LABEL_PASSWORD = "Senha"
|
||||
BUTTON_SIGN = "Assinar"
|
||||
BUTTON_ENCRYPT = "Criptografar"
|
||||
BUTTON_SIGN_AND_ENCRYPT = "Assinar e criptografar"
|
||||
|
||||
[POPUPS_TWO_FACTOR_TEST]
|
||||
TITLE_TEST_CODE = "2-Step verification test"
|
||||
LABEL_CODE = "Code"
|
||||
BUTTON_TEST = "Test"
|
||||
TITLE_TEST_CODE = "Testar verificação de duas etapas"
|
||||
LABEL_CODE = "Código"
|
||||
BUTTON_TEST = "Testar"
|
||||
|
||||
[POPUPS_SYSTEM_FOLDERS]
|
||||
TITLE_SYSTEM_FOLDERS = "Selecione as pastas do sistema"
|
||||
SELECT_CHOOSE_ONE = "Escolha um"
|
||||
SELECT_UNUSE_NAME = "Não use"
|
||||
SELECT_UNUSE_NAME = "Não usar"
|
||||
LABEL_SENT = "Enviar"
|
||||
LABEL_DRAFTS = "Rascunhos"
|
||||
LABEL_SPAM = "Lixo Eletrônico"
|
||||
LABEL_TRASH = "Lixo"
|
||||
LABEL_ARCHIVE = "Archive"
|
||||
LABEL_TRASH = "Lixeira"
|
||||
LABEL_ARCHIVE = "Arquivo"
|
||||
BUTTON_CANCEL = "Cancelar"
|
||||
BUTTON_CLOSE = "Fechar"
|
||||
|
||||
NOTIFICATION_SENT = "Você não selecionou \"Sent\" as mensagens da pasta de sistema que são colocados após o envio.
|
||||
Se você não quiser salvar a mensagem enviada, por favor selecione a opção\"Do not use\"."
|
||||
NOTIFICATION_SENT = "Você não selecionou a pasta de sistema que serão colocadas as mensagens após o envio.
|
||||
Se você não quiser salvar a mensagem enviada, por favor selecione a opção\"Não usar\"."
|
||||
|
||||
NOTIFICATION_DRAFTS = "Você não selecionou \"Drafts\" as mensagens da pasta são salvas ao autor."
|
||||
NOTIFICATION_DRAFTS = "Você não selecionou a pasta de sistema que serão colocadas as mensagens salvas ao autor.
|
||||
Se você não quiser salvar a mensagem enviada, por favor selecione a opção\"Não usar\"."
|
||||
|
||||
NOTIFICATION_SPAM = "Você não selecionou \"Spam\" a pasta de mensagens Lixo Eletrônico do sistema, são colocados para.
|
||||
Se você deseja remover as mensagens permanentemente, por favor selecione a opção \"Do not use\"."
|
||||
NOTIFICATION_SPAM = "Você não selecionou a pasta de sistema que será guardado o lixo eletrônico.
|
||||
Se você não quiser salvar a mensagem enviada, por favor selecione a opção\"Não usar\"."
|
||||
|
||||
NOTIFICATION_TRASH = "Você não selecionou \"Trash\" a pasta de mensagens excluídas do sistema que são colocadas para.
|
||||
Se você deseja remover as mensagens permanentemente, por favor selecione a opção \"Do not use\"."
|
||||
NOTIFICATION_TRASH = "Você não selecionou a pasta de sistema que serão colocadas as mensagens excluídas.
|
||||
Se você não quiser salvar a mensagem enviada, por favor selecione a opção\"Não usar\"."
|
||||
|
||||
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
|
||||
NOTIFICATION_ARCHIVE = "Você não selecionou a pasta de sistema que serão colocadas as mensagens arquivadas.
|
||||
Se você não quiser salvar a mensagem enviada, por favor selecione a opção\"Não usar\"."
|
||||
|
||||
[TITLES]
|
||||
LOADING = "Carregando"
|
||||
|
|
@ -347,7 +351,7 @@ LABEL_FOLDERS_NAME = "Pastas"
|
|||
LABEL_ACCOUNTS_NAME = "Contas"
|
||||
LABEL_IDENTITY_NAME = "Identidade"
|
||||
LABEL_IDENTITIES_NAME = "Identidades"
|
||||
LABEL_SECURITY_NAME = "Security"
|
||||
LABEL_SECURITY_NAME = "Segurança"
|
||||
LABEL_SOCIAL_NAME = "Social"
|
||||
LABEL_THEMES_NAME = "Temas"
|
||||
LABEL_CHANGE_PASSWORD_NAME = "Senha"
|
||||
|
|
@ -362,21 +366,21 @@ LABEL_SIGNATURE = "Assinatura"
|
|||
LABEL_ADD_SIGNATURE_TO_ALL = "Adicionar a sua assinatura a todas as mensagens de saída"
|
||||
|
||||
[SETTINGS_SECURITY]
|
||||
LEGEND_TWO_FACTOR_AUTH = "2-Step Verification (Google Authenticator)"
|
||||
LABEL_ENABLE_TWO_FACTOR = "Enable 2-Step verification"
|
||||
LABEL_TWO_FACTOR_USER = "User"
|
||||
LEGEND_TWO_FACTOR_AUTH = "Verificação de duas etapas (Google Authenticator)"
|
||||
LABEL_ENABLE_TWO_FACTOR = "Habilitar verificação de duas etapas"
|
||||
LABEL_TWO_FACTOR_USER = "Usuário"
|
||||
LABEL_TWO_FACTOR_STATUS = "Status"
|
||||
LABEL_TWO_FACTOR_SECRET = "Secret"
|
||||
LABEL_TWO_FACTOR_BACKUP_CODES = "Backup codes"
|
||||
BUTTON_CREATE = "Create New Secret"
|
||||
BUTTON_CLEAR = "Clear"
|
||||
BUTTON_TEST = "Test"
|
||||
BUTTON_SHOW_SECRET = "Show Secret"
|
||||
BUTTON_HIDE_SECRET = "Hide Secret"
|
||||
TWO_FACTOR_SECRET_CONFIGURED_DESC = "Configured"
|
||||
TWO_FACTOR_SECRET_NOT_CONFIGURED_DESC = "Not configured"
|
||||
TWO_FACTOR_SECRET_DESC = "Import this info into your Google Authenticator client (or other TOTP client) using the provided QR code below or by entering the code manually."
|
||||
TWO_FACTOR_BACKUP_CODES_DESC = "If you can't receive codes via Google Authenticator, you can use backup codes to sign in. After you’ve used a backup code to sign in, it will become inactive."
|
||||
LABEL_TWO_FACTOR_SECRET = "Segredo"
|
||||
LABEL_TWO_FACTOR_BACKUP_CODES = "Códigos de backup"
|
||||
BUTTON_CREATE = "Criar novo segredo"
|
||||
BUTTON_CLEAR = "Limpar"
|
||||
BUTTON_TEST = "Testar"
|
||||
BUTTON_SHOW_SECRET = "Mostrar segredo"
|
||||
BUTTON_HIDE_SECRET = "Esconder segredo"
|
||||
TWO_FACTOR_SECRET_CONFIGURED_DESC = "Configurado"
|
||||
TWO_FACTOR_SECRET_NOT_CONFIGURED_DESC = "Não configurado"
|
||||
TWO_FACTOR_SECRET_DESC = "Importe este código no seu cliente Google Authenticator (ou outro cliente TOTP) usando o QR code abaixo ou informando o código manualmente."
|
||||
TWO_FACTOR_BACKUP_CODES_DESC = "Se você não receber códigos via Google Authenticator, você pode usar esses códigos de backup para acessar sua conta. Depois de você usar um código de backup, ele se torna inativo."
|
||||
|
||||
[SETTINGS_GENERAL]
|
||||
LEGEND_GENERAL = "Geral"
|
||||
|
|
@ -403,12 +407,12 @@ LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqueado pelo navegador)"
|
|||
[SETTINGS_CONTACTS]
|
||||
LEGEND_CONTACTS = "Contatos"
|
||||
LABEL_CONTACTS_AUTOSAVE = "Adicionar automaticamente destinatários a sua lista de endereços"
|
||||
LEGEND_CONTACTS_SYNC = "Remote Synchronization (CardDAV)"
|
||||
LABEL_CONTACTS_SYNC_ENABLE = "Enable remote synchronization"
|
||||
LABEL_CONTACTS_SYNC_SERVER = "Server"
|
||||
LABEL_CONTACTS_SYNC_AB_URL = "Addressbook URL"
|
||||
LABEL_CONTACTS_SYNC_USER = "User"
|
||||
LABEL_CONTACTS_SYNC_PASSWORD = "Password"
|
||||
LEGEND_CONTACTS_SYNC = "Sincronização remota (CardDAV)"
|
||||
LABEL_CONTACTS_SYNC_ENABLE = "Habilitar sincronização remota"
|
||||
LABEL_CONTACTS_SYNC_SERVER = "Servidor"
|
||||
LABEL_CONTACTS_SYNC_AB_URL = "URL da lista de contatos"
|
||||
LABEL_CONTACTS_SYNC_USER = "Usuário"
|
||||
LABEL_CONTACTS_SYNC_PASSWORD = "Senha"
|
||||
|
||||
[SETTINGS_THEMES]
|
||||
LEGEND_THEMES = "Temas"
|
||||
|
|
@ -419,7 +423,7 @@ LABEL_CUSTOM_TYPE_DARK = "Escuro"
|
|||
LABEL_CUSTOM_BACKGROUND_IMAGE = "Plano de fundo"
|
||||
BUTTON_UPLOAD_BACKGROUND_IMAGE = "Upload imagem de plano de fundo (JPG, PNG)"
|
||||
ERROR_FILE_IS_TOO_BIG = "Arquivo muito grande (1MB+)"
|
||||
ERROR_FILE_TYPE_ERROR = "Tipo de arquivo inválido (JPG and PNG only)"
|
||||
ERROR_FILE_TYPE_ERROR = "Tipo de arquivo inválido (somente JPG e PNG)"
|
||||
ERROR_UNKNOWN = "Ocorreu um erro de upload de arquivo desconhecido"
|
||||
|
||||
[SETTINGS_SOCIAL]
|
||||
|
|
@ -478,62 +482,63 @@ ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
|||
|
||||
[SETTINGS_OPEN_PGP]
|
||||
LEGEND_OPEN_PGP = "OpenPGP"
|
||||
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
|
||||
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
|
||||
TITLE_PRIVATE = "Private"
|
||||
TITLE_PUBLIC = "Public"
|
||||
DELETING_ASK = "Are you sure?"
|
||||
BUTTON_ADD_OPEN_PGP_KEY = "Importa chave OpenPGP"
|
||||
BUTTON_GENERATE_OPEN_PGP_KEYS = "Gerar chave OpenPGP"
|
||||
TITLE_PRIVATE = "Privado"
|
||||
TITLE_PUBLIC = "Público"
|
||||
DELETING_ASK = "Você tem certeza?"
|
||||
|
||||
[SHORTCUTS_HELP]
|
||||
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help"
|
||||
TAB_MAILBOX = "Mailbox"
|
||||
TAB_MESSAGE_LIST = "Message list"
|
||||
TAB_MESSAGE_VIEW = "Message view"
|
||||
TAB_COMPOSE = "Compose"
|
||||
LABEL_OPEN_USER_DROPDOWN = "Open user dropdown"
|
||||
LABEL_REPLY = "Reply"
|
||||
LABEL_REPLY_ALL = "Reply All"
|
||||
LABEL_FORWARD = "Forward"
|
||||
LABEL_FORWARD_MULTIPLY = "Forward (multiply)"
|
||||
LABEL_HELP = "Help"
|
||||
LEGEND_SHORTCUTS_HELP = "Ajuda com os atalhos de teclado"
|
||||
TAB_MAILBOX = "Caixa de correio"
|
||||
TAB_MESSAGE_LIST = "Lista de mensagens"
|
||||
TAB_MESSAGE_VIEW = "Ver mensagem"
|
||||
TAB_COMPOSE = "Compor"
|
||||
LABEL_OPEN_USER_DROPDOWN = "Abrir menu de usuário"
|
||||
LABEL_REPLY = "Responder"
|
||||
LABEL_REPLY_ALL = "Responder todos"
|
||||
LABEL_FORWARD = "Encaminhar"
|
||||
LABEL_FORWARD_MULTIPLY = "Encaminhar (múltiplos)"
|
||||
LABEL_HELP = "Ajuda"
|
||||
|
||||
LABEL_CHECK_ALL = "Check All messages"
|
||||
LABEL_ARCHIVE = "Archive"
|
||||
LABEL_DELETE = "Delete"
|
||||
LABEL_MOVE = "Move"
|
||||
LABEL_READ = "Read selected messages"
|
||||
LABEL_UNREAD = "Unread selected messages"
|
||||
LABEL_IMPORTANT = "Important, star/flag selected messages"
|
||||
LABEL_SEARCH = "Search"
|
||||
LABEL_CANCEL_SEARCH = "Cancel search"
|
||||
LABEL_FULLSCREEN_ENTER = "Fullscreen (Preview pane layout)"
|
||||
LABEL_VIEW_MESSAGE_ENTER = "View message (No preview pane layout)"
|
||||
LABEL_SWITCH_TO_MESSAGE = "Switch focus to selected message"
|
||||
LABEL_CHECK_ALL = "Selecionar todas as mensagens"
|
||||
LABEL_ARCHIVE = "Arquivo"
|
||||
LABEL_DELETE = "Deletar"
|
||||
LABEL_MOVE = "Mover"
|
||||
LABEL_READ = "Marcar mensagens selecionadas como lida"
|
||||
LABEL_UNREAD = "Marcar mensagens selecionadas como não lida"
|
||||
LABEL_IMPORTANT = "Sinalizar mensagens selecionadas"
|
||||
LABEL_SEARCH = "Procurar"
|
||||
LABEL_CANCEL_SEARCH = "Cancelar pesquisa"
|
||||
LABEL_FULLSCREEN_ENTER = "Tela-cheia (Com pré-visualização)"
|
||||
LABEL_VIEW_MESSAGE_ENTER = "Ver mensagem (Sem pré-visualização)"
|
||||
LABEL_SWITCH_TO_MESSAGE = "Mudar o foco para mensagem selecionada"
|
||||
LABEL_SWITCH_TO_FOLDER_LIST = "Switch focus to folder list"
|
||||
|
||||
LABEL_FULLSCREEN_TOGGLE = "Toggle fullscreen mode"
|
||||
LABEL_BLOCKQUOTES_TOGGLE = "Toggle message blockquotes"
|
||||
LABEL_PRINT = "Print"
|
||||
LABEL_EXIT_FULLSCREEN = "Exit fullscreen mode"
|
||||
LABEL_CLOSE_MESSAGE = "Close message (No preview pane layout)"
|
||||
LABEL_SWITCH_TO_LIST = "Switch focus back to message list"
|
||||
LABEL_FULLSCREEN_TOGGLE = "Alternar modo tela-cheia"
|
||||
LABEL_BLOCKQUOTES_TOGGLE = "Alternar blocos de citações de mensagem"
|
||||
LABEL_PRINT = "Imprimir"
|
||||
LABEL_EXIT_FULLSCREEN = "Sair do modo tela-cheia"
|
||||
LABEL_CLOSE_MESSAGE = "Fechar mensagem (Sem pré-visualização)"
|
||||
LABEL_SWITCH_TO_LIST = "Mudar o foco volta para a lista de mensagens"
|
||||
|
||||
LABEL_OPEN_COMPOSE_POPUP = "Open compose popup"
|
||||
LABEL_OPEN_IDENTITIES_DROPDOWN = "Open identities dropdown"
|
||||
LABEL_SAVE_MESSAGE = "Save message"
|
||||
LABEL_SEND_MESSAGE = "Send message"
|
||||
LABEL_CLOSE_COMPOSE = "Close compose"
|
||||
LABEL_OPEN_COMPOSE_POPUP = "Abrir pop-up de composição"
|
||||
LABEL_OPEN_IDENTITIES_DROPDOWN = "Abrir menu de identidades"
|
||||
LABEL_SAVE_MESSAGE = "Salvar mensagem"
|
||||
LABEL_SEND_MESSAGE = "Enviar mensagem"
|
||||
LABEL_CLOSE_COMPOSE = "Fechar composição"
|
||||
|
||||
[PGP_NOTIFICATIONS]
|
||||
NO_PUBLIC_KEYS_FOUND = "No public keys found"
|
||||
NO_PUBLIC_KEYS_FOUND_FOR = "No public keys found for "%EMAIL%" email"
|
||||
NO_PRIVATE_KEY_FOUND = "No private key found"
|
||||
NO_PRIVATE_KEY_FOUND_FOR = "No private key found for "%EMAIL%" email"
|
||||
UNVERIFIRED_SIGNATURE = "Unverified signature"
|
||||
DECRYPTION_ERROR = "OpenPGP decryption error"
|
||||
GOOD_SIGNATURE = "Good signature from %USER%"
|
||||
PGP_ERROR = "OpenPGP error: %ERROR%"
|
||||
SPECIFY_FROM_EMAIL = "Please specify FROM email address"
|
||||
SPECIFY_AT_LEAST_ONE_RECIPIENT = "Please specify at least one recipient"
|
||||
NO_PUBLIC_KEYS_FOUND = "Nenhuma chave pública encontrada"
|
||||
NO_PUBLIC_KEYS_FOUND_FOR = "Nenhuma chave pública encontrada para o e-mail "%EMAIL%""
|
||||
NO_PRIVATE_KEY_FOUND = "Nenhuma chave privada encontrada"
|
||||
NO_PRIVATE_KEY_FOUND_FOR = "Nenhuma chave privada encontrada para o e-mail "%EMAIL%""
|
||||
UNVERIFIRED_SIGNATURE = "Assinatura não verificada"
|
||||
DECRYPTION_ERROR = "Erro de decripitação de OpenPGP"
|
||||
GOOD_SIGNATURE = "Boa assinatura de %USER%"
|
||||
PGP_ERROR = "Erro OpenPGP: %ERROR%"
|
||||
SPECIFY_FROM_EMAIL = "Por favor, especifique endereço de email remetente"
|
||||
SPECIFY_AT_LEAST_ONE_RECIPIENT = "Especifique pelo menos um destinatário"
|
||||
|
||||
[NOTIFICATIONS]
|
||||
INVALID_TOKEN = "Senha inválida"
|
||||
|
|
@ -545,15 +550,15 @@ SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE = "Esta ID social não é atribuído para q
|
|||
SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE = "Esta ID social não é atribuído para qualquer conta de e-mail ainda. Entrar usando credenciais de e-mail e adicione ativar esse recurso em configurações de conta."
|
||||
SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE = "Esta ID social não é atribuído para qualquer conta de e-mail ainda. Entrar usando credenciais de e-mail e adicione ativar esse recurso em configurações de conta."
|
||||
DOMAIN_NOT_ALLOWED = "Este domínio não é permitido"
|
||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||
NEW_PASSWORD_SHORT = "Password is too short"
|
||||
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||
ACCOUNT_NOT_ALLOWED = "Conta não permitida"
|
||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Verificação de duas etapas requerida"
|
||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Erro na verificação de duas etapas"
|
||||
COULD_NOT_SAVE_NEW_PASSWORD = "Não foi possível salvar a nova senha"
|
||||
CURRENT_PASSWORD_INCORRECT = "Senha atual incorreta"
|
||||
NEW_PASSWORD_SHORT = "A senha é muito curta"
|
||||
NEW_PASSWORD_WEAK = "A senha é muito fácil"
|
||||
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||
CONTACTS_SYNC_ERROR = "Contacts synchronization error"
|
||||
CONTACTS_SYNC_ERROR = "A senha contém caracteres proibidos"
|
||||
CANT_GET_MESSAGE_LIST = "Não é possível obter a lista de mensagens"
|
||||
CANT_GET_MESSAGE = "Não é possível obter a mensagem"
|
||||
CANT_DELETE_MESSAGE = "Não é possível excluir a mensagem"
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Ninguém"
|
||||
BUTTON_SHARE_ALL = "Todo mundo"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "Data"
|
|||
PRINT_LABEL_SUBJECT = "Subiect"
|
||||
PRINT_LABEL_ATTACHMENTS = "Atașament"
|
||||
MESSAGE_LOADING = "Se încarcă..."
|
||||
MESSAGE_VIEW_DESC = "Selectați un mesaj pentru al vizualiza."
|
||||
MESSAGE_VIEW_DESC = "Selectați un mesaj pentru al vizualiza."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
|
|
@ -185,6 +185,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Nimic"
|
||||
BUTTON_SHARE_ALL = "Toate"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
@ -593,9 +594,9 @@ NO_SCRIPT_DESC = "Aparent, JavaScript nu este instalat, sau nu este acceptat de
|
|||
Activați JavaScript, schimband optiunile browserului dvs., apoi încercați din nou."
|
||||
|
||||
NO_COOKIE_TITLE = "Cererea necesită Cookie-uri."
|
||||
NO_COOKIE_DESC = "Aparent, Cookie sau nu este acceptat de browser-ul dvs. sau oprit.
|
||||
NO_COOKIE_DESC = "Aparent, Cookie sau nu este acceptat de browser-ul dvs. sau oprit.
|
||||
Întoarceți Cookie, schimband optiunile browserului dvs., apoi încercați din nou."
|
||||
|
||||
BAD_BROWSER_TITLE = "Browser-ul dvs. este depășit."
|
||||
BAD_BROWSER_DESC = "Pentru a utiliza toate caracteristicile cererii,
|
||||
BAD_BROWSER_DESC = "Pentru a utiliza toate caracteristicile cererii,
|
||||
descărcați și instalați unul dintre aceste browsere:"
|
||||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "Дата"
|
|||
PRINT_LABEL_SUBJECT = "Тема"
|
||||
PRINT_LABEL_ATTACHMENTS = "Файлы"
|
||||
MESSAGE_LOADING = "Загрузка"
|
||||
MESSAGE_VIEW_DESC = "Выберите сообщение для просмотра."
|
||||
MESSAGE_VIEW_DESC = "Выберите сообщение для просмотра."
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Пароль"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP подписанное сообщение (нажмите, чтобы подтвердить)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP шифрованное сообщение (нажмите, чтобы расшифровать)"
|
||||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Телефон"
|
|||
ADD_MENU_URL = "Сайт"
|
||||
ADD_MENU_ADDRESS = "Адрес"
|
||||
ADD_MENU_BIRTHDAY = "День рождения"
|
||||
ADD_MENU_TAGS = "Тэги"
|
||||
BUTTON_SHARE_NONE = "Отменить"
|
||||
BUTTON_SHARE_ALL = "Всем"
|
||||
BUTTON_SYNC = "Синхронизация (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "Phone"
|
|||
ADD_MENU_URL = "URL"
|
||||
ADD_MENU_ADDRESS = "Address"
|
||||
ADD_MENU_BIRTHDAY = "Birthday"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "Žiadne"
|
||||
BUTTON_SHARE_ALL = "Všetko"
|
||||
BUTTON_SYNC = "Synchronization (CardDAV)"
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ PRINT_LABEL_DATE = "日期"
|
|||
PRINT_LABEL_SUBJECT = "主题"
|
||||
PRINT_LABEL_ATTACHMENTS = "附件"
|
||||
MESSAGE_LOADING = "加载中"
|
||||
MESSAGE_VIEW_DESC = "在此查看列表中选中的邮件。"
|
||||
MESSAGE_VIEW_DESC = "在此查看列表中选中的邮件。"
|
||||
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
|
||||
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
|
||||
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
|
||||
|
|
@ -186,6 +186,7 @@ ADD_MENU_PHONE = "电话"
|
|||
ADD_MENU_URL = "网址"
|
||||
ADD_MENU_ADDRESS = "地址"
|
||||
ADD_MENU_BIRTHDAY = "生日"
|
||||
ADD_MENU_TAGS = "Tags"
|
||||
BUTTON_SHARE_NONE = "无"
|
||||
BUTTON_SHARE_ALL = "所有人"
|
||||
BUTTON_SYNC = "同步 (CardDAV)"
|
||||
|
|
@ -305,7 +306,7 @@ LABEL_ARCHIVE = "存档"
|
|||
BUTTON_CANCEL = "取消"
|
||||
BUTTON_CLOSE = "关闭"
|
||||
|
||||
NOTIFICATION_SENT = "您没有选择 已发邮件 文件夹来存储已发送邮件。
|
||||
NOTIFICATION_SENT = "您没有选择 已发邮件 文件夹来存储已发送邮件。
|
||||
如果您不希望保存已发邮件,请选择 不使用 选项。"
|
||||
|
||||
NOTIFICATION_DRAFTS = "您没有选择 草稿 文件夹来存储邮件草稿。"
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
@ -1513,7 +1513,7 @@ table {
|
|||
.icon-resize-out:before {
|
||||
content: "\e06d";
|
||||
}
|
||||
|
||||
|
||||
/** initial setup **/
|
||||
.nano {
|
||||
/*
|
||||
|
|
@ -1630,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;
|
||||
|
|
@ -1995,7 +1995,7 @@ img.mfp-img {
|
|||
right: 0;
|
||||
padding-top: 0; }
|
||||
|
||||
|
||||
|
||||
|
||||
/* overlay at start */
|
||||
.mfp-fade.mfp-bg {
|
||||
|
|
@ -2041,7 +2041,7 @@ img.mfp-img {
|
|||
-moz-transform: translateX(50px);
|
||||
transform: translateX(50px);
|
||||
}
|
||||
|
||||
|
||||
.simple-pace {
|
||||
-webkit-pointer-events: none;
|
||||
pointer-events: none;
|
||||
|
|
@ -2112,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;
|
||||
|
|
@ -2180,7 +2180,7 @@ img.mfp-img {
|
|||
box-shadow:none;
|
||||
}
|
||||
.inputosaurus-input-hidden { display:none; }
|
||||
|
||||
|
||||
.flag-wrapper {
|
||||
width: 24px;
|
||||
height: 16px;
|
||||
|
|
@ -2224,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;
|
||||
|
|
@ -6348,21 +6348,26 @@ html.rgba.textshadow .btn.btn-primary {
|
|||
.tooltip {
|
||||
font-size: 14px;
|
||||
z-index: 2000 !important;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.tooltip.in {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
.tooltip .tooltip-big {
|
||||
font-size: 18px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
.tooltip-inner {
|
||||
.tooltip .tooltip-inner {
|
||||
max-width: 400px;
|
||||
text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
|
||||
padding: 5px 10px;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.tooltip .tooltip-big {
|
||||
font-size: 18px;
|
||||
padding: 0 10px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.btn-group > .btn:first-child {
|
||||
-webkit-border-top-left-radius: 3px;
|
||||
-moz-border-radius-topleft: 3px;
|
||||
|
|
@ -6851,6 +6856,9 @@ html.cssanimations .e-spinner .e-bounce {
|
|||
height: 15px;
|
||||
background-color: #ddd;
|
||||
margin: 0 5px;
|
||||
-webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);
|
||||
-moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);
|
||||
border-radius: 100%;
|
||||
display: inline-block;
|
||||
-webkit-animation: bouncedelay 1.4s infinite ease-in-out;
|
||||
|
|
@ -7186,17 +7194,17 @@ html.rl-ctrl-key-pressed .hidden-on-ctrl {
|
|||
position: absolute;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
height: 10px;
|
||||
z-index: 102;
|
||||
-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.5);
|
||||
-moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.5);
|
||||
-webkit-box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.3);
|
||||
-moz-box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.nano:before {
|
||||
top: -2px;
|
||||
top: -10px;
|
||||
}
|
||||
.nano:after {
|
||||
bottom: -2px;
|
||||
bottom: -10px;
|
||||
}
|
||||
.nano.nano-scrolllimit-top:before,
|
||||
.nano.nano-scrolllimit-bottom:after {
|
||||
|
|
@ -7363,6 +7371,7 @@ html.rl-ctrl-key-pressed .hidden-on-ctrl {
|
|||
right: 0;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
min-width: 100px;
|
||||
}
|
||||
.b-folders .b-content .content {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
|
|
|
|||
2
rainloop/v/0.0.0/static/css/app.min.css
vendored
2
rainloop/v/0.0.0/static/css/app.min.css
vendored
File diff suppressed because one or more lines are too long
|
|
@ -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 {?}
|
||||
*/
|
||||
|
|
@ -238,7 +238,7 @@ if (Globals.bAllowPdfPreview && navigator && navigator.mimeTypes)
|
|||
return oType && 'application/pdf' === oType.type;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Consts.Defaults = {};
|
||||
Consts.Values = {};
|
||||
Consts.DataImages = {};
|
||||
|
|
@ -356,7 +356,7 @@ Consts.DataImages.UserDotPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA
|
|||
* @type {string}
|
||||
*/
|
||||
Consts.DataImages.TranspPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=';
|
||||
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
|
|
@ -394,6 +394,7 @@ Enums.Capa = {
|
|||
'Prefetch': 'PREFETCH',
|
||||
'Gravatar': 'GRAVATAR',
|
||||
'Themes': 'THEMES',
|
||||
'Filters': 'FILTERS',
|
||||
'AdditionalAccounts': 'ADDITIONAL_ACCOUNTS',
|
||||
'AdditionalIdentities': 'ADDITIONAL_IDENTITIES'
|
||||
};
|
||||
|
|
@ -635,6 +636,34 @@ Enums.Layout = {
|
|||
'BottomPreview': 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
Enums.FilterConditionField = {
|
||||
'From': 0,
|
||||
'To': 1,
|
||||
'Subject': 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
Enums.FilterConditionType = {
|
||||
'contains': 0,
|
||||
'NotContains': 1,
|
||||
'EqualTo': 2,
|
||||
'NotEqualTo': 3
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
Enums.FiltersAction = {
|
||||
'None': 0,
|
||||
'Move': 1,
|
||||
'Delete': 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
|
|
@ -702,7 +731,7 @@ Enums.Notification = {
|
|||
'NewPasswordShort': 132,
|
||||
'NewPasswordWeak': 133,
|
||||
'NewPasswordForbidden': 134,
|
||||
|
||||
|
||||
'ContactsSyncError': 140,
|
||||
|
||||
'CantGetMessageList': 201,
|
||||
|
|
@ -731,13 +760,13 @@ Enums.Notification = {
|
|||
'CantDeletePackage': 702,
|
||||
'InvalidPluginPackage': 703,
|
||||
'UnsupportedPluginPackage': 704,
|
||||
|
||||
|
||||
'LicensingServerIsUnavailable': 710,
|
||||
'LicensingExpired': 711,
|
||||
'LicensingBanned': 712,
|
||||
|
||||
'DemoSendMessageError': 750,
|
||||
|
||||
|
||||
'AccountAlreadyExists': 801,
|
||||
|
||||
'MailServerError': 901,
|
||||
|
|
@ -745,7 +774,7 @@ Enums.Notification = {
|
|||
'UnknownNotification': 999,
|
||||
'UnknownError': 999
|
||||
};
|
||||
|
||||
|
||||
Utils.trim = $.trim;
|
||||
Utils.inArray = $.inArray;
|
||||
Utils.isArray = _.isArray;
|
||||
|
|
@ -2495,7 +2524,7 @@ Utils.detectDropdownVisibility = _.debounce(function () {
|
|||
return oItem.hasClass('open');
|
||||
}));
|
||||
}, 50);
|
||||
|
||||
|
||||
// Base64 encode / decode
|
||||
// http://www.webtoolkit.info/
|
||||
|
||||
|
|
@ -2658,7 +2687,7 @@ Base64 = {
|
|||
}
|
||||
};
|
||||
|
||||
/*jslint bitwise: false*/
|
||||
/*jslint bitwise: false*/
|
||||
ko.bindingHandlers.tooltip = {
|
||||
'init': function (oElement, fValueAccessor) {
|
||||
if (!Globals.bMobileDevice)
|
||||
|
|
@ -2739,7 +2768,7 @@ ko.bindingHandlers.tooltip3 = {
|
|||
$document.click(function () {
|
||||
$oEl.tooltip('hide');
|
||||
});
|
||||
|
||||
|
||||
Globals.tooltipTrigger.subscribe(function () {
|
||||
$oEl.tooltip('hide');
|
||||
});
|
||||
|
|
@ -3475,7 +3504,7 @@ ko.observable.fn.validateFunc = function (fFunc)
|
|||
|
||||
return this;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -3787,7 +3816,7 @@ LinkBuilder.prototype.socialFacebook = function ()
|
|||
{
|
||||
return this.sServer + 'SocialFacebook' + ('' !== this.sSpecSuffix ? '/' + this.sSpecSuffix + '/' : '');
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @type {Object}
|
||||
*/
|
||||
|
|
@ -3881,7 +3910,7 @@ Plugins.settingsGet = function (sPluginSection, sName)
|
|||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -3955,7 +3984,7 @@ CookieDriver.prototype.get = function (sKey)
|
|||
|
||||
return mResult;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -4026,7 +4055,7 @@ LocalStorageDriver.prototype.get = function (sKey)
|
|||
|
||||
return mResult;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -4069,7 +4098,7 @@ LocalStorage.prototype.get = function (iKey)
|
|||
{
|
||||
return this.oDriver ? this.oDriver.get('p' + iKey) : null;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -4082,7 +4111,7 @@ KnoinAbstractBoot.prototype.bootstart = function ()
|
|||
{
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string=} sPosition = ''
|
||||
* @param {string=} sTemplate = ''
|
||||
|
|
@ -4175,7 +4204,7 @@ KnoinAbstractViewModel.prototype.registerPopupKeyDown = function ()
|
|||
return true;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} sScreenName
|
||||
* @param {?=} aViewModels = []
|
||||
|
|
@ -4251,7 +4280,7 @@ KnoinAbstractScreen.prototype.__start = function ()
|
|||
this.oCross = oRoute;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -4656,7 +4685,7 @@ Knoin.prototype.bootstart = function ()
|
|||
};
|
||||
|
||||
kn = new Knoin();
|
||||
|
||||
|
||||
/**
|
||||
* @param {string=} sEmail
|
||||
* @param {string=} sName
|
||||
|
|
@ -5020,7 +5049,7 @@ EmailModel.prototype.inputoTagLine = function ()
|
|||
{
|
||||
return 0 < this.name.length ? this.name + ' (' + this.email + ')' : this.email;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -5064,7 +5093,7 @@ ContactTagModel.prototype.toLine = function (bEncodeHtml)
|
|||
return (Utils.isUnd(bEncodeHtml) ? false : !!bEncodeHtml) ?
|
||||
Utils.encodeHtml(this.name()) : this.name();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -5359,7 +5388,7 @@ PopupsDomainViewModel.prototype.clearForm = function ()
|
|||
this.smtpAuth(true);
|
||||
this.whiteList('');
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -5496,7 +5525,7 @@ PopupsPluginViewModel.prototype.onBuild = function ()
|
|||
}
|
||||
}, this));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -5612,7 +5641,7 @@ PopupsActivateViewModel.prototype.validateSubscriptionKey = function ()
|
|||
{
|
||||
var sValue = this.key();
|
||||
return '' === sValue || !!/^RL[\d]+-[A-Z0-9\-]+Z$/.test(Utils.trim(sValue));
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -5672,7 +5701,7 @@ PopupsLanguagesViewModel.prototype.changeLanguage = function (sLang)
|
|||
RL.data().mainLanguage(sLang);
|
||||
this.cancelCommand();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -5778,7 +5807,7 @@ PopupsAskViewModel.prototype.onBuild = function ()
|
|||
}, this));
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -5865,7 +5894,7 @@ AdminLoginViewModel.prototype.onHide = function ()
|
|||
{
|
||||
this.loginFocus(false);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {?} oScreen
|
||||
*
|
||||
|
|
@ -5889,7 +5918,7 @@ AdminMenuViewModel.prototype.link = function (sRoute)
|
|||
{
|
||||
return '#/' + sRoute;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -5913,7 +5942,7 @@ AdminPaneViewModel.prototype.logoutClick = function ()
|
|||
RL.remote().adminLogout(function () {
|
||||
RL.loginAndLogoutReload();
|
||||
});
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6013,7 +6042,7 @@ AdminGeneral.prototype.selectLanguage = function ()
|
|||
{
|
||||
kn.showScreenPopup(PopupsLanguagesViewModel);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6065,7 +6094,7 @@ AdminLogin.prototype.onBuild = function ()
|
|||
|
||||
}, 50);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6134,7 +6163,7 @@ AdminBranding.prototype.onBuild = function ()
|
|||
|
||||
}, 50);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6354,7 +6383,7 @@ AdminContacts.prototype.onBuild = function ()
|
|||
|
||||
}, 50);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6443,13 +6472,12 @@ AdminDomains.prototype.onDomainListChangeRequest = function ()
|
|||
{
|
||||
RL.reloadDomainList();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
function AdminSecurity()
|
||||
{
|
||||
this.csrfProtection = ko.observable(!!RL.settingsGet('UseTokenProtection'));
|
||||
this.capaOpenPGP = ko.observable(RL.capa(Enums.Capa.OpenPGP));
|
||||
this.capaTwoFactorAuth = ko.observable(RL.capa(Enums.Capa.TwoFactor));
|
||||
|
||||
|
|
@ -6472,13 +6500,13 @@ function AdminSecurity()
|
|||
this.adminPasswordUpdateSuccess(false);
|
||||
this.adminPasswordNewError(false);
|
||||
}, this);
|
||||
|
||||
|
||||
this.adminPasswordNew2.subscribe(function () {
|
||||
this.adminPasswordUpdateError(false);
|
||||
this.adminPasswordUpdateSuccess(false);
|
||||
this.adminPasswordNewError(false);
|
||||
}, this);
|
||||
|
||||
|
||||
this.saveNewAdminPasswordCommand = Utils.createCommand(this, function () {
|
||||
|
||||
if (this.adminPasswordNew() !== this.adminPasswordNew2())
|
||||
|
|
@ -6522,12 +6550,6 @@ AdminSecurity.prototype.onNewAdminPasswordResponse = function (sResult, oData)
|
|||
|
||||
AdminSecurity.prototype.onBuild = function ()
|
||||
{
|
||||
this.csrfProtection.subscribe(function (bValue) {
|
||||
RL.remote().saveAdminConfig(Utils.emptyFunction, {
|
||||
'TokenProtection': bValue ? '1' : '0'
|
||||
});
|
||||
});
|
||||
|
||||
this.capaOpenPGP.subscribe(function (bValue) {
|
||||
RL.remote().saveAdminConfig(Utils.emptyFunction, {
|
||||
'CapaOpenPGP': bValue ? '1' : '0'
|
||||
|
|
@ -6555,7 +6577,7 @@ AdminSecurity.prototype.phpInfoLink = function ()
|
|||
{
|
||||
return RL.link().phpInfo();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6671,7 +6693,7 @@ AdminSocial.prototype.onBuild = function ()
|
|||
|
||||
}, 50);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6768,7 +6790,7 @@ AdminPlugins.prototype.onPluginDisableRequest = function (sResult, oData)
|
|||
|
||||
RL.reloadPluginList();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6866,7 +6888,7 @@ AdminPackages.prototype.installPackage = function (oPackage)
|
|||
RL.remote().packageInstall(this.requestHelper(oPackage, true), oPackage);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6917,7 +6939,7 @@ AdminLicensing.prototype.licenseExpiredMomentValue = function ()
|
|||
{
|
||||
var oDate = moment.unix(this.licenseExpired());
|
||||
return oDate.format('LL') + ' (' + oDate.from(moment()) + ')';
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6992,7 +7014,7 @@ AdminAbout.prototype.updateCoreData = function ()
|
|||
RL.updateCoreData();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -7123,7 +7145,7 @@ AbstractData.prototype.populateDataOnStart = function()
|
|||
|
||||
this.contactsIsAllowed(!!RL.settingsGet('ContactsIsAllowed'));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractData
|
||||
|
|
@ -7174,7 +7196,7 @@ _.extend(AdminDataStorage.prototype, AbstractData.prototype);
|
|||
AdminDataStorage.prototype.populateDataOnStart = function()
|
||||
{
|
||||
AbstractData.prototype.populateDataOnStart.call(this);
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -7448,7 +7470,7 @@ AbstractAjaxRemoteStorage.prototype.jsVersion = function (fCallback, sVersion)
|
|||
'Version': sVersion
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractAjaxRemoteStorage
|
||||
|
|
@ -7709,7 +7731,7 @@ AdminAjaxRemoteStorage.prototype.adminPing = function (fCallback)
|
|||
{
|
||||
this.defaultRequest(fCallback, 'AdminPing');
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -7792,7 +7814,7 @@ AbstractCacheStorage.prototype.setEmailsPicsHashesData = function (oData)
|
|||
{
|
||||
this.oEmailsPicsHashes = oData;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractCacheStorage
|
||||
|
|
@ -7803,7 +7825,7 @@ function AdminCacheStorage()
|
|||
}
|
||||
|
||||
_.extend(AdminCacheStorage.prototype, AbstractCacheStorage.prototype);
|
||||
|
||||
|
||||
/**
|
||||
* @param {Array} aViewModels
|
||||
* @constructor
|
||||
|
|
@ -7983,7 +8005,7 @@ AbstractSettings.prototype.routes = function ()
|
|||
['', oRules]
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractScreen
|
||||
|
|
@ -7998,7 +8020,7 @@ _.extend(AdminLoginScreen.prototype, KnoinAbstractScreen.prototype);
|
|||
AdminLoginScreen.prototype.onShow = function ()
|
||||
{
|
||||
RL.setTitle('');
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractSettings
|
||||
|
|
@ -8016,7 +8038,7 @@ _.extend(AdminSettingsScreen.prototype, AbstractSettings.prototype);
|
|||
AdminSettingsScreen.prototype.onShow = function ()
|
||||
{
|
||||
RL.setTitle('');
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractBoot
|
||||
|
|
@ -8374,7 +8396,7 @@ AbstractApp.prototype.bootstart = function ()
|
|||
|
||||
ssm.ready();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractApp
|
||||
|
|
@ -8675,7 +8697,7 @@ AdminApp.prototype.bootstart = function ()
|
|||
* @type {AdminApp}
|
||||
*/
|
||||
RL = new AdminApp();
|
||||
|
||||
|
||||
$html.addClass(Globals.bMobileDevice ? 'mobile' : 'no-mobile');
|
||||
|
||||
$window.keydown(Utils.killCtrlAandS).keyup(Utils.killCtrlAandS);
|
||||
|
|
@ -8726,9 +8748,9 @@ window['__RLBOOT'] = function (fCall) {
|
|||
window['__RLBOOT'] = null;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
if (window.SimplePace) {
|
||||
window.SimplePace.add(10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}(window, jQuery, ko, crossroads, hasher, _));
|
||||
8
rainloop/v/0.0.0/static/js/admin.min.js
vendored
8
rainloop/v/0.0.0/static/js/admin.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -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 {?}
|
||||
*/
|
||||
|
|
@ -242,7 +242,7 @@ if (Globals.bAllowPdfPreview && navigator && navigator.mimeTypes)
|
|||
return oType && 'application/pdf' === oType.type;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Consts.Defaults = {};
|
||||
Consts.Values = {};
|
||||
Consts.DataImages = {};
|
||||
|
|
@ -360,7 +360,7 @@ Consts.DataImages.UserDotPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA
|
|||
* @type {string}
|
||||
*/
|
||||
Consts.DataImages.TranspPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=';
|
||||
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
|
|
@ -398,6 +398,7 @@ Enums.Capa = {
|
|||
'Prefetch': 'PREFETCH',
|
||||
'Gravatar': 'GRAVATAR',
|
||||
'Themes': 'THEMES',
|
||||
'Filters': 'FILTERS',
|
||||
'AdditionalAccounts': 'ADDITIONAL_ACCOUNTS',
|
||||
'AdditionalIdentities': 'ADDITIONAL_IDENTITIES'
|
||||
};
|
||||
|
|
@ -639,6 +640,34 @@ Enums.Layout = {
|
|||
'BottomPreview': 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
Enums.FilterConditionField = {
|
||||
'From': 0,
|
||||
'To': 1,
|
||||
'Subject': 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
Enums.FilterConditionType = {
|
||||
'contains': 0,
|
||||
'NotContains': 1,
|
||||
'EqualTo': 2,
|
||||
'NotEqualTo': 3
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
Enums.FiltersAction = {
|
||||
'None': 0,
|
||||
'Move': 1,
|
||||
'Delete': 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
|
|
@ -706,7 +735,7 @@ Enums.Notification = {
|
|||
'NewPasswordShort': 132,
|
||||
'NewPasswordWeak': 133,
|
||||
'NewPasswordForbidden': 134,
|
||||
|
||||
|
||||
'ContactsSyncError': 140,
|
||||
|
||||
'CantGetMessageList': 201,
|
||||
|
|
@ -735,13 +764,13 @@ Enums.Notification = {
|
|||
'CantDeletePackage': 702,
|
||||
'InvalidPluginPackage': 703,
|
||||
'UnsupportedPluginPackage': 704,
|
||||
|
||||
|
||||
'LicensingServerIsUnavailable': 710,
|
||||
'LicensingExpired': 711,
|
||||
'LicensingBanned': 712,
|
||||
|
||||
'DemoSendMessageError': 750,
|
||||
|
||||
|
||||
'AccountAlreadyExists': 801,
|
||||
|
||||
'MailServerError': 901,
|
||||
|
|
@ -749,7 +778,7 @@ Enums.Notification = {
|
|||
'UnknownNotification': 999,
|
||||
'UnknownError': 999
|
||||
};
|
||||
|
||||
|
||||
Utils.trim = $.trim;
|
||||
Utils.inArray = $.inArray;
|
||||
Utils.isArray = _.isArray;
|
||||
|
|
@ -2499,7 +2528,7 @@ Utils.detectDropdownVisibility = _.debounce(function () {
|
|||
return oItem.hasClass('open');
|
||||
}));
|
||||
}, 50);
|
||||
|
||||
|
||||
// Base64 encode / decode
|
||||
// http://www.webtoolkit.info/
|
||||
|
||||
|
|
@ -2662,7 +2691,7 @@ Base64 = {
|
|||
}
|
||||
};
|
||||
|
||||
/*jslint bitwise: false*/
|
||||
/*jslint bitwise: false*/
|
||||
ko.bindingHandlers.tooltip = {
|
||||
'init': function (oElement, fValueAccessor) {
|
||||
if (!Globals.bMobileDevice)
|
||||
|
|
@ -2743,7 +2772,7 @@ ko.bindingHandlers.tooltip3 = {
|
|||
$document.click(function () {
|
||||
$oEl.tooltip('hide');
|
||||
});
|
||||
|
||||
|
||||
Globals.tooltipTrigger.subscribe(function () {
|
||||
$oEl.tooltip('hide');
|
||||
});
|
||||
|
|
@ -3479,7 +3508,7 @@ ko.observable.fn.validateFunc = function (fFunc)
|
|||
|
||||
return this;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -3791,7 +3820,7 @@ LinkBuilder.prototype.socialFacebook = function ()
|
|||
{
|
||||
return this.sServer + 'SocialFacebook' + ('' !== this.sSpecSuffix ? '/' + this.sSpecSuffix + '/' : '');
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @type {Object}
|
||||
*/
|
||||
|
|
@ -3885,7 +3914,7 @@ Plugins.settingsGet = function (sPluginSection, sName)
|
|||
};
|
||||
|
||||
|
||||
|
||||
|
||||
function NewHtmlEditorWrapper(oElement, fOnBlur, fOnReady, fOnModeChange)
|
||||
{
|
||||
var self = this;
|
||||
|
|
@ -4105,7 +4134,7 @@ NewHtmlEditorWrapper.prototype.clear = function (bFocus)
|
|||
this.setHtml('', bFocus);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @param {koProperty} oKoList
|
||||
|
|
@ -4814,7 +4843,7 @@ Selector.prototype.on = function (sEventName, fCallback)
|
|||
{
|
||||
this.oCallbacks[sEventName] = fCallback;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -4888,7 +4917,7 @@ CookieDriver.prototype.get = function (sKey)
|
|||
|
||||
return mResult;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -4959,7 +4988,7 @@ LocalStorageDriver.prototype.get = function (sKey)
|
|||
|
||||
return mResult;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -5002,7 +5031,7 @@ LocalStorage.prototype.get = function (iKey)
|
|||
{
|
||||
return this.oDriver ? this.oDriver.get('p' + iKey) : null;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -5015,7 +5044,7 @@ KnoinAbstractBoot.prototype.bootstart = function ()
|
|||
{
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string=} sPosition = ''
|
||||
* @param {string=} sTemplate = ''
|
||||
|
|
@ -5108,7 +5137,7 @@ KnoinAbstractViewModel.prototype.registerPopupKeyDown = function ()
|
|||
return true;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} sScreenName
|
||||
* @param {?=} aViewModels = []
|
||||
|
|
@ -5184,7 +5213,7 @@ KnoinAbstractScreen.prototype.__start = function ()
|
|||
this.oCross = oRoute;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -5589,7 +5618,7 @@ Knoin.prototype.bootstart = function ()
|
|||
};
|
||||
|
||||
kn = new Knoin();
|
||||
|
||||
|
||||
/**
|
||||
* @param {string=} sEmail
|
||||
* @param {string=} sName
|
||||
|
|
@ -5953,7 +5982,7 @@ EmailModel.prototype.inputoTagLine = function ()
|
|||
{
|
||||
return 0 < this.name.length ? this.name + ' (' + this.email + ')' : this.email;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6077,7 +6106,7 @@ ContactModel.prototype.lineAsCcc = function ()
|
|||
|
||||
return aResult.join(' ');
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {number=} iType = Enums.ContactPropertyType.Unknown
|
||||
* @param {string=} sTypeStr = ''
|
||||
|
|
@ -6106,7 +6135,7 @@ function ContactPropertyModel(iType, sTypeStr, sValue, bFocused, sPlaceholder)
|
|||
}, this);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6150,7 +6179,7 @@ ContactTagModel.prototype.toLine = function (bEncodeHtml)
|
|||
return (Utils.isUnd(bEncodeHtml) ? false : !!bEncodeHtml) ?
|
||||
Utils.encodeHtml(this.name()) : this.name();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -6386,7 +6415,7 @@ AttachmentModel.prototype.iconClass = function ()
|
|||
|
||||
return sClass;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @param {string} sId
|
||||
|
|
@ -6447,7 +6476,7 @@ ComposeAttachmentModel.prototype.initByUploadJson = function (oJsonAttachment)
|
|||
}
|
||||
|
||||
return bResult;
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -7641,7 +7670,7 @@ MessageModel.prototype.flagHash = function ()
|
|||
return [this.deleted(), this.unseen(), this.flagged(), this.answered(), this.forwarded(),
|
||||
this.isReadReceipt()].join('');
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -7973,7 +8002,7 @@ FolderModel.prototype.printableFullName = function ()
|
|||
{
|
||||
return this.fullName.split(this.delimiter).join(' / ');
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} sEmail
|
||||
* @param {boolean=} bCanBeDelete = true
|
||||
|
|
@ -7994,7 +8023,7 @@ AccountModel.prototype.email = '';
|
|||
AccountModel.prototype.changeAccountLink = function ()
|
||||
{
|
||||
return RL.link().change(this.email);
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @param {string} sId
|
||||
* @param {string} sEmail
|
||||
|
|
@ -8030,7 +8059,49 @@ IdentityModel.prototype.formattedNameForEmail = function ()
|
|||
var sName = this.name();
|
||||
return '' === sName ? this.email() : '"' + Utils.quoteName(sName) + '" <' + this.email() + '>';
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
function FilterConditionModel()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
function FilterModel()
|
||||
{
|
||||
this.enabled = ko.observable(true);
|
||||
|
||||
this.conditions = ko.observableArray([]);
|
||||
|
||||
this.action = ko.observable(Enums.FiltersAction.None);
|
||||
}
|
||||
|
||||
FilterModel.prototype.deleteCondition = function (oCondition)
|
||||
{
|
||||
this.conditions.remove(oCondition);
|
||||
};
|
||||
|
||||
FilterModel.prototype.addCondition = function ()
|
||||
{
|
||||
this.conditions.push(new FilterConditionModel());
|
||||
};
|
||||
|
||||
FilterModel.prototype.parse = function (oItem)
|
||||
{
|
||||
var bResult = false;
|
||||
if (oItem && 'Object/Filter' === oItem['@Object'])
|
||||
{
|
||||
this.name(Utils.pString(oItem['Name']));
|
||||
|
||||
bResult = true;
|
||||
}
|
||||
|
||||
return bResult;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} iIndex
|
||||
* @param {string} sGuID
|
||||
|
|
@ -8061,7 +8132,7 @@ OpenPgpKeyModel.prototype.user = '';
|
|||
OpenPgpKeyModel.prototype.email = '';
|
||||
OpenPgpKeyModel.prototype.armor = '';
|
||||
OpenPgpKeyModel.prototype.isPrivate = false;
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -8157,7 +8228,7 @@ PopupsFolderClearViewModel.prototype.onShow = function (oFolder)
|
|||
this.selectedFolder(oFolder);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -8267,7 +8338,7 @@ PopupsFolderCreateViewModel.prototype.onFocus = function ()
|
|||
{
|
||||
this.folderName.focused(true);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -8380,7 +8451,7 @@ PopupsFolderSystemViewModel.prototype.onShow = function (iNotificationType)
|
|||
this.notification(sNotification);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -9868,7 +9939,7 @@ PopupsComposeViewModel.prototype.triggerForResize = function ()
|
|||
this.editorResizeThrottle();
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -10610,7 +10681,7 @@ PopupsContactsViewModel.prototype.onHide = function ()
|
|||
// oItem.checked(false);
|
||||
// });
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -10746,7 +10817,7 @@ PopupsAdvancedSearchViewModel.prototype.onFocus = function ()
|
|||
{
|
||||
this.fromFocus(true);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -10858,7 +10929,7 @@ PopupsAddAccountViewModel.prototype.onFocus = function ()
|
|||
{
|
||||
this.emailFocus(true);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -10944,7 +11015,7 @@ PopupsAddOpenPgpKeyViewModel.prototype.onFocus = function ()
|
|||
{
|
||||
this.key.focus(true);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -10984,7 +11055,7 @@ PopupsViewOpenPgpKeyViewModel.prototype.onShow = function (oOpenPgpKey)
|
|||
this.key(oOpenPgpKey.armor);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -11079,7 +11150,7 @@ PopupsGenerateNewOpenPgpKeyViewModel.prototype.onFocus = function ()
|
|||
{
|
||||
this.email.focus(true);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -11319,7 +11390,7 @@ PopupsComposeOpenPgpViewModel.prototype.onShow = function (fCallback, sText, sFr
|
|||
this.to(aRec);
|
||||
this.text(sText);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -11467,7 +11538,7 @@ PopupsIdentityViewModel.prototype.onFocus = function ()
|
|||
this.email.focused(true);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -11527,7 +11598,7 @@ PopupsLanguagesViewModel.prototype.changeLanguage = function (sLang)
|
|||
RL.data().mainLanguage(sLang);
|
||||
this.cancelCommand();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -11581,7 +11652,7 @@ PopupsTwoFactorTestViewModel.prototype.onFocus = function ()
|
|||
{
|
||||
this.code.focused(true);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -11687,7 +11758,7 @@ PopupsAskViewModel.prototype.onBuild = function ()
|
|||
}, this));
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -11732,7 +11803,7 @@ PopupsKeyboardShortcutsHelpViewModel.prototype.onBuild = function (oDom)
|
|||
}
|
||||
}, this));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -12044,7 +12115,7 @@ LoginViewModel.prototype.selectLanguage = function ()
|
|||
kn.showScreenPopup(PopupsLanguagesViewModel);
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -12054,7 +12125,7 @@ function AbstractSystemDropDownViewModel()
|
|||
KnoinAbstractViewModel.call(this, 'Right', 'SystemDropDown');
|
||||
|
||||
var oData = RL.data();
|
||||
|
||||
|
||||
this.accounts = oData.accounts;
|
||||
this.accountEmail = oData.accountEmail;
|
||||
this.accountsLoading = oData.accountsLoading;
|
||||
|
|
@ -12082,7 +12153,7 @@ AbstractSystemDropDownViewModel.prototype.accountClick = function (oAccount, oEv
|
|||
self.accountsLoading(false);
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
|
|
@ -12140,7 +12211,7 @@ AbstractSystemDropDownViewModel.prototype.onBuild = function ()
|
|||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractSystemDropDownViewModel
|
||||
|
|
@ -12152,7 +12223,7 @@ function MailBoxSystemDropDownViewModel()
|
|||
}
|
||||
|
||||
Utils.extendAsViewModel('MailBoxSystemDropDownViewModel', MailBoxSystemDropDownViewModel, AbstractSystemDropDownViewModel);
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractSystemDropDownViewModel
|
||||
|
|
@ -12164,7 +12235,7 @@ function SettingsSystemDropDownViewModel()
|
|||
}
|
||||
|
||||
Utils.extendAsViewModel('SettingsSystemDropDownViewModel', SettingsSystemDropDownViewModel, AbstractSystemDropDownViewModel);
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -12373,7 +12444,7 @@ MailBoxFolderListViewModel.prototype.contactsClick = function ()
|
|||
kn.showScreenPopup(PopupsContactsViewModel);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -13276,7 +13347,7 @@ MailBoxMessageListViewModel.prototype.initUploaderForAppend = function ()
|
|||
;
|
||||
|
||||
return !!oJua;
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -13968,7 +14039,7 @@ MailBoxMessageViewViewModel.prototype.readReceipt = function (oMessage)
|
|||
RL.reloadFlagsCurrentMessageListAndMessageFromCache();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {?} oScreen
|
||||
*
|
||||
|
|
@ -13997,7 +14068,7 @@ SettingsMenuViewModel.prototype.backToMailBoxClick = function ()
|
|||
{
|
||||
kn.setHash(RL.link().inbox());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
|
|
@ -14028,7 +14099,7 @@ SettingsPaneViewModel.prototype.backToMailBoxClick = function ()
|
|||
{
|
||||
kn.setHash(RL.link().inbox());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -14188,7 +14259,7 @@ SettingsGeneral.prototype.selectLanguage = function ()
|
|||
{
|
||||
kn.showScreenPopup(PopupsLanguagesViewModel);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -14238,7 +14309,7 @@ SettingsContacts.prototype.onBuild = function ()
|
|||
//{
|
||||
//
|
||||
//};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -14319,7 +14390,7 @@ SettingsAccounts.prototype.deleteAccount = function (oAccountToRemove)
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -14407,7 +14478,7 @@ SettingsIdentity.prototype.onBuild = function ()
|
|||
|
||||
}, 50);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -14565,7 +14636,37 @@ SettingsIdentities.prototype.onBuild = function (oDom)
|
|||
});
|
||||
|
||||
}, 50);
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
function SettingsFilters()
|
||||
{
|
||||
// var oData = RL.data();
|
||||
|
||||
this.filters = ko.observableArray([]);
|
||||
this.filters.loading = ko.observable(false);
|
||||
}
|
||||
|
||||
Utils.addSettingsViewModel(SettingsFilters, 'SettingsFilters', 'SETTINGS_LABELS/LABEL_FILTERS_NAME', 'filters');
|
||||
|
||||
//SettingsFilters.prototype.onBuild = function ()
|
||||
//{
|
||||
//};
|
||||
|
||||
SettingsFilters.prototype.deleteFilter = function (oFilter)
|
||||
{
|
||||
this.filters.remove(oFilter);
|
||||
};
|
||||
|
||||
SettingsFilters.prototype.addFilter = function ()
|
||||
{
|
||||
var oFilter = new FilterModel();
|
||||
oFilter.addCondition();
|
||||
|
||||
this.filters.push(oFilter);
|
||||
};
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -14715,7 +14816,7 @@ SettingsSecurity.prototype.onBuild = function ()
|
|||
this.processing(true);
|
||||
RL.remote().getTwoFactor(this.onResult);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -14782,7 +14883,7 @@ function SettingsSocialScreen()
|
|||
}
|
||||
|
||||
Utils.addSettingsViewModel(SettingsSocialScreen, 'SettingsSocial', 'SETTINGS_LABELS/LABEL_SOCIAL_NAME', 'social');
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -14887,7 +14988,7 @@ SettingsChangePasswordScreen.prototype.onChangePasswordResponse = function (sRes
|
|||
Utils.getNotification(Enums.Notification.CouldNotSaveNewPassword));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -15082,7 +15183,7 @@ SettingsFolders.prototype.unSubscribeFolder = function (oFolder)
|
|||
|
||||
oFolder.subScribed(false);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -15196,7 +15297,7 @@ SettingsThemes.prototype.onBuild = function ()
|
|||
};
|
||||
}));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -15264,7 +15365,7 @@ SettingsOpenPGP.prototype.deleteOpenPgpKey = function (oOpenPgpKeyToRemove)
|
|||
RL.reloadOpenPgpKeys();
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -15395,7 +15496,7 @@ AbstractData.prototype.populateDataOnStart = function()
|
|||
|
||||
this.contactsIsAllowed(!!RL.settingsGet('ContactsIsAllowed'));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractData
|
||||
|
|
@ -16648,7 +16749,7 @@ WebMailDataStorage.prototype.findSelfPrivateKey = function (sPassword)
|
|||
{
|
||||
return this.findPrivateKeyByEmail(this.accountEmail(), sPassword);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -16922,7 +17023,7 @@ AbstractAjaxRemoteStorage.prototype.jsVersion = function (fCallback, sVersion)
|
|||
'Version': sVersion
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractAjaxRemoteStorage
|
||||
|
|
@ -17715,7 +17816,7 @@ WebMailAjaxRemoteStorage.prototype.socialUsers = function (fCallback)
|
|||
this.defaultRequest(fCallback, 'SocialUsers');
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
|
|
@ -17798,7 +17899,7 @@ AbstractCacheStorage.prototype.setEmailsPicsHashesData = function (oData)
|
|||
{
|
||||
this.oEmailsPicsHashes = oData;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractCacheStorage
|
||||
|
|
@ -18116,7 +18217,7 @@ WebMailCacheStorage.prototype.storeMessageFlagsToCacheByFolderAndUid = function
|
|||
this.setMessageFlagsToCache(sFolder, sUid, aFlags);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {Array} aViewModels
|
||||
* @constructor
|
||||
|
|
@ -18296,7 +18397,7 @@ AbstractSettings.prototype.routes = function ()
|
|||
['', oRules]
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractScreen
|
||||
|
|
@ -18311,7 +18412,7 @@ _.extend(LoginScreen.prototype, KnoinAbstractScreen.prototype);
|
|||
LoginScreen.prototype.onShow = function ()
|
||||
{
|
||||
RL.setTitle('');
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractScreen
|
||||
|
|
@ -18482,7 +18583,7 @@ MailBoxScreen.prototype.routes = function ()
|
|||
[/^([^\/]*)$/, {'normalize_': fNormS}]
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractSettings
|
||||
|
|
@ -18509,7 +18610,7 @@ SettingsScreen.prototype.onShow = function ()
|
|||
RL.setTitle(this.sSettingsTitle);
|
||||
RL.data().keyScope(Enums.KeyState.Settings);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends KnoinAbstractBoot
|
||||
|
|
@ -18867,7 +18968,7 @@ AbstractApp.prototype.bootstart = function ()
|
|||
|
||||
ssm.ready();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AbstractApp
|
||||
|
|
@ -19940,6 +20041,11 @@ RainLoopApp.prototype.bootstart = function ()
|
|||
Utils.removeSettingsViewModel(SettingsThemes);
|
||||
}
|
||||
|
||||
if (!RL.capa(Enums.Capa.Filters))
|
||||
{
|
||||
Utils.removeSettingsViewModel(SettingsFilters);
|
||||
}
|
||||
|
||||
if (!bGoogle && !bFacebook && !bTwitter)
|
||||
{
|
||||
Utils.removeSettingsViewModel(SettingsSocialScreen);
|
||||
|
|
@ -20169,7 +20275,7 @@ RainLoopApp.prototype.bootstart = function ()
|
|||
* @type {RainLoopApp}
|
||||
*/
|
||||
RL = new RainLoopApp();
|
||||
|
||||
|
||||
$html.addClass(Globals.bMobileDevice ? 'mobile' : 'no-mobile');
|
||||
|
||||
$window.keydown(Utils.killCtrlAandS).keyup(Utils.killCtrlAandS);
|
||||
|
|
@ -20220,9 +20326,9 @@ window['__RLBOOT'] = function (fCall) {
|
|||
window['__RLBOOT'] = null;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
if (window.SimplePace) {
|
||||
window.SimplePace.add(10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}(window, jQuery, ko, crossroads, hasher, moment, Jua, _, ifvisible, key));
|
||||
18
rainloop/v/0.0.0/static/js/app.min.js
vendored
18
rainloop/v/0.0.0/static/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,6 @@
|
|||
/*! See http://www.JSON.org/js.html */
|
||||
var JSON;JSON||(JSON={}),function(){function str(a,b){var c,d,e,f,g=gap,h,i=b[a];i&&typeof i=="object"&&typeof i.toJSON=="function"&&(i=i.toJSON(a)),typeof rep=="function"&&(i=rep.call(b,a,i));switch(typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";gap+=indent,h=[];if(Object.prototype.toString.apply(i)==="[object Array]"){f=i.length;for(c=0;c<f;c+=1)h[c]=str(c,i)||"null";e=h.length===0?"[]":gap?"[\n"+gap+h.join(",\n"+gap)+"\n"+g+"]":"["+h.join(",")+"]",gap=g;return e}if(rep&&typeof rep=="object"){f=rep.length;for(c=0;c<f;c+=1)d=rep[c],typeof d=="string"&&(e=str(d,i),e&&h.push(quote(d)+(gap?": ":":")+e))}else for(d in i)Object.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&h.push(quote(d)+(gap?": ":":")+e));e=h.length===0?"{}":gap?"{\n"+gap+h.join(",\n"+gap)+"\n"+g+"}":"{"+h.join(",")+"}",gap=g;return e}}function quote(a){escapable.lastIndex=0;return escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return typeof b=="string"?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function f(a){return a<10?"0"+a:a}"use strict",typeof Date.prototype.toJSON!="function"&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;typeof JSON.stringify!="function"&&(JSON.stringify=function(a,b,c){var d;gap="",indent="";if(typeof c=="number")for(d=0;d<c;d+=1)indent+=" ";else typeof c=="string"&&(indent=c);rep=b;if(b&&typeof b!="function"&&(typeof b!="object"||typeof b.length!="number"))throw new Error("JSON.stringify");return str("",{"":a})}),typeof JSON.parse!="function"&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&typeof e=="object")for(c in e)Object.hasOwnProperty.call(e,c)&&(d=walk(e,c),d!==undefined?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver=="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")})}();
|
||||
/*! See http://www.JSON.org/js.html */
|
||||
var JSON;JSON||(JSON={}),function(){function str(a,b){var c,d,e,f,g=gap,h,i=b[a];i&&typeof i=="object"&&typeof i.toJSON=="function"&&(i=i.toJSON(a)),typeof rep=="function"&&(i=rep.call(b,a,i));switch(typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";gap+=indent,h=[];if(Object.prototype.toString.apply(i)==="[object Array]"){f=i.length;for(c=0;c<f;c+=1)h[c]=str(c,i)||"null";e=h.length===0?"[]":gap?"[\n"+gap+h.join(",\n"+gap)+"\n"+g+"]":"["+h.join(",")+"]",gap=g;return e}if(rep&&typeof rep=="object"){f=rep.length;for(c=0;c<f;c+=1)d=rep[c],typeof d=="string"&&(e=str(d,i),e&&h.push(quote(d)+(gap?": ":":")+e))}else for(d in i)Object.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&h.push(quote(d)+(gap?": ":":")+e));e=h.length===0?"{}":gap?"{\n"+gap+h.join(",\n"+gap)+"\n"+g+"}":"{"+h.join(",")+"}",gap=g;return e}}function quote(a){escapable.lastIndex=0;return escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return typeof b=="string"?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function f(a){return a<10?"0"+a:a}"use strict",typeof Date.prototype.toJSON!="function"&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;typeof JSON.stringify!="function"&&(JSON.stringify=function(a,b,c){var d;gap="",indent="";if(typeof c=="number")for(d=0;d<c;d+=1)indent+=" ";else typeof c=="string"&&(indent=c);rep=b;if(b&&typeof b!="function"&&(typeof b!="object"||typeof b.length!="number"))throw new Error("JSON.stringify");return str("",{"":a})}),typeof JSON.parse!="function"&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&typeof e=="object")for(c in e)Object.hasOwnProperty.call(e,c)&&(d=walk(e,c),d!==undefined?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver=="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")})}();
|
||||
/*! RainLoop Simple Pace v1.0 (c) 2013 RainLoop Team; Licensed under MIT */
|
||||
!function(a){function b(){var b=this;b.el=null,b.done=!1,b.progress=0,b.addInterval=0,b.addSpeed=3,b.stopProgress=100,b.interval=a.setInterval(function(){var c=b.build();c&&a.clearInterval(b.interval)},100)}if(b.prototype.startAddInterval=function(){var b=this;b.stopAddInterval(),b.addInterval=a.setInterval(function(){0<b.progress&&b.stopProgress>b.progress&&b.add(b.addSpeed)},500)},b.prototype.stopAddInterval=function(){a.clearInterval(this.addInterval),this.addInterval=0},b.prototype.build=function(){if(null===this.el){var a=document.querySelector("body");a&&(this.el=document.createElement("div"),this.el.className="simple-pace simple-pace-active",this.el.innerHTML='<div class="simple-pace-progress"><div class="simple-pace-progress-inner"></div></div><div class="simple-pace-activity"></div>',a.firstChild?a.insertBefore(this.el,a.firstChild):a.appendChild(this.el))}return this.el},b.prototype.reset=function(){return this.progress=0,this.render()},b.prototype.update=function(b){var c=a.parseInt(b,10);return c>this.progress&&(this.progress=c,this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress),this.render()},b.prototype.add=function(b){return this.progress+=a.parseInt(b,10),this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress,this.render()},b.prototype.setSpeed=function(a,b){this.addSpeed=a,this.stopProgress=b||100},b.prototype.render=function(){var b=this.build();b&&b.children&&b.children[0]&&b.children[0].setAttribute("style","width:"+this.progress+"%"),100!==this.progress||this.done?100>this.progress&&this.done?(this.done=!1,this.startAddInterval(),b.className=b.className.replace("simple-pace-inactive",""),b.className+=" simple-pace-inactive"):100>this.progress&&!this.done&&0===this.addInterval&&this.startAddInterval():(this.done=!0,this.stopAddInterval(),a.setTimeout(function(){b.className=b.className.replace("simple-pace-active",""),b.className+=" simple-pace-inactive"},500))},!a.SimplePace){var c=new b;a.SimplePace={sleep:function(){c.setSpeed(2,95)},set:function(a){c.update(a)},add:function(a){c.add(a)}}}}(window);
|
||||
!function(a){function b(){var b=this;b.el=null,b.done=!1,b.progress=0,b.addInterval=0,b.addSpeed=3,b.stopProgress=100,b.interval=a.setInterval(function(){var c=b.build();c&&a.clearInterval(b.interval)},100)}if(b.prototype.startAddInterval=function(){var b=this;b.stopAddInterval(),b.addInterval=a.setInterval(function(){0<b.progress&&b.stopProgress>b.progress&&b.add(b.addSpeed)},500)},b.prototype.stopAddInterval=function(){a.clearInterval(this.addInterval),this.addInterval=0},b.prototype.build=function(){if(null===this.el){var a=document.querySelector("body");a&&(this.el=document.createElement("div"),this.el.className="simple-pace simple-pace-active",this.el.innerHTML='<div class="simple-pace-progress"><div class="simple-pace-progress-inner"></div></div><div class="simple-pace-activity"></div>',a.firstChild?a.insertBefore(this.el,a.firstChild):a.appendChild(this.el))}return this.el},b.prototype.reset=function(){return this.progress=0,this.render()},b.prototype.update=function(b){var c=a.parseInt(b,10);return c>this.progress&&(this.progress=c,this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress),this.render()},b.prototype.add=function(b){return this.progress+=a.parseInt(b,10),this.progress=100<this.progress?100:this.progress,this.progress=0>this.progress?0:this.progress,this.render()},b.prototype.setSpeed=function(a,b){this.addSpeed=a,this.stopProgress=b||100},b.prototype.render=function(){var b=this.build();b&&b.children&&b.children[0]&&b.children[0].setAttribute("style","width:"+this.progress+"%"),100!==this.progress||this.done?100>this.progress&&this.done?(this.done=!1,this.startAddInterval(),b.className=b.className.replace("simple-pace-inactive",""),b.className+=" simple-pace-inactive"):100>this.progress&&!this.done&&0===this.addInterval&&this.startAddInterval():(this.done=!0,this.stopAddInterval(),a.setTimeout(function(){b.className=b.className.replace("simple-pace-active",""),b.className+=" simple-pace-inactive"},500))},!a.SimplePace){var c=new b;a.SimplePace={sleep:function(){c.setSpeed(2,95)},set:function(a){c.update(a)},add:function(a){c.add(a)}}}}(window);
|
||||
/*! RainLoop Top Driver v1.0 (c) 2013 RainLoop Team; Licensed under MIT */
|
||||
!function(a,b){function c(){}c.prototype.s=a.sessionStorage,c.prototype.t=a.top||a,c.prototype.getHash=function(){var a=null;if(this.s)a=this.s.getItem("__rlA")||null;else if(this.t){var c=this.t.name&&b&&"{"===this.t.name.toString().substr(0,1)?b.parse(this.t.name.toString()):null;a=c?c.__rlA||null:null}return a},c.prototype.setHash=function(){var c=a.rainloopAppData,d=null;this.s?this.s.setItem("__rlA",c&&c.AuthAccountHash?c.AuthAccountHash:""):this.t&&b&&(d={},d.__rlA=c&&c.AuthAccountHash?c.AuthAccountHash:"",this.t.name=b.stringify(d))},c.prototype.clearHash=function(){this.s?this.s.setItem("__rlA",""):this.t&&(this.t.name="")},a._rlhh=new c,a.__rlah=function(){return a._rlhh?a._rlhh.getHash():null},a.__rlah_set=function(){a._rlhh&&a._rlhh.setHash()},a.__rlah_clear=function(){a._rlhh&&a._rlhh.clearHash()}}(window,window.JSON);
|
||||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue