mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-06 16:07:03 +03:00
es5 -> es2015 (last stage)
Signature plugin fixes Add view decorator A large number of fixes
This commit is contained in:
parent
e88c193334
commit
17669b7be0
153 changed files with 21193 additions and 21115 deletions
|
|
@ -1,252 +1,342 @@
|
|||
|
||||
// mixins +++
|
||||
.thm-linear-gradient-mixin(@start, @end) when (iscolor(@start)) and (iscolor(@end)) {
|
||||
background-color: mix(@start, @end, 60%) !important;
|
||||
background-image: -moz-linear-gradient(top, @start, @end) !important; // FF 3.6+
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start), to(@end)) !important; // Safari 4+, Chrome 2+
|
||||
background-image: -webkit-linear-gradient(top, @start, @end) !important; // Safari 5.1+, Chrome 10+
|
||||
background-image: -o-linear-gradient(top, @start, @end !important); // Opera 11.10
|
||||
background-image: linear-gradient(to bottom, @start, @end) !important; // Standard, IE10
|
||||
background-repeat: repeat-x !important;
|
||||
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start),argb(@end))) !important; // IE9 and down
|
||||
}
|
||||
|
||||
.thm-border-radius(@radius) when (ispixel(@radius)) {
|
||||
-webkit-border-radius: @radius !important;
|
||||
-moz-border-radius: @radius !important;
|
||||
border-radius: @radius !important;
|
||||
}
|
||||
|
||||
.thm-box-shadow(@shadow) {
|
||||
-webkit-box-shadow: @shadow !important;
|
||||
-moz-box-shadow: @shadow !important;
|
||||
box-shadow: @shadow !important;
|
||||
}
|
||||
.thm-body-background-image(@value) when (isstring(@value)) {
|
||||
background-image: url("@{base}@{value}") !important;
|
||||
}
|
||||
.thm-body-background-image(@value) when not (isstring(@value)) {
|
||||
background-image: @value !important;
|
||||
}
|
||||
.thm-rgba-background-color(@simple, @rgba) when (@rgba = false) {
|
||||
background-color: @simple !important;
|
||||
}
|
||||
.thm-rgba-background-color(@simple, @rgba) when not (@rgba = false) {
|
||||
background-color: @simple !important;
|
||||
background-color: @rgba !important;
|
||||
}
|
||||
// --- mixins
|
||||
|
||||
.thm-body {
|
||||
color: @main-color;
|
||||
background-color: @main-background-color;
|
||||
background-size: @main-background-size;
|
||||
.thm-body-background-image(@main-background-image);
|
||||
}
|
||||
|
||||
.thm-loading {
|
||||
color: @loading-color !important;
|
||||
text-shadow: @loading-text-shadow !important;
|
||||
|
||||
.e-spinner .e-bounce {
|
||||
background-color: @loading-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-login-desc .desc {
|
||||
color: @loading-color !important;
|
||||
text-shadow: @loading-text-shadow !important;
|
||||
}
|
||||
|
||||
.thm-login {
|
||||
border: @login-border !important;
|
||||
.thm-rgba-background-color(@login-background-color, @login-rgba-background-color);
|
||||
.thm-linear-gradient-mixin(@login-gradient-start, @login-gradient-end);
|
||||
.thm-border-radius(@login-border-radius);
|
||||
.thm-box-shadow(@login-box-shadow);
|
||||
|
||||
&.submitting-pane.submitting {
|
||||
&:before{
|
||||
background: @spinner-background;
|
||||
.thm-border-radius(@login-border-radius);
|
||||
}
|
||||
&:after{
|
||||
border-top-color: @spinner-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.thm-login-text {
|
||||
color: @login-color !important;
|
||||
|
||||
.legend, .e-checkbox-icon, .g-ui-link, .social-button, .language-button {
|
||||
color: @login-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-powered, .thm-mobile-switcher {
|
||||
color: @powered-color;
|
||||
a {
|
||||
color: @powered-color;
|
||||
&:hover {
|
||||
color: lighten(@powered-color, 20%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.thm-languages {
|
||||
color: @languages-color;
|
||||
.flag-name {
|
||||
color: @languages-color;
|
||||
border-color: @languages-color;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu {
|
||||
color: @dropdown-menu-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item > .e-link {
|
||||
color: @dropdown-menu-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item.selected > .e-link {
|
||||
background-color: @dropdown-menu-selected-background-color !important;
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item > .e-link:hover, .g-ui-menu .e-item > .e-link:focus {
|
||||
color: @dropdown-menu-hover-color !important;
|
||||
background-color: @dropdown-menu-hover-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-hover-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item.disabled > .e-link, .g-ui-menu .e-item.disabled > .e-link:hover {
|
||||
color: @dropdown-menu-disabled-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-disabled-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-message-list-top-toolbar, .thm-message-list-bottom-toolbar {
|
||||
.thm-rgba-background-color(@message-list-toolbar-background-color, @message-list-toolbar-rgba-background-color);
|
||||
.thm-linear-gradient-mixin(@message-list-toolbar-gradient-start, @message-list-toolbar-gradient-end);
|
||||
}
|
||||
|
||||
.thm-folders .e-link {
|
||||
|
||||
color: @folders-disabled-color !important;
|
||||
|
||||
&.selectable {
|
||||
color: @folders-color !important;
|
||||
}
|
||||
|
||||
&.selectable:hover {
|
||||
color: @folders-hover-color !important;
|
||||
.thm-rgba-background-color(@folders-hover-background-color, @folders-hover-rgba-background-color);
|
||||
}
|
||||
|
||||
&.selectable.selected {
|
||||
color: @folders-selected-color !important;
|
||||
.thm-rgba-background-color(@folders-selected-background-color, @folders-selected-rgba-background-color);
|
||||
}
|
||||
|
||||
&.focused {
|
||||
color: @folders-focused-color !important;
|
||||
.thm-rgba-background-color(@folders-focused-background-color, @folders-focused-rgba-background-color);
|
||||
}
|
||||
|
||||
&.selectable.droppableHover {
|
||||
color: @folders-drop-color !important;
|
||||
.thm-rgba-background-color(@folders-drop-background-color, @folders-drop-rgba-background-color);
|
||||
}
|
||||
}
|
||||
|
||||
.thm-settings-menu .e-item {
|
||||
|
||||
.e-link {
|
||||
color: @settings-menu-disabled-color !important;
|
||||
}
|
||||
|
||||
&.selectable .e-link {
|
||||
color: @settings-menu-color !important;
|
||||
}
|
||||
|
||||
&.selectable:hover .e-link {
|
||||
.thm-rgba-background-color(@settings-menu-hover-background-color, @settings-menu-hover-rgba-background-color);
|
||||
color: @settings-menu-hover-color !important;
|
||||
}
|
||||
|
||||
&.selectable.selected .e-link {
|
||||
.thm-rgba-background-color(@settings-menu-selected-background-color, @settings-menu-selected-rgba-background-color);
|
||||
color: @settings-menu-selected-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-message-view-background-color {
|
||||
.thm-rgba-background-color(@message-background-color, @message-rgba-background-color);
|
||||
}
|
||||
|
||||
#rl-app{
|
||||
display: block;
|
||||
}
|
||||
|
||||
html.no-css {
|
||||
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Arial, Verdana, Geneva, sans-serif;
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#rl-loading, #rl-loading-error {
|
||||
position: absolute;
|
||||
font-size: 30px;
|
||||
line-height: 130%;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
height: 65px;
|
||||
margin: 0;
|
||||
margin-top: -60px;
|
||||
background-color: transparent;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.progressjs-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.thm-body {
|
||||
color: #333;
|
||||
background-color: #aaa;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.thm-loading {
|
||||
color: #333 !important;
|
||||
text-shadow: none !important;
|
||||
|
||||
.e-spinner .e-bounce {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-login-desc .desc {
|
||||
color: #333 !important;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
// mixins +++
|
||||
.thm-linear-gradient-mixin(@start, @end) when (iscolor(@start)) and (iscolor(@end)) {
|
||||
background-color: mix(@start, @end, 60%) !important;
|
||||
background-image: -moz-linear-gradient(top, @start, @end) !important; // FF 3.6+
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start), to(@end)) !important; // Safari 4+, Chrome 2+
|
||||
background-image: -webkit-linear-gradient(top, @start, @end) !important; // Safari 5.1+, Chrome 10+
|
||||
background-image: -o-linear-gradient(top, @start, @end !important); // Opera 11.10
|
||||
background-image: linear-gradient(to bottom, @start, @end) !important; // Standard, IE10
|
||||
background-repeat: repeat-x !important;
|
||||
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start),argb(@end))) !important; // IE9 and down
|
||||
}
|
||||
|
||||
.thm-border-radius(@radius) when (ispixel(@radius)) {
|
||||
-webkit-border-radius: @radius !important;
|
||||
-moz-border-radius: @radius !important;
|
||||
border-radius: @radius !important;
|
||||
}
|
||||
|
||||
.thm-box-shadow(@shadow) {
|
||||
-webkit-box-shadow: @shadow !important;
|
||||
-moz-box-shadow: @shadow !important;
|
||||
box-shadow: @shadow !important;
|
||||
}
|
||||
.thm-body-background-image(@value) when (isstring(@value)) {
|
||||
background-image: url("@{base}@{value}") !important;
|
||||
}
|
||||
.thm-body-background-image(@value) when not (isstring(@value)) {
|
||||
background-image: @value !important;
|
||||
}
|
||||
.thm-rgba-background-color(@simple, @rgba) when (@rgba = false) {
|
||||
background-color: @simple !important;
|
||||
}
|
||||
.thm-rgba-background-color(@simple, @rgba) when not (@rgba = false) {
|
||||
background-color: @simple !important;
|
||||
background-color: @rgba !important;
|
||||
}
|
||||
// --- mixins
|
||||
|
||||
.thm-body {
|
||||
color: @main-color;
|
||||
background-color: @main-background-color;
|
||||
background-size: @main-background-size;
|
||||
.thm-body-background-image(@main-background-image);
|
||||
}
|
||||
|
||||
.thm-loading {
|
||||
color: @loading-color !important;
|
||||
text-shadow: @loading-text-shadow !important;
|
||||
|
||||
.e-spinner .e-bounce {
|
||||
background-color: @loading-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-login-desc .desc {
|
||||
color: @loading-color !important;
|
||||
text-shadow: @loading-text-shadow !important;
|
||||
}
|
||||
|
||||
.thm-login {
|
||||
border: @login-border !important;
|
||||
.thm-rgba-background-color(@login-background-color, @login-rgba-background-color);
|
||||
.thm-linear-gradient-mixin(@login-gradient-start, @login-gradient-end);
|
||||
.thm-border-radius(@login-border-radius);
|
||||
.thm-box-shadow(@login-box-shadow);
|
||||
|
||||
&.submitting-pane.submitting {
|
||||
&:before{
|
||||
background: @spinner-background;
|
||||
.thm-border-radius(@login-border-radius);
|
||||
}
|
||||
&:after{
|
||||
border-top-color: @spinner-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.thm-login-text {
|
||||
color: @login-color !important;
|
||||
|
||||
.legend, .e-checkbox-icon, .g-ui-link, .social-button, .language-button {
|
||||
color: @login-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-powered, .thm-mobile-switcher {
|
||||
color: @powered-color;
|
||||
a {
|
||||
color: @powered-color;
|
||||
&:hover {
|
||||
color: lighten(@powered-color, 20%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.thm-languages {
|
||||
color: @languages-color;
|
||||
.flag-name {
|
||||
color: @languages-color;
|
||||
border-color: @languages-color;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu {
|
||||
color: @dropdown-menu-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item > .e-link {
|
||||
color: @dropdown-menu-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item.selected > .e-link {
|
||||
background-color: @dropdown-menu-selected-background-color !important;
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item > .e-link:hover, .g-ui-menu .e-item > .e-link:focus {
|
||||
color: @dropdown-menu-hover-color !important;
|
||||
background-color: @dropdown-menu-hover-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-hover-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.g-ui-menu .e-item.disabled > .e-link, .g-ui-menu .e-item.disabled > .e-link:hover {
|
||||
color: @dropdown-menu-disabled-color !important;
|
||||
background-color: @dropdown-menu-background-color !important;
|
||||
|
||||
> i {
|
||||
color: @dropdown-menu-disabled-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-message-list-top-toolbar, .thm-message-list-bottom-toolbar {
|
||||
.thm-rgba-background-color(@message-list-toolbar-background-color, @message-list-toolbar-rgba-background-color);
|
||||
.thm-linear-gradient-mixin(@message-list-toolbar-gradient-start, @message-list-toolbar-gradient-end);
|
||||
}
|
||||
|
||||
.thm-folders .e-link {
|
||||
|
||||
color: @folders-disabled-color !important;
|
||||
|
||||
&.selectable {
|
||||
color: @folders-color !important;
|
||||
}
|
||||
|
||||
&.selectable:hover {
|
||||
color: @folders-hover-color !important;
|
||||
.thm-rgba-background-color(@folders-hover-background-color, @folders-hover-rgba-background-color);
|
||||
}
|
||||
|
||||
&.selectable.selected {
|
||||
color: @folders-selected-color !important;
|
||||
.thm-rgba-background-color(@folders-selected-background-color, @folders-selected-rgba-background-color);
|
||||
}
|
||||
|
||||
&.focused {
|
||||
color: @folders-focused-color !important;
|
||||
.thm-rgba-background-color(@folders-focused-background-color, @folders-focused-rgba-background-color);
|
||||
}
|
||||
|
||||
&.selectable.droppableHover {
|
||||
color: @folders-drop-color !important;
|
||||
.thm-rgba-background-color(@folders-drop-background-color, @folders-drop-rgba-background-color);
|
||||
}
|
||||
}
|
||||
|
||||
.thm-settings-menu .e-item {
|
||||
|
||||
.e-link {
|
||||
color: @settings-menu-disabled-color !important;
|
||||
}
|
||||
|
||||
&.selectable .e-link {
|
||||
color: @settings-menu-color !important;
|
||||
}
|
||||
|
||||
&.selectable:hover .e-link {
|
||||
.thm-rgba-background-color(@settings-menu-hover-background-color, @settings-menu-hover-rgba-background-color);
|
||||
color: @settings-menu-hover-color !important;
|
||||
}
|
||||
|
||||
&.selectable.selected .e-link {
|
||||
.thm-rgba-background-color(@settings-menu-selected-background-color, @settings-menu-selected-rgba-background-color);
|
||||
color: @settings-menu-selected-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-message-view-background-color {
|
||||
.thm-rgba-background-color(@message-background-color, @message-rgba-background-color);
|
||||
}
|
||||
|
||||
#rl-app{
|
||||
display: block;
|
||||
}
|
||||
|
||||
html.no-css {
|
||||
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Arial, Verdana, Geneva, sans-serif;
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#rl-loading, #rl-loading-error {
|
||||
position: absolute;
|
||||
font-size: 30px;
|
||||
line-height: 130%;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
height: 65px;
|
||||
margin: 0;
|
||||
margin-top: -60px;
|
||||
background-color: transparent;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.progressjs-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.thm-body {
|
||||
color: #333;
|
||||
background-color: #aaa;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.thm-loading {
|
||||
color: #333 !important;
|
||||
text-shadow: none !important;
|
||||
|
||||
.e-spinner .e-bounce {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.thm-login-desc .desc {
|
||||
color: #333 !important;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
// glass style
|
||||
html.glass {
|
||||
|
||||
@glass-color: #fff !important;
|
||||
@glass-p-color: #aaa !important;
|
||||
@glass-m-color: rgba(255, 255, 255, .8) !important;
|
||||
|
||||
.thm-login {
|
||||
border: none !important;
|
||||
background: none !important;
|
||||
background: rgba(0, 0, 0, .3) !important;
|
||||
box-shadow: none !important;
|
||||
|
||||
.controls {
|
||||
.input-append .add-on i {
|
||||
color: @glass-m-color;
|
||||
text-shadow: none !important;
|
||||
outline: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
input {
|
||||
border: 1px solid none !important;
|
||||
background: none !important;
|
||||
outline: none !important;
|
||||
text-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
|
||||
color: @glass-color;
|
||||
border-color: @glass-m-color;
|
||||
|
||||
&::-webkit-input-placeholder{
|
||||
color: @glass-color;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
&::-moz-placeholder{
|
||||
color: @glass-color;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
&:-moz-placeholder{
|
||||
color: @glass-color;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
&:-ms-input-placeholder{
|
||||
color: @glass-color;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
&:input-placeholder{
|
||||
color: @glass-color;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
&:placeholder{
|
||||
color: @glass-color;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
|
||||
&:focus{
|
||||
border-color: @glass-color;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
border: 1px solid none !important;
|
||||
background: none !important;
|
||||
outline: none !important;
|
||||
text-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
|
||||
color: @glass-color;
|
||||
border-color: @glass-m-color;
|
||||
|
||||
&:hover, &:active{
|
||||
border-color: @glass-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.thm-login-text {
|
||||
color: @glass-m-color;
|
||||
text-shadow: none !important;
|
||||
|
||||
.legend, .e-checkbox-icon, .g-ui-link, .social-button, .language-button {
|
||||
color: @glass-m-color;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,47 +1,47 @@
|
|||
<div class="b-login-content">
|
||||
<div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}">
|
||||
<center>
|
||||
<div class="alert alertError" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
</div>
|
||||
<div class="wrapper-parent">
|
||||
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}">
|
||||
<div class="controls" data-bind="css: {'error': loginError, 'animated': loginErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="text" class="input-block-level inputLogin checkAutocomplete"
|
||||
name="RainLoopAdminLogin" id="RainLoopAdminLogin"
|
||||
style="padding-right: 35px;"
|
||||
autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_LOGIN"
|
||||
data-bind="textInput: login, hasFocus: loginFocus, disable: submitRequest" />
|
||||
<span class="add-on">
|
||||
<i class="icon-user"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="password" class="input-block-level inputPassword checkAutocomplete"
|
||||
placeholder="Password" name="RainLoopAdminPassword" id="RainLoopAdminPassword"
|
||||
style="padding-right: 35px;"
|
||||
autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_PASSWORD"
|
||||
data-bind="textInput: password, disable: submitRequest" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand">
|
||||
<span data-i18n="LOGIN/BUTTON_LOGIN"></span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="e-powered thm-powered" data-bind="visible: logoPowered">
|
||||
Powered by <a href="http://www.rainloop.net" target="_blank">RainLoop</a>
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
<div class="loginAfter"></div>
|
||||
<div class="b-login-content">
|
||||
<div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}">
|
||||
<center>
|
||||
<div class="alert alertError" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
</div>
|
||||
<div class="wrapper-parent">
|
||||
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}">
|
||||
<div class="controls" data-bind="css: {'error': loginError, 'animated': loginErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="text" class="input-block-level inputLogin checkAutocomplete"
|
||||
name="RainLoopAdminLogin" id="RainLoopAdminLogin"
|
||||
style="padding-right: 35px;"
|
||||
autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_LOGIN"
|
||||
data-bind="textInput: login, hasFocus: loginFocus, disable: submitRequest" />
|
||||
<span class="add-on">
|
||||
<i class="icon-user"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="password" class="input-block-level inputPassword checkAutocomplete"
|
||||
placeholder="Password" name="RainLoopAdminPassword" id="RainLoopAdminPassword"
|
||||
style="padding-right: 35px;"
|
||||
autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]LOGIN/LABEL_PASSWORD"
|
||||
data-bind="textInput: password, disable: submitRequest" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand">
|
||||
<span data-i18n="LOGIN/BUTTON_LOGIN"></span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="e-powered thm-powered" data-bind="visible: logoPowered">
|
||||
Powered by <a href="http://www.rainloop.net" target="_blank">RainLoop</a>
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
<div class="loginAfter"></div>
|
||||
<div>
|
||||
|
|
@ -1,146 +1,146 @@
|
|||
<div class="b-login-content">
|
||||
<div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}">
|
||||
<center class="plugin-mark-Login-BeforeLogo">
|
||||
{{INCLUDE/BeforeLogo/PLACE}}
|
||||
<!-- ko if: logoImg -->
|
||||
<div class="logoWrapper plugin-mark-Login-AfterLogo">
|
||||
<img class="logoImg" data-bind="attr: {'src': logoImg }" />
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
<div class="descWrapper thm-login-desc plugin-mark-Login-AfterLogoDescription" data-bind="visible: '' !== loginDescription">
|
||||
<span class="desc" data-bind="text: loginDescription"></span>
|
||||
</div>
|
||||
{{INCLUDE/AfterLogo/PLACE}}
|
||||
<div class="alert alertError" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
<div data-bind="visible: '' !== submitErrorAddidional()">
|
||||
<br />
|
||||
<span data-bind="text: submitErrorAddidional"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wrapper-parent">
|
||||
<div class="wrapper loginWelcomeForm thm-login-text" data-bind="css: {'welcome-on': welcome}">
|
||||
<!-- ko template: { name: 'LoginWelcome' } --><!-- /ko -->
|
||||
</div>
|
||||
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'welcome-off': welcome, 'submitting': submitRequest()}">
|
||||
{{INCLUDE/TopControlGroup/PLACE}}
|
||||
<div class="controls plugin-mark-Login-TopControlGroup" data-bind="css: {'error': emailError, 'animated': emailErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="email" class="i18n input-block-level inputEmail checkAutocomplete"
|
||||
name="RainLoopEmail" id="RainLoopEmail"
|
||||
style="padding-right: 35px;"
|
||||
autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: email, hasFocus: emailFocus, disable: submitRequest" data-i18n="[placeholder]LOGIN/LABEL_EMAIL" />
|
||||
<span class="add-on">
|
||||
<i class="icon-mail"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="password" class="i18n input-block-level inputPassword checkAutocomplete"
|
||||
name="RainLoopPassword" id="RainLoopPassword"
|
||||
style="padding-right: 35px;"
|
||||
autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: password, hasFocus: passwordFocus, disable: submitRequest" data-i18n="[placeholder]LOGIN/LABEL_PASSWORD" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls" data-bind="visible: additionalCode.visibility(), css: {'error': additionalCode.error, 'animated': additionalCode.errorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="text" class="i18n input-block-level inputAdditionalCode"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="padding-right: 35px;"
|
||||
data-bind="textInput: additionalCode, hasFocus: additionalCode.focused, disable: submitRequest" data-i18n="[placeholder]LOGIN/LABEL_VERIFICATION_CODE" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls plugin-mark-Login-BottomControlGroup" data-bind="visible: additionalCode.visibility()">
|
||||
<div class="additionalCodeSignMeLabel" data-bind="component: {
|
||||
name: 'CheckboxSimple',
|
||||
params: {
|
||||
label: 'LOGIN/LABEL_DONT_ASK_VERIFICATION_CODE',
|
||||
value: additionalCodeSignMe
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
{{INCLUDE/BottomControlGroup/PLACE}}
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand, hasFocus: submitFocus">
|
||||
<span class="i18n i18n-animation" data-i18n="LOGIN/BUTTON_SIGN_IN"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="controls clearfix" style="margin-bottom: 20px">
|
||||
<div class="pull-right social-buttons">
|
||||
<a href="#" tabindex="-1" class="social-button" data-bind="visible: facebookLoginEnabled, command: facebookCommand, tooltip: 'LOGIN/TITLE_SIGN_IN_FACEBOOK'">
|
||||
<i class="icon-facebook-alt"></i>
|
||||
</a>
|
||||
<a href="#" tabindex="-1" class="social-button" data-bind="visible: googleLoginEnabled, command: googleCommand, tooltip: 'LOGIN/TITLE_SIGN_IN_GOOGLE'">
|
||||
<i class="icon-google"></i>
|
||||
</a>
|
||||
<a href="#" tabindex="-1" class="social-button" data-bind="visible: twitterLoginEnabled, command: twitterCommand, tooltip: 'LOGIN/TITLE_SIGN_IN_TWITTER'">
|
||||
<i class="icon-twitter"></i>
|
||||
</a>
|
||||
<a href="#" tabindex="-1" class="language-button" data-bind="visible: allowLanguagesOnLogin() && !socialLoginEnabled(), click: selectLanguage, tooltip: 'POPUPS_LANGUAGES/TITLE_LANGUAGES'">
|
||||
<i data-bind="css: langRequest() ? 'icon-spinner animated' : 'icon-world'"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="signMeLabel" data-bind="visible: signMeVisibility, component: {
|
||||
name: 'CheckboxSimple',
|
||||
params: {
|
||||
label: 'LOGIN/LABEL_SIGN_ME',
|
||||
labelAnimated: true,
|
||||
value: signMe
|
||||
}
|
||||
}"></div>
|
||||
|
||||
</div>
|
||||
<div class="controls clearfix" data-bind="visible: '' !== forgotPasswordLinkUrl || '' !== registrationLinkUrl">
|
||||
<div class="forgot-link thm-forgot pull-left" data-bind="visible: '' !== forgotPasswordLinkUrl" style="text-align: center">
|
||||
<a href="#" target="_blank" class="g-ui-link" data-bind="attr: {href: forgotPasswordLinkUrl}, css: {'pull-right': '' !== registrationLinkUrl}"
|
||||
><span class="i18n" data-i18n="LOGIN/LABEL_FORGOT_PASSWORD"></span></a>
|
||||
</div>
|
||||
|
||||
<div class="registration-link thm-registration pull-right" data-bind="visible: '' !== registrationLinkUrl" style="text-align: center">
|
||||
<a href="#" target="_blank" class="g-ui-link" data-bind="attr: {href: registrationLinkUrl}, css: {'pull-left': '' !== forgotPasswordLinkUrl}"
|
||||
><span class="i18n" data-i18n="LOGIN/LABEL_REGISTRATION"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="e-powered thm-powered" data-bind="visible: logoPowered">Powered by <a href="http://www.rainloop.net" target="_blank">RainLoop</a></div>
|
||||
<div class="e-mobile-switcher thm-mobile-switcher">
|
||||
<span data-bind="visible: !mobile && mobileDevice">
|
||||
<i class="icon-mobile"></i>
|
||||
|
||||
<a href="./?/Mobile/" tabindex="-1">
|
||||
<span class="i18n" data-i18n="MOBILE/BUTTON_MOBILE_VERSION"></span>
|
||||
</a>
|
||||
</span>
|
||||
<span data-bind="visible: mobile">
|
||||
<i class="icon-laptop"></i>
|
||||
|
||||
<a href="./?/SkipMobile/" tabindex="-1">
|
||||
<span class="i18n" data-i18n="MOBILE/BUTTON_DESKTOP_VERSION"></span>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="e-languages thm-languages plugin-mark-Login-BottomFooter" data-bind="visible: allowLanguagesOnLogin() && socialLoginEnabled()">
|
||||
<label class="flag-selector">
|
||||
<i data-bind="css: langRequest() ? 'icon-spinner animated' : 'icon-world'"></i>
|
||||
|
||||
<span class="flag-name" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage, onTab: selectLanguageOnTab"></span>
|
||||
</label>
|
||||
</div>
|
||||
{{INCLUDE/BottomFooter/PLACE}}
|
||||
</center>
|
||||
</div>
|
||||
<a href="#" onclick="return false;"></a>
|
||||
<div class="loginAfter"></div>
|
||||
<div class="b-login-content">
|
||||
<div class="loginFormWrapper" data-bind="css: {'afterLoginHide': formHidden}">
|
||||
<center class="plugin-mark-Login-BeforeLogo">
|
||||
{{INCLUDE/BeforeLogo/PLACE}}
|
||||
<!-- ko if: logoImg -->
|
||||
<div class="logoWrapper plugin-mark-Login-AfterLogo">
|
||||
<img class="logoImg" data-bind="attr: {'src': logoImg }" />
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
<div class="descWrapper thm-login-desc plugin-mark-Login-AfterLogoDescription" data-bind="visible: '' !== loginDescription">
|
||||
<span class="desc" data-bind="text: loginDescription"></span>
|
||||
</div>
|
||||
{{INCLUDE/AfterLogo/PLACE}}
|
||||
<div class="alert alertError" data-bind="visibleAnimated: '' !== submitError()">
|
||||
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
<div data-bind="visible: '' !== submitErrorAddidional()">
|
||||
<br />
|
||||
<span data-bind="text: submitErrorAddidional"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wrapper-parent">
|
||||
<div class="wrapper loginWelcomeForm thm-login-text" data-bind="css: {'welcome-on': welcome}">
|
||||
<!-- ko template: { name: 'LoginWelcome' } --><!-- /ko -->
|
||||
</div>
|
||||
<form class="wrapper submitting-pane loginForm thm-login thm-login-text" action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'welcome-off': welcome, 'submitting': submitRequest()}">
|
||||
{{INCLUDE/TopControlGroup/PLACE}}
|
||||
<div class="controls plugin-mark-Login-TopControlGroup" data-bind="css: {'error': emailError, 'animated': emailErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="email" class="i18n input-block-level inputEmail checkAutocomplete"
|
||||
name="RainLoopEmail" id="RainLoopEmail"
|
||||
style="padding-right: 35px;"
|
||||
autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: email, hasFocus: emailFocus, disable: submitRequest" data-i18n="[placeholder]LOGIN/LABEL_EMAIL" />
|
||||
<span class="add-on">
|
||||
<i class="icon-mail"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls" data-bind="css: {'error': passwordError, 'animated': passwordErrorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="password" class="i18n input-block-level inputPassword checkAutocomplete"
|
||||
name="RainLoopPassword" id="RainLoopPassword"
|
||||
style="padding-right: 35px;"
|
||||
autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: password, hasFocus: passwordFocus, disable: submitRequest" data-i18n="[placeholder]LOGIN/LABEL_PASSWORD" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls" data-bind="visible: additionalCode.visibility(), css: {'error': additionalCode.error, 'animated': additionalCode.errorAnimation}">
|
||||
<div class="input-append">
|
||||
<input type="text" class="i18n input-block-level inputAdditionalCode"
|
||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="padding-right: 35px;"
|
||||
data-bind="textInput: additionalCode, hasFocus: additionalCode.focused, disable: submitRequest" data-i18n="[placeholder]LOGIN/LABEL_VERIFICATION_CODE" />
|
||||
<span class="add-on">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="controls plugin-mark-Login-BottomControlGroup" data-bind="visible: additionalCode.visibility()">
|
||||
<div class="additionalCodeSignMeLabel" data-bind="component: {
|
||||
name: 'CheckboxSimple',
|
||||
params: {
|
||||
label: 'LOGIN/LABEL_DONT_ASK_VERIFICATION_CODE',
|
||||
value: additionalCodeSignMe
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
{{INCLUDE/BottomControlGroup/PLACE}}
|
||||
<div class="controls">
|
||||
<button type="submit" class="btn btn-large btn-block buttonLogin" data-bind="command: submitCommand, hasFocus: submitFocus">
|
||||
<span class="i18n i18n-animation" data-i18n="LOGIN/BUTTON_SIGN_IN"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="controls clearfix" style="margin-bottom: 20px">
|
||||
<div class="pull-right social-buttons">
|
||||
<a href="#" tabindex="-1" class="social-button" data-bind="visible: facebookLoginEnabled, command: facebookCommand, tooltip: 'LOGIN/TITLE_SIGN_IN_FACEBOOK'">
|
||||
<i class="icon-facebook-alt"></i>
|
||||
</a>
|
||||
<a href="#" tabindex="-1" class="social-button" data-bind="visible: googleLoginEnabled, command: googleCommand, tooltip: 'LOGIN/TITLE_SIGN_IN_GOOGLE'">
|
||||
<i class="icon-google"></i>
|
||||
</a>
|
||||
<a href="#" tabindex="-1" class="social-button" data-bind="visible: twitterLoginEnabled, command: twitterCommand, tooltip: 'LOGIN/TITLE_SIGN_IN_TWITTER'">
|
||||
<i class="icon-twitter"></i>
|
||||
</a>
|
||||
<a href="#" tabindex="-1" class="language-button" data-bind="visible: allowLanguagesOnLogin() && !socialLoginEnabled(), click: selectLanguage, tooltip: 'POPUPS_LANGUAGES/TITLE_LANGUAGES'">
|
||||
<i data-bind="css: langRequest() ? 'icon-spinner animated' : 'icon-world'"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="signMeLabel" data-bind="visible: signMeVisibility, component: {
|
||||
name: 'CheckboxSimple',
|
||||
params: {
|
||||
label: 'LOGIN/LABEL_SIGN_ME',
|
||||
labelAnimated: true,
|
||||
value: signMe
|
||||
}
|
||||
}"></div>
|
||||
|
||||
</div>
|
||||
<div class="controls clearfix" data-bind="visible: '' !== forgotPasswordLinkUrl || '' !== registrationLinkUrl">
|
||||
<div class="forgot-link thm-forgot pull-left" data-bind="visible: '' !== forgotPasswordLinkUrl" style="text-align: center">
|
||||
<a href="#" target="_blank" class="g-ui-link" data-bind="attr: {href: forgotPasswordLinkUrl}, css: {'pull-right': '' !== registrationLinkUrl}"
|
||||
><span class="i18n" data-i18n="LOGIN/LABEL_FORGOT_PASSWORD"></span></a>
|
||||
</div>
|
||||
|
||||
<div class="registration-link thm-registration pull-right" data-bind="visible: '' !== registrationLinkUrl" style="text-align: center">
|
||||
<a href="#" target="_blank" class="g-ui-link" data-bind="attr: {href: registrationLinkUrl}, css: {'pull-left': '' !== forgotPasswordLinkUrl}"
|
||||
><span class="i18n" data-i18n="LOGIN/LABEL_REGISTRATION"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="e-powered thm-powered" data-bind="visible: logoPowered">Powered by <a href="http://www.rainloop.net" target="_blank">RainLoop</a></div>
|
||||
<div class="e-mobile-switcher thm-mobile-switcher">
|
||||
<span data-bind="visible: !mobile && mobileDevice">
|
||||
<i class="icon-mobile"></i>
|
||||
|
||||
<a href="./?/Mobile/" tabindex="-1">
|
||||
<span class="i18n" data-i18n="MOBILE/BUTTON_MOBILE_VERSION"></span>
|
||||
</a>
|
||||
</span>
|
||||
<span data-bind="visible: mobile">
|
||||
<i class="icon-laptop"></i>
|
||||
|
||||
<a href="./?/SkipMobile/" tabindex="-1">
|
||||
<span class="i18n" data-i18n="MOBILE/BUTTON_DESKTOP_VERSION"></span>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="e-languages thm-languages plugin-mark-Login-BottomFooter" data-bind="visible: allowLanguagesOnLogin() && socialLoginEnabled()">
|
||||
<label class="flag-selector">
|
||||
<i data-bind="css: langRequest() ? 'icon-spinner animated' : 'icon-world'"></i>
|
||||
|
||||
<span class="flag-name" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage, onTab: selectLanguageOnTab"></span>
|
||||
</label>
|
||||
</div>
|
||||
{{INCLUDE/BottomFooter/PLACE}}
|
||||
</center>
|
||||
</div>
|
||||
<a href="#" onclick="return false;"></a>
|
||||
<div class="loginAfter"></div>
|
||||
</div>
|
||||
|
|
@ -1,38 +1,38 @@
|
|||
<div class="b-folders g-ui-user-select-none thm-folders" data-bind="css: {'focused': folderListFocused, 'single-root-inbox': foldersListWithSingleInboxRootFolder, 'inbox-is-starred': isInboxStarred}">
|
||||
<div class="b-toolbar btn-toolbar hide-on-mobile">
|
||||
<a class="btn buttonCompose pull-left" data-tooltip-join="top" data-bind="visible: allowComposer, click: composeClick, tooltip: 'FOLDER_LIST/BUTTON_NEW_MESSAGE', css: {'btn-warning': composeInEdit, 'btn-success': !composeInEdit()}">
|
||||
<i class="icon-paper-plane"></i>
|
||||
<span class="btn-text-wrp buttonComposeText">
|
||||
<span class="i18n" data-i18n="FOLDER_LIST/BUTTON_NEW_MESSAGE"></span>
|
||||
</span>
|
||||
</a>
|
||||
<a class="btn buttonContacts pull-left" data-tooltip-join="top" data-bind="visible: allowContacts, click: contactsClick, tooltip: 'FOLDER_LIST/BUTTON_CONTACTS'">
|
||||
<i class="icon-address-book"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="b-content opacity-on-panel-disabled" data-bind="visible: allowFolders, nano: true, scrollerShadows: true, css: {'inbox-is-starred': isInboxStarred}">
|
||||
<div class="content g-scrollbox" data-scroller-shadows-content>
|
||||
<div class="content-wrapper">
|
||||
<div class="b-folders-system" data-bind="template: { name: 'MailFolderListSystemItem', foreach: folderListSystem }"></div>
|
||||
<hr class="b-list-delimiter" />
|
||||
<div class="b-folders-user" data-bind="template: { name: 'MailFolderListItem', foreach: folderList }"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
<div class="b-footer btn-toolbar hide-on-mobile" data-bind="visible: allowFolders">
|
||||
<div class="btn-group">
|
||||
<a class="btn single buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group hide-on-panel-disabled">
|
||||
<a class="btn first" data-bind="click: createFolder">
|
||||
<i data-bind="css: {'icon-folder-add': !foldersChanging(), 'icon-spinner animated': foldersChanging()}"></i>
|
||||
</a>
|
||||
<a class="btn last" data-bind="click: configureFolders">
|
||||
<i class="icon-cog"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-folders g-ui-user-select-none thm-folders" data-bind="css: {'focused': folderListFocused, 'single-root-inbox': foldersListWithSingleInboxRootFolder, 'inbox-is-starred': isInboxStarred}">
|
||||
<div class="b-toolbar btn-toolbar hide-on-mobile">
|
||||
<a class="btn buttonCompose pull-left" data-tooltip-join="top" data-bind="visible: allowComposer, click: composeClick, tooltip: 'FOLDER_LIST/BUTTON_NEW_MESSAGE', css: {'btn-warning': composeInEdit, 'btn-success': !composeInEdit()}">
|
||||
<i class="icon-paper-plane"></i>
|
||||
<span class="btn-text-wrp buttonComposeText">
|
||||
<span class="i18n" data-i18n="FOLDER_LIST/BUTTON_NEW_MESSAGE"></span>
|
||||
</span>
|
||||
</a>
|
||||
<a class="btn buttonContacts pull-left" data-tooltip-join="top" data-bind="visible: allowContacts, click: contactsClick, tooltip: 'FOLDER_LIST/BUTTON_CONTACTS'">
|
||||
<i class="icon-address-book"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="b-content opacity-on-panel-disabled" data-bind="visible: allowFolders, nano: true, scrollerShadows: true, css: {'inbox-is-starred': isInboxStarred}">
|
||||
<div class="content g-scrollbox" data-scroller-shadows-content>
|
||||
<div class="content-wrapper">
|
||||
<div class="b-folders-system" data-bind="template: { name: 'MailFolderListSystemItem', foreach: folderListSystem }"></div>
|
||||
<hr class="b-list-delimiter" />
|
||||
<div class="b-folders-user" data-bind="template: { name: 'MailFolderListItem', foreach: folderList }"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-content show-on-panel-disabled" data-bind="click: function () { leftPanelDisabled(false); }"></div>
|
||||
<div class="b-footer btn-toolbar hide-on-mobile" data-bind="visible: allowFolders">
|
||||
<div class="btn-group">
|
||||
<a class="btn single buttonResize" data-bind="click: function () { leftPanelDisabled(!leftPanelDisabled()); }">
|
||||
<i data-bind="css: {'icon-resize-out': leftPanelDisabled(), 'icon-resize-in': !leftPanelDisabled()}"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btn-group hide-on-panel-disabled">
|
||||
<a class="btn first" data-bind="click: createFolder">
|
||||
<i data-bind="css: {'icon-folder-add': !foldersChanging(), 'icon-spinner animated': foldersChanging()}"></i>
|
||||
</a>
|
||||
<a class="btn last" data-bind="click: configureFolders">
|
||||
<i class="icon-cog"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,50 +1,50 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-account-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span data-bind="visible: isNew" class="i18n" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_ADD_ACCOUNT"></span>
|
||||
<span data-bind="visible: !isNew()" class="i18n" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_UPDATE_ACCOUNT"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="alert" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close-custom" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
<div data-bind="visible: submitErrorAdditional">
|
||||
<br />
|
||||
<span data-bind="text: submitErrorAdditional"></span>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="control-group" data-bind="css: {'error': emailError}">
|
||||
<label class="i18n control-label" data-i18n="LOGIN/LABEL_EMAIL"></label>
|
||||
<div class="controls">
|
||||
<label style="margin-top: 5px;" data-bind="visible: !isNew()"><strong data-bind="text: email"></strong></label>
|
||||
<input type="email" class="inputEmail input-large" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="visible: isNew, textInput: email, onEnter: addAccountCommand, hasfocus: emailFocus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordError}">
|
||||
<label class="i18n control-label" data-i18n="LOGIN/LABEL_PASSWORD"></label>
|
||||
<div class="controls">
|
||||
<input type="password" class="inputPassword input-large" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: password, onEnter: addAccountCommand" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn buttonAddAccount" data-bind="command: addAccountCommand">
|
||||
<i data-bind="visible: isNew, css: {'icon-user-add': !submitRequest(), 'icon-spinner animated': submitRequest()}"></i>
|
||||
<i data-bind="visible: !isNew(), css: {'icon-ok': !submitRequest(), 'icon-spinner animated': submitRequest()}"></i>
|
||||
|
||||
<span data-bind="visible: isNew" class="i18n" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_ADD_ACCOUNT"></span>
|
||||
<span data-bind="visible: !isNew()" class="i18n" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_UPDATE_ACCOUNT"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="popups">
|
||||
<div class="modal hide b-account-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span data-bind="visible: isNew" class="i18n" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_ADD_ACCOUNT"></span>
|
||||
<span data-bind="visible: !isNew()" class="i18n" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_UPDATE_ACCOUNT"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="alert" data-bind="visible: '' !== submitError()">
|
||||
<button type="button" class="close-custom" data-bind="click: function () { submitError('') }">×</button>
|
||||
<span data-bind="text: submitError"></span>
|
||||
<div data-bind="visible: submitErrorAdditional">
|
||||
<br />
|
||||
<span data-bind="text: submitErrorAdditional"></span>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="control-group" data-bind="css: {'error': emailError}">
|
||||
<label class="i18n control-label" data-i18n="LOGIN/LABEL_EMAIL"></label>
|
||||
<div class="controls">
|
||||
<label style="margin-top: 5px;" data-bind="visible: !isNew()"><strong data-bind="text: email"></strong></label>
|
||||
<input type="email" class="inputEmail input-large" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="visible: isNew, textInput: email, onEnter: addAccountCommand, hasfocus: emailFocus" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="css: {'error': passwordError}">
|
||||
<label class="i18n control-label" data-i18n="LOGIN/LABEL_PASSWORD"></label>
|
||||
<div class="controls">
|
||||
<input type="password" class="inputPassword input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="value: password, onEnter: addAccountCommand" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn buttonAddAccount" data-bind="command: addAccountCommand">
|
||||
<i data-bind="visible: isNew, css: {'icon-user-add': !submitRequest(), 'icon-spinner animated': submitRequest()}"></i>
|
||||
<i data-bind="visible: !isNew(), css: {'icon-ok': !submitRequest(), 'icon-spinner animated': submitRequest()}"></i>
|
||||
|
||||
<span data-bind="visible: isNew" class="i18n" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_ADD_ACCOUNT"></span>
|
||||
<span data-bind="visible: !isNew()" class="i18n" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_UPDATE_ACCOUNT"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,26 +1,27 @@
|
|||
<div class="popups">
|
||||
<div class="modal hide b-open-pgp-key-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span class="i18n" data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/TITLE_IMPORT_OPEN_PGP_KEY"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<textarea class="inputKey input-xxlarge" rows="14" autocomplete="off" data-bind="value: key, hasfocus: key.focus"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn buttonAddAccount" data-bind="command: addOpenPgpKeyCommand">
|
||||
<i class="icon-list-add"></i>
|
||||
|
||||
<span class="i18n" data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/BUTTON_IMPORT_OPEN_PGP_KEY"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="popups">
|
||||
<div class="modal hide b-open-pgp-key-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
<span class="i18n" data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/TITLE_IMPORT_OPEN_PGP_KEY"></span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert" data-bind="visible: key.error() && key.errorMessage(), text: key.errorMessage"></div>
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group" data-bind="css: {'error': key.error}">
|
||||
<textarea class="inputKey input-xxlarge" rows="14" autocomplete="off" data-bind="value: key, hasfocus: key.focus"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a class="btn buttonAddAccount" data-bind="command: addOpenPgpKeyCommand">
|
||||
<i class="icon-list-add"></i>
|
||||
|
||||
<span class="i18n" data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/BUTTON_IMPORT_OPEN_PGP_KEY"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue