More HTML cleanups

This commit is contained in:
djmaze 2021-05-01 10:02:40 +02:00
parent 109c6b6ab5
commit a7ae087f18
23 changed files with 609 additions and 659 deletions

View file

@ -18,31 +18,31 @@
right: 0;
overflow: hidden;
}
}
.b-settings-menu {
nav {
a {
background-color: transparent;
color: var(--settings-menu-color, #333);
cursor: pointer;
display: block;
font-size: 18px;
height: 30px;
line-height: 29px;
overflow: hidden;
padding: 4px 10px;
text-decoration: none;
}
a {
background-color: transparent;
color: var(--settings-menu-color, #333);
cursor: pointer;
display: block;
font-size: 18px;
height: 30px;
line-height: 29px;
overflow: hidden;
padding: 4px 10px;
text-decoration: none;
}
a:focus, a:hover {
background-color: var(--settings-menu-hover-bg-color, #333);
color: var(--settings-menu-hover-color, #eee);
}
a:focus, a:hover {
background-color: var(--settings-menu-hover-bg-color, #333);
color: var(--settings-menu-hover-color, #eee);
}
a.selected {
background-color: var(--settings-menu-selected-bg-color, #333);
color: var(--settings-menu-selected-color, #eee);
a.selected {
background-color: var(--settings-menu-selected-bg-color, #333);
color: var(--settings-menu-selected-color, #eee);
}
}
}
@ -54,7 +54,7 @@
right: 0;
left: 0;
height: 34px;
padding: 8px 5px;
padding: 8px 0;
color: #fff;
}

View file

@ -21,7 +21,7 @@ export class MenuSettingsUserView extends AbstractViewLeft {
onBuild(dom) {
dom.addEventListener('click', event =>
ThemeStore.isMobile()
&& event.target.closestWithin('.b-settings-menu a', dom)
&& event.target.closestWithin('.b-settins-left nav a', dom)
&& leftPanelDisabled(true)
);
}

View file

@ -1,48 +1,46 @@
<div class="modal fade b-account-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<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_UPDATE_ACCOUNT"></span>
</h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
<span data-bind="text: submitError"></span>
<div data-bind="visible: submitErrorAdditional">
<br />
<span data-bind="text: submitErrorAdditional"></span>
</div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<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_UPDATE_ACCOUNT"></span>
</h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
<span data-bind="text: submitError"></span>
<div data-bind="visible: submitErrorAdditional">
<br />
<span data-bind="text: submitErrorAdditional"></span>
</div>
<br />
<div class="control-group" data-bind="css: {'error': emailError}">
<label class="control-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>
<input type="email" class="input-xlarge"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="visible: isNew, textInput: email, onEnter: addAccountCommand" />
</div>
</div>
<br />
<div class="control-group" data-bind="css: {'error': emailError}">
<label class="control-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>
<input type="email" class="input-xlarge"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="visible: isNew, textInput: email, onEnter: addAccountCommand" />
</div>
<div class="control-group" data-bind="css: {'error': passwordError}">
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label>
<div class="controls">
<input type="password" class="inputPassword input-xlarge" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: password, onEnter: addAccountCommand" />
</div>
</div>
<div class="control-group" data-bind="css: {'error': passwordError}">
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label>
<div class="controls">
<input type="password" class="inputPassword input-xlarge" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: password, onEnter: addAccountCommand" />
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonAddAccount" data-bind="command: addAccountCommand">
<i data-bind="visible: isNew, css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_ADD_ACCOUNT"></span>
<i data-bind="visible: !isNew(), css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: !isNew()" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_UPDATE_ACCOUNT"></span>
</a>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonAddAccount" data-bind="command: addAccountCommand">
<i data-bind="visible: isNew, css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_ADD_ACCOUNT"></span>
<i data-bind="visible: !isNew(), css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: !isNew()" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_UPDATE_ACCOUNT"></span>
</a>
</div>
</div>

View file

@ -1,23 +1,21 @@
<div class="modal fade b-open-pgp-key-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/TITLE_IMPORT_OPEN_PGP_KEY"></h3>
</div>
<div class="modal-body">
<div class="alert" data-bind="visible: keyError() && keyErrorMessage(), text: keyErrorMessage"></div>
<div class="form-horizontal">
<div class="control-group" data-bind="css: {'error': keyError}">
<textarea class="inputKey input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: key"></textarea>
</div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/TITLE_IMPORT_OPEN_PGP_KEY"></h3>
</div>
<div class="modal-body">
<div class="alert" data-bind="visible: keyError() && keyErrorMessage(), text: keyErrorMessage"></div>
<div class="form-horizontal">
<div class="control-group" data-bind="css: {'error': keyError}">
<textarea class="inputKey input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: key"></textarea>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonAddAccount" data-bind="command: addOpenPgpKeyCommand">
<i class="icon-list-add"></i>
&nbsp;&nbsp;
<span data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/BUTTON_IMPORT_OPEN_PGP_KEY"></span>
</a>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonAddAccount" data-bind="command: addOpenPgpKeyCommand">
<i class="icon-list-add"></i>
&nbsp;&nbsp;
<span data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/BUTTON_IMPORT_OPEN_PGP_KEY"></span>
</a>
</div>
</div>

View file

@ -1,94 +1,92 @@
<div class="modal fade b-compose-open-pgp-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_COMPOSE_OPEN_PGP/TITLE_COMPOSE_OPEN_PGP"></h3>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_COMPOSE_OPEN_PGP/TITLE_COMPOSE_OPEN_PGP"></h3>
</div>
<div class="modal-body">
<div class="alert" data-bind="visible: '' !== notification()">
<span data-bind="text: notification"></span>
</div>
<div class="modal-body">
<div class="alert" data-bind="visible: '' !== notification()">
<span data-bind="text: notification"></span>
<div>
<div>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'POPUPS_COMPOSE_OPEN_PGP/LABEL_SIGN',
value: sign
}
}, click: updateCommand"></div>
<div class="key-list" data-bind="visible: sign">
<div class="key-list-wrp empty" data-bind="visible: !signKey()">
No private key found
</div>
<div class="key-list-wrp" data-bind="visible: signKey()">
<div class="key-list__item">
<div class="key-list__item-hash">
(<span data-bind="text: signKey() ? signKey().hash : ''"></span>)
</div>
<div class="key-list__item-names">
<!-- ko if: signKey() -->
<!-- ko foreach: signKey().users -->
<div class="key-list__item-name" data-bind="text: $data"></div>
<!-- /ko -->
<!-- /ko -->
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'POPUPS_COMPOSE_OPEN_PGP/LABEL_SIGN',
value: sign
}
}, click: updateCommand"></div>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'POPUPS_COMPOSE_OPEN_PGP/LABEL_ENCRYPT',
value: encrypt
}
}"></div>
<div class="key-list" data-bind="visible: sign">
<div class="key-list-wrp empty" data-bind="visible: !signKey()">
No private key found
</div>
<div class="key-list-wrp" data-bind="visible: signKey()">
<div class="key-list__item">
<div class="key-list__item-hash">
(<span data-bind="text: signKey() ? signKey().hash : ''"></span>)
</div>
<div class="key-list__item-names">
<!-- ko if: signKey() -->
<!-- ko foreach: signKey().users -->
<div class="key-list__item-name" data-bind="text: $data"></div>
<!-- /ko -->
<!-- /ko -->
</div>
<div class="key-list" data-bind="visible: encrypt">
<div class="key-list-wrp empty" data-bind="visible: encryptKeys().length === 0">
No public keys selected
</div>
<div class="key-list-wrp" data-bind="visible: encryptKeys().length > 0, foreach: encryptKeys">
<div class="key-list__item">
<div class="key-list__item-hash" data-bind="visible: !empty">
(<span data-bind="text: hash"></span>)
</div>
<div class="key-list__item-names" data-bind="css: {'empty': empty}, foreach: users">
<div class="key-list__item-name" data-bind="text: $data"></div>
</div>
<div class="key-list__item-error" data-bind="visible: empty">
(Public key not found)
</div>
<div class="key-list__item-delete fontastic" data-bind="click: removable() ? $parent.deletePublickKey : null, css: {'disabled': !removable()}">🗑</div>
</div>
</div>
</div>
<div>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'POPUPS_COMPOSE_OPEN_PGP/LABEL_ENCRYPT',
value: encrypt
}
}"></div>
<div class="key-list" data-bind="visible: encrypt">
<div class="key-list-wrp empty" data-bind="visible: encryptKeys().length === 0">
No public keys selected
</div>
<div class="key-list-wrp" data-bind="visible: encryptKeys().length > 0, foreach: encryptKeys">
<div class="key-list__item">
<div class="key-list__item-hash" data-bind="visible: !empty">
(<span data-bind="text: hash"></span>)
</div>
<div class="key-list__item-names" data-bind="css: {'empty': empty}, foreach: users">
<div class="key-list__item-name" data-bind="text: $data"></div>
</div>
<div class="key-list__item-error" data-bind="visible: empty">
(Public key not found)
</div>
<div class="key-list__item-delete fontastic" data-bind="click: removable() ? $parent.deletePublickKey : null, css: {'disabled': !removable()}">🗑</div>
</div>
</div>
</div>
</div>
</div>
<div class="key-actions">
<div data-bind="visible: sign()">
<input type="password" class="inputPassword input-block-level"
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/PASSWORD"
data-bind="textInput: password, onEnter: doCommand" />
<select class="input-block-level" data-bind="visible: 0 < privateKeysOptions().length, options: privateKeysOptions, value: selectedPrivateKey,
optionsCaption: privateKeysOptionsCaption, optionsText: 'name', optionsValue: 'id'"></select>
</div>
<select class="input-block-level" data-bind="visible: encrypt() && 0 < publicKeysOptions().length, options: publicKeysOptions, value: selectedPublicKey,
optionsCaption: publicKeysOptionsCaption, optionsText: 'name', optionsValue: 'id'"></select>
</div>
</div>
<div class="modal-footer">
<button class="btn buttonDo" data-bind="command: doCommand,
enable: (sign() || encrypt()) && (!encrypt() || encrypt() && encryptKeys().length > 0)">
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i>
<span data-bind="visible: sign() && !encrypt()" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_SIGN"></span>
<span data-bind="visible: !sign() && encrypt()" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_ENCRYPT"></span>
<span data-bind="visible: (sign() && encrypt()) || (!sign() && !encrypt())" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_SIGN_AND_ENCRYPT"></span>
</button>
<div class="key-actions">
<div data-bind="visible: sign()">
<input type="password" class="inputPassword input-block-level"
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/PASSWORD"
data-bind="textInput: password, onEnter: doCommand" />
<select class="input-block-level" data-bind="visible: 0 < privateKeysOptions().length, options: privateKeysOptions, value: selectedPrivateKey,
optionsCaption: privateKeysOptionsCaption, optionsText: 'name', optionsValue: 'id'"></select>
</div>
<select class="input-block-level" data-bind="visible: encrypt() && 0 < publicKeysOptions().length, options: publicKeysOptions, value: selectedPublicKey,
optionsCaption: publicKeysOptionsCaption, optionsText: 'name', optionsValue: 'id'"></select>
</div>
</div>
<div class="modal-footer">
<button class="btn buttonDo" data-bind="command: doCommand,
enable: (sign() || encrypt()) && (!encrypt() || encrypt() && encryptKeys().length > 0)">
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i>
<span data-bind="visible: sign() && !encrypt()" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_SIGN"></span>
<span data-bind="visible: !sign() && encrypt()" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_ENCRYPT"></span>
<span data-bind="visible: (sign() && encrypt()) || (!sign() && !encrypt())" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_SIGN_AND_ENCRYPT"></span>
</button>
</div>
</div>

View file

@ -1,59 +1,57 @@
<div class="modal fade b-filter-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3>
<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>
</h3>
</div>
<div class="modal-body">
<div class="filter" data-bind="with: filter, i18nInit: filter">
<div data-bind="i18nInit: true">
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3>
<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>
</h3>
</div>
<div class="modal-body">
<div class="filter" data-bind="with: filter, i18nInit: filter">
<div data-bind="i18nInit: true">
<div class="control-group" data-bind="css: {'error': nameError}">
<div class="controls">
<input type="text" class="span5"
data-bind="value: name, hasfocus: nameFocused"
autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/NAME"
/>
</div>
<div class="control-group" data-bind="css: {'error': nameError}">
<div class="controls">
<input type="text" class="span5"
data-bind="value: name, hasfocus: nameFocused"
autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/NAME"
/>
</div>
<div class="legend" data-i18n="POPUPS_FILTER/LEGEND_CONDITIONS"></div>
<div>
<div data-bind="visible: 1 < conditions().length">
<select class="span4" data-bind="value: conditionsType">
<option value="Any"
data-i18n="POPUPS_FILTER/SELECT_MATCH_ANY"></option>
<option value="All"
data-i18n="POPUPS_FILTER/SELECT_MATCH_ALL"></option>
</select>
</div>
<div data-bind="visible: 0 < conditions().length, foreach: conditions">
<div data-bind="template: {'name': template(), 'data': $data}"></div>
</div>
<div data-bind="visible: 0 === conditions().length"
data-i18n="POPUPS_FILTER/ALL_INCOMING_MESSAGES_DESC"></div>
<br />
<a class="btn" data-bind="click: addCondition, i18nInit: true">
<i class="fontastic"></i>
<span data-i18n="POPUPS_FILTER/BUTTON_ADD_CONDITION"></span>
</a>
</div>
<br />
<div class="legend" data-i18n="POPUPS_FILTER/LEGEND_ACTIONS"></div>
<select class="span3" data-bind="options: $root.actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select>
<div data-bind="template: {'name': actionTemplate()}, i18nUpdate: actionTemplate"></div>
</div>
<div class="legend" data-i18n="POPUPS_FILTER/LEGEND_CONDITIONS"></div>
<div>
<div data-bind="visible: 1 < conditions().length">
<select class="span4" data-bind="value: conditionsType">
<option value="Any"
data-i18n="POPUPS_FILTER/SELECT_MATCH_ANY"></option>
<option value="All"
data-i18n="POPUPS_FILTER/SELECT_MATCH_ALL"></option>
</select>
</div>
<div data-bind="visible: 0 < conditions().length, foreach: conditions">
<div data-bind="template: {'name': template(), 'data': $data}"></div>
</div>
<div data-bind="visible: 0 === conditions().length"
data-i18n="POPUPS_FILTER/ALL_INCOMING_MESSAGES_DESC"></div>
<br />
<a class="btn" data-bind="click: addCondition, i18nInit: true">
<i class="fontastic"></i>
<span data-i18n="POPUPS_FILTER/BUTTON_ADD_CONDITION"></span>
</a>
</div>
<br />
<div class="legend" data-i18n="POPUPS_FILTER/LEGEND_ACTIONS"></div>
<select class="span3" data-bind="options: $root.actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select>
<div data-bind="template: {'name': actionTemplate()}, i18nUpdate: actionTemplate"></div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonSave" data-bind="command: saveFilterCommand">
<i class="fontastic"></i>
<span data-i18n="GLOBAL/DONE"></span>
</a>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonSave" data-bind="command: saveFilterCommand">
<i class="fontastic"></i>
<span data-i18n="GLOBAL/DONE"></span>
</a>
</div>
</div>

View file

@ -1,29 +1,27 @@
<div class="modal fade b-folder-clear-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3>
<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>
</h3>
</div>
<div class="modal-body">
<div>
<i class="fontastic" style="color:red"></i>
&nbsp;&nbsp;
<strong data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></strong>
<br />
<br />
<span data-bind="html: dangerDescHtml"></span>
<br />
<span data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_2"></span>
</div>
</div>
<div class="modal-footer">
<a class="btn btn-danger buttonClear" data-bind="command: clearCommand">
<i class="fontastic" data-bind="css: {'icon-spinner white': clearingProcess()}">🔥</i>
<span data-i18n="GLOBAL/CLEAR"></span>
</a>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3>
<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>
</h3>
</div>
<div class="modal-body">
<div>
<i class="fontastic" style="color:red"></i>
&nbsp;&nbsp;
<strong data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></strong>
<br />
<br />
<span data-bind="html: dangerDescHtml"></span>
<br />
<span data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_2"></span>
</div>
</div>
<div class="modal-footer">
<a class="btn btn-danger buttonClear" data-bind="command: clearCommand">
<i class="fontastic" data-bind="css: {'icon-spinner white': clearingProcess()}">🔥</i>
<span data-i18n="GLOBAL/CLEAR"></span>
</a>
</div>
</div>

View file

@ -1,34 +1,32 @@
<div class="modal fade b-folder-create-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<br />
<div class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="uiInput inputName"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: folderName, onEnter: createFolderCommand" />
</div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<br />
<div class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="uiInput inputName"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: folderName, onEnter: createFolderCommand" />
</div>
<div class="control-group">
<label class="control-label" data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label>
<div class="controls">
<select data-bind="options: parentFolderSelectList, value: selectedParentValue,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select>
</div>
</div>
<div class="control-group">
<label class="control-label" data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label>
<div class="controls">
<select data-bind="options: parentFolderSelectList, value: selectedParentValue,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select>
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonCreate" data-bind="command: createFolderCommand">
<i class="icon-folder-add"></i>
<span data-i18n="POPUPS_CREATE_FOLDER/BUTTON_CREATE"></span>
</a>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonCreate" data-bind="command: createFolderCommand">
<i class="icon-folder-add"></i>
<span data-i18n="POPUPS_CREATE_FOLDER/BUTTON_CREATE"></span>
</a>
</div>
</div>

View file

@ -1,96 +1,94 @@
<div class="modal fade b-identity-content" data-bind="modal: modalVisibility">
<div>
<div class="modal-header g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3>
<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>
</h3>
</div>
<div class="modal-body">
<div class="form-horizontal g-ui-user-select-none">
<div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
<span data-bind="text: submitError"></span>
</div>
<br />
<div class="control-group" data-bind="visible: !owner(), css: {'error': emailHasError}">
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label>
<div class="controls">
<input type="email" class="input-xlarge" autofocus=""
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="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 class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="inputName input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: name, onEnter: addOrEditIdentityCommand" />
</div>
</div>
<div class="control-group" data-bind="visible: showReplyTo, css: {'error': replyToHasError}">
<label class="control-label" data-i18n="GLOBAL/REPLY_TO"></label>
<div class="controls">
<input type="text" class="inputReplyTo input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: replyTo, onEnter: addOrEditIdentityCommand, hasfocus: replyToFocused" />
</div>
</div>
<div class="control-group" data-bind="visible: showBcc, css: {'error': bccHasError}">
<label class="control-label" data-i18n="GLOBAL/BCC"></label>
<div class="controls">
<input type="text" class="inputBcc input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: bcc, onEnter: addOrEditIdentityCommand, hasfocus: bccFocused" />
</div>
</div>
<div class="control-group" data-bind="visible: !showReplyTo() || !showBcc()">
<div class="controls">
<span data-bind="visible: !showReplyTo()">
<span class="g-ui-link" data-i18n="GLOBAL/REPLY_TO"
data-bind="click: function () { showReplyTo(true); }"></span>
&nbsp;&nbsp;
</span>
<span data-bind="visible: !showBcc()">
<span class="g-ui-link" data-i18n="GLOBAL/BCC"
data-bind="click: function () { showBcc(true); }"></span>
</span>
</div>
<div class="modal-header g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3>
<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>
</h3>
</div>
<div class="modal-body">
<div class="form-horizontal g-ui-user-select-none">
<div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
<span data-bind="text: submitError"></span>
</div>
<br />
<div class="control-group" data-bind="visible: !owner(), css: {'error': emailHasError}">
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label>
<div class="controls">
<input type="email" class="input-xlarge" autofocus=""
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: email, onEnter: addOrEditIdentityCommand, hasfocus: emailFocused" />
</div>
</div>
<hr />
<div class="form-horizontal">
<div class="control-group g-ui-user-select-none">
<div class="controls">
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'POPUPS_IDENTITY/LABEL_SIGNATURE_INSERT_BEFORE',
value: signatureInsertBefore
}
}"></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 class="control-group">
<div class="e-signature-place" data-bind="editor: signature"></div>
</div>
<div class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="inputName input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: name, onEnter: addOrEditIdentityCommand" />
</div>
</div>
<div class="control-group" data-bind="visible: showReplyTo, css: {'error': replyToHasError}">
<label class="control-label" data-i18n="GLOBAL/REPLY_TO"></label>
<div class="controls">
<input type="text" class="inputReplyTo input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: replyTo, onEnter: addOrEditIdentityCommand, hasfocus: replyToFocused" />
</div>
</div>
<div class="control-group" data-bind="visible: showBcc, css: {'error': bccHasError}">
<label class="control-label" data-i18n="GLOBAL/BCC"></label>
<div class="controls">
<input type="text" class="inputBcc input-xlarge"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: bcc, onEnter: addOrEditIdentityCommand, hasfocus: bccFocused" />
</div>
</div>
<div class="control-group" data-bind="visible: !showReplyTo() || !showBcc()">
<div class="controls">
<span data-bind="visible: !showReplyTo()">
<span class="g-ui-link" data-i18n="GLOBAL/REPLY_TO"
data-bind="click: function () { showReplyTo(true); }"></span>
&nbsp;&nbsp;
</span>
<span data-bind="visible: !showBcc()">
<span class="g-ui-link" data-i18n="GLOBAL/BCC"
data-bind="click: function () { showBcc(true); }"></span>
</span>
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonAddIdentity" data-bind="command: addOrEditIdentityCommand">
<i data-bind="visible: !edit(), css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: !edit()" data-i18n="POPUPS_IDENTITY/BUTTON_ADD_IDENTITY"></span>
<i data-bind="visible: edit, css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: edit" data-i18n="POPUPS_IDENTITY/BUTTON_UPDATE_IDENTITY"></span>
</a>
<hr />
<div class="form-horizontal">
<div class="control-group g-ui-user-select-none">
<div class="controls">
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'POPUPS_IDENTITY/LABEL_SIGNATURE_INSERT_BEFORE',
value: signatureInsertBefore
}
}"></div>
</div>
</div>
<div class="control-group">
<div class="e-signature-place" data-bind="editor: signature"></div>
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonAddIdentity" data-bind="command: addOrEditIdentityCommand">
<i data-bind="visible: !edit(), css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: !edit()" data-i18n="POPUPS_IDENTITY/BUTTON_ADD_IDENTITY"></span>
<i data-bind="visible: edit, css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: edit" data-i18n="POPUPS_IDENTITY/BUTTON_UPDATE_IDENTITY"></span>
</a>
</div>
</div>

View file

@ -1,48 +1,46 @@
<div class="modal fade b-message-open-pgp-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_MESSAGE_OPEN_PGP/TITLE_MESSAGE_OPEN_PGP"></h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="alert" data-bind="visible: '' !== notification()">
<span data-bind="text: notification"></span>
</div>
<br />
<div class="control-group">
<label class="control-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__item">
<i class="key-list__item__radio fontastic"></i>
<div class="key-list__item__names">
<span data-bind="foreach: users">
<div>
<span class="key-list__item__name">
<span data-bind="text: $data"></span>
&nbsp;
<span>[<span data-bind="text: $parent.id"></span>]</span>
</span>
</div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_MESSAGE_OPEN_PGP/TITLE_MESSAGE_OPEN_PGP"></h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="alert" data-bind="visible: '' !== notification()">
<span data-bind="text: notification"></span>
</div>
<br />
<div class="control-group">
<label class="control-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__item">
<i class="key-list__item__radio fontastic"></i>
<div class="key-list__item__names">
<span data-bind="foreach: users">
<div>
<span class="key-list__item__name">
<span data-bind="text: $data"></span>
&nbsp;
<span>[<span data-bind="text: $parent.id"></span>]</span>
</span>
</div>
</div>
</span>
</div>
</div>
</div>
<div class="control-group">
<label class="control-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"
data-bind="textInput: password, onEnter: doCommand" />
</div>
</div>
<div class="control-group">
<label class="control-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"
data-bind="textInput: password, onEnter: doCommand" />
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn buttonDo" data-bind="command: doCommand">
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i>
<span data-i18n="POPUPS_MESSAGE_OPEN_PGP/BUTTON_DECRYPT"></span>
</button>
</div>
</div>
<div class="modal-footer">
<button class="btn buttonDo" data-bind="command: doCommand">
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i>
<span data-i18n="POPUPS_MESSAGE_OPEN_PGP/BUTTON_DECRYPT"></span>
</button>
</div>
</div>

View file

@ -1,53 +1,51 @@
<div class="modal fade b-open-pgp-key-generate-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/TITLE_GENERATE_OPEN_PGP_KEYS"></h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
<span data-bind="text: submitError"></span>
<div class="modal-header">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/TITLE_GENERATE_OPEN_PGP_KEYS"></h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
<span data-bind="text: submitError"></span>
</div>
<br />
<div class="control-group" data-bind="css: {'error': emailError}">
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label>
<div class="controls">
<input type="email" class="input-large"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: email" />
</div>
<br />
<div class="control-group" data-bind="css: {'error': emailError}">
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label>
<div class="controls">
<input type="email" class="input-large"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: email" />
</div>
</div>
<div class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="inputName input-large"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: name" />
</div>
<div class="control-group">
<label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="inputName input-large"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: name" />
</div>
</div>
<div class="control-group">
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label>
<div class="controls">
<input type="password" class="inputPassword input-large"
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: password" />
</div>
<div class="control-group">
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label>
<div class="controls">
<input type="password" class="inputPassword input-large"
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: password" />
</div>
</div>
<div class="control-group">
<label class="control-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>
</div>
</div>
<div class="control-group">
<label class="control-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>
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonHenerateOpenPgpKey" data-bind="command: generateOpenPgpKeyCommand">
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i>
<span data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/BUTTON_GENERATE_OPEN_PGP_KEYS"></span>
</a>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonHenerateOpenPgpKey" data-bind="command: generateOpenPgpKeyCommand">
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i>
<span data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/BUTTON_GENERATE_OPEN_PGP_KEYS"></span>
</a>
</div>
</div>

View file

@ -1,98 +1,96 @@
<div class="modal fade b-filter-script g-ui-user-select-none" data-bind="modal: modalVisibility">
<div data-bind="with: script">
<div class="modal-header">
<button type="button" class="close" data-bind="command: $root.cancelCommand">×</button>
<h3>
<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>
</h3>
</div>
<div class="modal-body">
<div class="modal fade b-filter-script g-ui-user-select-none" data-bind="modal: modalVisibility, with: script">
<div class="modal-header">
<button type="button" class="close" data-bind="command: $root.cancelCommand">×</button>
<h3>
<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>
</h3>
</div>
<div class="modal-body">
<div class="control-group" data-bind="css: {'error': nameError}">
<div class="controls">
<input type="text" class="span5"
data-bind="value: name, hasfocus: !exists(), visible: !exists()"
autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/NAME"
/>
<span data-bind="text: name, visible: exists"></span>
</div>
</div>
<div data-bind="visible: hasChanges">
<div class="span8 width100-on-mobile">
<div class="alert g-ui-user-select-none">
<i class="fontastic"></i>
<span data-i18n="POPUPS_SIEVE_SCRIPT/CHANGES_NEED_TO_BE_SAVED_DESC"></span>
</div>
</div>
</div>
<div data-bind="visible: $root.saveError">
<div class="span8 width100-on-mobile">
<div class="alert alert-error g-ui-user-select-none">
<i class="fontastic"></i>
<span data-bind="text: $root.saveErrorText"></span>
</div>
</div>
</div>
<div class="control-group" data-bind="visible: $root.rawActive">
<div class="controls">
<pre>
<b data-i18n="POPUPS_SIEVE_SCRIPT/CAPABILITY_LABEL"></b>:
<span data-bind="text: $root.sieveCapabilities"></span>
</pre>
<textarea style="width:100%" data-bind="value: body, valueUpdate: 'input'"></textarea>
</div>
</div>
<div data-bind="visible: !$root.rawActive()">
<table class="table table-hover list-table filters-list g-ui-user-select-none"
data-bind="i18nUpdate: filters">
<colgroup>
<col style="width: 30px" />
<col style="width: 16px" />
<col />
<col style="width: 140px" />
<col style="width: 1%" />
</colgroup>
<tbody data-bind="foreach: filters">
<tr class="filter-item" draggable="true" data-bind="sortableItem: { list: $parent.filters }">
<td>
<span class="disabled-filter fontastic" data-bind="click: function () { $parent.hasChanges(true); enabled(!enabled()); }, text: enabled() ? '☑' : '☐'"></span>
</td>
<td class="drag-wrapper">
<span class="fontastic drag-handle"></span>
</td>
<td class="e-action">
<span class="filter-name" data-bind="text: name()"></span>
&nbsp;&nbsp;
<span class="filter-sub-name" data-bind="text: nameSub()"></span>
</td>
<td>
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oFilter) { $root.deleteFilter(oFilter); }"
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td>
<td>
<span class="delete-filter fontastic" data-bind="visible: !deleteAccess() && canBeDeleted(), click: function (oFilter) { $root.filterForDeletion(oFilter); }">🗑</span>
</td>
</tr>
</tbody>
</table>
<a class="btn" data-bind="click: $root.addFilter">
<i class="fontastic"></i>
<span data-i18n="POPUPS_SIEVE_SCRIPT/BUTTON_ADD_FILTER"></span>
</a>
<div class="control-group" data-bind="css: {'error': nameError}">
<div class="controls">
<input type="text" class="span5"
data-bind="value: name, hasfocus: !exists(), visible: !exists()"
autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/NAME"
/>
<span data-bind="text: name, visible: exists"></span>
</div>
</div>
<div class="modal-footer">
<a class="btn" data-bind="visible: $root.allowToggle, click: function() { $root.toggleFiltersRaw(); }, css: {'active': $root.rawActive }" data-i18n="[title]POPUPS_SIEVE_SCRIPT/BUTTON_RAW_SCRIPT">
<i class="icon-file-code"></i>
</a>
<a class="btn buttonSave" data-bind="visible: hasChanges, click: function() { $root.saveScriptCommand(); }, css: {'btn-danger': $root.saveError}">
<i class="fontastic" data-bind="css: {'icon-spinner': $root.saving}">💾</i>
<span data-i18n="GLOBAL/SAVE"></span>
<div data-bind="visible: hasChanges">
<div class="span8 width100-on-mobile">
<div class="alert g-ui-user-select-none">
<i class="fontastic"></i>
<span data-i18n="POPUPS_SIEVE_SCRIPT/CHANGES_NEED_TO_BE_SAVED_DESC"></span>
</div>
</div>
</div>
<div data-bind="visible: $root.saveError">
<div class="span8 width100-on-mobile">
<div class="alert alert-error g-ui-user-select-none">
<i class="fontastic"></i>
<span data-bind="text: $root.saveErrorText"></span>
</div>
</div>
</div>
<div class="control-group" data-bind="visible: $root.rawActive">
<div class="controls">
<pre>
<b data-i18n="POPUPS_SIEVE_SCRIPT/CAPABILITY_LABEL"></b>:
<span data-bind="text: $root.sieveCapabilities"></span>
</pre>
<textarea style="width:100%" data-bind="value: body, valueUpdate: 'input'"></textarea>
</div>
</div>
<div data-bind="visible: !$root.rawActive()">
<table class="table table-hover list-table filters-list g-ui-user-select-none"
data-bind="i18nUpdate: filters">
<colgroup>
<col style="width: 30px" />
<col style="width: 16px" />
<col />
<col style="width: 140px" />
<col style="width: 1%" />
</colgroup>
<tbody data-bind="foreach: filters">
<tr class="filter-item" draggable="true" data-bind="sortableItem: { list: $parent.filters }">
<td>
<span class="disabled-filter fontastic" data-bind="click: function () { $parent.hasChanges(true); enabled(!enabled()); }, text: enabled() ? '☑' : '☐'"></span>
</td>
<td class="drag-wrapper">
<span class="fontastic drag-handle"></span>
</td>
<td class="e-action">
<span class="filter-name" data-bind="text: name()"></span>
&nbsp;&nbsp;
<span class="filter-sub-name" data-bind="text: nameSub()"></span>
</td>
<td>
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess()}, click: function(oFilter) { $root.deleteFilter(oFilter); }"
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td>
<td>
<span class="delete-filter fontastic" data-bind="visible: !deleteAccess() && canBeDeleted(), click: function (oFilter) { $root.filterForDeletion(oFilter); }">🗑</span>
</td>
</tr>
</tbody>
</table>
<a class="btn" data-bind="click: $root.addFilter">
<i class="fontastic"></i>
<span data-i18n="POPUPS_SIEVE_SCRIPT/BUTTON_ADD_FILTER"></span>
</a>
</div>
</div>
<div class="modal-footer">
<a class="btn" data-bind="visible: $root.allowToggle, click: function() { $root.toggleFiltersRaw(); }, css: {'active': $root.rawActive }" data-i18n="[title]POPUPS_SIEVE_SCRIPT/BUTTON_RAW_SCRIPT">
<i class="icon-file-code"></i>
</a>
<a class="btn buttonSave" data-bind="visible: hasChanges, click: function() { $root.saveScriptCommand(); }, css: {'btn-danger': $root.saveError}">
<i class="fontastic" data-bind="css: {'icon-spinner': $root.saving}">💾</i>
<span data-i18n="GLOBAL/SAVE"></span>
</a>
</div>
</div>

View file

@ -1,42 +1,40 @@
<div class="modal fade b-template-add-content" data-bind="modal: modalVisibility">
<div>
<div class="modal-header g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3>
<span data-bind="visible: '' === id()" data-i18n="POPUPS_ADD_TEMPLATE/TITLE_ADD_TEMPLATE"></span>
<span data-bind="visible: '' !== id()" data-i18n="POPUPS_ADD_TEMPLATE/TITLE_UPDATE_TEMPLATE"></span>
</h3>
</div>
<div class="modal-body">
<div class="form-horizontal g-ui-user-select-none">
<div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
<span data-bind="text: submitError"></span>
</div>
<br />
<div class="control-group" data-bind="css: {'error': nameError}">
<label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="inputName input-xlarge"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: name, onEnter: addTemplateCommand" />
</div>
</div>
<div class="modal-header g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3>
<span data-bind="visible: '' === id()" data-i18n="POPUPS_ADD_TEMPLATE/TITLE_ADD_TEMPLATE"></span>
<span data-bind="visible: '' !== id()" data-i18n="POPUPS_ADD_TEMPLATE/TITLE_UPDATE_TEMPLATE"></span>
</h3>
</div>
<div class="modal-body">
<div class="form-horizontal g-ui-user-select-none">
<div class="alert" data-bind="visible: '' !== submitError()">
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button>
<span data-bind="text: submitError"></span>
</div>
<hr />
<div class="form-horizontal">
<div class="control-group" data-bind="css: {'error': bodyError}">
<div class="e-template-place" data-bind="initDom: signatureDom"></div>
<br />
<div class="control-group" data-bind="css: {'error': nameError}">
<label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls">
<input type="text" class="inputName input-xlarge"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="textInput: name, onEnter: addTemplateCommand" />
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonAddAccount" data-bind="command: addTemplateCommand">
<i data-bind="visible: '' == id(), css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: '' == id()" data-i18n="POPUPS_ADD_TEMPLATE/BUTTON_ADD_TEMPLATE"></span>
<i data-bind="visible: '' !== id(), css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: '' !== id()" data-i18n="POPUPS_ADD_TEMPLATE/BUTTON_UPDATE_TEMPLATE"></span>
</a>
<hr />
<div class="form-horizontal">
<div class="control-group" data-bind="css: {'error': bodyError}">
<div class="e-template-place" data-bind="initDom: signatureDom"></div>
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonAddAccount" data-bind="command: addTemplateCommand">
<i data-bind="visible: '' == id(), css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: '' == id()" data-i18n="POPUPS_ADD_TEMPLATE/BUTTON_ADD_TEMPLATE"></span>
<i data-bind="visible: '' !== id(), css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<span data-bind="visible: '' !== id()" data-i18n="POPUPS_ADD_TEMPLATE/BUTTON_UPDATE_TEMPLATE"></span>
</a>
</div>
</div>

View file

@ -1,25 +1,23 @@
<div class="modal fade b-open-pgp-key-view-content" data-bind="modal: modalVisibility">
<div>
<div class="modal-header g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_VIEW_OPEN_PGP_KEY/TITLE_VIEW_OPEN_PGP_KEY"></h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="control-group">
<pre class="key-viewer" data-bind="initDom: keyDom, text: key"></pre>
</div>
<div class="modal-header g-ui-user-select-none">
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
<h3 data-i18n="POPUPS_VIEW_OPEN_PGP_KEY/TITLE_VIEW_OPEN_PGP_KEY"></h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="control-group">
<pre class="key-viewer" data-bind="initDom: keyDom, text: key"></pre>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonClose" data-bind="command: cancelCommand">
<i class="fontastic"></i>
<span data-i18n="GLOBAL/CLOSE"></span>
</a>
<a class="btn buttonClose" data-bind="click: selectKey">
<i class="fontastic">🔑</i>
<span data-i18n="POPUPS_VIEW_OPEN_PGP_KEY/BUTTON_SELECT"></span>
</a>
</div>
</div>
<div class="modal-footer">
<a class="btn buttonClose" data-bind="command: cancelCommand">
<i class="fontastic"></i>
<span data-i18n="GLOBAL/CLOSE"></span>
</a>
<a class="btn buttonClose" data-bind="click: selectKey">
<i class="fontastic">🔑</i>
<span data-i18n="POPUPS_VIEW_OPEN_PGP_KEY/BUTTON_SELECT"></span>
</a>
</div>
</div>

View file

@ -1,11 +1,9 @@
<div class="b-settings-accounts g-ui-user-select-none">
<div data-bind="visible: allowAdditionalAccount">
<div class="form-horizontal">
<div class="legend">
<span data-i18n="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span>
&nbsp;&nbsp;&nbsp;
<i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i>
</div>
<div class="legend">
<span data-i18n="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span>
&nbsp;&nbsp;&nbsp;
<i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i>
</div>
<a class="btn" data-bind="click: addNewAccount">
<i class="icon-user-add"></i>
@ -43,9 +41,7 @@
</div>
<div data-bind="visible: allowIdentities">
<br />
<div class="form-horizontal">
<div class="legend" data-i18n="SETTINGS_ACCOUNTS/LEGEND_IDENTITIES"></div>
</div>
<div class="legend" data-i18n="SETTINGS_ACCOUNTS/LEGEND_IDENTITIES"></div>
<a class="btn" data-bind="click: addNewIdentity">
<i class="icon-user-add"></i>
<span data-i18n="SETTINGS_ACCOUNTS/BUTTON_ADD_IDENTITY"></span>

View file

@ -1,3 +0,0 @@
<div class="settingsCustom">
CUSTOM
</div>

View file

@ -1,10 +1,8 @@
<div class="b-settings-folders">
<div class="form-horizontal">
<div class="legend">
<span data-i18n="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span>
&nbsp;&nbsp;&nbsp;
<i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i>
</div>
<div class="legend">
<span data-i18n="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span>
&nbsp;&nbsp;&nbsp;
<i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i>
</div>
<div style="border-bottom: 1px solid rgba(128,128,128,0.5);margin-bottom:20px;" data-bind="visible: useImapSubscribe, component: {
name: 'Checkbox',

View file

@ -104,8 +104,7 @@
}"></div>
</div>
</div>
</div>
<div class="form-horizontal">
<div class="legend" data-i18n="SETTINGS_GENERAL/LABEL_NOTIFICATIONS"></div>
<div class="control-group">
<div class="controls">

View file

@ -1,6 +1,6 @@
<div class="b-settins-left">
<div class="b-content">
<nav class="b-settings-menu" data-bind="foreach: menu">
<nav data-bind="foreach: menu">
<a data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route), 'data-i18n': label }"></a>
</nav>
</div>

View file

@ -1,7 +1,5 @@
<div class="b-settings-open-pgp g-ui-user-select-none">
<div class="form-horizontal">
<div class="legend">OpenPGP</div>
</div>
<div class="legend">OpenPGP</div>
<button class="btn" data-bind="click: addOpenPgpKey">
<i class="icon-list-add"></i>
<span data-i18n="SETTINGS_OPEN_PGP/BUTTON_ADD_OPEN_PGP_KEY"></span>
@ -46,9 +44,7 @@
<td>
<span class="delete-open-pgp-key fontastic" data-bind="visible: !deleteAccess(), click: function (openPgpKey) { $root.openPgpKeyForDeletion(openPgpKey); }">🗑</span>
</td>
<td>
<span class="view-open-pgp-key fontastic" data-bind="click: function (openPgpKey) { $root.viewOpenPgpKey(openPgpKey); }">👁</span>
</td>
<td class="view-open-pgp-key fontastic" data-bind="click: function (openPgpKey) { $root.viewOpenPgpKey(openPgpKey); }">👁</td>
</tr>
</tbody><tbody data-bind="foreach: openpgpkeysPublic">
<tr class="open-pgp-key-item">
@ -65,9 +61,7 @@
<td>
<span class="delete-open-pgp-key fontastic" data-bind="visible: !deleteAccess(), click: function (openPgpKey) { $root.openPgpKeyForDeletion(openPgpKey); }">🗑</span>
</td>
<td>
<span class="view-open-pgp-key fontastic" data-bind="click: function (openPgpKey) { $root.viewOpenPgpKey(openPgpKey); }">👁</span>
</td>
<td class="view-open-pgp-key fontastic" data-bind="click: function (openPgpKey) { $root.viewOpenPgpKey(openPgpKey); }">👁</td>
</tr>
</tbody>
</table>

View file

@ -1,19 +1,15 @@
<div class="b-settings b-settins-right">
<div class="b-toolbar" style="padding-left: 0">
<div class="btn-toolbar" style="margin-top: 2px;">
<div class="btn-group show-mobile" data-bind="visible: !leftPanelDisabled()" style="margin-left: -1px">
<a class="btn btn-thin-2 fontastic" data-bind="click: hideLeft"></a>
</div>
<div class="btn-group show-mobile" data-bind="visible: leftPanelDisabled()">
<a class="btn btn-thin-2 fontastic" data-bind="click: showLeft"></a>
</div>
<a class="btn button-back" data-bind="click: backToMailBoxClick">
<i class="fontastic"></i>
<span data-i18n="GLOBAL/BACK"></span>
</a>
<div class="b-toolbar btn-toolbar" style="margin-top: 2px;">
<div class="btn-group show-mobile" data-bind="visible: !leftPanelDisabled()" style="margin-left: -1px">
<a class="btn btn-thin-2 fontastic" data-bind="click: hideLeft"></a>
</div>
<div class="btn-group show-mobile" data-bind="visible: leftPanelDisabled()">
<a class="btn btn-thin-2 fontastic" data-bind="click: showLeft"></a>
</div>
<a class="btn button-back" data-bind="click: backToMailBoxClick">
<i class="fontastic"></i>
<span data-i18n="GLOBAL/BACK"></span>
</a>
</div>
<div class="b-content">
<div id="rl-settings-subscreen"></div>
</div>
<div class="b-content" id="rl-settings-subscreen"></div>
</div>

View file

@ -1,10 +1,8 @@
<div class="b-settings-templates g-ui-user-select-none">
<div class="form-horizontal">
<div class="legend">
<span data-i18n="SETTINGS_TEMPLATES/LEGEND_TEMPLATES"></span>
&nbsp;&nbsp;&nbsp;
<i class="icon-spinner" style="margin-top: 5px" data-bind="visible: templates.loading"></i>
</div>
<div class="legend">
<span data-i18n="SETTINGS_TEMPLATES/LEGEND_TEMPLATES"></span>
&nbsp;&nbsp;&nbsp;
<i class="icon-spinner" style="margin-top: 5px" data-bind="visible: templates.loading"></i>
</div>
<a class="btn" data-bind="click: addNewTemplate">
<i class="icon-user-add"></i>
@ -13,31 +11,29 @@
<br />
<br />
<br />
<div>
<div class="templates-list-top-padding"></div>
<table class="table table-hover list-table templates-list" data-bind="i18nUpdate: templates">
<colgroup>
<col />
<col style="width: 150px" />
<col style="width: 1%" />
</colgroup>
<tbody data-bind="foreach: templates">
<tr class="template-item" draggable="true" data-bind="sortableItem: { list: $root.templates }">
<td class="e-action">
<span class="template-img fontastic">👤</span>
<i class="fontastic drag-handle"></i>
<span class="template-name" data-bind="text: name"></span>
</td>
<td>
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess}, click: function(oTemplate) { $root.deleteTemplate(oTemplate); }"
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td>
<td>
<span class="delete-template fontastic" data-bind="visible: !deleteAccess(), click: function (oTemplate) { $root.templateForDeletion(oTemplate); }">🗑</span>
</td>
</tr>
</tbody>
</table>
</div>
<div class="templates-list-top-padding"></div>
<table class="table table-hover list-table templates-list" data-bind="i18nUpdate: templates">
<colgroup>
<col />
<col style="width: 150px" />
<col style="width: 1%" />
</colgroup>
<tbody data-bind="foreach: templates">
<tr class="template-item" draggable="true" data-bind="sortableItem: { list: $root.templates }">
<td class="e-action">
<span class="template-img fontastic">👤</span>
<i class="fontastic drag-handle"></i>
<span class="template-name" data-bind="text: name"></span>
</td>
<td>
<a class="btn btn-small btn-small-small btn-danger pull-right button-confirm-delete button-delete-transitions" data-bind="css: {'delete-access': deleteAccess}, click: function(oTemplate) { $root.deleteTemplate(oTemplate); }"
data-i18n="GLOBAL/ARE_YOU_SURE"></a>
</td>
<td>
<span class="delete-template fontastic" data-bind="visible: !deleteAccess(), click: function (oTemplate) { $root.templateForDeletion(oTemplate); }">🗑</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>

View file

@ -1,9 +1,7 @@
<div class="b-settings-themes g-ui-user-select-none">
<div class="form-horizontal">
<div class="legend">
<span data-i18n="SETTINGS_THEMES/LEGEND_THEMES"></span>
<span data-bind="saveTrigger: themeTrigger"></span>
</div>
<div class="legend">
<span data-i18n="SETTINGS_THEMES/LEGEND_THEMES"></span>
<span data-bind="saveTrigger: themeTrigger"></span>
</div>
<div class="b-themes-list" data-bind="foreach: themesObjects">
<div class="e-item" data-bind="click: function () { $root.theme(name); }, css: { 'selected': selected }">