Drop bootstrap .well and .pull-left

Reduce bootstrap .pull-right usage
This commit is contained in:
djmaze 2021-11-09 00:53:42 +01:00
parent d64cfb96ad
commit 99c72ad9e6
29 changed files with 348 additions and 391 deletions

View file

@ -15,7 +15,6 @@
@import "../../vendors/bootstrap/less/button-groups.less"; @import "../../vendors/bootstrap/less/button-groups.less";
@import "../../vendors/bootstrap/less/alerts.less"; @import "../../vendors/bootstrap/less/alerts.less";
@import "../../vendors/bootstrap/less/utilities.less"; @import "../../vendors/bootstrap/less/utilities.less";
@import "../../vendors/bootstrap/less/wells.less";
@import "_FontasticToBoot.less"; @import "_FontasticToBoot.less";
@import "_BootstrapFix.less"; @import "_BootstrapFix.less";

View file

@ -10,33 +10,32 @@
opacity: 0.5; opacity: 0.5;
} }
} table {
.b-admin-packages-list-table { width: 700px;
width: 700px; div:first-child {
display: flex;
.package-img { }
font-size: 12px;
margin-right: 2px;
} }
.package-name {
flex-grow: 1;
}
.package-name.core { .package-name.core {
font-weight: bold; font-weight: bold;
} }
.package-desc { .package-desc {
color: #999;
font-size: 12px; font-size: 12px;
opacity: 0.7;
} }
.package-release, .package-actions { td + td {
text-align: center; text-align: center;
}
.package-actions {
vertical-align: middle; vertical-align: middle;
} }
.package-configure, .package-active { a {
cursor: pointer; cursor: pointer;
margin-right: 1em; margin-right: 1em;
} }

View file

@ -16,29 +16,21 @@
transition: left 0.3s ease-out, right 0.3s ease-out; 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);*/
html.rl-started-trigger .LoginView { transform: translateY(-20px);
/*transform: scale(1.1);*/ opacity: 0.5;
transform: translateY(-20px); }
opacity: 0.5;
} .LoginView .errorAnimated {
animation: login-form-shake 400ms ease-in-out;
.LoginView .errorAnimated { }
animation: login-form-shake 400ms ease-in-out;
} .LoginView .errorAnimated .buttonLogin {
color: #b94a48;
.LoginView .errorAnimated .buttonLogin { font-weight: bold;
color: #b94a48; }
font-weight: bold;
} .LoginView {
transition: all 0.3s ease-out;
.LoginView {
transition: all 0.3s ease-out;
}
.button-delete-transitions {
transition: all 0.2s linear;
}
} }

View file

@ -76,6 +76,7 @@ textarea + .settings-save-trigger {
} }
.button-confirm-delete { .button-confirm-delete {
transition: all 0.2s linear;
white-space: nowrap; white-space: nowrap;
} }
.button-confirm-delete:not(.delete-access) { .button-confirm-delete:not(.delete-access) {

View file

@ -12,10 +12,6 @@
@media screen and (min-width: 1000px) { @media screen and (min-width: 1000px) {
.button-delete-transitions {
transition: all 0.2s linear;
}
.b-folders li .anim-action-class { .b-folders li .anim-action-class {
animation: highlight-folder-row 0.5s linear; animation: highlight-folder-row 0.5s linear;
} }

View file

@ -31,6 +31,7 @@ html.rl-no-preview-pane {
flex-direction: column; flex-direction: column;
.b-footer { .b-footer {
display: flex;
flex-shrink: 0; flex-shrink: 0;
padding: 7px; padding: 7px;
@ -51,6 +52,11 @@ html.rl-no-preview-pane {
} }
} }
.b-footer nav {
flex-grow: 1;
text-align: right;
}
.btn.buttonMoreSearch { .btn.buttonMoreSearch {
font-size: 11px; font-size: 11px;
padding-left: 8px; padding-left: 8px;
@ -58,6 +64,7 @@ html.rl-no-preview-pane {
} }
.second-toolbar { .second-toolbar {
display: flex;
flex-shrink: 0; flex-shrink: 0;
padding: 10px 8px 10px 11px; padding: 10px 8px 10px 11px;
white-space: nowrap; white-space: nowrap;
@ -68,26 +75,35 @@ html.rl-no-preview-pane {
border-top-right-radius: @rlMainBorderRadius; border-top-right-radius: @rlMainBorderRadius;
border-top-left-radius: @rlMainBorderRadius; border-top-left-radius: @rlMainBorderRadius;
border-bottom: 1px solid #bbb; border-bottom: 1px solid #bbb;
}
.checkboxCheckAll { .checkboxCheckAll {
cursor: pointer; cursor: pointer;
vertical-align: middle margin: 0.5em 0.5em 0 0;
} }
.input-append { .search-input-wrp {
margin-left: 14px; flex-grow: 1;
text-align: right; position: relative;
width: calc(100% - 30px); text-align: right;
}
.close-input-wrp { .inputSearch {
width: 90%; display: inline-block;
min-width: 200px; max-width: 300px;
max-width: 300px; width: 100%;
} }
.inputSearch { .closeSearch {
width: 100%; position: absolute;
} right: 0;
top: 5px;
margin: 0 7px;
z-index: 100;
vertical-align: middle;
opacity: .4;
&:hover {
opacity: .6;
} }
} }

View file

@ -80,10 +80,6 @@
border-radius: @rlMainBorderRadius; border-radius: @rlMainBorderRadius;
} }
html.rl-mobile #rl-settings-subscreen > * {
margin-right: 15px;
}
.firefox-drag #rl-settings-subscreen, .firefox-drag #rl-settings-subscreen,
.firefox-drag .modal-body { .firefox-drag .modal-body {
overflow: hidden; overflow: hidden;

View file

@ -26,10 +26,10 @@
} }
td + td { td + td {
width: 150px; text-align: right;
} }
td + td + td { td + td + td {
width: 1%; width: 1em;
} }
.delete { .delete {

View file

@ -10,6 +10,7 @@
} }
td + td { td + td {
white-space: nowrap;
width: 1em; width: 1em;
} }

View file

@ -93,7 +93,7 @@
blockquote { blockquote {
border: 0; border: 0;
border-left: solid 2px #444; border-left: 2px solid #444;
margin: 5px 0 5px 5px; margin: 5px 0 5px 5px;
padding-left: 5px; padding-left: 5px;
} }

View file

@ -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;
}
}
}

View file

@ -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="form-horizontal">
<div class="legend" data-i18n="POPUPS_TWO_FACTOR_CFG/LEGEND_TWO_FACTOR_AUTH"></div> <div class="control-group" data-bind="visible: twoFactorStatus">
<div class="form-horizontal"> <div class="controls">
<div class="control-group" data-bind="visible: twoFactorStatus"> <div style="display: inline-block" data-bind="attr:{title: viewTwoFactorEnableTooltip}">
<div class="controls"> <div data-bind="component: {
<div style="display: inline-block" data-bind="attr:{title: viewTwoFactorEnableTooltip}"> name: 'Checkbox',
<div data-bind="component: { params: {
name: 'Checkbox', label: 'POPUPS_TWO_FACTOR_CFG/LABEL_ENABLE_TWO_FACTOR',
params: { enable: twoFactorAllowedEnable,
label: 'POPUPS_TWO_FACTOR_CFG/LABEL_ENABLE_TWO_FACTOR', value: viewEnable,
enable: twoFactorAllowedEnable, inline: true
value: viewEnable, }
inline: true }"></div>
}
}"></div>
</div>
&nbsp;&nbsp;&nbsp;
<span class="g-ui-link" data-bind="click: testTwoFactor, visible: twoFactorStatus"
data-i18n="POPUPS_TWO_FACTOR_CFG/LINK_TEST"></span>
</div> </div>
&nbsp;&nbsp;&nbsp;
<span class="g-ui-link" data-bind="click: testTwoFactor, visible: twoFactorStatus"
data-i18n="POPUPS_TWO_FACTOR_CFG/LINK_TEST"></span>
</div> </div>
<div class="control-group"> </div>
<label class="control-label"> <div class="control-group">
<span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_USER"></span> <label class="control-label">
</label> <span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_USER"></span>
<div class="controls" style="padding-top: 5px;"> </label>
<strong><span data-bind="text: viewUser"></span></strong> <div class="controls" style="padding-top: 5px;">
<div style="padding-top: 15px;" data-bind="visible: lock"> <strong><span data-bind="text: viewUser"></span></strong>
<blockquote> <div style="padding-top: 15px;" data-bind="visible: lock">
<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>
&nbsp;&nbsp;
<span class="g-ui-link" data-bind="click: hideSecret" data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_HIDE_SECRET"></span>
<br />
<br />
<blockquote> <blockquote>
<p class="muted width100-on-mobile" style="width: 550px" data-i18n="POPUPS_TWO_FACTOR_CFG/TWO_FACTOR_SECRET_DESC"></p> <p class="muted width100-on-mobile" style="width: 550px" data-i18n="POPUPS_TWO_FACTOR_CFG/TWO_FACTOR_REQUIRE_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> </blockquote>
</div> </div>
</div> </div>
</div> </div>
<div class="control-group" data-bind="visible: '' === viewSecret() && twoFactorStatus() && !clearing()">
<a class="btn pull-left" data-bind="visible: lock, click: logout"> <div class="controls" style="padding-top: 5px;">
<i class="fontastic"></i> <strong data-bind="visible: secreting">...</strong>
<span data-i18n="GLOBAL/LOGOUT"></span> <span class="g-ui-link" data-bind="click: showSecret, visible: !secreting()"
</a> data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_SHOW_SECRET"></span>
<a class="btn btn-danger" data-bind="click: clearTwoFactor, visible: twoFactorStatus"> </div>
<i class="fontastic" data-bind="css: {'icon-spinner': clearing()}"></i> </div>
<span data-i18n="GLOBAL/CLEAR"></span> <div class="control-group" data-bind="visible: '' !== viewSecret()">
</a> <label class="control-label">
<a class="btn" data-bind="click: createTwoFactor, visible: !twoFactorStatus()"> <span data-i18n="POPUPS_TWO_FACTOR_CFG/LABEL_TWO_FACTOR_SECRET"></span>
<i class="fontastic" data-bind="css: {'icon-spinner': processing()}"></i> </label>
<span data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_ACTIVATE"></span> <div class="controls" style="padding-top: 5px;">
</a> <strong data-bind="text: viewSecret"></strong>
<!-- &nbsp;&nbsp;
<a class="btn" data-bind="command: cancelCommand, visible: viewEnable() || !lock()"> <span class="g-ui-link" data-bind="click: hideSecret" data-i18n="POPUPS_TWO_FACTOR_CFG/BUTTON_HIDE_SECRET"></span>
<i class="icon-ok" ></i> <br />
<span data-i18n="GLOBAL/DONE"></span> <br />
</a> <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> </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> </div>

View file

@ -294,7 +294,7 @@ trait UserAuth
$this->ClearSignMeData($oAccount); $this->ClearSignMeData($oAccount);
$uuid = \SnappyMail\UUID::generate(); $uuid = \SnappyMail\UUID::generate();
$salt = \sha1(\microtime(true)); $salt = \sha1(\random_bytes(16));
Utils::SetCookie(self::AUTH_SIGN_ME_TOKEN_KEY, Utils::SetCookie(self::AUTH_SIGN_ME_TOKEN_KEY,
Utils::EncodeKeyValuesQ(array( Utils::EncodeKeyValuesQ(array(
'e' => $oAccount->Email(), 'e' => $oAccount->Email(),

View file

@ -30,7 +30,7 @@
<span class="domain-alias" data-bind="if: alias">(alias)</span> <span class="domain-alias" data-bind="if: alias">(alias)</span>
</td> </td>
<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> data-i18n="TAB_DOMAINS/DELETE_ARE_YOU_SURE"></a>
</td> </td>
<td> <td>

View file

@ -101,7 +101,7 @@
<span data-bind="saveTrigger: attachmentLimitTrigger"></span> <span data-bind="saveTrigger: attachmentLimitTrigger"></span>
<br /> <br />
<br /> <br />
<span class="well" data-bind="visible: '' !== uploadDataDesc"> <span class="alert alert-info" data-bind="visible: '' !== uploadDataDesc">
<b>PHP:</b> <b>PHP:</b>
&nbsp; &nbsp;
<span data-bind="text: uploadDataDesc"></span> <span data-bind="text: uploadDataDesc"></span>

View file

@ -8,7 +8,7 @@
<!-- ko text: packages.error() --><!-- /ko --> <!-- ko text: packages.error() --><!-- /ko -->
</div> </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> <button type="button" class="close" data-bind="click: function () { packagesError('') }">×</button>
<span data-bind="text: packagesError"></span> <span data-bind="text: packagesError"></span>
</div> </div>
@ -20,7 +20,7 @@
<br /> <br />
<div data-bind="visible: 0 < packagesAvailableForUpdate().length"> <div data-bind="visible: packagesAvailableForUpdate().length">
<div class="legend"> <div class="legend">
<span data-i18n="TAB_PACKAGES/LEGEND_AVAILABLE_FOR_UPDATE"></span>&nbsp; <span data-i18n="TAB_PACKAGES/LEGEND_AVAILABLE_FOR_UPDATE"></span>&nbsp;
(<span data-bind="text: packagesAvailableForUpdate().length"></span>) (<span data-bind="text: packagesAvailableForUpdate().length"></span>)
@ -29,13 +29,13 @@
<br /> <br />
</div> </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 class="legend" data-i18n="TAB_PACKAGES/LEGEND_INSTALLED_PACKAGES"></div>
<div data-bind="template: { name: 'AdminSettingsPackagesTable', data: {f: packagesCurrent} }"></div> <div data-bind="template: { name: 'AdminSettingsPackagesTable', data: {f: packagesCurrent} }"></div>
<br /> <br />
</div> </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 class="legend" data-i18n="TAB_PACKAGES/LEGEND_AVAILABLE_FOR_INSTALLATION"></div>
<div data-bind="template: { name: 'AdminSettingsPackagesTable', data: {f: packagesAvailableForInstallation} }"></div> <div data-bind="template: { name: 'AdminSettingsPackagesTable', data: {f: packagesAvailableForInstallation} }"></div>
<br /> <br />

View file

@ -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> <colgroup>
<col /> <col />
<col style="width: 100px" /> <col style="width: 100px" />
@ -7,17 +7,19 @@
<tbody data-bind="foreach: f"> <tbody data-bind="foreach: f">
<tr data-bind="css: {'disabled': !enabled() }"> <tr data-bind="css: {'disabled': !enabled() }">
<td> <td>
<span class="package-name" data-bind="text: name"></span> <div>
<span class="package-installed pull-right" data-bind="text: installed"></span> <span class="package-name" data-bind="text: name"></span>
<span class="package-active pull-right fontastic" data-bind="visible: installed, text: enabled() ? '☑' : '☐'"></span> <a class="package-configure fontastic" data-bind="visible: installed"></a>
<span class="package-configure pull-right fontastic" data-bind="visible: installed"></span> <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> <div class="package-desc" data-bind="text: desc"></div>
</td> </td>
<td class="package-version" data-bind="text: version"></td> <td data-bind="text: version"></td>
<td class="package-actions"> <td>
<i class="icon-download e-action button-download" data-bind="visible: !loading() && canBeUpdated, click: function () { $root.installPackage($data); }"></i> <a class="icon-download button-download" data-bind="visible: !loading() && canBeUpdated, click: function () { $root.installPackage($data); }"></a>
&nbsp; &nbsp;
<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> <i class="icon-spinner" data-bind="visible: loading"></i>
</td> </td>
</tr> </tr>

View file

@ -1,41 +1,82 @@
<div data-bind="css: {'domain-edit': edit}"> <header>
<header> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3 data-bind="text: headerText"></h3>
<h3 data-bind="text: headerText"></h3> </header>
</header> <div class="modal-body">
<div class="modal-body"> <div class="row" data-bind="visible: !edit()" style="margin-bottom: 20px;">
<div class="row" data-bind="visible: !edit()" style="margin-bottom: 20px;"> <div class="span5">
<div class="span5"> <span data-i18n="POPUPS_DOMAIN/LABEL_NAME"></span>
<span data-i18n="POPUPS_DOMAIN/LABEL_NAME"></span> &nbsp;
&nbsp; <span style="color: #aaa">(<span data-i18n="POPUPS_DOMAIN/NAME_HELPER"></span>)</span>
<span style="color: #aaa">(<span data-i18n="POPUPS_DOMAIN/NAME_HELPER"></span>)</span> <br />
<br /> <input type="text" class="span4" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
<input type="text" class="span4" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="textInput: name" />
data-bind="textInput: name" /> <div class="alert-error" data-bind="visible: '' !== savingError(), text: savingError"></div>
<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> </div>
<div class="span5 domain-desc" data-bind="visible: '' !== domainDesc(), html: domainDesc"></div>
</div>
<form class="form-horizontal domain-form" action="#/" onsubmit="return false;"> <form class="form-horizontal domain-form" action="#/" onsubmit="return false;">
<div class="tabs"> <div class="tabs">
<input type="radio" name="helptabs" id="tab-help1" checked /> <input type="radio" name="helptabs" id="tab-help1" checked />
<label for="tab-help1" role="tab" tabindex="0" <label for="tab-help1" role="tab" tabindex="0"
data-bind="css: { 'testing-done': testingDone, 'testing-error': testingImapError }, tooltipErrorTip: testingImapErrorDesc" data-bind="css: { 'testing-done': testingDone, 'testing-error': testingImapError }, tooltipErrorTip: testingImapErrorDesc"
data-i18n="POPUPS_DOMAIN/LABEL_IMAP"></label> data-i18n="POPUPS_DOMAIN/LABEL_IMAP"></label>
<div class="tab-content" role="tabpanel" aria-hidden="false"> <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>
&nbsp;&nbsp;
<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="row">
<div class="span3"> <div class="span3">
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span> <span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
<br /> <br />
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <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>
<div class="span2"> <div class="span2">
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span> <span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
<br /> <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="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
<option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option> <option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
<option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option> <option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
@ -45,7 +86,7 @@
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span> <span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
<br /> <br />
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <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>
</div> </div>
<br /> <br />
@ -53,157 +94,114 @@
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'POPUPS_DOMAIN/LABEL_USE_SHORT_LOGIN', label: 'POPUPS_DOMAIN/LABEL_USE_SHORT_LOGIN',
value: imapShortLogin, value: smtpShortLogin,
inline: true inline: true
} }
}"></div> }"></div>
&nbsp;&nbsp; &nbsp;&nbsp;
<span style="color: #aaa">(user@domain.com → user)</span> <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>
&nbsp;&nbsp;
<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: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'POPUPS_DOMAIN/LABEL_SET_SENDER', label: 'POPUPS_DOMAIN/LABEL_USE_AUTH',
value: smtpSetSender, value: smtpAuth
inline: true
} }
}"></div> }"></div>
<br /> <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>
&nbsp;&nbsp;
<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', name: 'Checkbox',
params: { params: {
label: 'POPUPS_DOMAIN/LABEL_USE_PHP_MAIL', label: 'POPUPS_DOMAIN/LABEL_ALLOW_SIEVE_SCRIPTS',
value: smtpPhpMail, value: useSieve
inline: true
} }
}"></div> }"></div>
&nbsp;&nbsp;
<span style="color:red">(<span data-i18n="HINTS/BETA"></span>)</span>
</div> </div>
<div data-bind="visible: useSieve">
<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="row">
<div class="span5" data-bind="component: { <div class="span3">
name: 'Checkbox', <span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
params: { <br />
label: 'POPUPS_DOMAIN/LABEL_ALLOW_SIEVE_SCRIPTS', <input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
value: useSieve data-bind="textInput: sieveServer, hasfocus: sieveServerFocus" />
} </div>
}"></div> <div class="span2">
</div> <span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
<div data-bind="visible: useSieve"> <br />
<div class="row"> <select class="span2" data-bind="value: sieveSecure">
<div class="span3"> <option value="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span> <option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
<br /> <option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" </select>
data-bind="textInput: sieveServer, hasfocus: sieveServerFocus" /> </div>
</div> <div class="span2">
<div class="span2"> <span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span> <br />
<br /> <input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
<select class="span2" data-bind="value: sieveSecure"> style="width:6em" data-bind="textInput: sievePort" />
<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>
</div> </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> </div>
</form>
</div> <input type="radio" name="helptabs" id="tab-help4" />
<footer> <label for="tab-help4" role="tab" tabindex="0">
<a class="btn button-test-connection pull-left" data-bind="command: testConnectionCommand, css: { <i class="fontastic">👥</i>
'btn-success': testingDone() && !testingImapError() && !testingSmtpError(), <span data-i18n="POPUPS_DOMAIN/BUTTON_WHITE_LIST"></span>
'btn-danger': testingDone() && (testingImapError() || testingSmtpError()) }"> </label>
<i class="fontastic" data-bind="css: {'icon-spinner': testing()}"></i> <div class="tab-content" role="tabpanel" aria-hidden="true">
<span data-i18n="POPUPS_DOMAIN/BUTTON_TEST"></span> <div class="alert alert-block" data-i18n="POPUPS_DOMAIN/WHITE_LIST_ALERT"></div>
</a> <textarea class="input-xxlarge" style="width: 100%" rows="8" data-bind="value: whiteList" tabindex="-1"></textarea>
<a class="btn buttonClose" data-bind="command: cancelCommand"> </div>
<i class="fontastic"></i> </div>
<span data-i18n="POPUPS_DOMAIN/BUTTON_CLOSE"></span> </form>
</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>
</div> </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>

View file

@ -9,7 +9,7 @@
</header> </header>
<div class="modal-body"> <div class="modal-body">
<form class="form-horizontal plugin-form" action="#/" onsubmit="return false;"> <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()"> <div class="alert" data-bind="visible: '' !== saveError()">
<button type="button" class="close" data-bind="click: function () { saveError('') }">×</button> <button type="button" class="close" data-bind="click: function () { saveError('') }">×</button>
<span data-bind="text: saveError"></span> <span data-bind="text: saveError"></span>

View file

@ -153,19 +153,17 @@
<div class="messageList g-ui-user-select-none" data-bind="css: {'hideMessageListCheckbox': !useCheckboxesInList() }"> <div class="messageList g-ui-user-select-none" data-bind="css: {'hideMessageListCheckbox': !useCheckboxesInList() }">
<div class="second-toolbar thm-message-list-top-toolbar"> <div class="second-toolbar thm-message-list-top-toolbar">
<div class="form-inline"> <i class="checkboxCheckAll fontastic" data-bind="text: checkAll() ? (isIncompleteChecked() ? '▣' : '☑') : '☐'"></i>
<i class="checkboxCheckAll fontastic" data-bind="text: checkAll() ? (isIncompleteChecked() ? '▣' : '☑') : '☐'"></i> <!-- ko if: allowSearch -->
<div class="input-append" data-bind="visible: allowSearch"> <div class="search-input-wrp">
<div class="close-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="close" data-bind="click: cancelSearch, visible: '' !== messageListSearchDesc()">×</a> <a class="closeSearch" 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>
</div> </div>
<a class="btn buttonMoreSearch" data-bind="visible: allowSearchAdv, click: advancedSearchClick"></a>
<!-- /ko -->
</div> </div>
<div class="b-content" data-bind="initDom: dragOverBodyArea"> <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> <i class="fontastic"></i>
<span data-i18n="MESSAGE_LIST/BACK_TO_MESSAGE_LIST"></span> <span data-i18n="MESSAGE_LIST/BACK_TO_MESSAGE_LIST"></span>
</div> </div>
@ -224,13 +222,11 @@
<div id="messagesDragImage"><span class="text"></span>&nbsp;<i class="icon-mail"></i></div> <div id="messagesDragImage"><span class="text"></span>&nbsp;<i class="icon-mail"></i></div>
</div> </div>
<div class="b-footer thm-message-list-bottom-toolbar"> <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"> <span data-bind="attr: { title: quotaTooltip() }" class="e-quota">
<!-- ko text: userUsageProc --><!-- /ko -->% <!-- ko text: userUsageProc --><!-- /ko -->%
</span> </span>
<!-- /ko --> <!-- /ko -->
<div class="pull-right"> <!-- ko template: { name: 'Paginator', data: messageListPaginator } --><!-- /ko -->
<!-- ko template: { name: 'Paginator', data: messageListPaginator } --><!-- /ko -->
</div>
</div> </div>
</div> </div>

View file

@ -11,7 +11,7 @@
<a class="close" data-bind="click: tryToClosePopup" data-i18n="[title]GLOBAL/CANCEL">×</a> <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="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> <i class="fontastic">🗑</i>
</a> </a>
<span class="saved-text hide-mobile" data-bind="text: savedTimeText"></span> <span class="saved-text hide-mobile" data-bind="text: savedTimeText"></span>
@ -124,8 +124,8 @@
</tr> </tr>
<tr> <tr>
<td></td> <td></td>
<td> <td style="display:flex">
<div class="btn-group pull-left"> <div class="btn-group" style="flex-grow:1">
<button type="button" class="btn" data-bind="click: function () { attachmentsPlace(false); }, <button type="button" class="btn" data-bind="click: function () { attachmentsPlace(false); },
css: { 'active': !attachmentsPlace() }"> css: { 'active': !attachmentsPlace() }">
<i class="icon-file-text"></i> <i class="icon-file-text"></i>
@ -140,7 +140,7 @@
<i data-bind="css: { 'icon-attachment': 0 === attachmentsInProcessCount(), 'icon-spinner': 0 < attachmentsInProcessCount()}"></i> <i data-bind="css: { 'icon-attachment': 0 === attachmentsInProcessCount(), 'icon-spinner': 0 < attachmentsInProcessCount()}"></i>
</button> </button>
</div> </div>
<div class="btn-group pull-right"> <div class="btn-group">
<a class="btn" <a class="btn"
style="padding-left: 10px; padding-right: 10px;" style="padding-left: 10px; padding-right: 10px;"
data-bind="visible: addAttachmentEnabled(), initDom: composeUploaderButton" data-i18n="[title]COMPOSE/ATTACH_FILES"> data-bind="visible: addAttachmentEnabled(), initDom: composeUploaderButton" data-i18n="[title]COMPOSE/ATTACH_FILES">

View file

@ -45,7 +45,7 @@
<col style="width: 16px" /> <col style="width: 16px" />
<col /> <col />
<col style="width: 140px" /> <col style="width: 140px" />
<col style="width: 1%" /> <col style="width: 1em" />
</colgroup> </colgroup>
<tbody data-bind="foreach: filters"> <tbody data-bind="foreach: filters">
<tr class="filter-item" draggable="true" data-bind="sortableItem: { list: $parent.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> <span class="filter-sub-name" data-bind="text: nameSub()"></span>
</td> </td>
<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> data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td> </td>
<td> <td>

View file

@ -16,7 +16,7 @@
<span class="account-name" data-bind="text: email"></span> <span class="account-name" data-bind="text: email"></span>
</td> </td>
<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> data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td> </td>
<td> <td>
@ -42,7 +42,7 @@
<span class="identity-default" data-bind="visible: 0 === $index()" data-i18n="SETTINGS_ACCOUNTS/DEFAULT_IDENTITY_LABEL"></span> <span class="identity-default" data-bind="visible: 0 === $index()" data-i18n="SETTINGS_ACCOUNTS/DEFAULT_IDENTITY_LABEL"></span>
</td> </td>
<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> data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td> </td>
<td> <td>

View file

@ -15,7 +15,7 @@
<col style="width: 30px" /> <col style="width: 30px" />
<col /> <col />
<col style="width: 140px" /> <col style="width: 140px" />
<col style="width: 1%" /> <col style="width: 1em" />
</colgroup> </colgroup>
<tbody data-bind="foreach: scripts"> <tbody data-bind="foreach: scripts">
<tr class="script-item"> <tr class="script-item">
@ -24,7 +24,7 @@
</td> </td>
<td class="e-action" class="script-name" data-bind="text: name()"></td> <td class="e-action" class="script-name" data-bind="text: name()"></td>
<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> data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td> </td>
<td> <td>

View file

@ -6,10 +6,10 @@
data-bind="value: nameForEdit, visible: edited, hasfocus: edited, onEnter: function () { $root.folderEditOnEnter($data); }, onEsc: function () { $root.folderEditOnEsc($data); }" /> data-bind="value: nameForEdit, visible: edited, hasfocus: edited, onEnter: function () { $root.folderEditOnEnter($data); }, onEsc: function () { $root.folderEditOnEsc($data); }" />
&nbsp; &nbsp;
<span class="folder-system-name" data-bind="text: manageFolderSystemName, visible: isSystemFolder"></span> <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>
<td data-i18n="[title]SETTINGS_FOLDERS/HELP_DELETE_FOLDER"> <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> <span class="delete-folder e-action fontastic" data-bind="visible: canBeDeleted() && !deleteAccess(), click: $root.folderForDeletion">🗑</span>
</td> </td>
<td data-i18n="[title]SETTINGS_FOLDERS/HELP_SHOW_HIDE_FOLDER"> <td data-i18n="[title]SETTINGS_FOLDERS/HELP_SHOW_HIDE_FOLDER">

View file

@ -30,7 +30,7 @@
<span class="open-pgp-key-user" data-bind="foreach: users"> <span class="open-pgp-key-user" data-bind="foreach: users">
<div class="open-pgp-key-user-address" data-bind="text: $data"></div> <div class="open-pgp-key-user-address" data-bind="text: $data"></div>
</span> </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> data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td> </td>
<td> <td>
@ -47,7 +47,7 @@
<span data-bind="text: $data"></span> (<span class="open-pgp-key-id" data-bind="text: $parent.id"></span>) <span data-bind="text: $data"></span> (<span class="open-pgp-key-id" data-bind="text: $parent.id"></span>)
</div> </div>
</span> </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> data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td> </td>
<td> <td>

View file

@ -71,11 +71,11 @@
border-top-color: var(--main-color); border-top-color: var(--main-color);
} }
.well,
#rl-popups > dialog, #rl-popups > dialog,
#rl-settings-subscreen, #rl-settings-subscreen,
.messageList, .messageList,
.messageView, .messageView,
.alert-info,
#V-PopupsCompose .b-attachment-place { #V-PopupsCompose .b-attachment-place {
background-color: #000; background-color: #000;
border-color: #555; border-color: #555;

View file

@ -7,9 +7,6 @@
.pull-right { .pull-right {
float: right; float: right;
} }
.pull-left {
float: left;
}
// Toggling content // Toggling content
.show { .show {

View file

@ -1,12 +0,0 @@
//
// Wells
// --------------------------------------------------
// Base class
.well {
background-color: @wellBackground;
border: 1px solid darken(@wellBackground, 7%);
border-radius: 4px;
padding: 9px;
}