mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-01-27 09:08:26 +08:00
Drop bootstrap .well and .pull-left
Reduce bootstrap .pull-right usage
This commit is contained in:
parent
d64cfb96ad
commit
99c72ad9e6
29 changed files with 348 additions and 391 deletions
|
@ -15,7 +15,6 @@
|
|||
@import "../../vendors/bootstrap/less/button-groups.less";
|
||||
@import "../../vendors/bootstrap/less/alerts.less";
|
||||
@import "../../vendors/bootstrap/less/utilities.less";
|
||||
@import "../../vendors/bootstrap/less/wells.less";
|
||||
|
||||
@import "_FontasticToBoot.less";
|
||||
@import "_BootstrapFix.less";
|
||||
|
|
|
@ -10,33 +10,32 @@
|
|||
opacity: 0.5;
|
||||
}
|
||||
|
||||
}
|
||||
table {
|
||||
|
||||
.b-admin-packages-list-table {
|
||||
width: 700px;
|
||||
|
||||
width: 700px;
|
||||
|
||||
.package-img {
|
||||
font-size: 12px;
|
||||
margin-right: 2px;
|
||||
div:first-child {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.package-name {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.package-name.core {
|
||||
font-weight: bold;
|
||||
}
|
||||
.package-desc {
|
||||
color: #999;
|
||||
font-size: 12px;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.package-release, .package-actions {
|
||||
td + td {
|
||||
text-align: center;
|
||||
}
|
||||
.package-actions {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.package-configure, .package-active {
|
||||
a {
|
||||
cursor: pointer;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
|
|
@ -16,29 +16,21 @@
|
|||
transition: left 0.3s ease-out, right 0.3s ease-out;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1000px) {
|
||||
|
||||
html.rl-started-trigger .LoginView {
|
||||
/*transform: scale(1.1);*/
|
||||
transform: translateY(-20px);
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.LoginView .errorAnimated {
|
||||
animation: login-form-shake 400ms ease-in-out;
|
||||
}
|
||||
|
||||
.LoginView .errorAnimated .buttonLogin {
|
||||
color: #b94a48;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.LoginView {
|
||||
transition: all 0.3s ease-out;
|
||||
}
|
||||
|
||||
.button-delete-transitions {
|
||||
transition: all 0.2s linear;
|
||||
}
|
||||
|
||||
html.rl-started-trigger .LoginView {
|
||||
/*transform: scale(1.1);*/
|
||||
transform: translateY(-20px);
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.LoginView .errorAnimated {
|
||||
animation: login-form-shake 400ms ease-in-out;
|
||||
}
|
||||
|
||||
.LoginView .errorAnimated .buttonLogin {
|
||||
color: #b94a48;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.LoginView {
|
||||
transition: all 0.3s ease-out;
|
||||
}
|
||||
|
|
|
@ -76,6 +76,7 @@ textarea + .settings-save-trigger {
|
|||
}
|
||||
|
||||
.button-confirm-delete {
|
||||
transition: all 0.2s linear;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.button-confirm-delete:not(.delete-access) {
|
||||
|
|
|
@ -12,10 +12,6 @@
|
|||
|
||||
@media screen and (min-width: 1000px) {
|
||||
|
||||
.button-delete-transitions {
|
||||
transition: all 0.2s linear;
|
||||
}
|
||||
|
||||
.b-folders li .anim-action-class {
|
||||
animation: highlight-folder-row 0.5s linear;
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ html.rl-no-preview-pane {
|
|||
flex-direction: column;
|
||||
|
||||
.b-footer {
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
padding: 7px;
|
||||
|
||||
|
@ -51,6 +52,11 @@ html.rl-no-preview-pane {
|
|||
}
|
||||
}
|
||||
|
||||
.b-footer nav {
|
||||
flex-grow: 1;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.btn.buttonMoreSearch {
|
||||
font-size: 11px;
|
||||
padding-left: 8px;
|
||||
|
@ -58,6 +64,7 @@ html.rl-no-preview-pane {
|
|||
}
|
||||
|
||||
.second-toolbar {
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
padding: 10px 8px 10px 11px;
|
||||
white-space: nowrap;
|
||||
|
@ -68,26 +75,35 @@ html.rl-no-preview-pane {
|
|||
border-top-right-radius: @rlMainBorderRadius;
|
||||
border-top-left-radius: @rlMainBorderRadius;
|
||||
border-bottom: 1px solid #bbb;
|
||||
}
|
||||
|
||||
.checkboxCheckAll {
|
||||
cursor: pointer;
|
||||
vertical-align: middle
|
||||
}
|
||||
.checkboxCheckAll {
|
||||
cursor: pointer;
|
||||
margin: 0.5em 0.5em 0 0;
|
||||
}
|
||||
|
||||
.input-append {
|
||||
margin-left: 14px;
|
||||
text-align: right;
|
||||
width: calc(100% - 30px);
|
||||
.search-input-wrp {
|
||||
flex-grow: 1;
|
||||
position: relative;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.close-input-wrp {
|
||||
width: 90%;
|
||||
min-width: 200px;
|
||||
max-width: 300px;
|
||||
}
|
||||
.inputSearch {
|
||||
display: inline-block;
|
||||
max-width: 300px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.inputSearch {
|
||||
width: 100%;
|
||||
}
|
||||
.closeSearch {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 5px;
|
||||
margin: 0 7px;
|
||||
z-index: 100;
|
||||
vertical-align: middle;
|
||||
opacity: .4;
|
||||
&:hover {
|
||||
opacity: .6;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -80,10 +80,6 @@
|
|||
border-radius: @rlMainBorderRadius;
|
||||
}
|
||||
|
||||
html.rl-mobile #rl-settings-subscreen > * {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.firefox-drag #rl-settings-subscreen,
|
||||
.firefox-drag .modal-body {
|
||||
overflow: hidden;
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
}
|
||||
|
||||
td + td {
|
||||
width: 150px;
|
||||
text-align: right;
|
||||
}
|
||||
td + td + td {
|
||||
width: 1%;
|
||||
width: 1em;
|
||||
}
|
||||
|
||||
.delete {
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
}
|
||||
|
||||
td + td {
|
||||
white-space: nowrap;
|
||||
width: 1em;
|
||||
}
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
|
||||
blockquote {
|
||||
border: 0;
|
||||
border-left: solid 2px #444;
|
||||
border-left: 2px solid #444;
|
||||
margin: 5px 0 5px 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
|
|
@ -59,25 +59,3 @@ label.inline, span.inline {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.close-input-wrp {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
|
||||
input {
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.close {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 5px;
|
||||
margin: 0 7px;
|
||||
z-index: 100;
|
||||
vertical-align: middle;
|
||||
opacity: .4;
|
||||
&:hover {
|
||||
opacity: .6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,94 +1,92 @@
|
|||
<div class="b-settings-two-factor">
|
||||
<div class="b-settings-two-factor form-horizontal">
|
||||
<div class="legend" data-i18n="POPUPS_TWO_FACTOR_CFG/LEGEND_TWO_FACTOR_AUTH"></div>
|
||||
<div class="form-horizontal">
|
||||
<div class="legend" data-i18n="POPUPS_TWO_FACTOR_CFG/LEGEND_TWO_FACTOR_AUTH"></div>
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group" data-bind="visible: twoFactorStatus">
|
||||
<div class="controls">
|
||||
<div style="display: inline-block" data-bind="attr:{title: viewTwoFactorEnableTooltip}">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_TWO_FACTOR_CFG/LABEL_ENABLE_TWO_FACTOR',
|
||||
enable: twoFactorAllowedEnable,
|
||||
value: viewEnable,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
|
||||
<span class="g-ui-link" data-bind="click: testTwoFactor, visible: twoFactorStatus"
|
||||
data-i18n="POPUPS_TWO_FACTOR_CFG/LINK_TEST"></span>
|
||||
<div class="control-group" data-bind="visible: twoFactorStatus">
|
||||
<div class="controls">
|
||||
<div style="display: inline-block" data-bind="attr:{title: viewTwoFactorEnableTooltip}">
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_TWO_FACTOR_CFG/LABEL_ENABLE_TWO_FACTOR',
|
||||
enable: twoFactorAllowedEnable,
|
||||
value: viewEnable,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
|
||||
<span class="g-ui-link" data-bind="click: testTwoFactor, visible: twoFactorStatus"
|
||||
data-i18n="POPUPS_TWO_FACTOR_CFG/LINK_TEST"></span>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_USER"></span>
|
||||
</label>
|
||||
<div class="controls" style="padding-top: 5px;">
|
||||
<strong><span data-bind="text: viewUser"></span></strong>
|
||||
<div style="padding-top: 15px;" data-bind="visible: lock">
|
||||
<blockquote>
|
||||
<p class="muted width100-on-mobile" style="width: 550px" data-i18n="POPUPS_TWO_FACTOR_CFG/TWO_FACTOR_REQUIRE_DESC"></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: '' === viewSecret() && twoFactorStatus() && !clearing()">
|
||||
<div class="controls" style="padding-top: 5px;">
|
||||
<strong data-bind="visible: secreting">...</strong>
|
||||
<span class="g-ui-link" data-bind="click: showSecret, visible: !secreting()"
|
||||
data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_SHOW_SECRET"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: '' !== viewSecret()">
|
||||
<label class="control-label">
|
||||
<span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_SECRET"></span>
|
||||
</label>
|
||||
<div class="controls" style="padding-top: 5px;">
|
||||
<strong data-bind="text: viewSecret"></strong>
|
||||
|
||||
<span class="g-ui-link" data-bind="click: hideSecret" data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_HIDE_SECRET"></span>
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_USER"></span>
|
||||
</label>
|
||||
<div class="controls" style="padding-top: 5px;">
|
||||
<strong><span data-bind="text: viewUser"></span></strong>
|
||||
<div style="padding-top: 15px;" data-bind="visible: lock">
|
||||
<blockquote>
|
||||
<p class="muted width100-on-mobile" style="width: 550px" data-i18n="POPUPS_TWO_FACTOR_CFG/TWO_FACTOR_SECRET_DESC"></p>
|
||||
</blockquote>
|
||||
<!-- ko if: '' !== viewUrl() -->
|
||||
<img style="margin-left: -7px;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2P8DwQACgAD/il4QJ8AAAAASUVORK5CYII=" data-bind="attr: {'src': viewUrl}" />
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: '' !== viewBackupCodes()">
|
||||
<label class="control-label">
|
||||
<span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_BACKUP_CODES"></span>
|
||||
</label>
|
||||
<div class="controls" style="padding-top: 5px;">
|
||||
<pre data-bind="text: viewBackupCodes" style="width: 230px; word-break: break-word;"></pre>
|
||||
<br />
|
||||
<blockquote>
|
||||
<p class="muted width100-on-mobile" style="width: 550px" data-i18n="POPUPS_TWO_FACTOR_CFG/TWO_FACTOR_BACKUP_CODES_DESC"></p>
|
||||
<p class="muted width100-on-mobile" style="width: 550px" data-i18n="POPUPS_TWO_FACTOR_CFG/TWO_FACTOR_REQUIRE_DESC"></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="btn pull-left" data-bind="visible: lock, click: logout">
|
||||
<i class="fontastic">⏻</i>
|
||||
<span data-i18n="GLOBAL/LOGOUT"></span>
|
||||
</a>
|
||||
<a class="btn btn-danger" data-bind="click: clearTwoFactor, visible: twoFactorStatus">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': clearing()}">✖</i>
|
||||
<span data-i18n="GLOBAL/CLEAR"></span>
|
||||
</a>
|
||||
<a class="btn" data-bind="click: createTwoFactor, visible: !twoFactorStatus()">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': processing()}">▶</i>
|
||||
<span data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_ACTIVATE"></span>
|
||||
</a>
|
||||
<!--
|
||||
<a class="btn" data-bind="command: cancelCommand, visible: viewEnable() || !lock()">
|
||||
<i class="icon-ok" ></i>
|
||||
<span data-i18n="GLOBAL/DONE"></span>
|
||||
</a>
|
||||
-->
|
||||
<div class="control-group" data-bind="visible: '' === viewSecret() && twoFactorStatus() && !clearing()">
|
||||
<div class="controls" style="padding-top: 5px;">
|
||||
<strong data-bind="visible: secreting">...</strong>
|
||||
<span class="g-ui-link" data-bind="click: showSecret, visible: !secreting()"
|
||||
data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_SHOW_SECRET"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: '' !== viewSecret()">
|
||||
<label class="control-label">
|
||||
<span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_SECRET"></span>
|
||||
</label>
|
||||
<div class="controls" style="padding-top: 5px;">
|
||||
<strong data-bind="text: viewSecret"></strong>
|
||||
|
||||
<span class="g-ui-link" data-bind="click: hideSecret" data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_HIDE_SECRET"></span>
|
||||
<br />
|
||||
<br />
|
||||
<blockquote>
|
||||
<p class="muted width100-on-mobile" style="width: 550px" data-i18n="POPUPS_TWO_FACTOR_CFG/TWO_FACTOR_SECRET_DESC"></p>
|
||||
</blockquote>
|
||||
<!-- ko if: '' !== viewUrl() -->
|
||||
<img style="margin-left: -7px;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2P8DwQACgAD/il4QJ8AAAAASUVORK5CYII=" data-bind="attr: {'src': viewUrl}" />
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" data-bind="visible: '' !== viewBackupCodes()">
|
||||
<label class="control-label">
|
||||
<span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_BACKUP_CODES"></span>
|
||||
</label>
|
||||
<div class="controls" style="padding-top: 5px;">
|
||||
<pre data-bind="text: viewBackupCodes" style="width: 230px; word-break: break-word;"></pre>
|
||||
<br />
|
||||
<blockquote>
|
||||
<p class="muted width100-on-mobile" style="width: 550px" data-i18n="POPUPS_TWO_FACTOR_CFG/TWO_FACTOR_BACKUP_CODES_DESC"></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="btn" data-bind="visible: lock, click: logout">
|
||||
<i class="fontastic">⏻</i>
|
||||
<span data-i18n="GLOBAL/LOGOUT"></span>
|
||||
</a>
|
||||
<a class="btn btn-danger" data-bind="click: clearTwoFactor, visible: twoFactorStatus">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': clearing()}">✖</i>
|
||||
<span data-i18n="GLOBAL/CLEAR"></span>
|
||||
</a>
|
||||
<a class="btn" data-bind="click: createTwoFactor, visible: !twoFactorStatus()">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': processing()}">▶</i>
|
||||
<span data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_ACTIVATE"></span>
|
||||
</a>
|
||||
<!--
|
||||
<a class="btn" data-bind="command: cancelCommand, visible: viewEnable() || !lock()">
|
||||
<i class="icon-ok" ></i>
|
||||
<span data-i18n="GLOBAL/DONE"></span>
|
||||
</a>
|
||||
-->
|
||||
</div>
|
||||
|
|
|
@ -294,7 +294,7 @@ trait UserAuth
|
|||
$this->ClearSignMeData($oAccount);
|
||||
|
||||
$uuid = \SnappyMail\UUID::generate();
|
||||
$salt = \sha1(\microtime(true));
|
||||
$salt = \sha1(\random_bytes(16));
|
||||
Utils::SetCookie(self::AUTH_SIGN_ME_TOKEN_KEY,
|
||||
Utils::EncodeKeyValuesQ(array(
|
||||
'e' => $oAccount->Email(),
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
<span class="domain-alias" data-bind="if: alias">(alias)</span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oDomain) { $root.deleteDomain(oDomain); }"
|
||||
<a class="btn btn-small btn-small-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': deleteAccess()}, click: function(oDomain) { $root.deleteDomain(oDomain); }"
|
||||
data-i18n="TAB_DOMAINS/DELETE_ARE_YOU_SURE"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
<span data-bind="saveTrigger: attachmentLimitTrigger"></span>
|
||||
<br />
|
||||
<br />
|
||||
<span class="well" data-bind="visible: '' !== uploadDataDesc">
|
||||
<span class="alert alert-info" data-bind="visible: '' !== uploadDataDesc">
|
||||
<b>PHP:</b>
|
||||
|
||||
<span data-bind="text: uploadDataDesc"></span>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<!-- ko text: packages.error() --><!-- /ko -->
|
||||
</div>
|
||||
|
||||
<div class="alert" style="margin-top: 10px;" data-bind="visible: '' !== packagesError()">
|
||||
<div class="alert" style="margin-top: 10px;" data-bind="visible: packagesError()">
|
||||
<button type="button" class="close" data-bind="click: function () { packagesError('') }">×</button>
|
||||
<span data-bind="text: packagesError"></span>
|
||||
</div>
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
<br />
|
||||
|
||||
<div data-bind="visible: 0 < packagesAvailableForUpdate().length">
|
||||
<div data-bind="visible: packagesAvailableForUpdate().length">
|
||||
<div class="legend">
|
||||
<span data-i18n="TAB_PACKAGES/LEGEND_AVAILABLE_FOR_UPDATE"></span>
|
||||
(<span data-bind="text: packagesAvailableForUpdate().length"></span>)
|
||||
|
@ -29,13 +29,13 @@
|
|||
<br />
|
||||
</div>
|
||||
|
||||
<div id="packages-installed" data-bind="visible: 0 < packagesCurrent().length, css: {'disabled': !enabledPlugins()}">
|
||||
<div id="packages-installed" data-bind="visible: packagesCurrent().length, css: {'disabled': !enabledPlugins()}">
|
||||
<div class="legend" data-i18n="TAB_PACKAGES/LEGEND_INSTALLED_PACKAGES"></div>
|
||||
<div data-bind="template: { name: 'AdminSettingsPackagesTable', data: {f: packagesCurrent} }"></div>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<div data-bind="visible: 0 < packagesAvailableForInstallation().length">
|
||||
<div data-bind="visible: packagesAvailableForInstallation().length">
|
||||
<div class="legend" data-i18n="TAB_PACKAGES/LEGEND_AVAILABLE_FOR_INSTALLATION"></div>
|
||||
<div data-bind="template: { name: 'AdminSettingsPackagesTable', data: {f: packagesAvailableForInstallation} }"></div>
|
||||
<br />
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<table class="table table-hover table-bordered b-admin-packages-list-table" data-bind="i18nUpdate: f">
|
||||
<table class="table table-hover table-bordered" data-bind="i18nUpdate: f">
|
||||
<colgroup>
|
||||
<col />
|
||||
<col style="width: 100px" />
|
||||
|
@ -7,17 +7,19 @@
|
|||
<tbody data-bind="foreach: f">
|
||||
<tr data-bind="css: {'disabled': !enabled() }">
|
||||
<td>
|
||||
<span class="package-name" data-bind="text: name"></span>
|
||||
<span class="package-installed pull-right" data-bind="text: installed"></span>
|
||||
<span class="package-active pull-right fontastic" data-bind="visible: installed, text: enabled() ? '☑' : '☐'"></span>
|
||||
<span class="package-configure pull-right fontastic" data-bind="visible: installed">⚙</span>
|
||||
<div>
|
||||
<span class="package-name" data-bind="text: name"></span>
|
||||
<a class="package-configure fontastic" data-bind="visible: installed">⚙</a>
|
||||
<a class="package-active fontastic" data-bind="visible: installed, text: enabled() ? '☑' : '☐'"></a>
|
||||
<span class="package-installed" data-bind="text: installed"></span>
|
||||
</div>
|
||||
<div class="package-desc" data-bind="text: desc"></div>
|
||||
</td>
|
||||
<td class="package-version" data-bind="text: version"></td>
|
||||
<td class="package-actions">
|
||||
<i class="icon-download e-action button-download" data-bind="visible: !loading() && canBeUpdated, click: function () { $root.installPackage($data); }"></i>
|
||||
<td data-bind="text: version"></td>
|
||||
<td>
|
||||
<a class="icon-download button-download" data-bind="visible: !loading() && canBeUpdated, click: function () { $root.installPackage($data); }"></a>
|
||||
|
||||
<i class="fontastic e-action button-delete" data-bind="visible: !loading() && canBeDeleted, click: function () { $root.deletePackage($data); }">🗑</i>
|
||||
<a class="fontastic button-delete" data-bind="visible: !loading() && canBeDeleted, click: function () { $root.deletePackage($data); }">🗑</a>
|
||||
<i class="icon-spinner" data-bind="visible: loading"></i>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -1,41 +1,82 @@
|
|||
<div data-bind="css: {'domain-edit': edit}">
|
||||
<header>
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-bind="text: headerText"></h3>
|
||||
</header>
|
||||
<div class="modal-body">
|
||||
<div class="row" data-bind="visible: !edit()" style="margin-bottom: 20px;">
|
||||
<div class="span5">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_NAME"></span>
|
||||
|
||||
<span style="color: #aaa">(<span data-i18n="POPUPS_DOMAIN/NAME_HELPER"></span>)</span>
|
||||
<br />
|
||||
<input type="text" class="span4" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: name" />
|
||||
<div class="alert-error" data-bind="visible: '' !== savingError(), text: savingError"></div>
|
||||
</div>
|
||||
<div class="span5 domain-desc" data-bind="visible: '' !== domainDesc(), html: domainDesc"></div>
|
||||
<header>
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-bind="text: headerText"></h3>
|
||||
</header>
|
||||
<div class="modal-body">
|
||||
<div class="row" data-bind="visible: !edit()" style="margin-bottom: 20px;">
|
||||
<div class="span5">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_NAME"></span>
|
||||
|
||||
<span style="color: #aaa">(<span data-i18n="POPUPS_DOMAIN/NAME_HELPER"></span>)</span>
|
||||
<br />
|
||||
<input type="text" class="span4" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: name" />
|
||||
<div class="alert-error" data-bind="visible: '' !== savingError(), text: savingError"></div>
|
||||
</div>
|
||||
<div class="span5 domain-desc" data-bind="visible: '' !== domainDesc(), html: domainDesc"></div>
|
||||
</div>
|
||||
|
||||
<form class="form-horizontal domain-form" action="#/" onsubmit="return false;">
|
||||
<div class="tabs">
|
||||
<form class="form-horizontal domain-form" action="#/" onsubmit="return false;">
|
||||
<div class="tabs">
|
||||
|
||||
<input type="radio" name="helptabs" id="tab-help1" checked />
|
||||
<label for="tab-help1" role="tab" tabindex="0"
|
||||
data-bind="css: { 'testing-done': testingDone, 'testing-error': testingImapError }, tooltipErrorTip: testingImapErrorDesc"
|
||||
data-i18n="POPUPS_DOMAIN/LABEL_IMAP"></label>
|
||||
<div class="tab-content" role="tabpanel" aria-hidden="false">
|
||||
<input type="radio" name="helptabs" id="tab-help1" checked />
|
||||
<label for="tab-help1" role="tab" tabindex="0"
|
||||
data-bind="css: { 'testing-done': testingDone, 'testing-error': testingImapError }, tooltipErrorTip: testingImapErrorDesc"
|
||||
data-i18n="POPUPS_DOMAIN/LABEL_IMAP"></label>
|
||||
<div class="tab-content" role="tabpanel" aria-hidden="false">
|
||||
<div class="row">
|
||||
<div class="span3">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
||||
<br />
|
||||
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: imapServer, hasfocus: imapServerFocus" />
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||
<br />
|
||||
<select class="span2" data-bind="value: imapSecure">
|
||||
<option value="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
|
||||
<option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
|
||||
<option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
||||
<br />
|
||||
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="width:6em" data-bind="textInput: imapPort" />
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_USE_SHORT_LOGIN',
|
||||
value: imapShortLogin,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
|
||||
<span style="color: #aaa">(user@domain.com → user)</span>
|
||||
</div>
|
||||
|
||||
<input type="radio" name="helptabs" id="tab-help2" />
|
||||
<label for="tab-help2" role="tab" tabindex="0"
|
||||
data-bind="css: { 'testing-done': testingDone, 'testing-error': testingSmtpError }, tooltipErrorTip: testingSmtpErrorDesc"
|
||||
data-i18n="POPUPS_DOMAIN/LABEL_SMTP"></label>
|
||||
<div class="tab-content" role="tabpanel" aria-hidden="true">
|
||||
<div data-bind="visible: !smtpPhpMail()">
|
||||
<div class="row">
|
||||
<div class="span3">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
||||
<br />
|
||||
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: imapServer, hasfocus: imapServerFocus" />
|
||||
data-bind="textInput: smtpServer, hasfocus: smtpServerFocus" />
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||
<br />
|
||||
<select class="span2" data-bind="value: imapSecure">
|
||||
<select class="span2" data-bind="value: smtpSecure">
|
||||
<option value="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
|
||||
<option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
|
||||
<option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
|
||||
|
@ -45,7 +86,7 @@
|
|||
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
||||
<br />
|
||||
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="width:6em" data-bind="textInput: imapPort" />
|
||||
style="width:6em" data-bind="textInput: smtpPort" />
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
@ -53,157 +94,114 @@
|
|||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_USE_SHORT_LOGIN',
|
||||
value: imapShortLogin,
|
||||
value: smtpShortLogin,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
|
||||
<span style="color: #aaa">(user@domain.com → user)</span>
|
||||
</div>
|
||||
|
||||
<input type="radio" name="helptabs" id="tab-help2" />
|
||||
<label for="tab-help2" role="tab" tabindex="0"
|
||||
data-bind="css: { 'testing-done': testingDone, 'testing-error': testingSmtpError }, tooltipErrorTip: testingSmtpErrorDesc"
|
||||
data-i18n="POPUPS_DOMAIN/LABEL_SMTP"></label>
|
||||
<div class="tab-content" role="tabpanel" aria-hidden="true">
|
||||
<div data-bind="visible: !smtpPhpMail()">
|
||||
<div class="row">
|
||||
<div class="span3">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
||||
<br />
|
||||
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: smtpServer, hasfocus: smtpServerFocus" />
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||
<br />
|
||||
<select class="span2" data-bind="value: smtpSecure">
|
||||
<option value="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
|
||||
<option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
|
||||
<option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
||||
<br />
|
||||
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="width:6em" data-bind="textInput: smtpPort" />
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_USE_SHORT_LOGIN',
|
||||
value: smtpShortLogin,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
|
||||
<span style="color: #aaa">(user@domain.com → user)</span>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_USE_AUTH',
|
||||
value: smtpAuth
|
||||
}
|
||||
}"></div>
|
||||
<br />
|
||||
</div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_SET_SENDER',
|
||||
value: smtpSetSender,
|
||||
inline: true
|
||||
label: 'POPUPS_DOMAIN/LABEL_USE_AUTH',
|
||||
value: smtpAuth
|
||||
}
|
||||
}"></div>
|
||||
<br />
|
||||
<div data-bind="component: {
|
||||
</div>
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_SET_SENDER',
|
||||
value: smtpSetSender,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
<br />
|
||||
<div data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_USE_PHP_MAIL',
|
||||
value: smtpPhpMail,
|
||||
inline: true
|
||||
}
|
||||
}"></div>
|
||||
|
||||
<span style="color:red">(<span data-i18n="HINTS/BETA"></span>)</span>
|
||||
</div>
|
||||
|
||||
<input type="radio" name="helptabs" id="tab-help3" />
|
||||
<label for="tab-help3" role="tab" tabindex="0"
|
||||
data-bind="css: { 'testing-done': testingDone, 'testing-error': testingSieveError }, tooltipErrorTip: testingSieveErrorDesc">
|
||||
<i class="icon-filter"></i>
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SIEVE"></span>
|
||||
</label>
|
||||
<div class="tab-content" role="tabpanel" aria-hidden="true">
|
||||
<div class="row">
|
||||
<div class="span5" data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_USE_PHP_MAIL',
|
||||
value: smtpPhpMail,
|
||||
inline: true
|
||||
label: 'POPUPS_DOMAIN/LABEL_ALLOW_SIEVE_SCRIPTS',
|
||||
value: useSieve
|
||||
}
|
||||
}"></div>
|
||||
|
||||
<span style="color:red">(<span data-i18n="HINTS/BETA"></span>)</span>
|
||||
</div>
|
||||
|
||||
<input type="radio" name="helptabs" id="tab-help3" />
|
||||
<label for="tab-help3" role="tab" tabindex="0"
|
||||
data-bind="css: { 'testing-done': testingDone, 'testing-error': testingSieveError }, tooltipErrorTip: testingSieveErrorDesc">
|
||||
<i class="icon-filter"></i>
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SIEVE"></span>
|
||||
</label>
|
||||
<div class="tab-content" role="tabpanel" aria-hidden="true">
|
||||
<div data-bind="visible: useSieve">
|
||||
<div class="row">
|
||||
<div class="span5" data-bind="component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'POPUPS_DOMAIN/LABEL_ALLOW_SIEVE_SCRIPTS',
|
||||
value: useSieve
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
<div data-bind="visible: useSieve">
|
||||
<div class="row">
|
||||
<div class="span3">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
||||
<br />
|
||||
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: sieveServer, hasfocus: sieveServerFocus" />
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||
<br />
|
||||
<select class="span2" data-bind="value: sieveSecure">
|
||||
<option value="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
|
||||
<option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
|
||||
<option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
||||
<br />
|
||||
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="width:6em" data-bind="textInput: sievePort" />
|
||||
</div>
|
||||
<div class="span3">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
||||
<br />
|
||||
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
data-bind="textInput: sieveServer, hasfocus: sieveServerFocus" />
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||
<br />
|
||||
<select class="span2" data-bind="value: sieveSecure">
|
||||
<option value="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
|
||||
<option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
|
||||
<option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="span2">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
||||
<br />
|
||||
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="width:6em" data-bind="textInput: sievePort" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="radio" name="helptabs" id="tab-help4" />
|
||||
<label for="tab-help4" role="tab" tabindex="0">
|
||||
<i class="fontastic">👥</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_WHITE_LIST"></span>
|
||||
</label>
|
||||
<div class="tab-content" role="tabpanel" aria-hidden="true">
|
||||
<div class="alert alert-block" data-i18n="POPUPS_DOMAIN/WHITE_LIST_ALERT"></div>
|
||||
<textarea class="input-xxlarge" style="width: 100%" rows="8" data-bind="value: whiteList" tabindex="-1"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<footer>
|
||||
<a class="btn button-test-connection pull-left" data-bind="command: testConnectionCommand, css: {
|
||||
'btn-success': testingDone() && !testingImapError() && !testingSmtpError(),
|
||||
'btn-danger': testingDone() && (testingImapError() || testingSmtpError()) }">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': testing()}">ℹ</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_TEST"></span>
|
||||
</a>
|
||||
<a class="btn buttonClose" data-bind="command: cancelCommand">
|
||||
<i class="fontastic">✖</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_CLOSE"></span>
|
||||
</a>
|
||||
<a class="btn" data-bind="command: createOrAddCommand, visible: edit()">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': saving()}">✔</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_UPDATE"></span>
|
||||
</a>
|
||||
<a class="btn" data-bind="command: createOrAddCommand, visible: !edit()">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': saving()}">✚</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_ADD"></span>
|
||||
</a>
|
||||
</footer>
|
||||
|
||||
<input type="radio" name="helptabs" id="tab-help4" />
|
||||
<label for="tab-help4" role="tab" tabindex="0">
|
||||
<i class="fontastic">👥</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_WHITE_LIST"></span>
|
||||
</label>
|
||||
<div class="tab-content" role="tabpanel" aria-hidden="true">
|
||||
<div class="alert alert-block" data-i18n="POPUPS_DOMAIN/WHITE_LIST_ALERT"></div>
|
||||
<textarea class="input-xxlarge" style="width: 100%" rows="8" data-bind="value: whiteList" tabindex="-1"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<footer>
|
||||
<a class="btn button-test-connection" data-bind="command: testConnectionCommand, css: {
|
||||
'btn-success': testingDone() && !testingImapError() && !testingSmtpError(),
|
||||
'btn-danger': testingDone() && (testingImapError() || testingSmtpError()) }">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': testing()}">ℹ</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_TEST"></span>
|
||||
</a>
|
||||
<a class="btn buttonClose" data-bind="command: cancelCommand">
|
||||
<i class="fontastic">✖</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_CLOSE"></span>
|
||||
</a>
|
||||
<a class="btn" data-bind="command: createOrAddCommand, visible: edit()">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': saving()}">✔</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_UPDATE"></span>
|
||||
</a>
|
||||
<a class="btn" data-bind="command: createOrAddCommand, visible: !edit()">
|
||||
<i class="fontastic" data-bind="css: {'icon-spinner': saving()}">✚</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_ADD"></span>
|
||||
</a>
|
||||
</footer>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
</header>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal plugin-form" action="#/" onsubmit="return false;">
|
||||
<div class="well" data-bind="visible: !hasConfiguration()" data-i18n="POPUPS_PLUGIN/DESC_NOTHING_TO_CONFIGURE"></div>
|
||||
<div class="alert alert-info" data-bind="visible: !hasConfiguration()" data-i18n="POPUPS_PLUGIN/DESC_NOTHING_TO_CONFIGURE"></div>
|
||||
<div class="alert" data-bind="visible: '' !== saveError()">
|
||||
<button type="button" class="close" data-bind="click: function () { saveError('') }">×</button>
|
||||
<span data-bind="text: saveError"></span>
|
||||
|
|
|
@ -153,19 +153,17 @@
|
|||
|
||||
<div class="messageList g-ui-user-select-none" data-bind="css: {'hideMessageListCheckbox': !useCheckboxesInList() }">
|
||||
<div class="second-toolbar thm-message-list-top-toolbar">
|
||||
<div class="form-inline">
|
||||
<i class="checkboxCheckAll fontastic" data-bind="text: checkAll() ? (isIncompleteChecked() ? '▣' : '☑') : '☐'"></i>
|
||||
<div class="input-append" data-bind="visible: allowSearch">
|
||||
<div class="close-input-wrp">
|
||||
<a class="close" data-bind="click: cancelSearch, visible: '' !== messageListSearchDesc()">×</a>
|
||||
<input type="search" class="span4 inputSearch" tabindex="-1" placeholder="Search" autocorrect="off" autocapitalize="off" data-i18n="[placeholder]GLOBAL/SEARCH" data-bind="value: inputProxyMessageListSearch, onEnter: searchEnterAction, hasfocus: inputMessageListSearchFocus" />
|
||||
</div>
|
||||
<a class="btn buttonMoreSearch" data-bind="visible: allowSearchAdv, click: advancedSearchClick">▼</a>
|
||||
</div>
|
||||
<i class="checkboxCheckAll fontastic" data-bind="text: checkAll() ? (isIncompleteChecked() ? '▣' : '☑') : '☐'"></i>
|
||||
<!-- ko if: allowSearch -->
|
||||
<div class="search-input-wrp">
|
||||
<input type="search" class="inputSearch" tabindex="-1" placeholder="Search" autocorrect="off" autocapitalize="off" data-i18n="[placeholder]GLOBAL/SEARCH" data-bind="value: inputProxyMessageListSearch, onEnter: searchEnterAction, hasfocus: inputMessageListSearchFocus" />
|
||||
<a class="closeSearch" data-bind="click: cancelSearch, visible: messageListSearchDesc()">×</a>
|
||||
</div>
|
||||
<a class="btn buttonMoreSearch" data-bind="visible: allowSearchAdv, click: advancedSearchClick">▼</a>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
<div class="b-content" data-bind="initDom: dragOverBodyArea">
|
||||
<div class="listThreadUidDesc" data-bind="visible: 0 < messageListEndThreadUid(), click: cancelThreadUid">
|
||||
<div class="listThreadUidDesc" data-bind="visible: messageListEndThreadUid(), click: cancelThreadUid">
|
||||
<i class="fontastic">⬅</i>
|
||||
<span data-i18n="MESSAGE_LIST/BACK_TO_MESSAGE_LIST"></span>
|
||||
</div>
|
||||
|
@ -224,13 +222,11 @@
|
|||
<div id="messagesDragImage"><span class="text"></span> <i class="icon-mail"></i></div>
|
||||
</div>
|
||||
<div class="b-footer thm-message-list-bottom-toolbar">
|
||||
<!-- ko if: 0 < userUsageProc() -->
|
||||
<!-- ko if: userUsageProc() -->
|
||||
<span data-bind="attr: { title: quotaTooltip() }" class="e-quota">
|
||||
<!-- ko text: userUsageProc --><!-- /ko -->%
|
||||
</span>
|
||||
<!-- /ko -->
|
||||
<div class="pull-right">
|
||||
<!-- ko template: { name: 'Paginator', data: messageListPaginator } --><!-- /ko -->
|
||||
</div>
|
||||
<!-- ko template: { name: 'Paginator', data: messageListPaginator } --><!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a class="close" data-bind="click: tryToClosePopup" data-i18n="[title]GLOBAL/CANCEL">×</a>
|
||||
<a class="minimize-custom" data-bind="click: skipCommand" data-i18n="[title]COMPOSE/BUTTON_MINIMIZE"></a>
|
||||
|
||||
<a class="btn btn-danger button-delete button-delete-transitions" data-bind="command: deleteCommand">
|
||||
<a class="btn btn-danger button-delete" data-bind="command: deleteCommand">
|
||||
<i class="fontastic">🗑</i>
|
||||
</a>
|
||||
<span class="saved-text hide-mobile" data-bind="text: savedTimeText"></span>
|
||||
|
@ -124,8 +124,8 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<div class="btn-group pull-left">
|
||||
<td style="display:flex">
|
||||
<div class="btn-group" style="flex-grow:1">
|
||||
<button type="button" class="btn" data-bind="click: function () { attachmentsPlace(false); },
|
||||
css: { 'active': !attachmentsPlace() }">
|
||||
<i class="icon-file-text"></i>
|
||||
|
@ -140,7 +140,7 @@
|
|||
<i data-bind="css: { 'icon-attachment': 0 === attachmentsInProcessCount(), 'icon-spinner': 0 < attachmentsInProcessCount()}"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="btn-group pull-right">
|
||||
<div class="btn-group">
|
||||
<a class="btn"
|
||||
style="padding-left: 10px; padding-right: 10px;"
|
||||
data-bind="visible: addAttachmentEnabled(), initDom: composeUploaderButton" data-i18n="[title]COMPOSE/ATTACH_FILES">
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<col style="width: 16px" />
|
||||
<col />
|
||||
<col style="width: 140px" />
|
||||
<col style="width: 1%" />
|
||||
<col style="width: 1em" />
|
||||
</colgroup>
|
||||
<tbody data-bind="foreach: filters">
|
||||
<tr class="filter-item" draggable="true" data-bind="sortableItem: { list: $parent.filters }">
|
||||
|
@ -57,7 +57,7 @@
|
|||
<span class="filter-sub-name" data-bind="text: nameSub()"></span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oFilter) { $root.deleteFilter(oFilter); }"
|
||||
<a class="btn btn-small btn-small-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': deleteAccess()}, click: function(oFilter) { $root.deleteFilter(oFilter); }"
|
||||
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<span class="account-name" data-bind="text: email"></span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="visible: canBeDeleted, css: {'delete-access': deleteAccess}, click: function(oAccount) { $root.deleteAccount(oAccount); }"
|
||||
<a class="btn btn-small btn-small-small btn-danger button-confirm-delete" data-bind="visible: canBeDeleted, css: {'delete-access': deleteAccess}, click: function(oAccount) { $root.deleteAccount(oAccount); }"
|
||||
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
@ -42,7 +42,7 @@
|
|||
<span class="identity-default" data-bind="visible: 0 === $index()" data-i18n="SETTINGS_ACCOUNTS/DEFAULT_IDENTITY_LABEL"></span>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="visible: canBeDeleted, css: {'delete-access': deleteAccess}, click: function(oIdentity) { $root.deleteIdentity(oIdentity); }"
|
||||
<a class="btn btn-small btn-small-small btn-danger button-confirm-delete" data-bind="visible: canBeDeleted, css: {'delete-access': deleteAccess}, click: function(oIdentity) { $root.deleteIdentity(oIdentity); }"
|
||||
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<col style="width: 30px" />
|
||||
<col />
|
||||
<col style="width: 140px" />
|
||||
<col style="width: 1%" />
|
||||
<col style="width: 1em" />
|
||||
</colgroup>
|
||||
<tbody data-bind="foreach: scripts">
|
||||
<tr class="script-item">
|
||||
|
@ -24,7 +24,7 @@
|
|||
</td>
|
||||
<td class="e-action" class="script-name" data-bind="text: name()"></td>
|
||||
<td>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oScript) { $root.deleteScript(oScript); }"
|
||||
<a class="btn btn-small btn-small-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': deleteAccess()}, click: function(oScript) { $root.deleteScript(oScript); }"
|
||||
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
data-bind="value: nameForEdit, visible: edited, hasfocus: edited, onEnter: function () { $root.folderEditOnEnter($data); }, onEsc: function () { $root.folderEditOnEsc($data); }" />
|
||||
|
||||
<span class="folder-system-name" data-bind="text: manageFolderSystemName, visible: isSystemFolder"></span>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: $root.deleteFolder"
|
||||
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
|
||||
</td>
|
||||
<td data-i18n="[title]SETTINGS_FOLDERS/HELP_DELETE_FOLDER">
|
||||
<a class="btn btn-small btn-small-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': deleteAccess()}, click: $root.deleteFolder"
|
||||
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
|
||||
<span class="delete-folder e-action fontastic" data-bind="visible: canBeDeleted() && !deleteAccess(), click: $root.folderForDeletion">🗑</span>
|
||||
</td>
|
||||
<td data-i18n="[title]SETTINGS_FOLDERS/HELP_SHOW_HIDE_FOLDER">
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
<span class="open-pgp-key-user" data-bind="foreach: users">
|
||||
<div class="open-pgp-key-user-address" data-bind="text: $data"></div>
|
||||
</span>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(openPgpKey) { $root.deleteOpenPgpKey(openPgpKey); }"
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete" data-bind="css: {'delete-access': deleteAccess()}, click: function(openPgpKey) { $root.deleteOpenPgpKey(openPgpKey); }"
|
||||
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
@ -47,7 +47,7 @@
|
|||
<span data-bind="text: $data"></span> (<span class="open-pgp-key-id" data-bind="text: $parent.id"></span>)
|
||||
</div>
|
||||
</span>
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oOpenPGP) { $root.deleteOpenPgpKey(oOpenPGP); }"
|
||||
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete" data-bind="css: {'delete-access': deleteAccess()}, click: function(oOpenPGP) { $root.deleteOpenPgpKey(oOpenPGP); }"
|
||||
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
|
||||
</td>
|
||||
<td>
|
||||
|
|
|
@ -71,11 +71,11 @@
|
|||
border-top-color: var(--main-color);
|
||||
}
|
||||
|
||||
.well,
|
||||
#rl-popups > dialog,
|
||||
#rl-settings-subscreen,
|
||||
.messageList,
|
||||
.messageView,
|
||||
.alert-info,
|
||||
#V-PopupsCompose .b-attachment-place {
|
||||
background-color: #000;
|
||||
border-color: #555;
|
||||
|
|
3
vendors/bootstrap/less/utilities.less
vendored
3
vendors/bootstrap/less/utilities.less
vendored
|
@ -7,9 +7,6 @@
|
|||
.pull-right {
|
||||
float: right;
|
||||
}
|
||||
.pull-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
// Toggling content
|
||||
.show {
|
||||
|
|
12
vendors/bootstrap/less/wells.less
vendored
12
vendors/bootstrap/less/wells.less
vendored
|
@ -1,12 +0,0 @@
|
|||
//
|
||||
// Wells
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Base class
|
||||
.well {
|
||||
background-color: @wellBackground;
|
||||
border: 1px solid darken(@wellBackground, 7%);
|
||||
border-radius: 4px;
|
||||
padding: 9px;
|
||||
}
|
Loading…
Reference in a new issue