mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Resolve issue #130
This commit is contained in:
parent
637ed9a478
commit
c8678953fe
3 changed files with 137 additions and 241 deletions
|
|
@ -14,18 +14,6 @@
|
||||||
max-width: 810px;
|
max-width: 810px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-body {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
width: 1600px;
|
|
||||||
left: 0;
|
|
||||||
transition: left 500ms ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.domain-second-page .modal-body {
|
|
||||||
left: -800px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.domain-desc {
|
.domain-desc {
|
||||||
color: #666;
|
color: #666;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
|
|
@ -45,15 +33,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.testing-done {
|
.testing-done {
|
||||||
&.imap-header, &.sieve-header, &.smtp-header {
|
color: green !important;
|
||||||
color: green;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.testing-error {
|
.testing-error {
|
||||||
&.imap-header, &.sieve-header, &.smtp-header {
|
color: red !important;
|
||||||
color: red;
|
}
|
||||||
}
|
|
||||||
|
.tab-content {
|
||||||
|
grid-column-end: 5;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
padding: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,6 @@ class DomainPopupView extends AbstractViewPopup {
|
||||||
testingSieveError: value => value || this.testingSieveErrorDesc(''),
|
testingSieveError: value => value || this.testingSieveErrorDesc(''),
|
||||||
testingSmtpError: value => value || this.testingSmtpErrorDesc(''),
|
testingSmtpError: value => value || this.testingSmtpErrorDesc(''),
|
||||||
|
|
||||||
page: () => this.sieveSettings(false),
|
|
||||||
|
|
||||||
// smart form improvements
|
// smart form improvements
|
||||||
imapServerFocus: value =>
|
imapServerFocus: value =>
|
||||||
value && this.name() && !this.imapServer() && this.imapServer(this.name().replace(/[.]?[*][.]?/g, '')),
|
value && this.name() && !this.imapServer() && this.imapServer(this.name().replace(/[.]?[*][.]?/g, '')),
|
||||||
|
|
@ -139,10 +137,7 @@ class DomainPopupView extends AbstractViewPopup {
|
||||||
|
|
||||||
decorateKoCommands(this, {
|
decorateKoCommands(this, {
|
||||||
createOrAddCommand: self => self.canBeSaved(),
|
createOrAddCommand: self => self.canBeSaved(),
|
||||||
testConnectionCommand: self => self.canBeTested(),
|
testConnectionCommand: self => self.canBeTested()
|
||||||
whiteListCommand: 1,
|
|
||||||
backCommand: 1,
|
|
||||||
sieveCommand: 1
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -155,8 +150,6 @@ class DomainPopupView extends AbstractViewPopup {
|
||||||
}
|
}
|
||||||
|
|
||||||
testConnectionCommand() {
|
testConnectionCommand() {
|
||||||
this.page('main');
|
|
||||||
|
|
||||||
this.testingDone(false);
|
this.testingDone(false);
|
||||||
this.testingImapError(false);
|
this.testingImapError(false);
|
||||||
this.testingSieveError(false);
|
this.testingSieveError(false);
|
||||||
|
|
@ -170,24 +163,18 @@ class DomainPopupView extends AbstractViewPopup {
|
||||||
this.testingImapError(true);
|
this.testingImapError(true);
|
||||||
this.testingSieveError(true);
|
this.testingSieveError(true);
|
||||||
this.testingSmtpError(true);
|
this.testingSmtpError(true);
|
||||||
this.sieveSettings(false);
|
|
||||||
} else {
|
} else {
|
||||||
let bImap = false,
|
|
||||||
bSieve = false;
|
|
||||||
|
|
||||||
this.testingDone(true);
|
this.testingDone(true);
|
||||||
this.testingImapError(true !== oData.Result.Imap);
|
this.testingImapError(true !== oData.Result.Imap);
|
||||||
this.testingSieveError(true !== oData.Result.Sieve);
|
this.testingSieveError(true !== oData.Result.Sieve);
|
||||||
this.testingSmtpError(true !== oData.Result.Smtp);
|
this.testingSmtpError(true !== oData.Result.Smtp);
|
||||||
|
|
||||||
if (this.testingImapError() && oData.Result.Imap) {
|
if (this.testingImapError() && oData.Result.Imap) {
|
||||||
bImap = true;
|
|
||||||
this.testingImapErrorDesc('');
|
this.testingImapErrorDesc('');
|
||||||
this.testingImapErrorDesc(oData.Result.Imap);
|
this.testingImapErrorDesc(oData.Result.Imap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.testingSieveError() && oData.Result.Sieve) {
|
if (this.testingSieveError() && oData.Result.Sieve) {
|
||||||
bSieve = true;
|
|
||||||
this.testingSieveErrorDesc('');
|
this.testingSieveErrorDesc('');
|
||||||
this.testingSieveErrorDesc(oData.Result.Sieve);
|
this.testingSieveErrorDesc(oData.Result.Sieve);
|
||||||
}
|
}
|
||||||
|
|
@ -196,33 +183,12 @@ class DomainPopupView extends AbstractViewPopup {
|
||||||
this.testingSmtpErrorDesc('');
|
this.testingSmtpErrorDesc('');
|
||||||
this.testingSmtpErrorDesc(oData.Result.Smtp);
|
this.testingSmtpErrorDesc(oData.Result.Smtp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.sieveSettings()) {
|
|
||||||
if (!bSieve && bImap) {
|
|
||||||
this.sieveSettings(false);
|
|
||||||
}
|
|
||||||
} else if (bSieve && !bImap) {
|
|
||||||
this.sieveSettings(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
whiteListCommand() {
|
|
||||||
this.page('white-list');
|
|
||||||
}
|
|
||||||
|
|
||||||
backCommand() {
|
|
||||||
this.page('main');
|
|
||||||
}
|
|
||||||
|
|
||||||
sieveCommand() {
|
|
||||||
this.sieveSettings(!this.sieveSettings());
|
|
||||||
this.clearTesting();
|
|
||||||
}
|
|
||||||
|
|
||||||
onDomainCreateOrSaveResponse(iError) {
|
onDomainCreateOrSaveResponse(iError) {
|
||||||
this.saving(false);
|
this.saving(false);
|
||||||
if (iError) {
|
if (iError) {
|
||||||
|
|
@ -241,17 +207,9 @@ class DomainPopupView extends AbstractViewPopup {
|
||||||
this.testingSmtpError(false);
|
this.testingSmtpError(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
onHide() {
|
|
||||||
this.page('main');
|
|
||||||
this.sieveSettings(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
onShow(oDomain) {
|
onShow(oDomain) {
|
||||||
this.saving(false);
|
this.saving(false);
|
||||||
|
|
||||||
this.page('main');
|
|
||||||
this.sieveSettings(false);
|
|
||||||
|
|
||||||
this.clearTesting();
|
this.clearTesting();
|
||||||
|
|
||||||
this.clearForm();
|
this.clearForm();
|
||||||
|
|
@ -286,8 +244,6 @@ class DomainPopupView extends AbstractViewPopup {
|
||||||
getDefaults() {
|
getDefaults() {
|
||||||
return {
|
return {
|
||||||
savingError: '',
|
savingError: '',
|
||||||
page: 'main',
|
|
||||||
sieveSettings: false,
|
|
||||||
|
|
||||||
name: '',
|
name: '',
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,31 @@
|
||||||
<div class="modal fade b-domain-content g-ui-user-select-none"
|
<div class="modal fade b-domain-content g-ui-user-select-none"
|
||||||
data-bind="modal: modalVisibility, css: {'domain-edit': edit, 'domain-second-page': 'main' !== page()}">
|
data-bind="modal: modalVisibility, css: {'domain-edit': edit}">
|
||||||
<div class="modal-header">
|
<div class="modal-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>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form class="form-horizontal domain-form" action="#/" onsubmit="return false;">
|
<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>
|
|
||||||
|
<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="error-desc" data-bind="visible: '' !== savingError(), text: savingError"></div>
|
||||||
<div data-bind="visible: '' !== savingError()">
|
|
||||||
<span class="error-desc" data-bind="text: savingError"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="span5 domain-desc" data-bind="visible: '' !== domainDesc()">
|
|
||||||
<div data-bind="html: domainDesc"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="span5 domain-desc" data-bind="visible: '' !== domainDesc(), html: domainDesc"></div>
|
||||||
<div class="span5">
|
</div>
|
||||||
<div class="legend imap-header" data-bind="visible: !sieveSettings(), css: { 'testing-done': testingDone, 'testing-error': testingImapError }, tooltipErrorTip: testingImapErrorDesc"
|
|
||||||
data-i18n="POPUPS_DOMAIN/LABEL_IMAP"></div>
|
<form class="form-horizontal domain-form" action="#/" onsubmit="return false;">
|
||||||
<div class="legend sieve-header" data-bind="visible: sieveSettings(), css: { 'testing-done': testingDone, 'testing-error': testingSieveError }, tooltipErrorTip: testingSieveErrorDesc"
|
<div class="tabs">
|
||||||
data-i18n="POPUPS_DOMAIN/LABEL_SIEVE"></div>
|
|
||||||
<div data-bind="visible: !sieveSettings()">
|
<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="row">
|
||||||
<div class="span3">
|
<div class="span3">
|
||||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
||||||
|
|
@ -39,49 +36,105 @@
|
||||||
<div class="span2">
|
<div class="span2">
|
||||||
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
||||||
<br />
|
<br />
|
||||||
<input type="number" class="span1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||||
data-bind="textInput: imapPort" />
|
style="width:6em" data-bind="textInput: imapPort" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||||
|
<br />
|
||||||
|
<select 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>
|
||||||
|
<br /><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="row">
|
||||||
<div class="span4">
|
<div class="span3">
|
||||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
||||||
<br />
|
<br />
|
||||||
<select class="span2" data-bind="value: imapSecure">
|
<input type="text" class="span3" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||||
<option value="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
|
data-bind="textInput: smtpServer, hasfocus: smtpServerFocus" />
|
||||||
<option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
|
</div>
|
||||||
<option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
|
<div class="span2">
|
||||||
</select>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
|
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||||
<br />
|
<br />
|
||||||
<div class="row">
|
<select data-bind="value: smtpSecure">
|
||||||
<div class="span5">
|
<option value="0" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_NONE"></option>
|
||||||
<div data-bind="component: {
|
<option value="1" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_SSL"></option>
|
||||||
name: 'Checkbox',
|
<option value="2" data-i18n="POPUPS_DOMAIN/SECURE_OPTION_STARTTLS"></option>
|
||||||
params: {
|
</select>
|
||||||
label: 'POPUPS_DOMAIN/LABEL_USE_SHORT_LOGIN',
|
<br /><br />
|
||||||
value: imapShortLogin,
|
<div data-bind="component: {
|
||||||
inline: true
|
name: 'Checkbox',
|
||||||
}
|
params: {
|
||||||
}"></div>
|
label: 'POPUPS_DOMAIN/LABEL_USE_SHORT_LOGIN',
|
||||||
|
value: smtpShortLogin,
|
||||||
<span style="color: #aaa">(user@domain.com → user)</span>
|
inline: true
|
||||||
</div>
|
}
|
||||||
</div>
|
}"></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 />
|
<br />
|
||||||
<br />
|
|
||||||
<div class="row">
|
|
||||||
<div class="span5">
|
|
||||||
<span data-bind="command: sieveCommand">
|
|
||||||
<i class="icon-filter"></i>
|
|
||||||
|
|
||||||
<a href="#" class="g-ui-link" data-i18n="POPUPS_DOMAIN/BUTTON_SIEVE_CONFIGURATION"></a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div data-bind="visible: sieveSettings">
|
<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="row">
|
||||||
<div class="span5">
|
<div class="span5">
|
||||||
<div data-bind="component: {
|
<div data-bind="component: {
|
||||||
|
|
@ -104,120 +157,26 @@
|
||||||
<div class="span1">
|
<div class="span1">
|
||||||
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
||||||
<br />
|
<br />
|
||||||
<input type="number" class="span2" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||||
data-bind="textInput: sievePort" />
|
style="width:6em" data-bind="textInput: sievePort" />
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="span4">
|
|
||||||
<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>
|
||||||
</div>
|
</div>
|
||||||
|
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||||
|
<br />
|
||||||
|
<select 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>
|
||||||
<br />
|
|
||||||
<div class="row">
|
|
||||||
<div class="span5">
|
|
||||||
<span data-bind="command: sieveCommand">
|
|
||||||
<i class="fontastic">⬅</i>
|
|
||||||
|
|
||||||
<a href="#" class="g-ui-link" data-i18n="POPUPS_DOMAIN/BUTTON_BACK_TO_IMAP"></a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="span5">
|
|
||||||
<div class="legend smtp-header" data-bind="css: { 'testing-done': testingDone, 'testing-error': testingSmtpError }, tooltipErrorTip: testingSmtpErrorDesc"
|
<input type="radio" name="helptabs" id="tab-help4" />
|
||||||
data-i18n="POPUPS_DOMAIN/LABEL_SMTP"></div>
|
<label for="tab-help4" role="tab" tabindex="0">
|
||||||
<div data-bind="visible: !smtpPhpMail()">
|
<i class="fontastic">👥</i>
|
||||||
<div class="row">
|
<span data-i18n="POPUPS_DOMAIN/BUTTON_WHITE_LIST"></span>
|
||||||
<div class="span3">
|
</label>
|
||||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></span>
|
<div class="tab-content" role="tabpanel" aria-hidden="true">
|
||||||
<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_PORT"></span>
|
|
||||||
<br />
|
|
||||||
<input type="number" class="span1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
|
||||||
data-bind="textInput: smtpPort" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="span4">
|
|
||||||
<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>
|
|
||||||
<br />
|
|
||||||
<div class="row">
|
|
||||||
<div class="span5">
|
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="span5">
|
|
||||||
<div data-bind="component: {
|
|
||||||
name: 'Checkbox',
|
|
||||||
params: {
|
|
||||||
label: 'POPUPS_DOMAIN/LABEL_USE_AUTH',
|
|
||||||
value: smtpAuth
|
|
||||||
}
|
|
||||||
}"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="span5">
|
|
||||||
<div data-bind="component: {
|
|
||||||
name: 'Checkbox',
|
|
||||||
params: {
|
|
||||||
label: 'POPUPS_DOMAIN/LABEL_SET_SENDER',
|
|
||||||
value: smtpSetSender,
|
|
||||||
inline: true
|
|
||||||
}
|
|
||||||
}"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="span5">
|
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="span10" data-bind="visible: 'white-list' === page()">
|
|
||||||
<div class="legend white-list-header" data-i18n="POPUPS_DOMAIN/LABEL_WHITE_LIST"></div>
|
|
||||||
<div class="alert alert-block" data-i18n="POPUPS_DOMAIN/WHITE_LIST_ALERT"></div>
|
<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>
|
<textarea class="input-xxlarge" style="width: 100%" rows="8" data-bind="value: whiteList" tabindex="-1"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -225,20 +184,12 @@
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<a class="btn button-test-connection pull-left" data-bind="visible: 'main' === page(), command: testConnectionCommand, css: {
|
<a class="btn button-test-connection pull-left" data-bind="command: testConnectionCommand, css: {
|
||||||
'btn-success': testingDone() && !testingImapError() && !testingSmtpError(),
|
'btn-success': testingDone() && !testingImapError() && !testingSmtpError(),
|
||||||
'btn-danger': testingDone() && (testingImapError() || testingSmtpError()) }">
|
'btn-danger': testingDone() && (testingImapError() || testingSmtpError()) }">
|
||||||
<i class="fontastic" data-bind="css: {'icon-spinner': testing()}">ℹ</i>
|
<i class="fontastic" data-bind="css: {'icon-spinner': testing()}">ℹ</i>
|
||||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_TEST"></span>
|
<span data-i18n="POPUPS_DOMAIN/BUTTON_TEST"></span>
|
||||||
</a>
|
</a>
|
||||||
<a class="btn button-white-list pull-left" data-bind="command: whiteListCommand, visible: 'main' === page()">
|
|
||||||
<i class="fontastic">👥</i>
|
|
||||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_WHITE_LIST"></span>
|
|
||||||
</a>
|
|
||||||
<a class="btn button-white-list pull-left" data-bind="command: backCommand, visible: 'main' !== page()">
|
|
||||||
<i class="fontastic">⬅</i>
|
|
||||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_BACK"></span>
|
|
||||||
</a>
|
|
||||||
<a class="btn buttonClose" data-bind="command: cancelCommand">
|
<a class="btn buttonClose" data-bind="command: cancelCommand">
|
||||||
<i class="fontastic">✖</i>
|
<i class="fontastic">✖</i>
|
||||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_CLOSE"></span>
|
<span data-i18n="POPUPS_DOMAIN/BUTTON_CLOSE"></span>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue