mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-09-14 00:54:18 +08: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;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
width: 1600px;
|
||||
left: 0;
|
||||
transition: left 500ms ease;
|
||||
}
|
||||
|
||||
&.domain-second-page .modal-body {
|
||||
left: -800px;
|
||||
}
|
||||
|
||||
.domain-desc {
|
||||
color: #666;
|
||||
line-height: 20px;
|
||||
|
@ -45,15 +33,16 @@
|
|||
}
|
||||
|
||||
.testing-done {
|
||||
&.imap-header, &.sieve-header, &.smtp-header {
|
||||
color: green;
|
||||
font-weight: bold;
|
||||
}
|
||||
color: green !important;
|
||||
}
|
||||
|
||||
.testing-error {
|
||||
&.imap-header, &.sieve-header, &.smtp-header {
|
||||
color: red;
|
||||
}
|
||||
color: red !important;
|
||||
}
|
||||
|
||||
.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(''),
|
||||
testingSmtpError: value => value || this.testingSmtpErrorDesc(''),
|
||||
|
||||
page: () => this.sieveSettings(false),
|
||||
|
||||
// smart form improvements
|
||||
imapServerFocus: value =>
|
||||
value && this.name() && !this.imapServer() && this.imapServer(this.name().replace(/[.]?[*][.]?/g, '')),
|
||||
|
@ -139,10 +137,7 @@ class DomainPopupView extends AbstractViewPopup {
|
|||
|
||||
decorateKoCommands(this, {
|
||||
createOrAddCommand: self => self.canBeSaved(),
|
||||
testConnectionCommand: self => self.canBeTested(),
|
||||
whiteListCommand: 1,
|
||||
backCommand: 1,
|
||||
sieveCommand: 1
|
||||
testConnectionCommand: self => self.canBeTested()
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -155,8 +150,6 @@ class DomainPopupView extends AbstractViewPopup {
|
|||
}
|
||||
|
||||
testConnectionCommand() {
|
||||
this.page('main');
|
||||
|
||||
this.testingDone(false);
|
||||
this.testingImapError(false);
|
||||
this.testingSieveError(false);
|
||||
|
@ -170,24 +163,18 @@ class DomainPopupView extends AbstractViewPopup {
|
|||
this.testingImapError(true);
|
||||
this.testingSieveError(true);
|
||||
this.testingSmtpError(true);
|
||||
this.sieveSettings(false);
|
||||
} else {
|
||||
let bImap = false,
|
||||
bSieve = false;
|
||||
|
||||
this.testingDone(true);
|
||||
this.testingImapError(true !== oData.Result.Imap);
|
||||
this.testingSieveError(true !== oData.Result.Sieve);
|
||||
this.testingSmtpError(true !== oData.Result.Smtp);
|
||||
|
||||
if (this.testingImapError() && oData.Result.Imap) {
|
||||
bImap = true;
|
||||
this.testingImapErrorDesc('');
|
||||
this.testingImapErrorDesc(oData.Result.Imap);
|
||||
}
|
||||
|
||||
if (this.testingSieveError() && oData.Result.Sieve) {
|
||||
bSieve = true;
|
||||
this.testingSieveErrorDesc('');
|
||||
this.testingSieveErrorDesc(oData.Result.Sieve);
|
||||
}
|
||||
|
@ -196,33 +183,12 @@ class DomainPopupView extends AbstractViewPopup {
|
|||
this.testingSmtpErrorDesc('');
|
||||
this.testingSmtpErrorDesc(oData.Result.Smtp);
|
||||
}
|
||||
|
||||
if (this.sieveSettings()) {
|
||||
if (!bSieve && bImap) {
|
||||
this.sieveSettings(false);
|
||||
}
|
||||
} else if (bSieve && !bImap) {
|
||||
this.sieveSettings(true);
|
||||
}
|
||||
}
|
||||
},
|
||||
this
|
||||
);
|
||||
}
|
||||
|
||||
whiteListCommand() {
|
||||
this.page('white-list');
|
||||
}
|
||||
|
||||
backCommand() {
|
||||
this.page('main');
|
||||
}
|
||||
|
||||
sieveCommand() {
|
||||
this.sieveSettings(!this.sieveSettings());
|
||||
this.clearTesting();
|
||||
}
|
||||
|
||||
onDomainCreateOrSaveResponse(iError) {
|
||||
this.saving(false);
|
||||
if (iError) {
|
||||
|
@ -241,17 +207,9 @@ class DomainPopupView extends AbstractViewPopup {
|
|||
this.testingSmtpError(false);
|
||||
}
|
||||
|
||||
onHide() {
|
||||
this.page('main');
|
||||
this.sieveSettings(false);
|
||||
}
|
||||
|
||||
onShow(oDomain) {
|
||||
this.saving(false);
|
||||
|
||||
this.page('main');
|
||||
this.sieveSettings(false);
|
||||
|
||||
this.clearTesting();
|
||||
|
||||
this.clearForm();
|
||||
|
@ -286,8 +244,6 @@ class DomainPopupView extends AbstractViewPopup {
|
|||
getDefaults() {
|
||||
return {
|
||||
savingError: '',
|
||||
page: 'main',
|
||||
sieveSettings: false,
|
||||
|
||||
name: '',
|
||||
|
||||
|
|
|
@ -1,34 +1,31 @@
|
|||
<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">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-bind="text: headerText"></h3>
|
||||
</div>
|
||||
<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="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 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 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="error-desc" data-bind="visible: '' !== savingError(), text: savingError"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span5">
|
||||
<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>
|
||||
<div class="legend sieve-header" data-bind="visible: sieveSettings(), css: { 'testing-done': testingDone, 'testing-error': testingSieveError }, tooltipErrorTip: testingSieveErrorDesc"
|
||||
data-i18n="POPUPS_DOMAIN/LABEL_SIEVE"></div>
|
||||
<div data-bind="visible: !sieveSettings()">
|
||||
<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">
|
||||
|
||||
<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>
|
||||
|
@ -39,49 +36,105 @@
|
|||
<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: imapPort" />
|
||||
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="width:6em" data-bind="textInput: imapPort" />
|
||||
</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="span4">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||
<div class="span3">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SERVER"></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>
|
||||
<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" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="width:6em" data-bind="textInput: smtpPort" />
|
||||
</div>
|
||||
</div>
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_SECURE"></span>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="span5">
|
||||
<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>
|
||||
</div>
|
||||
<select 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>
|
||||
<br /><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 />
|
||||
<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 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="span5">
|
||||
<div data-bind="component: {
|
||||
|
@ -104,120 +157,26 @@
|
|||
<div class="span1">
|
||||
<span data-i18n="POPUPS_DOMAIN/LABEL_PORT"></span>
|
||||
<br />
|
||||
<input type="number" class="span2" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
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>
|
||||
<input type="number" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
||||
style="width:6em" data-bind="textInput: sievePort" />
|
||||
</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>
|
||||
<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 class="span5">
|
||||
<div class="legend smtp-header" data-bind="css: { 'testing-done': testingDone, 'testing-error': testingSmtpError }, tooltipErrorTip: testingSmtpErrorDesc"
|
||||
data-i18n="POPUPS_DOMAIN/LABEL_SMTP"></div>
|
||||
<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_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>
|
||||
|
||||
<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>
|
||||
|
@ -225,20 +184,12 @@
|
|||
</form>
|
||||
</div>
|
||||
<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-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 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">
|
||||
<i class="fontastic">✖</i>
|
||||
<span data-i18n="POPUPS_DOMAIN/BUTTON_CLOSE"></span>
|
||||
|
|
Loading…
Add table
Reference in a new issue