mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-11 00:14:50 +03:00
Interface optimizations
This commit is contained in:
parent
7552ffe241
commit
d430de9e93
68 changed files with 276 additions and 110 deletions
|
|
@ -12,6 +12,8 @@ function AdminSecurity()
|
|||
this.adminLogin = ko.observable(RL.settingsGet('AdminLogin'));
|
||||
this.adminPassword = ko.observable('');
|
||||
this.adminPasswordNew = ko.observable('');
|
||||
this.adminPasswordNew2 = ko.observable('');
|
||||
this.adminPasswordNewError = ko.observable(false);
|
||||
|
||||
this.adminPasswordUpdateError = ko.observable(false);
|
||||
this.adminPasswordUpdateSuccess = ko.observable(false);
|
||||
|
|
@ -24,10 +26,23 @@ function AdminSecurity()
|
|||
this.adminPasswordNew.subscribe(function () {
|
||||
this.adminPasswordUpdateError(false);
|
||||
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())
|
||||
{
|
||||
this.adminPasswordNewError(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
this.adminPasswordUpdateError(false);
|
||||
this.adminPasswordUpdateSuccess(false);
|
||||
|
||||
|
|
@ -37,7 +52,7 @@ function AdminSecurity()
|
|||
});
|
||||
|
||||
}, function () {
|
||||
return '' !== this.adminPassword() && '' !== this.adminPasswordNew();
|
||||
return '' !== this.adminPassword() && '' !== this.adminPasswordNew() && '' !== this.adminPasswordNew2();
|
||||
});
|
||||
|
||||
this.onNewAdminPasswordResponse = _.bind(this.onNewAdminPasswordResponse, this);
|
||||
|
|
@ -51,6 +66,7 @@ AdminSecurity.prototype.onNewAdminPasswordResponse = function (sResult, oData)
|
|||
{
|
||||
this.adminPassword('');
|
||||
this.adminPasswordNew('');
|
||||
this.adminPasswordNew2('');
|
||||
|
||||
this.adminPasswordUpdateSuccess(true);
|
||||
}
|
||||
|
|
@ -85,6 +101,7 @@ AdminSecurity.prototype.onHide = function ()
|
|||
{
|
||||
this.adminPassword('');
|
||||
this.adminPasswordNew('');
|
||||
this.adminPasswordNew2('');
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -51,6 +51,11 @@ AbstractSystemDropDownViewModel.prototype.settingsClick = function ()
|
|||
kn.setHash(RL.link().settings());
|
||||
};
|
||||
|
||||
AbstractSystemDropDownViewModel.prototype.settingsHelp = function ()
|
||||
{
|
||||
kn.showScreenPopup(PopupsKeyboardShortcutsHelpViewModel);
|
||||
};
|
||||
|
||||
AbstractSystemDropDownViewModel.prototype.addAccountClick = function ()
|
||||
{
|
||||
if (this.allowAddAccount)
|
||||
|
|
@ -80,4 +85,13 @@ AbstractSystemDropDownViewModel.prototype.onBuild = function ()
|
|||
self.accountMenuDropdownTrigger(true);
|
||||
}
|
||||
});
|
||||
|
||||
// shortcuts help
|
||||
key('shift+/', [Enums.KeyState.MessageList, Enums.KeyState.MessageView, Enums.KeyState.Settings], function () {
|
||||
if (self.viewModelVisibility())
|
||||
{
|
||||
kn.showScreenPopup(PopupsKeyboardShortcutsHelpViewModel);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -737,12 +737,6 @@ MailBoxMessageListViewModel.prototype.initShortcuts = function ()
|
|||
return false;
|
||||
});
|
||||
|
||||
// shortcuts help
|
||||
key('shift+/', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
|
||||
kn.showScreenPopup(PopupsKeyboardShortcutsHelpViewModel);
|
||||
return false;
|
||||
});
|
||||
|
||||
key('shift+f', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
|
||||
self.multyForwardCommand();
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "RainLoop",
|
||||
"title": "RainLoop Webmail",
|
||||
"version": "1.6.5",
|
||||
"version": "1.6.6",
|
||||
"release": "911",
|
||||
"description": "Simple, modern & fast web-based email client",
|
||||
"homepage": "http://rainloop.net",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<form class="form-horizontal span4 wrapper loginForm thm-login" action="#/" onsubmit="return false;" data-bind="command: submitCommand">
|
||||
<div class="control-group" data-bind="css: {'error': loginError}">
|
||||
<div class="input-append">
|
||||
<input class="inputLogin span4" placeholder="Login" type="text"
|
||||
<input type="text" class="inputLogin span4" placeholder="Login"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: login, hasFocus: loginFocus" />
|
||||
<span class="add-on">
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordError}">
|
||||
<div class="input-append">
|
||||
<input class="inputPassword span4" placeholder="Password" type="password"
|
||||
<input type="password" class="inputPassword span4" placeholder="Password"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: password" />
|
||||
<span class="add-on">
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
Page Title
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: title, saveTrigger: title.trigger" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: title, saveTrigger: title.trigger" />
|
||||
<div data-bind="saveTrigger: title.trigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -17,7 +18,8 @@
|
|||
Loading Description
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: loadingDesc, saveTrigger: loadingDesc.trigger" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: loadingDesc, saveTrigger: loadingDesc.trigger" />
|
||||
<div data-bind="saveTrigger: loadingDesc.trigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -30,7 +32,8 @@
|
|||
Logo
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" placeholder="http://" data-bind="value: loginLogo, saveTrigger: loginLogo.trigger" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
placeholder="https://" data-bind="value: loginLogo, saveTrigger: loginLogo.trigger" />
|
||||
<div data-bind="saveTrigger: loginLogo.trigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -39,7 +42,8 @@
|
|||
Description
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: loginDescription, saveTrigger: loginDescription.trigger" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: loginDescription, saveTrigger: loginDescription.trigger" />
|
||||
<div data-bind="saveTrigger: loginDescription.trigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -50,7 +50,8 @@
|
|||
Dsn
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span6" data-bind="value: pdoDsn, saveTrigger: pdoDsnTrigger" />
|
||||
<input type="text" class="span6" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: pdoDsn, saveTrigger: pdoDsnTrigger" />
|
||||
<div data-bind="saveTrigger: pdoDsnTrigger"></div>
|
||||
<blockquote style="margin: 10px 0 0 0">
|
||||
<p class="muted">
|
||||
|
|
@ -66,7 +67,8 @@
|
|||
User
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" data-bind="value: pdoUser, saveTrigger: pdoUserTrigger" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: pdoUser, saveTrigger: pdoUserTrigger" />
|
||||
<div data-bind="saveTrigger: pdoUserTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -75,7 +77,8 @@
|
|||
Password
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: pdoPassword, saveTrigger: pdoPasswordTrigger" />
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: pdoPassword, saveTrigger: pdoPasswordTrigger" />
|
||||
<div data-bind="saveTrigger: pdoPasswordTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
Default Domain
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span3" data-bind="value: defaultDomain, saveTrigger: defaultDomainTrigger" />
|
||||
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: defaultDomain, saveTrigger: defaultDomainTrigger" />
|
||||
<div data-bind="saveTrigger: defaultDomainTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@
|
|||
</label>
|
||||
<div class="controls">
|
||||
<!-- ko if: 0 === Type || 1 === Type -->
|
||||
<input type="text" data-bind="value: value" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: value" />
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 3 === Type -->
|
||||
<input type="password" data-bind="value: value" />
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: value" />
|
||||
<!-- /ko -->
|
||||
<!-- ko if: 2 === Type -->
|
||||
<textarea data-bind="value: value"></textarea>
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -45,15 +45,26 @@
|
|||
Current password
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: adminPassword, valueUpdate: 'afterkeydown'" />
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: adminPassword, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="control-group" data-bind="css: {'error': adminPasswordNewError}">
|
||||
<label class="control-label">
|
||||
New password
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: adminPasswordNew, valueUpdate: 'afterkeydown'" />
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: adminPasswordNew, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': adminPasswordNewError}">
|
||||
<label class="control-label">
|
||||
Repeat new password
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: adminPasswordNew2, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@
|
|||
Client ID
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: googleClientID, saveTrigger: googleTrigger1" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: googleClientID, saveTrigger: googleTrigger1" />
|
||||
<div data-bind="saveTrigger: googleTrigger1"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -31,7 +32,8 @@
|
|||
Client Secret
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: googleClientSecret, saveTrigger: googleTrigger2" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: googleClientSecret, saveTrigger: googleTrigger2" />
|
||||
<div data-bind="saveTrigger: googleTrigger2"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -51,7 +53,8 @@
|
|||
App ID
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: facebookAppID, saveTrigger: facebookTrigger1" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: facebookAppID, saveTrigger: facebookTrigger1" />
|
||||
<div data-bind="saveTrigger: facebookTrigger1"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -60,7 +63,8 @@
|
|||
App Secret
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: facebookAppSecret, saveTrigger: facebookTrigger2" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: facebookAppSecret, saveTrigger: facebookTrigger2" />
|
||||
<div data-bind="saveTrigger: facebookTrigger2"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -80,7 +84,8 @@
|
|||
Consumer Key
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: twitterConsumerKey, saveTrigger: twitterTrigger1" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: twitterConsumerKey, saveTrigger: twitterTrigger1" />
|
||||
<div data-bind="saveTrigger: twitterTrigger1"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -89,7 +94,8 @@
|
|||
Consumer Secret
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: twitterConsumerSecret, saveTrigger: twitterTrigger2" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: twitterConsumerSecret, saveTrigger: twitterTrigger2" />
|
||||
<div data-bind="saveTrigger: twitterTrigger2"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -109,7 +115,8 @@
|
|||
Api Key
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="span5" data-bind="value: dropboxApiKey, saveTrigger: dropboxTrigger1" />
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: dropboxApiKey, saveTrigger: dropboxTrigger1" />
|
||||
<div data-bind="saveTrigger: dropboxTrigger1"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
{{INCLUDE/TopControlGroup/PLACE}}
|
||||
<div class="control-group" data-bind="css: {'error': emailError}">
|
||||
<div class="input-append">
|
||||
<input class="i18n inputEmail span4" type="email" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
<input type="email" class="i18n inputEmail span4" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: email, hasFocus: emailFocus" data-i18n-placeholder="LOGIN/LABEL_EMAIL" />
|
||||
<span class="add-on">
|
||||
<i class="icon-mail"></i>
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': loginError}, visible: allowCustomLogin()">
|
||||
<div class="input-append">
|
||||
<input class="i18n inputLogin span4" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
<input type="email" class="i18n inputLogin span4" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: login, hasFocus: loginFocus" data-i18n-placeholder="LOGIN/LABEL_LOGIN" />
|
||||
<span class="add-on">
|
||||
<i class="icon-user"></i>
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordError}">
|
||||
<div class="input-append">
|
||||
<input class="i18n inputPassword span4" type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
<input type="password" class="i18n inputPassword span4" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: password" data-i18n-placeholder="LOGIN/LABEL_PASSWORD" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
</div>
|
||||
<div class="control-group" data-bind="visible: additionalCode.visibility(), css: {'error': additionalCode.error}">
|
||||
<div class="input-append">
|
||||
<input class="i18n inputAdditionalCode span4" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
<input type="text" class="i18n inputAdditionalCode span4" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: additionalCode, hasFocus: additionalCode.focused" data-i18n-placeholder="LOGIN/LABEL_VERIFICATION_CODE" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
|
|
@ -75,37 +75,37 @@
|
|||
<span class="i18n" data-i18n-text="LOGIN/LABEL_SIGN_ME"></span>
|
||||
</label>
|
||||
<div class="pull-right">
|
||||
<div class="btn-group" data-bind="visible: socialLoginEnabled() || allowLanguagesOnLogin()">
|
||||
<a class="btn dropdown-toggle buttonLoginMore" data-toggle="dropdown">
|
||||
<div class="btn-group dropdown" data-bind="registrateBootstrapDropdown: true, visible: socialLoginEnabled() || allowLanguagesOnLogin()">
|
||||
<a id="login-more-dropdown-id" href="#" tabindex="-1" class="btn dropdown-toggle buttonLoginMore" data-toggle="dropdown">
|
||||
<i data-bind="css: langRequest() ? 'icon-spinner animated' : 'icon-list'"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu g-ui-menu">
|
||||
<ul class="dropdown-menu g-ui-menu" tabindex="-1" role="menu" aria-labelledby="login-more-dropdown-id">
|
||||
{{INCLUDE/MenuDropdownTop/PLACE}}
|
||||
<li class="e-item" data-bind="visible: facebookLoginEnabled">
|
||||
<a class="e-link" data-bind="command: facebookCommand">
|
||||
<li class="e-item" role="presentation" data-bind="visible: facebookLoginEnabled">
|
||||
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="command: facebookCommand">
|
||||
<i class="icon-facebook-alt"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="LOGIN/TITLE_SIGN_IN_FACEBOOK"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item" data-bind="visible: googleLoginEnabled">
|
||||
<a class="e-link" data-bind="command: googleCommand">
|
||||
<li class="e-item" role="presentation" data-bind="visible: googleLoginEnabled">
|
||||
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="command: googleCommand">
|
||||
<i class="icon-google"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="LOGIN/TITLE_SIGN_IN_GOOGLE"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="e-item" data-bind="visible: twitterLoginEnabled">
|
||||
<a class="e-link" data-bind="command: twitterCommand">
|
||||
<li class="e-item" role="presentation" data-bind="visible: twitterLoginEnabled">
|
||||
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="command: twitterCommand">
|
||||
<i class="icon-twitter"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="LOGIN/TITLE_SIGN_IN_TWITTER"></span>
|
||||
</a>
|
||||
</li>
|
||||
{{INCLUDE/MenuDropdownMiddle/PLACE}}
|
||||
<li class="divider" data-bind="visible: socialLoginEnabled() && allowLanguagesOnLogin()"></li>
|
||||
<li class="e-item" data-bind="visible: allowLanguagesOnLogin">
|
||||
<a class="e-link" data-bind="click: selectLanguage">
|
||||
<li class="divider" role="presentation" data-bind="visible: socialLoginEnabled() && allowLanguagesOnLogin()"></li>
|
||||
<li class="e-item" role="presentation" data-bind="visible: allowLanguagesOnLogin">
|
||||
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="click: selectLanguage">
|
||||
<label class="flag-selector">
|
||||
<span class="flag-wrapper">
|
||||
<span data-bind="css: 'flag flag-' + mainLanguage()" style=""></span>
|
||||
|
|
|
|||
|
|
@ -111,7 +111,9 @@
|
|||
<div class="second-toolbar thm-message-list-top-toolbar">
|
||||
<div class="form-inline">
|
||||
<div class="input-append pull-right">
|
||||
<input class="i18n span4 inputSearch" type="text" tabindex="-1" placeholder="" data-i18n-placeholder="SEARCH/MAIN_INPUT_PLACEHOLDER" data-bind="value: inputProxyMessageListSearch, onEnter: searchEnterAction, hasfocus: inputMessageListSearchFocus" />
|
||||
<input type="search" class="i18n span4 inputSearch" tabindex="-1"
|
||||
placeholder="Search" autocorrect="off" autocapitalize="off"
|
||||
data-i18n-placeholder="SEARCH/MAIN_INPUT_PLACEHOLDER" data-bind="value: inputProxyMessageListSearch, onEnter: searchEnterAction, hasfocus: inputMessageListSearchFocus" />
|
||||
<a class="btn buttonMoreSearch" data-bind="click: advancedSearchClick">
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -239,7 +239,9 @@
|
|||
|
||||
<span class="i18n" data-i18n-text="MESSAGE/PGP_ENCRYPTED_MESSAGE_DESC" data-bind="click: function() { decryptPgpEncryptedMessage(message()); }"></span>
|
||||
|
||||
<input type="password" class="i18n span3 inputPgpPassword" style="margin-bottom: 0" data-i18n-placeholder="MESSAGE/PGP_PASSWORD_INPUT_PLACEHOLDER" data-bind="value: viewPgpPassword, onEnter: function() { decryptPgpEncryptedMessage(message()); }" />
|
||||
<input type="password" class="i18n span3 inputPgpPassword"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="margin-bottom: 0" data-i18n-placeholder="MESSAGE/PGP_PASSWORD_INPUT_PLACEHOLDER" data-bind="value: viewPgpPassword, onEnter: function() { decryptPgpEncryptedMessage(message()); }" />
|
||||
</div>
|
||||
<div class="attachmentsPlace" data-bind="visible: message() && message().hasVisibleAttachments()">
|
||||
<ul class="attachmentList" data-bind="foreach: message() ? message().attachments() : []">
|
||||
|
|
|
|||
|
|
@ -23,7 +23,8 @@
|
|||
Subscription Key
|
||||
</label>
|
||||
<div class="controls ">
|
||||
<input type="text" class="span5" data-bind="visible: !activateProcess() && !activationSuccessed(), value: key, valueUpdate: 'afterkeydown', hasFocus: key.focus"></input>
|
||||
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="visible: !activateProcess() && !activationSuccessed(), value: key, valueUpdate: 'afterkeydown', hasFocus: key.focus"></input>
|
||||
<h4 class="help-inline" style="margin-top: 5px;" data-bind="text: key, visible: activateProcess() || activationSuccessed()"></h4>
|
||||
<div class="help-block" data-bind="text: activateText"></div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -17,21 +17,21 @@
|
|||
<div class="control-group" data-bind="css: {'error': emailError}">
|
||||
<label class="i18n control-label" data-i18n-text="LOGIN/LABEL_EMAIL"></label>
|
||||
<div class="controls">
|
||||
<input class="inputEmail input-large" type="email" autocomplete="off"
|
||||
<input type="email" class="inputEmail input-large" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: email, valueUpdate: 'afterkeydown', onEnter: addAccountCommand, hasfocus: emailFocus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': loginError}, visible: allowCustomLogin()">
|
||||
<label class="i18n control-label" data-i18n-text="LOGIN/LABEL_LOGIN"></label>
|
||||
<div class="controls">
|
||||
<input class="inputLogin input-large" type="text" autocomplete="off"
|
||||
<input type="email" class="inputLogin input-large" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: login, onEnter: addAccountCommand, hasfocus: loginFocus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordError}">
|
||||
<label class="i18n control-label" data-i18n-text="LOGIN/LABEL_PASSWORD"></label>
|
||||
<div class="controls">
|
||||
<input class="inputPassword input-large" type="password" autocomplete="off"
|
||||
<input type="password" class="inputPassword input-large" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: password, onEnter: addAccountCommand" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@
|
|||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_FROM"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputFrom" type="text" data-bind="value: from, onEnter: searchCommand, hasfocus: fromFocus, onEsc: cancelCommand" />
|
||||
<input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: from, onEnter: searchCommand, hasfocus: fromFocus, onEsc: cancelCommand" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
@ -24,7 +25,8 @@
|
|||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_TO"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputFrom" type="text" data-bind="value: to, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
<input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: to, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
@ -32,7 +34,8 @@
|
|||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_SUBJECT"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputFrom" type="text" data-bind="value: subject, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
<input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: subject, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
@ -40,7 +43,8 @@
|
|||
<span class="i18n" data-i18n-text="SEARCH/LABEL_ADV_TEXT"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputFrom" type="text" data-bind="value: text, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
<input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: text, onEnter: searchCommand, onEsc: cancelCommand" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
</label>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" data-bind="emailsTags: to" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: to" />
|
||||
<span class="help-block error-desc" data-bind="visible: emptyToError">
|
||||
<span class="i18n" data-i18n-text="COMPOSE/EMPTY_TO_ERROR_DESC"></span>
|
||||
</span>
|
||||
|
|
@ -68,7 +68,7 @@
|
|||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_CC"></span>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" data-bind="emailsTags: cc" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: cc" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row bcc-row" data-bind="visible: showCcAndBcc">
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_BCC"></span>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" data-bind="emailsTags: bcc" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: bcc" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row reply-to-row" data-bind="visible: false">
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_REPLY_TO"></span>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" data-bind="emailsTags: replyTo" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: replyTo" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row">
|
||||
|
|
@ -92,7 +92,7 @@
|
|||
<span class="i18n" data-i18n-text="COMPOSE/TITLE_SUBJECT"></span>
|
||||
</div>
|
||||
<div class="e-cell e-value">
|
||||
<input type="text" size="70" data-bind="value: subject, valueUpdate: 'afterkeydown'" />
|
||||
<input type="text" size="70" autocomplete="off" data-bind="value: subject, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="e-row">
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<div class="control-group">
|
||||
<label class="i18n control-label" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/LABEL_PASSWORD"></label>
|
||||
<div class="controls">
|
||||
<input class="inputPassword input-large" type="password" autocomplete="off"
|
||||
<input type="password" class="inputPassword input-large" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: password, hasfocus: password.focus, onEnter: doCommand" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -67,7 +67,8 @@
|
|||
</div>
|
||||
<div class="modal-body" style="position: relative">
|
||||
<div class="b-list-toopbar">
|
||||
<input class="i18n span3 e-search" type="text" placeholder="Search" data-i18n-placeholder="CONTACTS/SEARCH_INPUT_PLACEHOLDER" data-bind="value: search" />
|
||||
<input type="search" class="i18n span3 e-search" placeholder="Search" autocorrect="off" autocapitalize="off"
|
||||
data-i18n-placeholder="CONTACTS/SEARCH_INPUT_PLACEHOLDER" data-bind="value: search" />
|
||||
</div>
|
||||
<div class="b-list-content g-ui-user-select-none" data-bind="nano: true, css: {'hideContactListCheckbox': !useCheckboxesInList()}">
|
||||
<div class="content g-scrollbox">
|
||||
|
|
@ -127,7 +128,9 @@
|
|||
<div class="controls fix-width" data-bind="foreach: viewPropertiesNames">
|
||||
<div class="property-line">
|
||||
<span class="contactValueStatic" data-bind="text: value" />
|
||||
<input type="text" class="contactValueInput" placeholder="" data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup', attr: {'placeholder': placeholderValue}" />
|
||||
<input type="text" class="contactValueInput" placeholder=""
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup', attr: {'placeholder': placeholderValue}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -139,7 +142,9 @@
|
|||
<div data-bind="foreach: viewPropertiesEmails">
|
||||
<div class="property-line">
|
||||
<span class="contactValueStatic" data-bind="text: value" />
|
||||
<input type="email" class="contactValueInput" data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup'" />
|
||||
<input type="email" class="contactValueInput"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup'" />
|
||||
</div>
|
||||
</div>
|
||||
<a href="javascript:void(0);" class="g-ui-link add-link i18n" data-bind="visible: !viewReadOnly(), click: addNewEmail" data-i18n-text="CONTACTS/LINK_ADD_EMAIL"></a>
|
||||
|
|
@ -153,7 +158,9 @@
|
|||
<div data-bind="foreach: viewPropertiesPhones">
|
||||
<div class="property-line">
|
||||
<span class="contactValueStatic" data-bind="text: value" />
|
||||
<input type="text" class="contactValueInput" data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup'" />
|
||||
<input type="text" class="contactValueInput"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup'" />
|
||||
</div>
|
||||
</div>
|
||||
<a href="javascript:void(0);" class="g-ui-link add-link i18n" data-bind="visible: !viewReadOnly(), click: addNewPhone" data-i18n-text="CONTACTS/LINK_ADD_PHONE"></a>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@
|
|||
<div class="span8">
|
||||
Name <span style="color: #aaa">(wildcard supported)</span>
|
||||
<br />
|
||||
<input type="text" data-bind="value: name, hasfocus: name.focused, valueUpdate: 'afterkeydown'" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: name, hasfocus: name.focused, valueUpdate: 'afterkeydown'" />
|
||||
<span class="error-desc" data-bind="text: savingError"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -22,12 +23,14 @@
|
|||
</div>
|
||||
Server
|
||||
<br />
|
||||
<input type="text" data-bind="value: imapServer, valueUpdate: 'afterkeydown', hasfocus: imapServerFocus" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: imapServer, valueUpdate: 'afterkeydown', hasfocus: imapServerFocus" />
|
||||
<br />
|
||||
<br />
|
||||
Port
|
||||
<br />
|
||||
<input type="text" data-bind="value: imapPort, valueUpdate: 'afterkeydown'" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: imapPort, valueUpdate: 'afterkeydown'" />
|
||||
<br />
|
||||
<br />
|
||||
Secure
|
||||
|
|
@ -51,12 +54,14 @@
|
|||
</div>
|
||||
Server
|
||||
<br />
|
||||
<input type="text" data-bind="value: smtpServer, valueUpdate: 'afterkeydown', hasfocus: smtpServerFocus" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: smtpServer, valueUpdate: 'afterkeydown', hasfocus: smtpServerFocus" />
|
||||
<br />
|
||||
<br />
|
||||
Port
|
||||
<br />
|
||||
<input type="text" data-bind="value: smtpPort, valueUpdate: 'afterkeydown'" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: smtpPort, valueUpdate: 'afterkeydown'" />
|
||||
<br />
|
||||
<br />
|
||||
Secure
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@
|
|||
<span class="i18n" data-i18n-text="POPUPS_CREATE_FOLDER/LABEL_NAME"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputName" type="text" data-bind="value: folderName, hasfocus: folderName.focused, valueUpdate: 'afterkeydown', onEnter: createFolder" />
|
||||
<input type="text" class="uiInput inputName" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: folderName, hasfocus: folderName.focused, valueUpdate: 'afterkeydown', onEnter: createFolder" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
|
|||
|
|
@ -12,21 +12,24 @@
|
|||
<div class="control-group" data-bind="css: {'error': email.error}">
|
||||
<label class="i18n control-label" data-i18n-text="POPUPS_GENERATE_OPEN_PGP_KEYS/LABEL_EMAIL"></label>
|
||||
<div class="controls">
|
||||
<input class="inputEmail input-large" type="email" autocomplete="off"
|
||||
<input type="email" class="inputEmail input-large"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: email, hasfocus: email.focus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="i18n control-label" data-i18n-text="POPUPS_GENERATE_OPEN_PGP_KEYS/LABEL_NAME"></label>
|
||||
<div class="controls">
|
||||
<input class="inputName input-large" type="text" autocomplete="off"
|
||||
<input type="text" class="inputName input-large"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: name" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="i18n control-label" data-i18n-text="POPUPS_GENERATE_OPEN_PGP_KEYS/LABEL_PASSWORD"></label>
|
||||
<div class="controls">
|
||||
<input class="inputPassword input-large" type="password" autocomplete="off"
|
||||
<input type="password" class="inputPassword input-large"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: password" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,8 @@
|
|||
<div class="control-group" data-bind="visible: !owner(), css: {'error': email.hasError}">
|
||||
<label class="i18n control-label" data-i18n-text="POPUPS_IDENTITIES/LABEL_EMAIL"></label>
|
||||
<div class="controls">
|
||||
<input class="inputEmail input-large" type="email" autocomplete="off"
|
||||
<input type="email" class="inputEmail input-large"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: email, onEnter: addOrEditIdentityCommand, hasfocus: email.focused" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -30,21 +31,24 @@
|
|||
<div class="control-group">
|
||||
<label class="i18n control-label" data-i18n-text="POPUPS_IDENTITIES/LABEL_NAME"></label>
|
||||
<div class="controls">
|
||||
<input class="inputName input-large" type="text" autocomplete="off"
|
||||
<input type="text" class="inputName input-large"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: name, onEnter: addOrEditIdentityCommand, hasfocus: name.focused" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': replyTo.hasError}" style="display: none">
|
||||
<label class="i18n control-label" data-i18n-text="POPUPS_IDENTITIES/LABEL_REPLY_TO"></label>
|
||||
<div class="controls">
|
||||
<input class="inputReplyTo input-large" type="text" autocomplete="off"
|
||||
<input type="text" class="inputReplyTo input-large"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: replyTo, onEnter: addOrEditIdentityCommand, hasfocus: replyTo.focused" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': bcc.hasError}" style="display: none">
|
||||
<label class="i18n control-label" data-i18n-text="POPUPS_IDENTITIES/LABEL_BCC"></label>
|
||||
<div class="controls">
|
||||
<input class="inputBcc input-large" type="text" autocomplete="off"
|
||||
<input type="text" class="inputBcc input-large"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: bcc, onEnter: addOrEditIdentityCommand, hasfocus: bcc.focused" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@
|
|||
<span class="i18n" data-i18n-text="POPUPS_TWO_FACTOR_TEST/LABEL_CODE"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="uiInput inputName" type="text" data-bind="value: code, hasfocus: code.focused, valueUpdate: 'afterkeydown', onEnter: testCode" />
|
||||
<input type="text" class="uiInput inputName"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: code, hasfocus: code.focused, valueUpdate: 'afterkeydown', onEnter: testCode" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_CURRENT_PASSWORD"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: currentPassword, valueUpdate: 'afterkeydown'" />
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: currentPassword, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordMismatch}">
|
||||
|
|
@ -18,7 +19,8 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_NEW_PASSWORD"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: newPassword, valueUpdate: 'afterkeydown'" />
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: newPassword, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordMismatch}">
|
||||
|
|
@ -26,7 +28,8 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_REPEAT_PASSWORD"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: newPassword2, valueUpdate: 'afterkeydown'" />
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: newPassword2, valueUpdate: 'afterkeydown'" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
|
|||
|
|
@ -32,7 +32,9 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_AB_URL"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="input-xxlarge" type="text" data-bind="value: contactsSyncUrl" placeholder="https://" />
|
||||
<input type="text" class="input-xxlarge"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: contactsSyncUrl" placeholder="https://" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
@ -40,7 +42,8 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_USER"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" data-bind="value: contactsSyncUser" />
|
||||
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: contactsSyncUser" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
@ -48,7 +51,8 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_PASSWORD"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="password" data-bind="value: contactsSyncPass" />
|
||||
<input type="password" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: contactsSyncPass" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,10 @@
|
|||
<span class="folder-name" data-bind="text: name, visible: !edited(), css: { 'e-action': canBeEdited, 'can-be-edited': canBeEdited }, click: function (oFolder) { $root.folderForEdit(oFolder); }"></span>
|
||||
|
||||
<span class="folder-system-name" data-bind="text: manageFolderSystemName, visible: isSystemFolder"></span>
|
||||
<input type="text" class="folder-name-input" data-bind="value: nameForEdit, visible: edited, hasfocus: edited, onEnter: function () { $root.folderEditOnEnter($data); }, onEsc: function () { $root.folderEditOnEsc($data); }" />
|
||||
<input type="text" class="folder-name-input"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: nameForEdit, visible: edited, hasfocus: edited, onEnter: function () { $root.folderEditOnEnter($data); }, onEsc: function () { $root.folderEditOnEsc($data); }" />
|
||||
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function() { $root.deleteFolder($data); }">
|
||||
<span class="i18n" data-i18n-text="SETTINGS_FOLDERS/DELETING_ASK"></span>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -23,13 +23,13 @@
|
|||
</label>
|
||||
<div class="controls">
|
||||
<label for="richTextEditorTypeID1">
|
||||
<input id="richTextEditorTypeID1" type="radio" name="richTextEditorType" value="Html" data-bind="checked: editorDefaultType" style="position: absolute; left: -10000px" />
|
||||
<input type="radio" id="richTextEditorTypeID1" name="richTextEditorType" value="Html" data-bind="checked: editorDefaultType" style="position: absolute; left: -10000px" />
|
||||
<i data-bind="css: 'Html' === editorDefaultType() ? ' icon-radio-checked' : 'icon-radio-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_EDITOR_HTML_AS_DEFAULT"></span>
|
||||
</label>
|
||||
<label for="richTextEditorTypeID2">
|
||||
<input id="richTextEditorTypeID2" type="radio" name="richTextEditorType" value="Plain" data-bind="checked: editorDefaultType" style="position: absolute; left: -10000px" />
|
||||
<input type="radio" id="richTextEditorTypeID2" name="richTextEditorType" value="Plain" data-bind="checked: editorDefaultType" style="position: absolute; left: -10000px" />
|
||||
<i data-bind="css: 'Plain' === editorDefaultType() ? ' icon-radio-checked' : 'icon-radio-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_EDITOR_PLAIN_AS_DEFAULT"></span>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LABEL_DISPLAY_NAME"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="input-xlarge" type="text" data-bind="value: displayName, saveTrigger: displayNameTrigger" />
|
||||
<input type="text" class="input-xlarge"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: displayName, saveTrigger: displayNameTrigger" />
|
||||
<div data-bind="saveTrigger: displayNameTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -17,7 +19,9 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LABEL_REPLY_TO"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="input-xlarge" type="text" data-bind="value: replyTo" />
|
||||
<input type="text" class="input-xlarge"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: replyTo" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_IDENTITY/LABEL_DISPLAY_NAME"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="input-xlarge" type="text" data-bind="value: displayName, saveTrigger: displayNameTrigger" />
|
||||
<input type="text" class="input-xlarge"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: displayName, saveTrigger: displayNameTrigger" />
|
||||
<div data-bind="saveTrigger: displayNameTrigger"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -17,7 +19,9 @@
|
|||
<span class="i18n" data-i18n-text="SETTINGS_IDENTITY/LABEL_REPLY_TO"></span>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input class="input-xlarge" type="text" data-bind="value: replyTo" />
|
||||
<input type="text" class="input-xlarge"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: replyTo" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
|
|
|
|||
|
|
@ -23,13 +23,13 @@
|
|||
</label>
|
||||
<div class="controls">
|
||||
<label for="customThemeTypeID1">
|
||||
<input id="customThemeTypeID1" type="radio" name="customThemeType" value="Light" data-bind="checked: customThemeType" style="position: absolute; left: -10000px" />
|
||||
<input type="radio" id="customThemeTypeID1" name="customThemeType" value="Light" data-bind="checked: customThemeType" style="position: absolute; left: -10000px" />
|
||||
<i data-bind="css: 'Light' === customThemeType() ? ' icon-radio-checked' : 'icon-radio-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LABEL_CUSTOM_TYPE_LIGHT"></span>
|
||||
</label>
|
||||
<label for="customThemeTypeID2">
|
||||
<input id="customThemeTypeID2" type="radio" name="customThemeType" value="Dark" data-bind="checked: customThemeType" style="position: absolute; left: -10000px" />
|
||||
<input type="radio" id="customThemeTypeID2" name="customThemeType" value="Dark" data-bind="checked: customThemeType" style="position: absolute; left: -10000px" />
|
||||
<i data-bind="css: 'Dark' === customThemeType() ? ' icon-radio-checked' : 'icon-radio-unchecked'"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LABEL_CUSTOM_TYPE_DARK"></span>
|
||||
|
|
|
|||
|
|
@ -48,7 +48,13 @@
|
|||
<span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_SETTINGS"></span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="e-item" role="presentation">
|
||||
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="click: settingsHelp">
|
||||
<i class="icon-help"></i>
|
||||
|
||||
<span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_HELP"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider" role="presentation"></li>
|
||||
<li class="e-item" role="presentation">
|
||||
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="click: logoutClick">
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Mit Twitter anmelden"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Konto hinzufügen"
|
||||
BUTTON_SETTINGS = "Einstellungen"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Abmelden"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Sign In using Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Add Account"
|
||||
BUTTON_SETTINGS = "Settings"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Logout"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Ingresar usando Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Añadir cuenta"
|
||||
BUTTON_SETTINGS = "Configuraciones"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Salir"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Se connecter avec Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Ajouter un compte"
|
||||
BUTTON_SETTINGS = "Paramètres"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Déconnexion"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Belépés Twitter használatával"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Új fiók"
|
||||
BUTTON_SETTINGS = "Beállítások"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Kilépés"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Innskráning með Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Bæta við aðgangi"
|
||||
BUTTON_SETTINGS = "Stillingar"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Útskrá"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Accedi usando Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Aggiungi account"
|
||||
BUTTON_SETTINGS = "Impostazioni"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Esci"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Twitterアカウントでログイン"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "アカウントを追加"
|
||||
BUTTON_SETTINGS = "アカウント設定"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "ログアウト"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "트위터 계정으로 로그인"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "계정 추가"
|
||||
BUTTON_SETTINGS = "설정"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "로그아웃"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Ielogoties izmantojot Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Pievienot kontu"
|
||||
BUTTON_SETTINGS = "Uzstādijumi"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Izlogoties"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Aanmelden met Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Account toevoegen"
|
||||
BUTTON_SETTINGS = "Instellingen"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Afmelden"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Logg inn MED Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Legg til konto"
|
||||
BUTTON_SETTINGS = "Innstillinger"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Logg ut"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Zaloguj się przez Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Dodaj konto"
|
||||
BUTTON_SETTINGS = "Ustawienia"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Wyloguj się"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +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_LOGOUT = "Sair"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +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_LOGOUT = "Sair"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Войти, используя Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Adaugă un cont"
|
||||
BUTTON_SETTINGS = "Opțiuni"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Deconectare"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Войти, используя Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Добавить ещё аккаунт"
|
||||
BUTTON_SETTINGS = "Настройки"
|
||||
BUTTON_HELP = "Помощь"
|
||||
BUTTON_LOGOUT = "Выйти"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Prihlásiť pomocou Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "Pridať Účet"
|
||||
BUTTON_SETTINGS = "Nastavenia"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "Odhlásiť"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Sign In using Twitter"
|
|||
[TOP_TOOLBAR]
|
||||
BUTTON_ADD_ACCOUNT = "添加账户"
|
||||
BUTTON_SETTINGS = "设置"
|
||||
BUTTON_HELP = "Help"
|
||||
BUTTON_LOGOUT = "注销"
|
||||
|
||||
[SEARCH]
|
||||
|
|
|
|||
|
|
@ -1504,6 +1504,9 @@ table {
|
|||
.icon-export:before {
|
||||
content: "\e06a";
|
||||
}
|
||||
.icon-help:before {
|
||||
content: "\e06b";
|
||||
}
|
||||
|
||||
/** initial setup **/
|
||||
.nano {
|
||||
|
|
|
|||
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
Binary file not shown.
|
|
@ -114,4 +114,5 @@
|
|||
<glyph unicode="" d="M341 247c0 3 0 5-2 7-2 1-4 2-6 2l-60 0 0 94c0 2-1 4-2 6-2 2-4 2-6 2l-52 0c-2 0-4 0-6-2-1-2-2-4-2-6l0-94-60 0c-2 0-4-1-6-3-2-1-2-3-2-6 0-2 0-4 2-6l94-94c1-1 3-2 6-2 2 0 4 1 6 2l94 94c1 2 2 4 2 6z m171-59c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
|
||||
<glyph unicode="" d="M375 256c0-5-2-9-6-13l-155-155c-4-4-8-6-13-6-5 0-9 2-13 6-3 3-5 8-5 13l0 82-128 0c-5 0-9 2-13 5-4 4-5 8-5 13l0 110c0 5 1 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 5 13 4 4 8 6 13 6 5 0 9-2 13-6l155-155c4-4 6-8 6-13z m100 101l0-202c0-22-8-42-24-58-16-16-35-24-58-24l-91 0c-3 0-5 1-7 3-2 2-2 4-2 6 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c13 0 23 4 32 13 9 9 14 20 14 32l0 202c0 12-5 23-14 32-9 9-19 13-32 13l-89 0c0 0-1 0-3 1-2 0-4 0-4 0 0 1 0 1-2 2-1 1-2 2-2 3 0 1 0 2 0 3 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c23 0 42-8 58-24 16-16 24-36 24-58z"/>
|
||||
<glyph unicode="" d="M201 101c0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-23 0-42 8-59 24-16 16-24 36-24 58l0 202c0 22 8 42 24 58 17 16 36 24 59 24l91 0c2 0 5-1 6-3 2-2 3-4 3-6 0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-13 0-24-4-33-13-9-9-13-20-13-32l0-202c0-12 4-23 13-32 9-9 20-13 33-13l89 0c0 0 1 0 3-1 2 0 3 0 3 0 0-1 1-1 3-2 1-1 2-2 2-3-1-1 0-2 0-3z m265 155c0-5-2-9-5-13l-156-155c-3-4-7-6-12-6-5 0-10 2-13 6-4 3-6 8-6 13l0 82-128 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 110c0 5 2 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 6 13 3 4 8 6 13 6 5 0 9-2 12-6l156-155c3-4 5-8 5-13z"/>
|
||||
<glyph unicode="" d="M253 492c65 0 120-22 167-67 46-45 70-100 72-165 0-65-22-121-68-167-45-47-100-71-165-73-65 0-121 22-167 68-47 45-71 100-72 165-1 65 21 121 67 167 46 47 101 71 166 72m0-31c-32 0-63-8-91-23 0 0 32-53 32-53 19 10 39 14 62 14 23 0 43-4 62-14 0 0 32 53 32 53-30 16-62 23-97 23m-126-267c-10 20-14 41-14 62 0 22 4 43 14 63 0 0-52 32-52 32-16-30-24-62-24-97 1-33 9-64 24-92 0 0 52 32 52 32m132-143c34 2 64 9 91 24 0 0-32 53-32 53-20-10-41-15-62-15-21 0-42 5-62 15 0 0-32-53-32-53 29-16 62-24 97-24m-3 92c31 0 58 11 80 34 22 22 33 48 33 79 0 31-11 58-33 80-22 22-49 33-80 33-31 0-58-11-80-33-22-22-33-49-33-80 0-31 11-57 33-79 22-23 49-34 80-34m129 51c0 0 53-32 53-32 16 33 23 65 23 97 0 33-8 64-23 92 0 0-53-32-53-32 10-20 14-41 14-63 0-21-4-42-14-62"/>
|
||||
</font></defs></svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Binary file not shown.
Binary file not shown.
|
|
@ -6224,6 +6224,8 @@ function AdminSecurity()
|
|||
this.adminLogin = ko.observable(RL.settingsGet('AdminLogin'));
|
||||
this.adminPassword = ko.observable('');
|
||||
this.adminPasswordNew = ko.observable('');
|
||||
this.adminPasswordNew2 = ko.observable('');
|
||||
this.adminPasswordNewError = ko.observable(false);
|
||||
|
||||
this.adminPasswordUpdateError = ko.observable(false);
|
||||
this.adminPasswordUpdateSuccess = ko.observable(false);
|
||||
|
|
@ -6236,10 +6238,23 @@ function AdminSecurity()
|
|||
this.adminPasswordNew.subscribe(function () {
|
||||
this.adminPasswordUpdateError(false);
|
||||
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())
|
||||
{
|
||||
this.adminPasswordNewError(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
this.adminPasswordUpdateError(false);
|
||||
this.adminPasswordUpdateSuccess(false);
|
||||
|
||||
|
|
@ -6249,7 +6264,7 @@ function AdminSecurity()
|
|||
});
|
||||
|
||||
}, function () {
|
||||
return '' !== this.adminPassword() && '' !== this.adminPasswordNew();
|
||||
return '' !== this.adminPassword() && '' !== this.adminPasswordNew() && '' !== this.adminPasswordNew2();
|
||||
});
|
||||
|
||||
this.onNewAdminPasswordResponse = _.bind(this.onNewAdminPasswordResponse, this);
|
||||
|
|
@ -6263,6 +6278,7 @@ AdminSecurity.prototype.onNewAdminPasswordResponse = function (sResult, oData)
|
|||
{
|
||||
this.adminPassword('');
|
||||
this.adminPasswordNew('');
|
||||
this.adminPasswordNew2('');
|
||||
|
||||
this.adminPasswordUpdateSuccess(true);
|
||||
}
|
||||
|
|
@ -6297,6 +6313,7 @@ AdminSecurity.prototype.onHide = function ()
|
|||
{
|
||||
this.adminPassword('');
|
||||
this.adminPasswordNew('');
|
||||
this.adminPasswordNew2('');
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
4
rainloop/v/0.0.0/static/js/admin.min.js
vendored
4
rainloop/v/0.0.0/static/js/admin.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -11734,6 +11734,11 @@ AbstractSystemDropDownViewModel.prototype.settingsClick = function ()
|
|||
kn.setHash(RL.link().settings());
|
||||
};
|
||||
|
||||
AbstractSystemDropDownViewModel.prototype.settingsHelp = function ()
|
||||
{
|
||||
kn.showScreenPopup(PopupsKeyboardShortcutsHelpViewModel);
|
||||
};
|
||||
|
||||
AbstractSystemDropDownViewModel.prototype.addAccountClick = function ()
|
||||
{
|
||||
if (this.allowAddAccount)
|
||||
|
|
@ -11763,6 +11768,15 @@ AbstractSystemDropDownViewModel.prototype.onBuild = function ()
|
|||
self.accountMenuDropdownTrigger(true);
|
||||
}
|
||||
});
|
||||
|
||||
// shortcuts help
|
||||
key('shift+/', [Enums.KeyState.MessageList, Enums.KeyState.MessageView, Enums.KeyState.Settings], function () {
|
||||
if (self.viewModelVisibility())
|
||||
{
|
||||
kn.showScreenPopup(PopupsKeyboardShortcutsHelpViewModel);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -12719,12 +12733,6 @@ MailBoxMessageListViewModel.prototype.initShortcuts = function ()
|
|||
return false;
|
||||
});
|
||||
|
||||
// shortcuts help
|
||||
key('shift+/', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
|
||||
kn.showScreenPopup(PopupsKeyboardShortcutsHelpViewModel);
|
||||
return false;
|
||||
});
|
||||
|
||||
key('shift+f', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
|
||||
self.multyForwardCommand();
|
||||
return false;
|
||||
|
|
|
|||
6
rainloop/v/0.0.0/static/js/app.min.js
vendored
6
rainloop/v/0.0.0/static/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
vendors/fontastic/fonts/rainloop.eot
vendored
BIN
vendors/fontastic/fonts/rainloop.eot
vendored
Binary file not shown.
1
vendors/fontastic/fonts/rainloop.svg
vendored
1
vendors/fontastic/fonts/rainloop.svg
vendored
|
|
@ -114,4 +114,5 @@
|
|||
<glyph unicode="" d="M341 247c0 3 0 5-2 7-2 1-4 2-6 2l-60 0 0 94c0 2-1 4-2 6-2 2-4 2-6 2l-52 0c-2 0-4 0-6-2-1-2-2-4-2-6l0-94-60 0c-2 0-4-1-6-3-2-1-2-3-2-6 0-2 0-4 2-6l94-94c1-1 3-2 6-2 2 0 4 1 6 2l94 94c1 2 2 4 2 6z m171-59c0-29-10-53-30-73-20-20-44-30-72-30l-291 0c-32 0-61 12-84 35-23 24-35 52-35 85 0 23 6 44 19 64 12 19 29 34 50 44-1 5-1 9-1 11 0 38 14 70 40 97 27 26 59 40 97 40 28 0 53-8 76-23 23-16 40-36 50-62 13 11 28 17 44 17 19 0 35-7 49-20 13-14 20-30 20-49 0-13-4-26-11-37 23-5 42-17 57-36 15-18 22-39 22-63z"/>
|
||||
<glyph unicode="" d="M375 256c0-5-2-9-6-13l-155-155c-4-4-8-6-13-6-5 0-9 2-13 6-3 3-5 8-5 13l0 82-128 0c-5 0-9 2-13 5-4 4-5 8-5 13l0 110c0 5 1 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 5 13 4 4 8 6 13 6 5 0 9-2 13-6l155-155c4-4 6-8 6-13z m100 101l0-202c0-22-8-42-24-58-16-16-35-24-58-24l-91 0c-3 0-5 1-7 3-2 2-2 4-2 6 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c13 0 23 4 32 13 9 9 14 20 14 32l0 202c0 12-5 23-14 32-9 9-19 13-32 13l-89 0c0 0-1 0-3 1-2 0-4 0-4 0 0 1 0 1-2 2-1 1-2 2-2 3 0 1 0 2 0 3 0 1-1 3-1 6 0 3 0 6 0 8 0 2 1 4 1 6 0 3 1 5 3 6 1 1 3 2 6 2l91 0c23 0 42-8 58-24 16-16 24-36 24-58z"/>
|
||||
<glyph unicode="" d="M201 101c0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-23 0-42 8-59 24-16 16-24 36-24 58l0 202c0 22 8 42 24 58 17 16 36 24 59 24l91 0c2 0 5-1 6-3 2-2 3-4 3-6 0-1 0-3 0-6 1-3 1-6 1-8-1-2-1-4-1-6-1-3-2-5-3-6-2-1-4-2-6-2l-91 0c-13 0-24-4-33-13-9-9-13-20-13-32l0-202c0-12 4-23 13-32 9-9 20-13 33-13l89 0c0 0 1 0 3-1 2 0 3 0 3 0 0-1 1-1 3-2 1-1 2-2 2-3-1-1 0-2 0-3z m265 155c0-5-2-9-5-13l-156-155c-3-4-7-6-12-6-5 0-10 2-13 6-4 3-6 8-6 13l0 82-128 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 110c0 5 2 9 5 13 4 3 8 5 13 5l128 0 0 82c0 5 2 10 6 13 3 4 8 6 13 6 5 0 9-2 12-6l156-155c3-4 5-8 5-13z"/>
|
||||
<glyph unicode="" d="M253 492c65 0 120-22 167-67 46-45 70-100 72-165 0-65-22-121-68-167-45-47-100-71-165-73-65 0-121 22-167 68-47 45-71 100-72 165-1 65 21 121 67 167 46 47 101 71 166 72m0-31c-32 0-63-8-91-23 0 0 32-53 32-53 19 10 39 14 62 14 23 0 43-4 62-14 0 0 32 53 32 53-30 16-62 23-97 23m-126-267c-10 20-14 41-14 62 0 22 4 43 14 63 0 0-52 32-52 32-16-30-24-62-24-97 1-33 9-64 24-92 0 0 52 32 52 32m132-143c34 2 64 9 91 24 0 0-32 53-32 53-20-10-41-15-62-15-21 0-42 5-62 15 0 0-32-53-32-53 29-16 62-24 97-24m-3 92c31 0 58 11 80 34 22 22 33 48 33 79 0 31-11 58-33 80-22 22-49 33-80 33-31 0-58-11-80-33-22-22-33-49-33-80 0-31 11-57 33-79 22-23 49-34 80-34m129 51c0 0 53-32 53-32 16 33 23 65 23 97 0 33-8 64-23 92 0 0-53-32-53-32 10-20 14-41 14-63 0-21-4-42-14-62"/>
|
||||
</font></defs></svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
BIN
vendors/fontastic/fonts/rainloop.ttf
vendored
BIN
vendors/fontastic/fonts/rainloop.ttf
vendored
Binary file not shown.
BIN
vendors/fontastic/fonts/rainloop.woff
vendored
BIN
vendors/fontastic/fonts/rainloop.woff
vendored
Binary file not shown.
8
vendors/fontastic/icons-reference.html
vendored
8
vendors/fontastic/icons-reference.html
vendored
|
|
@ -473,6 +473,10 @@ h2{font-size:18px;padding:0 0 21px 5px;margin:45px 0 0 0;text-transform:uppercas
|
|||
<div data-icon="" class="icon"></div>
|
||||
<input type="text" readonly="readonly" value="&#xe06a;">
|
||||
</li>
|
||||
<li>
|
||||
<div data-icon="" class="icon"></div>
|
||||
<input type="text" readonly="readonly" value="&#xe06b;">
|
||||
</li>
|
||||
</ul>
|
||||
<h2>CSS mapping</h2>
|
||||
<ul class="glyphs css-mapping">
|
||||
|
|
@ -904,6 +908,10 @@ h2{font-size:18px;padding:0 0 21px 5px;margin:45px 0 0 0;text-transform:uppercas
|
|||
<div class="icon icon-export"></div>
|
||||
<input type="text" readonly="readonly" value="export">
|
||||
</li>
|
||||
<li>
|
||||
<div class="icon icon-help"></div>
|
||||
<input type="text" readonly="readonly" value="help">
|
||||
</li>
|
||||
</ul>
|
||||
</div><script type="text/javascript">
|
||||
(function() {
|
||||
|
|
|
|||
3
vendors/fontastic/styles.css
vendored
3
vendors/fontastic/styles.css
vendored
|
|
@ -359,3 +359,6 @@
|
|||
.icon-export:before {
|
||||
content: "\e06a";
|
||||
}
|
||||
.icon-help:before {
|
||||
content: "\e06b";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue