Make .form-horizontal simple with less CSS classes

This commit is contained in:
djmaze 2021-11-16 16:22:05 +01:00
parent dff89ea4e0
commit 071dab01a7
48 changed files with 351 additions and 463 deletions

View file

@ -88,8 +88,12 @@ dialog:not(.animate) {
dialog > header { dialog > header {
padding: 9px 15px; padding: 9px 15px;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
// Close icon // Close icon
.close { margin-top: 2px; } .close {
margin-top: 2px;
}
// Heading // Heading
h3 { h3 {
margin: 0; margin: 0;
@ -100,6 +104,7 @@ dialog > header {
// Body (where all modal content resides) // Body (where all modal content resides)
dialog .modal-body { dialog .modal-body {
overflow: auto; overflow: auto;
margin: 0;
padding: 15px; padding: 15px;
} }

View file

@ -2,7 +2,7 @@
max-width: 780px; max-width: 780px;
.control-label { label {
width: 110px; width: 110px;
} }
.span4 { .span4 {

View file

@ -11,14 +11,14 @@
max-height: 700px; max-height: 700px;
.control-group { .control-group {
.control-label { label {
padding-top: 0; padding-top: 0;
width: 50px; width: 50px;
} }
} }
.modal-body { .modal-body {
height: calc(100% - 49px); height: calc(100vh - 49px);
padding: 0; padding: 0;
position: relative; position: relative;
} }

View file

@ -28,16 +28,16 @@ label.inline, span.inline {
padding: 4px 7px; padding: 4px 7px;
} }
.alert a { .alert a:not(.close) {
text-decoration: underline; text-decoration: underline;
color: @warningText; color: @warningText;
} }
.alert.alert-info a { .alert.alert-info a:not(.close) {
color: @infoText; color: @infoText;
} }
.alert.alert-error a { .alert.alert-error a:not(.close) {
color: @errorText; color: @errorText;
} }
@ -45,11 +45,13 @@ label.inline, span.inline {
@media screen and (max-width: 999px) { @media screen and (max-width: 999px) {
.form-horizontal { .form-horizontal {
.control-group { .control-group {
.control-label { > label {
text-align: left; text-align: left;
} }
.controls {
margin-left: 10px; // Move over all input controls and content
> *:not(label) {
margin-left: 20px;
} }
} }
} }

View file

@ -1,5 +1,5 @@
<div class="alert" data-bind="hidden: !submitError()"> <div class="alert" data-bind="hidden: !submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <a href="#" class="close" data-bind="click: function () { submitError('') }">×</a>
<span data-bind="text: submitError"></span> <span data-bind="text: submitError"></span>
</div> </div>
<form action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}"> <form action="#/" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}">

View file

@ -1,8 +1,8 @@
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend" data-i18n="TAB_BRANDING/LEGEND_BRANDING"></div> <div class="legend" data-i18n="TAB_BRANDING/LEGEND_BRANDING"></div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_BRANDING/LABEL_PAGE_TITLE"></label> <label data-i18n="TAB_BRANDING/LABEL_PAGE_TITLE"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Input', name: 'Input',
params: { params: {
value: title, value: title,
@ -12,8 +12,8 @@
}"></div> }"></div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_BRANDING/LABEL_LOADING_DESCRIPTION"></label> <label data-i18n="TAB_BRANDING/LABEL_LOADING_DESCRIPTION"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Input', name: 'Input',
params: { params: {
value: loadingDesc, value: loadingDesc,
@ -23,8 +23,8 @@
}"></div> }"></div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_BRANDING/LABEL_FAVICON_URL"></label> <label data-i18n="TAB_BRANDING/LABEL_FAVICON_URL"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Input', name: 'Input',
params: { params: {
value: faviconUrl, value: faviconUrl,

View file

@ -7,7 +7,7 @@
<div class="form-horizontal" data-bind="visible: contactsSupported"> <div class="form-horizontal" data-bind="visible: contactsSupported">
<div class="legend" data-i18n="TAB_CONTACTS/LEGEND_CONTACTS"></div> <div class="legend" data-i18n="TAB_CONTACTS/LEGEND_CONTACTS"></div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { value: enableContacts, label: 'TAB_CONTACTS/LABEL_ENABLE_CONTACTS' } params: { value: enableContacts, label: 'TAB_CONTACTS/LABEL_ENABLE_CONTACTS' }
@ -22,8 +22,7 @@
<div class="form-horizontal" data-bind="visible: contactsSupported"> <div class="form-horizontal" data-bind="visible: contactsSupported">
<div class="legend" data-i18n="TAB_CONTACTS/LEGEND_STORAGE"></div> <div class="legend" data-i18n="TAB_CONTACTS/LEGEND_STORAGE"></div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_CONTACTS/LABEL_STORAGE_TYPE"></label> <label data-i18n="TAB_CONTACTS/LABEL_STORAGE_TYPE"></label>
<div class="controls">
<div data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
@ -35,11 +34,10 @@
} }
}"></div> }"></div>
</div> </div>
</div>
<div data-bind="visible: 'sqlite' !== contactsType()"> <div data-bind="visible: 'sqlite' !== contactsType()">
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_CONTACTS/LABEL_STORAGE_DSN"></label> <label data-i18n="TAB_CONTACTS/LABEL_STORAGE_DSN"></label>
<div class="controls"> <div>
<input type="text" class="span6" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="text" class="span6" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: pdoDsn, saveTrigger: pdoDsnTrigger" /> data-bind="value: pdoDsn, saveTrigger: pdoDsnTrigger" />
<blockquote style="margin: 0"> <blockquote style="margin: 0">
@ -51,45 +49,41 @@ host=127.0.0.1;port=5432;dbname=snappymail
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_CONTACTS/LABEL_STORAGE_USER"></label> <label data-i18n="TAB_CONTACTS/LABEL_STORAGE_USER"></label>
<div class="controls"> <div>
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: pdoUser, saveTrigger: pdoUserTrigger" /> data-bind="value: pdoUser, saveTrigger: pdoUserTrigger" />
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_CONTACTS/LABEL_STORAGE_PASSWORD"></label> <label data-i18n="TAB_CONTACTS/LABEL_STORAGE_PASSWORD"></label>
<div class="controls"> <div>
<input type="password" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="password" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: pdoPassword, saveTrigger: pdoPasswordTrigger" /> data-bind="value: pdoPassword, saveTrigger: pdoPasswordTrigger" />
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <label></label>
<a class="btn" data-bind="command: testContactsCommand, css: { 'btn-success': testContactsSuccess, 'btn-danger': testContactsError }"> <a class="btn" data-bind="command: testContactsCommand, css: { 'btn-success': testContactsSuccess, 'btn-danger': testContactsError }">
<i class="fontastic" data-bind="css: {'icon-spinner': testing()}"></i> <i class="fontastic" data-bind="css: {'icon-spinner': testing()}"></i>
<span data-i18n="TAB_CONTACTS/BUTTON_TEST"></span> <span data-i18n="TAB_CONTACTS/BUTTON_TEST"></span>
</a> </a>
</div> </div>
</div> </div>
</div>
<div data-bind="visible: 'sqlite' === contactsType()"> <div data-bind="visible: 'sqlite' === contactsType()">
<div class="control-group"> <div class="control-group">
<div class="controls">
<div class="alert"> <div class="alert">
<h4 data-i18n="TAB_CONTACTS/ALERT_NOTICE"></h4> <h4 data-i18n="TAB_CONTACTS/ALERT_NOTICE"></h4>
<div data-i18n="[html]TAB_CONTACTS/HTML_ALERT_DO_NOT_USE_THIS_DATABASE"></div> <div data-i18n="[html]TAB_CONTACTS/HTML_ALERT_DO_NOT_USE_THIS_DATABASE"></div>
</div> </div>
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <label></label>
<a class="btn" data-bind="command: testContactsCommand, css: { 'btn-success': testContactsSuccess, 'btn-danger': testContactsError }"> <a class="btn" data-bind="command: testContactsCommand, css: { 'btn-success': testContactsSuccess, 'btn-danger': testContactsError }">
<i class="fontastic" data-bind="css: {'icon-spinner': testing()}"></i> <i class="fontastic" data-bind="css: {'icon-spinner': testing()}"></i>
<span data-i18n="TAB_CONTACTS/BUTTON_TEST"></span> <span data-i18n="TAB_CONTACTS/BUTTON_TEST"></span>
</a> </a>
</div> </div>
</div> </div>
</div>
<div class="alert span8" data-bind="text: testContactsErrorMessage, visible: '' !== testContactsErrorMessage()"></div> <div class="alert span8" data-bind="text: testContactsErrorMessage, visible: '' !== testContactsErrorMessage()"></div>
</div> </div>

View file

@ -18,22 +18,21 @@
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend" data-i18n="TAB_GENERAL/LEGEND_INTERFACE"></div> <div class="legend" data-i18n="TAB_GENERAL/LEGEND_INTERFACE"></div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_LANGUAGE"></label> <label data-i18n="TAB_GENERAL/LABEL_LANGUAGE"></label>
<div class="controls"> <div>
<span class="select" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage"></span> <span class="select" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage"></span>
<span data-bind="saveTrigger: languageTrigger"></span> <span data-bind="saveTrigger: languageTrigger"></span>
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_LANGUAGE_ADMIN"></label> <label data-i18n="TAB_GENERAL/LABEL_LANGUAGE_ADMIN"></label>
<div class="controls"> <div>
<span class="select" tabindex="0" data-bind="text: languageAdminFullName, click: selectLanguageAdmin, onSpace: selectLanguageAdmin, onEnter: selectLanguageAdmin"></span> <span class="select" tabindex="0" data-bind="text: languageAdminFullName, click: selectLanguageAdmin, onSpace: selectLanguageAdmin, onEnter: selectLanguageAdmin"></span>
<span data-bind="saveTrigger: languageAdminTrigger"></span> <span data-bind="saveTrigger: languageAdminTrigger"></span>
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_THEME"></label> <label data-i18n="TAB_GENERAL/LABEL_THEME"></label>
<div class="controls">
<div data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
@ -46,9 +45,8 @@
} }
}"></div> }"></div>
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
@ -80,7 +78,6 @@
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<div class="controls">
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
@ -90,11 +87,10 @@
} }
}"></div> }"></div>
</div> </div>
</div>
<div class="legend" data-i18n="TAB_GENERAL/LEGEND_MAIN"></div> <div class="legend" data-i18n="TAB_GENERAL/LEGEND_MAIN"></div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_GENERAL/LABEL_ATTACHMENT_SIZE_LIMIT"></label> <label data-i18n="TAB_GENERAL/LABEL_ATTACHMENT_SIZE_LIMIT"></label>
<div class="controls"> <div>
<input type="number" min="1" step="1" class="span1" data-bind="textInput: mainAttachmentLimit"/> <input type="number" min="1" step="1" class="span1" data-bind="textInput: mainAttachmentLimit"/>
&nbsp; &nbsp;
<span data-i18n="MB"></span> <span data-i18n="MB"></span>
@ -107,7 +103,7 @@
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {

View file

@ -1,8 +1,8 @@
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend" data-i18n="TAB_LOGIN/LEGEND_LOGIN_SCREEN"></div> <div class="legend" data-i18n="TAB_LOGIN/LEGEND_LOGIN_SCREEN"></div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_LOGIN/LABEL_DEFAULT_DOMAIN"></label> <label data-i18n="TAB_LOGIN/LABEL_DEFAULT_DOMAIN"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Input', name: 'Input',
params: { params: {
value: defaultDomain, value: defaultDomain,
@ -12,7 +12,7 @@
}"></div> }"></div>
</div> </div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { value: determineUserDomain, label: 'TAB_LOGIN/LABEL_DETERMINE_USER_DOMAIN' } params: { value: determineUserDomain, label: 'TAB_LOGIN/LABEL_DETERMINE_USER_DOMAIN' }

View file

@ -9,7 +9,7 @@
</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> <a href="#" class="close" data-bind="click: function () { packagesError('') }">×</a>
<span data-bind="text: packagesError"></span> <span data-bind="text: packagesError"></span>
</div> </div>

View file

@ -1,5 +1,5 @@
<label class="control-label" data-bind="text: Label, visible: 5 !== Type"></label> <label data-bind="text: Label, visible: 5 !== Type"></label>
<div class="controls"> <div>
<!-- ko if: 0 === Type --> <!-- ko if: 0 === Type -->
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: value, attr: {placeholder: placeholder}" /> data-bind="value: value, attr: {placeholder: placeholder}" />

View file

@ -1,7 +1,7 @@
<div class="legend" data-i18n="TAB_SECURITY/LEGEND_SECURITY"></div> <div class="legend" data-i18n="TAB_SECURITY/LEGEND_SECURITY"></div>
<div class="form-horizontal"> <div class="form-horizontal">
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
@ -23,47 +23,36 @@
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend" data-i18n="TAB_SECURITY/LEGEND_ADMIN_PANEL_ACCESS_CREDENTIALS"></div> <div class="legend" data-i18n="TAB_SECURITY/LEGEND_ADMIN_PANEL_ACCESS_CREDENTIALS"></div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="TAB_SECURITY/LABEL_CURRENT_PASSWORD"></label> <label data-i18n="TAB_SECURITY/LABEL_CURRENT_PASSWORD"></label>
<div class="controls">
<input type="password" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="password" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: adminPassword" /> data-bind="textInput: adminPassword" />
</div> </div>
</div>
<br />
<div class="control-group" data-bind="css: {'error': adminLoginError}"> <div class="control-group" data-bind="css: {'error': adminLoginError}">
<label class="control-label" data-i18n="TAB_SECURITY/LABEL_NEW_LOGIN"></label> <label data-i18n="TAB_SECURITY/LABEL_NEW_LOGIN"></label>
<div class="controls">
<input type="text" autocomplete="username" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="text" autocomplete="username" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: adminLogin" /> data-bind="textInput: adminLogin" />
</div> </div>
</div>
<div class="control-group" data-bind="css: {'error': adminPasswordNewError}"> <div class="control-group" data-bind="css: {'error': adminPasswordNewError}">
<label class="control-label" data-i18n="TAB_SECURITY/LABEL_NEW_PASSWORD"></label> <label data-i18n="TAB_SECURITY/LABEL_NEW_PASSWORD"></label>
<div class="controls">
<input type="password" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="password" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: adminPasswordNew" /> data-bind="textInput: adminPasswordNew" />
</div> </div>
</div>
<div class="control-group" data-bind="css: {'error': adminPasswordNewError}"> <div class="control-group" data-bind="css: {'error': adminPasswordNewError}">
<label class="control-label" data-i18n="TAB_SECURITY/LABEL_REPEAT_PASSWORD"></label> <label data-i18n="TAB_SECURITY/LABEL_REPEAT_PASSWORD"></label>
<div class="controls">
<input type="password" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="password" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: adminPasswordNew2" /> data-bind="textInput: adminPasswordNew2" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<div class="controls">
<a class="btn" data-bind="command: saveNewAdminPasswordCommand, css: { 'btn-success': adminPasswordUpdateSuccess, 'btn-danger': adminPasswordUpdateError }"> <a class="btn" data-bind="command: saveNewAdminPasswordCommand, css: { 'btn-success': adminPasswordUpdateSuccess, 'btn-danger': adminPasswordUpdateError }">
<i class="fontastic">🔑</i> <i class="fontastic">🔑</i>
<span data-i18n="TAB_SECURITY/BUTTON_UPDATE_PASSWORD"></span> <span data-i18n="TAB_SECURITY/BUTTON_UPDATE_PASSWORD"></span>
</a> </a>
</div> </div>
</div>
</div> </div>
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend" data-i18n="TAB_SECURITY/LEGEND_SSL"></div> <div class="legend" data-i18n="TAB_SECURITY/LEGEND_SSL"></div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-bind="text: headerText"></h3> <h3 data-bind="text: headerText"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">

View file

@ -1,11 +1,11 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_DOMAIN_ALIAS/TITLE_ADD_DOMAIN_ALIAS"></h3> <h3 data-i18n="POPUPS_DOMAIN_ALIAS/TITLE_ADD_DOMAIN_ALIAS"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">
<div class="control-group" data-bind="css: {error: '' !== savingError()}"> <div class="control-group" data-bind="css: {error: '' !== savingError()}">
<label class="control-label" data-i18n="POPUPS_DOMAIN_ALIAS/LABEL_ALIAS"></label> <label data-i18n="POPUPS_DOMAIN_ALIAS/LABEL_ALIAS"></label>
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Input', name: 'Input',
params: { params: {
@ -17,8 +17,8 @@
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="POPUPS_DOMAIN_ALIAS/LABEL_DOMAIN"></label> <label data-i18n="POPUPS_DOMAIN_ALIAS/LABEL_DOMAIN"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
options: domainsOptions, options: domainsOptions,

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h4> <h4>
<span data-i18n="POPUPS_PLUGIN/TITLE_PLUGIN"></span> <span data-i18n="POPUPS_PLUGIN/TITLE_PLUGIN"></span>
&nbsp; &nbsp;
@ -11,7 +11,7 @@
<form class="form-horizontal plugin-form" action="#/" onsubmit="return false;"> <form class="form-horizontal plugin-form" action="#/" onsubmit="return false;">
<div class="alert alert-info" 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> <a href="#" class="close" data-bind="click: function () { saveError('') }">×</a>
<span data-bind="text: saveError"></span> <span data-bind="text: saveError"></span>
</div> </div>
<div data-bind="foreach: configures, visible: hasConfiguration"> <div data-bind="foreach: configures, visible: hasConfiguration">

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_LANGUAGES/TITLE_LANGUAGES"></h3> <h3 data-i18n="POPUPS_LANGUAGES/TITLE_LANGUAGES"></h3>
</header> </header>
<div class="modal-body" style="min-height: 150px;" data-bind="foreach: languages"> <div class="modal-body" style="min-height: 150px;" data-bind="foreach: languages">

View file

@ -1,6 +1,6 @@
<div class="descWrapper" data-bind="visible: '' !== loadingDesc, text: loadingDesc"></div> <div class="descWrapper" data-bind="visible: '' !== loadingDesc, text: loadingDesc"></div>
<div class="alert" data-bind="hidden: !submitError()" hidden=""> <div class="alert" data-bind="hidden: !submitError()" hidden="">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <a href="#" class="close" data-bind="click: function () { submitError('') }">×</a>
<span data-bind="text: submitError"></span> <span data-bind="text: submitError"></span>
<p data-bind="visible: '' !== submitErrorAddidional(), text: submitErrorAddidional"></p> <p data-bind="visible: '' !== submitErrorAddidional(), text: submitErrorAddidional"></p>
</div> </div>

View file

@ -160,7 +160,7 @@
<div class="b-message" data-bind="visible: message"> <div class="b-message" data-bind="visible: message">
<div class="messageItemHeader" data-bind="css: {'emptySubject': '' === viewSubject()}"> <div class="messageItemHeader" data-bind="css: {'emptySubject': '' === viewSubject()}">
<div class="subjectParent"> <div class="subjectParent">
<button class="close" data-bind="command: closeMessageCommand" style="margin-top: -2px;">×</button> <a href="#" class="close" data-bind="command: closeMessageCommand" style="margin-top: -2px;">×</a>
<span class="infoParent g-ui-user-select-none fontastic" data-bind="click: function() { showFullInfo(!showFullInfo()); }"></span> <span class="infoParent g-ui-user-select-none fontastic" data-bind="click: function() { showFullInfo(!showFullInfo()); }"></span>
<span class="flagParent g-ui-user-select-none flagOff fontastic" data-bind="text: viewIsFlagged() ? '★' : '☆', css: {'flagOn': viewIsFlagged, 'flagOff': !viewIsFlagged()}"></span> <span class="flagParent g-ui-user-select-none flagOff fontastic" data-bind="text: viewIsFlagged() ? '★' : '☆', css: {'flagOn': viewIsFlagged, 'flagOff': !viewIsFlagged()}"></span>
<b style="color: red; margin-right: 5px" data-bind="visible: viewIsImportant">!</b> <b style="color: red; margin-right: 5px" data-bind="visible: viewIsImportant">!</b>
@ -303,8 +303,8 @@
data-i18n="MESSAGE/LINK_DOWNLOAD_AS_ZIP"></span> data-i18n="MESSAGE/LINK_DOWNLOAD_AS_ZIP"></span>
</span> </span>
<button type="button" class="close" style="margin-right: 5px;" <a href="#" class="close" style="margin-right: 5px;"
data-bind="click: function () { showAttachmnetControls(false); showAttachmnetControlsState(false); }">×</button> data-bind="click: function () { showAttachmnetControls(false); showAttachmnetControlsState(false); }">×</a>
</div> </div>
</div> </div>

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3> <h3>
<span data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_ADD_ACCOUNT"></span> <span data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_ADD_ACCOUNT"></span>
<span data-bind="visible: !isNew()" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_UPDATE_ACCOUNT"></span> <span data-bind="visible: !isNew()" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_UPDATE_ACCOUNT"></span>
@ -7,30 +7,25 @@
</header> </header>
<form class="modal-body form-horizontal" autocomplete="off"> <form class="modal-body form-horizontal" autocomplete="off">
<div class="alert" data-bind="visible: '' !== submitError()"> <div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <a href="#" class="close" data-bind="click: function () { submitError('') }">×</a>
<span data-bind="text: submitError"></span> <span data-bind="text: submitError"></span>
<div data-bind="visible: submitErrorAdditional"> <div data-bind="visible: submitErrorAdditional">
<br /> <br />
<span data-bind="text: submitErrorAdditional"></span> <span data-bind="text: submitErrorAdditional"></span>
</div> </div>
</div> </div>
<br />
<div class="control-group" data-bind="css: {'error': emailError}"> <div class="control-group" data-bind="css: {'error': emailError}">
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label> <label data-i18n="GLOBAL/EMAIL"></label>
<div class="controls">
<label style="margin-top: 5px;" data-bind="visible: !isNew()"><strong data-bind="text: email"></strong></label> <label style="margin-top: 5px;" data-bind="visible: !isNew()"><strong data-bind="text: email"></strong></label>
<input type="email" class="input-xlarge" <input type="email" class="input-xlarge"
autofocus="" autocorrect="off" autocapitalize="off" spellcheck="false" autofocus="" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="visible: isNew, textInput: email, onEnter: addAccountCommand" /> data-bind="visible: isNew, textInput: email, onEnter: addAccountCommand" />
</div> </div>
</div>
<div class="control-group" data-bind="css: {'error': passwordError}"> <div class="control-group" data-bind="css: {'error': passwordError}">
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label> <label data-i18n="GLOBAL/PASSWORD"></label>
<div class="controls">
<input type="password" class="inputPassword input-xlarge" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="password" class="inputPassword input-xlarge" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: password, onEnter: addAccountCommand" /> data-bind="value: password, onEnter: addAccountCommand" />
</div> </div>
</div>
</form> </form>
<footer> <footer>
<a class="btn buttonAddAccount" data-bind="command: addAccountCommand"> <a class="btn buttonAddAccount" data-bind="command: addAccountCommand">

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/TITLE_IMPORT_OPEN_PGP_KEY"></h3> <h3 data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/TITLE_IMPORT_OPEN_PGP_KEY"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="SEARCH/TITLE_ADV"></h3> <h3 data-i18n="SEARCH/TITLE_ADV"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">
@ -7,39 +7,31 @@
<div class="row"> <div class="row">
<div class="span4"> <div class="span4">
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/FROM"></label> <label data-i18n="GLOBAL/FROM"></label>
<div class="controls">
<input type="text" class="uiInput inputFrom" <input type="text" class="uiInput inputFrom"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: from, onEnter: searchCommand, onEsc: cancelCommand" /> data-bind="value: from, onEnter: searchCommand, onEsc: cancelCommand" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/TO"></label> <label data-i18n="GLOBAL/TO"></label>
<div class="controls">
<input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: to, onEnter: searchCommand, onEsc: cancelCommand" /> data-bind="value: to, onEnter: searchCommand, onEsc: cancelCommand" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/SUBJECT"></label> <label data-i18n="GLOBAL/SUBJECT"></label>
<div class="controls">
<input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: subject, onEnter: searchCommand, onEsc: cancelCommand" /> data-bind="value: subject, onEnter: searchCommand, onEsc: cancelCommand" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SEARCH/LABEL_ADV_TEXT"></label> <label data-i18n="SEARCH/LABEL_ADV_TEXT"></label>
<div class="controls">
<input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="text" class="uiInput inputFrom" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: text, onEnter: searchCommand, onEsc: cancelCommand" /> data-bind="value: text, onEnter: searchCommand, onEsc: cancelCommand" />
</div> </div>
</div> </div>
</div>
<div class="span4"> <div class="span4">
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SEARCH/LABEL_ADV_DATE"></label> <label data-i18n="SEARCH/LABEL_ADV_DATE"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
options: selectedDates, options: selectedDates,
@ -51,8 +43,8 @@
</div> </div>
<!-- ko if: showMultisearch --> <!-- ko if: showMultisearch -->
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SEARCH/LABEL_ADV_SUBFOLDERS"></label> <label data-i18n="SEARCH/LABEL_ADV_SUBFOLDERS"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
options: selectedTree, options: selectedTree,
@ -64,9 +56,8 @@
</div> </div>
<!-- /ko --> <!-- /ko -->
<div class="control-group"> <div class="control-group">
<label class="control-label"> <label></label>
</label> <div>
<div class="controls">
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {

View file

@ -166,7 +166,7 @@
<div class="iconBG" data-bind="text: progressText, visible: uploading"></div> <div class="iconBG" data-bind="text: progressText, visible: uploading"></div>
</div> </div>
<div class="attachmentNameParent"> <div class="attachmentNameParent">
<button type="button" class="close pull-right" style="margin-top:-4px;" data-bind="click: cancel">×</button> <a href="#" class="close pull-right" style="margin-top:-4px;" data-bind="click: cancel">×</a>
<div class="attachmentName" data-bind="text: fileName"></div> <div class="attachmentName" data-bind="text: fileName"></div>
<span class="attachmentSize" data-bind="text: friendlySize"></span> <span class="attachmentSize" data-bind="text: friendlySize"></span>
</div> </div>

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_COMPOSE_OPEN_PGP/TITLE_COMPOSE_OPEN_PGP"></h3> <h3 data-i18n="POPUPS_COMPOSE_OPEN_PGP/TITLE_COMPOSE_OPEN_PGP"></h3>
</header> </header>

View file

@ -1,6 +1,6 @@
<header class="b-header-toolbar g-ui-user-select-none"> <header class="b-header-toolbar g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<div class="btn-toolbar"> <div class="btn-toolbar">
@ -128,8 +128,8 @@
<div data-bind="visible: !emptySelection()"> <div data-bind="visible: !emptySelection()">
<div class="form-horizontal top-part"> <div class="form-horizontal top-part">
<div class="control-group" data-bind="visible: !viewReadOnly() || contactHasValidName()"> <div class="control-group" data-bind="visible: !viewReadOnly() || contactHasValidName()">
<label class="control-label fontastic iconsize24">👤</label> <label class="fontastic iconsize24">👤</label>
<div class="controls"> <div>
<div data-bind="foreach: viewPropertiesNames"> <div data-bind="foreach: viewPropertiesNames">
<div class="property-line"> <div class="property-line">
<span data-bind="text: value"></span> <span data-bind="text: value"></span>
@ -157,8 +157,8 @@
</div> </div>
</div> </div>
<div class="control-group" data-bind="visible: !viewReadOnly() || 0 < viewPropertiesEmails().length"> <div class="control-group" data-bind="visible: !viewReadOnly() || 0 < viewPropertiesEmails().length">
<label class="control-label fontastic iconsize24" data-i18n="[title]GLOBAL/EMAIL">@</label> <label class="fontastic iconsize24" data-i18n="[title]GLOBAL/EMAIL">@</label>
<div class="controls"> <div>
<div data-bind="foreach: viewPropertiesEmails"> <div data-bind="foreach: viewPropertiesEmails">
<div class="property-line"> <div class="property-line">
<span data-bind="text: value"></span> <span data-bind="text: value"></span>
@ -171,8 +171,8 @@
</div> </div>
</div> </div>
<div class="control-group" data-bind="visible: 0 < viewPropertiesPhones().length"> <div class="control-group" data-bind="visible: 0 < viewPropertiesPhones().length">
<label class="control-label fontastic iconsize24" data-i18n="[title]CONTACTS/LABEL_PHONE">📞</label> <label class="fontastic iconsize24" data-i18n="[title]CONTACTS/LABEL_PHONE">📞</label>
<div class="controls"> <div>
<div data-bind="foreach: viewPropertiesPhones"> <div data-bind="foreach: viewPropertiesPhones">
<div class="property-line"> <div class="property-line">
<span data-bind="text: value"></span> <span data-bind="text: value"></span>
@ -184,8 +184,8 @@
</div> </div>
</div> </div>
<div class="control-group" data-bind="visible: 0 < viewPropertiesWeb().length"> <div class="control-group" data-bind="visible: 0 < viewPropertiesWeb().length">
<label class="control-label fontastic iconsize24" data-i18n="[title]CONTACTS/LABEL_WEB">🌍</label> <label class="fontastic iconsize24" data-i18n="[title]CONTACTS/LABEL_WEB">🌍</label>
<div class="controls"> <div>
<div data-bind="foreach: viewPropertiesWeb"> <div data-bind="foreach: viewPropertiesWeb">
<div class="property-line"> <div class="property-line">
<span data-bind="text: value"></span> <span data-bind="text: value"></span>

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3> <h3>
<span data-i18n="POPUPS_FILTER/TITLE_CREATE_FILTER" data-bind="visible: isNew"></span> <span data-i18n="POPUPS_FILTER/TITLE_CREATE_FILTER" data-bind="visible: isNew"></span>
<span data-i18n="POPUPS_FILTER/TITLE_EDIT_FILTER" data-bind="visible: !isNew()"></span> <span data-i18n="POPUPS_FILTER/TITLE_EDIT_FILTER" data-bind="visible: !isNew()"></span>
@ -10,14 +10,12 @@
<div data-bind="i18nInit: true"> <div data-bind="i18nInit: true">
<div class="control-group" data-bind="css: {'error': nameError}"> <div class="control-group" data-bind="css: {'error': nameError}">
<div class="controls">
<input type="text" class="span5" <input type="text" class="span5"
data-bind="value: name, hasfocus: nameFocused" data-bind="value: name, hasfocus: nameFocused"
autocorrect="off" autocapitalize="off" spellcheck="false" autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/NAME" data-i18n="[placeholder]GLOBAL/NAME"
/> />
</div> </div>
</div>
<div class="legend" data-i18n="POPUPS_FILTER/LEGEND_CONDITIONS"></div> <div class="legend" data-i18n="POPUPS_FILTER/LEGEND_CONDITIONS"></div>
<div class="control-group" data-bind="visible: 1 < conditions().length"> <div class="control-group" data-bind="visible: 1 < conditions().length">

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3> <h3>
<span data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEAR_FOLDER" data-bind="visible: !clearingProcess()"></span> <span data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEAR_FOLDER" data-bind="visible: !clearingProcess()"></span>
<span data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEARING_PROCESS" data-bind="visible: clearingProcess"></span> <span data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEARING_PROCESS" data-bind="visible: clearingProcess"></span>

View file

@ -1,25 +1,21 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3> <h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label> <label data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label>
<div class="controls">
<select data-bind="options: parentFolderSelectList, value: selectedParentValue, <select data-bind="options: parentFolderSelectList, value: selectedParentValue,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select>
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label> <label data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="uiInput inputName" <input type="text" class="uiInput inputName"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: folderName, onEnter: createFolderCommand" /> data-bind="textInput: folderName, onEnter: createFolderCommand" />
</div> </div>
</div> </div>
</div>
</div> </div>
<footer> <footer>
<a class="btn buttonCreate" data-bind="command: createFolderCommand"> <a class="btn buttonCreate" data-bind="command: createFolderCommand">

View file

@ -1,45 +1,34 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_SYSTEM_FOLDERS/TITLE_SYSTEM_FOLDERS"></h3> <h3 data-i18n="POPUPS_SYSTEM_FOLDERS/TITLE_SYSTEM_FOLDERS"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="alert" data-bind="visible: '' !== notification()" data-bind="text: notification"></div> <div class="alert" data-bind="visible: '' !== notification()" data-bind="text: notification"></div>
<br />
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="FOLDER_LIST/SENT_NAME"></label> <label data-i18n="FOLDER_LIST/SENT_NAME"></label>
<div class="controls">
<select data-bind="options: folderSelectList, value: sentFolder, <select data-bind="options: folderSelectList, value: sentFolder,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select>
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="FOLDER_LIST/DRAFTS_NAME"></label> <label data-i18n="FOLDER_LIST/DRAFTS_NAME"></label>
<div class="controls">
<select data-bind="options: folderSelectList, value: draftFolder, <select data-bind="options: folderSelectList, value: draftFolder,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select>
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/SPAM"></label> <label data-i18n="GLOBAL/SPAM"></label>
<div class="controls">
<select data-bind="options: folderSelectList, value: spamFolder, <select data-bind="options: folderSelectList, value: spamFolder,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select>
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="FOLDER_LIST/TRASH_NAME"></label> <label data-i18n="FOLDER_LIST/TRASH_NAME"></label>
<div class="controls">
<select data-bind="options: folderSelectList, value: trashFolder, <select data-bind="options: folderSelectList, value: trashFolder,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select>
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="FOLDER_LIST/ARCHIVE_NAME"></label> <label data-i18n="FOLDER_LIST/ARCHIVE_NAME"></label>
<div class="controls">
<select data-bind="options: folderSelectList, value: archiveFolder, <select data-bind="options: folderSelectList, value: archiveFolder,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select>
</div> </div>
</div> </div>
</div>
</div> </div>

View file

@ -1,5 +1,5 @@
<header class="g-ui-user-select-none"> <header class="g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3> <h3>
<span data-bind="visible: !edit()" data-i18n="POPUPS_IDENTITY/TITLE_ADD_IDENTITY"></span> <span data-bind="visible: !edit()" data-i18n="POPUPS_IDENTITY/TITLE_ADD_IDENTITY"></span>
<span data-bind="visible: edit" data-i18n="POPUPS_IDENTITY/TITLE_UPDATE_IDENTITY"></span> <span data-bind="visible: edit" data-i18n="POPUPS_IDENTITY/TITLE_UPDATE_IDENTITY"></span>
@ -8,50 +8,38 @@
<div class="modal-body"> <div class="modal-body">
<div class="form-horizontal g-ui-user-select-none"> <div class="form-horizontal g-ui-user-select-none">
<div class="alert" data-bind="visible: '' !== submitError()"> <div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <a href="#" class="close" data-bind="click: function () { submitError('') }">×</a>
<span data-bind="text: submitError"></span> <span data-bind="text: submitError"></span>
</div> </div>
<br /> <div class="control-group" data-bind="css: {'error': emailHasError}">
<div class="control-group" data-bind="visible: !owner(), css: {'error': emailHasError}"> <label data-i18n="GLOBAL/EMAIL"></label>
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label> <div>
<div class="controls"> <div class="textEmail" data-bind="text: email, visible: owner"></div>
<input type="email" class="input-xlarge" autofocus="" <input type="email" class="input-xlarge" autofocus=""
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: email, onEnter: addOrEditIdentityCommand, hasfocus: emailFocused" /> data-bind="visible: !owner(), value: email, onEnter: addOrEditIdentityCommand, hasfocus: emailFocused" />
</div>
</div>
<div class="control-group" data-bind="visible: owner">
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label>
<div class="controls">
<div class="textEmail" data-bind="text: email"></div>
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label> <label data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="inputName input-xlarge" <input type="text" class="inputName input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: name, onEnter: addOrEditIdentityCommand" /> data-bind="value: name, onEnter: addOrEditIdentityCommand" />
</div> </div>
</div>
<div class="control-group" data-bind="visible: showReplyTo, css: {'error': replyToHasError}"> <div class="control-group" data-bind="visible: showReplyTo, css: {'error': replyToHasError}">
<label class="control-label" data-i18n="GLOBAL/REPLY_TO"></label> <label data-i18n="GLOBAL/REPLY_TO"></label>
<div class="controls">
<input type="text" class="inputReplyTo input-xlarge" <input type="text" class="inputReplyTo input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: replyTo, onEnter: addOrEditIdentityCommand, hasfocus: replyToFocused" /> data-bind="value: replyTo, onEnter: addOrEditIdentityCommand, hasfocus: replyToFocused" />
</div> </div>
</div>
<div class="control-group" data-bind="visible: showBcc, css: {'error': bccHasError}"> <div class="control-group" data-bind="visible: showBcc, css: {'error': bccHasError}">
<label class="control-label" data-i18n="GLOBAL/BCC"></label> <label data-i18n="GLOBAL/BCC"></label>
<div class="controls">
<input type="text" class="inputBcc input-xlarge" <input type="text" class="inputBcc input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: bcc, onEnter: addOrEditIdentityCommand, hasfocus: bccFocused" /> data-bind="value: bcc, onEnter: addOrEditIdentityCommand, hasfocus: bccFocused" />
</div> </div>
</div>
<div class="control-group" data-bind="visible: !showReplyTo() || !showBcc()"> <div class="control-group" data-bind="visible: !showReplyTo() || !showBcc()">
<div class="controls"> <div>
<span data-bind="visible: !showReplyTo()"> <span data-bind="visible: !showReplyTo()">
<span class="g-ui-link" data-i18n="GLOBAL/REPLY_TO" <span class="g-ui-link" data-i18n="GLOBAL/REPLY_TO"
data-bind="click: function () { showReplyTo(true); }"></span> data-bind="click: function () { showReplyTo(true); }"></span>
@ -66,7 +54,7 @@
</div> </div>
<hr /> <hr />
<div class="control-group g-ui-user-select-none"> <div class="control-group g-ui-user-select-none">
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'POPUPS_IDENTITY/LABEL_SIGNATURE_INSERT_BEFORE', label: 'POPUPS_IDENTITY/LABEL_SIGNATURE_INSERT_BEFORE',

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="SHORTCUTS_HELP/LEGEND_SHORTCUTS_HELP"></h3> <h3 data-i18n="SHORTCUTS_HELP/LEGEND_SHORTCUTS_HELP"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">

View file

@ -1,5 +1,5 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_MESSAGE_OPEN_PGP/TITLE_MESSAGE_OPEN_PGP"></h3> <h3 data-i18n="POPUPS_MESSAGE_OPEN_PGP/TITLE_MESSAGE_OPEN_PGP"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">
@ -7,10 +7,9 @@
<div class="alert" data-bind="visible: '' !== notification()"> <div class="alert" data-bind="visible: '' !== notification()">
<span data-bind="text: notification"></span> <span data-bind="text: notification"></span>
</div> </div>
<br />
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="POPUPS_MESSAGE_OPEN_PGP/LABEL_KEY"></label> <label data-i18n="POPUPS_MESSAGE_OPEN_PGP/LABEL_KEY"></label>
<div class="controls key-list" data-bind="foreach: privateKeys" style="margin-top: 5px"> <div class="key-list" data-bind="foreach: privateKeys" style="margin-top: 5px">
<div class="key-list__item"> <div class="key-list__item">
<i class="key-list__item__radio fontastic"></i> <i class="key-list__item__radio fontastic"></i>
<div class="key-list__item__names" data-bind="foreach: users"> <div class="key-list__item__names" data-bind="foreach: users">
@ -24,13 +23,11 @@
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label> <label data-i18n="GLOBAL/PASSWORD"></label>
<div class="controls">
<input type="password" class="inputPassword input-xlarge" autofocus="" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="password" class="inputPassword input-xlarge" autofocus="" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: password, onEnter: doCommand" /> data-bind="textInput: password, onEnter: doCommand" />
</div> </div>
</div> </div>
</div>
</div> </div>
<footer> <footer>
<button class="btn buttonDo" data-bind="command: doCommand"> <button class="btn buttonDo" data-bind="command: doCommand">

View file

@ -1,45 +1,34 @@
<header> <header>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/TITLE_GENERATE_OPEN_PGP_KEYS"></h3> <h3 data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/TITLE_GENERATE_OPEN_PGP_KEYS"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body form-horizontal">
<div class="form-horizontal">
<div class="alert" data-bind="visible: '' !== submitError()"> <div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <a href="#" class="close" data-bind="click: function () { submitError('') }">×</a>
<span data-bind="text: submitError"></span> <span data-bind="text: submitError"></span>
</div> </div>
<br />
<div class="control-group" data-bind="css: {'error': emailError}"> <div class="control-group" data-bind="css: {'error': emailError}">
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label> <label data-i18n="GLOBAL/EMAIL"></label>
<div class="controls">
<input type="email" class="input-large" <input type="email" class="input-large"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: email" /> data-bind="value: email" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label> <label data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="inputName input-large" <input type="text" class="inputName input-large"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: name" /> data-bind="value: name" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label> <label data-i18n="GLOBAL/PASSWORD"></label>
<div class="controls">
<input type="password" class="inputPassword input-large" <input type="password" class="inputPassword input-large"
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: password" /> data-bind="value: password" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/LABEL_KEY_BIT_LENGTH"></label> <label data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/LABEL_KEY_BIT_LENGTH"></label>
<div class="controls">
<select data-bind="value: keyBitLength, options: [2048, 4096]"></select> <select data-bind="value: keyBitLength, options: [2048, 4096]"></select>
</div> </div>
</div>
</div>
</div> </div>
<footer> <footer>
<a class="btn buttonHenerateOpenPgpKey" data-bind="command: generateOpenPgpKeyCommand"> <a class="btn buttonHenerateOpenPgpKey" data-bind="command: generateOpenPgpKeyCommand">

View file

@ -1,6 +1,6 @@
<!-- ko with: script --> <!-- ko with: script -->
<header> <header>
<button type="button" class="close" data-bind="command: $root.cancelCommand">×</button> <a href="#" class="close" data-bind="command: $root.cancelCommand">×</a>
<h3> <h3>
<span data-i18n="POPUPS_SIEVE_SCRIPT/TITLE_CREATE" data-bind="visible: !exists()"></span> <span data-i18n="POPUPS_SIEVE_SCRIPT/TITLE_CREATE" data-bind="visible: !exists()"></span>
<span data-i18n="POPUPS_SIEVE_SCRIPT/TITLE_EDIT" data-bind="visible: exists"></span> <span data-i18n="POPUPS_SIEVE_SCRIPT/TITLE_EDIT" data-bind="visible: exists"></span>
@ -10,14 +10,12 @@
<div class="modal-body"> <div class="modal-body">
<div class="control-group" data-bind="css: {'error': nameError}, hidden: exists"> <div class="control-group" data-bind="css: {'error': nameError}, hidden: exists">
<div class="controls">
<input type="text" class="span5" <input type="text" class="span5"
data-bind="value: name, hasfocus: !exists()" data-bind="value: name, hasfocus: !exists()"
autocorrect="off" autocapitalize="off" spellcheck="false" autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/NAME" data-i18n="[placeholder]GLOBAL/NAME"
/> />
</div> </div>
</div>
<div class="alert g-ui-user-select-none" data-bind="visible: hasChanges"> <div class="alert g-ui-user-select-none" data-bind="visible: hasChanges">
<i class="fontastic"></i> <i class="fontastic"></i>
@ -29,7 +27,7 @@
</div> </div>
<div class="control-group" data-bind="visible: $root.rawActive"> <div class="control-group" data-bind="visible: $root.rawActive">
<div class="controls"> <div>
<pre> <pre>
<b data-i18n="POPUPS_SIEVE_SCRIPT/CAPABILITY_LABEL"></b>: <b data-i18n="POPUPS_SIEVE_SCRIPT/CAPABILITY_LABEL"></b>:
<span data-bind="text: $root.sieveCapabilities"></span> <span data-bind="text: $root.sieveCapabilities"></span>

View file

@ -1,5 +1,5 @@
<header class="g-ui-user-select-none"> <header class="g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <a href="#" class="close" data-bind="command: cancelCommand">×</a>
<h3 data-i18n="POPUPS_VIEW_OPEN_PGP_KEY/TITLE_VIEW_OPEN_PGP_KEY"></h3> <h3 data-i18n="POPUPS_VIEW_OPEN_PGP_KEY/TITLE_VIEW_OPEN_PGP_KEY"></h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">

View file

@ -1,7 +1,7 @@
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend" data-i18n="GLOBAL/CONTACTS"></div> <div class="legend" data-i18n="GLOBAL/CONTACTS"></div>
<div class="control-group"> <div class="control-group">
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'SETTINGS_CONTACTS/LABEL_CONTACTS_AUTOSAVE', label: 'SETTINGS_CONTACTS/LABEL_CONTACTS_AUTOSAVE',
@ -13,7 +13,7 @@
<div class="form-horizontal" data-bind="visible: allowContactsSync"> <div class="form-horizontal" data-bind="visible: allowContactsSync">
<div class="legend" data-i18n="SETTINGS_CONTACTS/LEGEND_CONTACTS_SYNC"></div> <div class="legend" data-i18n="SETTINGS_CONTACTS/LEGEND_CONTACTS_SYNC"></div>
<div class="control-group"> <div class="control-group">
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_ENABLE', label: 'SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_ENABLE',
@ -22,25 +22,19 @@
}"></div> }"></div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_AB_URL"></label> <label data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_AB_URL"></label>
<div class="controls">
<input type="text" class="input-xxlarge" autocomplete="off" autocorrect="off" autocapitalize="off" <input type="text" class="input-xxlarge" autocomplete="off" autocorrect="off" autocapitalize="off"
spellcheck="false" data-bind="value: contactsSyncUrl" placeholder="https://" /> spellcheck="false" data-bind="value: contactsSyncUrl" placeholder="https://" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_USER"></label> <label data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_USER"></label>
<div class="controls">
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: contactsSyncUser" /> data-bind="value: contactsSyncUser" />
</div> </div>
</div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label> <label data-i18n="GLOBAL/PASSWORD"></label>
<div class="controls">
<input type="password" autocomplete="current-password" autocorrect="off" autocapitalize="off" <input type="password" autocomplete="current-password" autocorrect="off" autocapitalize="off"
spellcheck="false" data-bind="value: contactsSyncPass" /> spellcheck="false" data-bind="value: contactsSyncPass" />
</div> </div>
</div>
</div> </div>

View file

@ -1,5 +1,4 @@
<div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0">
<div class="controls">
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
@ -7,5 +6,4 @@
value: actionNoStop value: actionNoStop
} }
}"></div> }"></div>
</div>
</div> </div>

View file

@ -1,11 +1,9 @@
<div class="control-group" data-bind="css: {'error': actionValueError}"> <div class="control-group" data-bind="css: {'error': actionValueError}">
<div class="controls">
<input type="text" class="span3" data-bind="value: actionValue" <input type="text" class="span3" data-bind="value: actionValue"
data-i18n="[placeholder]GLOBAL/EMAIL" /> data-i18n="[placeholder]GLOBAL/EMAIL" />
</div>
</div> </div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {

View file

@ -1,11 +1,9 @@
<div class="control-group" data-bind="css: {'error': actionValueError}"> <div class="control-group" data-bind="css: {'error': actionValueError}">
<div class="controls">
<select class="span3" data-bind="options: $root.folderSelectList, value: $root.selectedFolderValue, <select class="span3" data-bind="options: $root.folderSelectList, value: $root.selectedFolderValue,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select>
</div>
</div> </div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="visible: $root.allowMarkAsRead, component: { <div data-bind="visible: $root.allowMarkAsRead, component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {

View file

@ -1,5 +1,5 @@
<div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0">
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'POPUPS_FILTER/STOP_LABEL', label: 'POPUPS_FILTER/STOP_LABEL',

View file

@ -1,5 +1,5 @@
<div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0">
<div class="controls"> <div>
<textarea class="span5" data-bind="value: actionValue" style="height: 100px;" <textarea class="span5" data-bind="value: actionValue" style="height: 100px;"
data-i18n="[placeholder]POPUPS_FILTER/REJECT_MESSAGE_LABEL"></textarea> data-i18n="[placeholder]POPUPS_FILTER/REJECT_MESSAGE_LABEL"></textarea>
<div data-bind="component: { <div data-bind="component: {

View file

@ -1,5 +1,5 @@
<div class="control-group" style="margin-bottom: 0"> <div class="control-group" style="margin-bottom: 0">
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
options: [1, 2, 3, 7, 30], options: [1, 2, 3, 7, 30],
@ -10,26 +10,22 @@
}"></div> }"></div>
</div> </div>
<div class="control-group" data-bind="css: {'error': actionValueFourthError}" style="margin-bottom: 0"> <div class="control-group" data-bind="css: {'error': actionValueFourthError}" style="margin-bottom: 0">
<div class="controls"> <div>
<input type="text" class="span5" data-bind="value: actionValueFourth" <input type="text" class="span5" data-bind="value: actionValueFourth"
data-i18n="[placeholder]POPUPS_FILTER/VACATION_RECIPIENTS_LABEL" /> data-i18n="[placeholder]POPUPS_FILTER/VACATION_RECIPIENTS_LABEL" />
<button class="btn setRecipientsBtn fontastic" data-bind="click: setRecipients"></button> <button class="btn setRecipientsBtn fontastic" data-bind="click: setRecipients"></button>
</div> </div>
</div> </div>
<div class="control-group" style="margin-bottom: 0"> <div class="control-group" style="margin-bottom: 0">
<div class="controls">
<input type="text" class="span5" data-bind="value: actionValueSecond" <input type="text" class="span5" data-bind="value: actionValueSecond"
data-i18n="[placeholder]POPUPS_FILTER/VACATION_SUBJECT_LABEL" /> data-i18n="[placeholder]POPUPS_FILTER/VACATION_SUBJECT_LABEL" />
</div>
</div> </div>
<div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0">
<div class="controls">
<textarea class="span5" data-bind="value: actionValue" style="height: 100px;" <textarea class="span5" data-bind="value: actionValue" style="height: 100px;"
data-i18n="[placeholder]POPUPS_FILTER/VACATION_MESSAGE_LABEL"></textarea> data-i18n="[placeholder]POPUPS_FILTER/VACATION_MESSAGE_LABEL"></textarea>
</div>
</div> </div>
<div class="control-group"> <div class="control-group">
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'POPUPS_FILTER/STOP_LABEL', label: 'POPUPS_FILTER/STOP_LABEL',

View file

@ -25,7 +25,7 @@
<span data-i18n="SETTINGS_FOLDERS/TO_MANY_FOLDERS_DESC_2"></span> <span data-i18n="SETTINGS_FOLDERS/TO_MANY_FOLDERS_DESC_2"></span>
</div> </div>
<div class="alert folders-list-error" data-bind="visible: '' !== folderListError()"> <div class="alert folders-list-error" data-bind="visible: '' !== folderListError()">
<button type="button" class="close" data-bind="click: function () { folderListError(''); }">×</button> <a href="#" class="close" data-bind="click: function () { folderListError(''); }">×</a>
<span data-bind="text: folderListError"></span> <span data-bind="text: folderListError"></span>
</div> </div>
<table class="table table-hover list-table" data-bind="i18nUpdate: folderList"> <table class="table table-hover list-table" data-bind="i18nUpdate: folderList">

View file

@ -1,21 +1,19 @@
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend" data-i18n="SETTINGS_GENERAL/LEGEND_GENERAL"></div> <div class="legend" data-i18n="SETTINGS_GENERAL/LEGEND_GENERAL"></div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SETTINGS_GENERAL/LABEL_IDENTITY"></label> <label data-i18n="SETTINGS_GENERAL/LABEL_IDENTITY"></label>
<div class="controls">
<b class="editMainIdentity" data-bind="click: editMainIdentity, text: identityMainDesc"></b> <b class="editMainIdentity" data-bind="click: editMainIdentity, text: identityMainDesc"></b>
</div> </div>
</div>
<div class="control-group" data-bind="visible: allowLanguagesOnSettings"> <div class="control-group" data-bind="visible: allowLanguagesOnSettings">
<label class="control-label" data-i18n="SETTINGS_GENERAL/LABEL_LANGUAGE"></label> <label data-i18n="SETTINGS_GENERAL/LABEL_LANGUAGE"></label>
<div class="controls"> <div>
<span class="select" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage"></span> <span class="select" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage"></span>
<span data-bind="saveTrigger: languageTrigger"></span> <span data-bind="saveTrigger: languageTrigger"></span>
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SETTINGS_GENERAL/LABEL_LAYOUT"></label> <label data-i18n="SETTINGS_GENERAL/LABEL_LAYOUT"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
options: layoutTypes, options: layoutTypes,
@ -27,8 +25,8 @@
}"></div> }"></div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SETTINGS_GENERAL/LABEL_EDITOR"></label> <label data-i18n="SETTINGS_GENERAL/LABEL_EDITOR"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
options: editorDefaultTypes, options: editorDefaultTypes,
@ -40,16 +38,16 @@
}"></div> }"></div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SETTINGS_GENERAL/LABEL_MESSAGE_PER_PAGE"></label> <label data-i18n="SETTINGS_GENERAL/LABEL_MESSAGE_PER_PAGE"></label>
<div class="controls"> <div>
<input type="number" min="10" max="50" step="1" class="span1" data-bind="textInput: messagesPerPage"/> <input type="number" min="10" max="50" step="1" class="span1" data-bind="textInput: messagesPerPage"/>
&nbsp; &nbsp;
<span data-bind="saveTrigger: mppTrigger"></span> <span data-bind="saveTrigger: mppTrigger"></span>
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SETTINGS_GENERAL/LABEL_MARK_MESSAGE_READ_AFTER"></label> <label data-i18n="SETTINGS_GENERAL/LABEL_MARK_MESSAGE_READ_AFTER"></label>
<div class="controls"> <div>
<input type="number" min="0" step="1" class="span1" data-bind="textInput: messageReadDelay"/> <input type="number" min="0" step="1" class="span1" data-bind="textInput: messageReadDelay"/>
&nbsp; &nbsp;
<span data-i18n="SETTINGS_GENERAL/SECONDS"></label> <span data-i18n="SETTINGS_GENERAL/SECONDS"></label>
@ -57,7 +55,7 @@
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
@ -99,7 +97,7 @@
<div class="legend" data-i18n="SETTINGS_GENERAL/LABEL_NOTIFICATIONS"></div> <div class="legend" data-i18n="SETTINGS_GENERAL/LABEL_NOTIFICATIONS"></div>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div>
<div> <div>
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',

View file

@ -13,7 +13,7 @@
<br /> <br />
<br /> <br />
<div class="control-group"> <div class="control-group">
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'SETTINGS_OPEN_PGP/LABEL_ALLOW_DRAFT_AUTOSAVE', label: 'SETTINGS_OPEN_PGP/LABEL_ALLOW_DRAFT_AUTOSAVE',

View file

@ -1,8 +1,8 @@
<div class="form-horizontal" data-bind="visible: capaAutoLogout"> <div class="form-horizontal" data-bind="visible: capaAutoLogout">
<div class="legend" data-i18n="SETTINGS_SECURITY/LEGEND_SECURITY"></div> <div class="legend" data-i18n="SETTINGS_SECURITY/LEGEND_SECURITY"></div>
<div class="control-group"> <div class="control-group">
<label class="control-label" data-i18n="SETTINGS_SECURITY/LABEL_AUTOLOGOUT"></label> <label data-i18n="SETTINGS_SECURITY/LABEL_AUTOLOGOUT"></label>
<div class="controls" data-bind="component: { <div data-bind="component: {
name: 'Select', name: 'Select',
params: { params: {
inline: true, inline: true,

View file

@ -15,6 +15,7 @@
border-radius: 4px; border-radius: 4px;
color: @warningText; color: @warningText;
max-width: 800px; max-width: 800px;
min-height: @baseLineHeight;
} }
// Adjust close link position // Adjust close link position

View file

@ -9,22 +9,10 @@
font-weight: bold; font-weight: bold;
line-height: @baseLineHeight; line-height: @baseLineHeight;
color: inherit; color: inherit;
text-shadow: 0 1px 0 rgba(255,255,255,1);
opacity: 0.5;
&:hover {
text-decoration: none;
cursor: pointer; cursor: pointer;
opacity: 0.8; text-decoration: none;
text-shadow: 0 1px 0 rgba(255,255,255,1);
&:not(:hover) {
opacity: 0.5;
} }
} }
// Additional properties for button version
// iOS requires the button element instead of an anchor tag.
// If you want the anchor version, it requires `href="#"`.
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}

View file

@ -49,24 +49,13 @@ input {
border-radius: @inputBorderRadius; border-radius: @inputBorderRadius;
} }
// Reset appearance properties for textual inputs and textarea
// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
input,
textarea {
width: 210px;
}
// Reset height since textareas have rows
textarea {
height: auto;
resize: none;
}
// Everything else
textarea, textarea,
input { input {
background-color: @inputBackground; background-color: @inputBackground;
border: 1px solid @inputBorder; border: 1px solid @inputBorder;
box-shadow: inset 0 1px 1px rgba(0,0,0,.075); box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
transition: border linear .2s, box-shadow linear .2s; transition: border linear .2s, box-shadow linear .2s;
width: 210px;
// Focus state // Focus state
&:focus { &:focus {
@ -188,18 +177,19 @@ input[type="checkbox"][readonly] {
// Increase spacing between groups // Increase spacing between groups
.control-group { .control-group {
margin-bottom: @baseLineHeight; margin-bottom: @baseLineHeight;
}
// Float the labels left > label {
.control-label {
display: inline-block; display: inline-block;
width: 140px;
padding-top: 5px; padding-top: 5px;
text-align: right; text-align: right;
width: 140px;
} }
// Move over all input controls and content // Move over all input controls and content
.controls { > *:not(label) {
display: inline-block; display: inline-block;
margin-left: 20px; margin-left: 20px;
vertical-align: top; vertical-align: top;
} }
}
} }