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

View file

@ -21,7 +21,7 @@ export class MenuSettingsUserView extends AbstractViewLeft {
onBuild(dom) { onBuild(dom) {
dom.addEventListener('click', event => dom.addEventListener('click', event =>
ThemeStore.isMobile() ThemeStore.isMobile()
&& event.target.closestWithin('.b-settings-menu a', dom) && event.target.closestWithin('.b-settins-left nav a', dom)
&& leftPanelDisabled(true) && 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 class="modal fade b-account-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3>
<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> </h3>
</h3> </div>
</div> <div class="modal-body">
<div class="modal-body"> <div class="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>
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <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>
<br /> </div>
<div class="control-group" data-bind="css: {'error': emailError}"> <br />
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label> <div class="control-group" data-bind="css: {'error': emailError}">
<div class="controls"> <label class="control-label" data-i18n="GLOBAL/EMAIL"></label>
<label style="margin-top: 5px;" data-bind="visible: !isNew()"><strong data-bind="text: email"></strong></label> <div class="controls">
<input type="email" class="input-xlarge" <label style="margin-top: 5px;" data-bind="visible: !isNew()"><strong data-bind="text: email"></strong></label>
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="email" class="input-xlarge"
data-bind="visible: isNew, textInput: email, onEnter: addAccountCommand" /> autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
</div> data-bind="visible: isNew, textInput: email, onEnter: addAccountCommand" />
</div> </div>
<div class="control-group" data-bind="css: {'error': passwordError}"> </div>
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label> <div class="control-group" data-bind="css: {'error': passwordError}">
<div class="controls"> <label class="control-label" data-i18n="GLOBAL/PASSWORD"></label>
<input type="password" class="inputPassword input-xlarge" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" <div class="controls">
data-bind="value: password, onEnter: addAccountCommand" /> <input type="password" class="inputPassword input-xlarge" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
</div> data-bind="value: password, onEnter: addAccountCommand" />
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer"> </div>
<a class="btn buttonAddAccount" data-bind="command: addAccountCommand"> <div class="modal-footer">
<i data-bind="visible: isNew, css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <a class="btn buttonAddAccount" data-bind="command: addAccountCommand">
<span data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_ADD_ACCOUNT"></span> <i data-bind="visible: isNew, css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
<i data-bind="visible: !isNew(), css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <span data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_ADD_ACCOUNT"></span>
<span data-bind="visible: !isNew()" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_UPDATE_ACCOUNT"></span> <i data-bind="visible: !isNew(), css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i>
</a> <span data-bind="visible: !isNew()" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_UPDATE_ACCOUNT"></span>
</div> </a>
</div> </div>
</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 class="modal fade b-open-pgp-key-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3 data-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> </div>
</div> <div class="modal-body">
<div class="modal-body"> <div class="alert" data-bind="visible: keyError() && keyErrorMessage(), text: keyErrorMessage"></div>
<div class="alert" data-bind="visible: keyError() && keyErrorMessage(), text: keyErrorMessage"></div> <div class="form-horizontal">
<div class="form-horizontal"> <div class="control-group" data-bind="css: {'error': keyError}">
<div class="control-group" data-bind="css: {'error': keyError}"> <textarea class="inputKey input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: key"></textarea>
<textarea class="inputKey input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: key"></textarea>
</div>
</div> </div>
</div> </div>
<div class="modal-footer"> </div>
<a class="btn buttonAddAccount" data-bind="command: addOpenPgpKeyCommand"> <div class="modal-footer">
<i class="icon-list-add"></i> <a class="btn buttonAddAccount" data-bind="command: addOpenPgpKeyCommand">
&nbsp;&nbsp; <i class="icon-list-add"></i>
<span data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/BUTTON_IMPORT_OPEN_PGP_KEY"></span> &nbsp;&nbsp;
</a> <span data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/BUTTON_IMPORT_OPEN_PGP_KEY"></span>
</div> </a>
</div> </div>
</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 class="modal fade b-compose-open-pgp-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3 data-i18n="POPUPS_COMPOSE_OPEN_PGP/TITLE_COMPOSE_OPEN_PGP"></h3>
<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>
<div class="modal-body"> <div>
<div class="alert" data-bind="visible: '' !== notification()"> <div>
<span data-bind="text: notification"></span> <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>
<div> <div data-bind="component: {
<div data-bind="component: { name: 'Checkbox',
name: 'Checkbox', params: {
params: { label: 'POPUPS_COMPOSE_OPEN_PGP/LABEL_ENCRYPT',
label: 'POPUPS_COMPOSE_OPEN_PGP/LABEL_SIGN', value: encrypt
value: sign }
} }"></div>
}, click: updateCommand"></div>
<div class="key-list" data-bind="visible: sign"> <div class="key-list" data-bind="visible: encrypt">
<div class="key-list-wrp empty" data-bind="visible: !signKey()"> <div class="key-list-wrp empty" data-bind="visible: encryptKeys().length === 0">
No private key found No public keys selected
</div> </div>
<div class="key-list-wrp" data-bind="visible: signKey()"> <div class="key-list-wrp" data-bind="visible: encryptKeys().length > 0, foreach: encryptKeys">
<div class="key-list__item"> <div class="key-list__item">
<div class="key-list__item-hash"> <div class="key-list__item-hash" data-bind="visible: !empty">
(<span data-bind="text: signKey() ? signKey().hash : ''"></span>) (<span data-bind="text: 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 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>
<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> </div>
<div class="modal-footer"> <div class="key-actions">
<button class="btn buttonDo" data-bind="command: doCommand, <div data-bind="visible: sign()">
enable: (sign() || encrypt()) && (!encrypt() || encrypt() && encryptKeys().length > 0)"> <input type="password" class="inputPassword input-block-level"
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i> autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
<span data-bind="visible: sign() && !encrypt()" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_SIGN"></span> data-i18n="[placeholder]GLOBAL/PASSWORD"
<span data-bind="visible: !sign() && encrypt()" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_ENCRYPT"></span> data-bind="textInput: password, onEnter: doCommand" />
<span data-bind="visible: (sign() && encrypt()) || (!sign() && !encrypt())" data-i18n="POPUPS_COMPOSE_OPEN_PGP/BUTTON_SIGN_AND_ENCRYPT"></span> <select class="input-block-level" data-bind="visible: 0 < privateKeysOptions().length, options: privateKeysOptions, value: selectedPrivateKey,
</button> 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> </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> </div>

View file

@ -1,59 +1,57 @@
<div class="modal fade b-filter-content g-ui-user-select-none" data-bind="modal: modalVisibility"> <div class="modal fade b-filter-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3>
<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> </h3>
</h3> </div>
</div> <div class="modal-body">
<div class="modal-body"> <div class="filter" data-bind="with: filter, i18nInit: filter">
<div class="filter" data-bind="with: filter, i18nInit: filter"> <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"> <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>
<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="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> </div>
<div class="modal-footer"> </div>
<a class="btn buttonSave" data-bind="command: saveFilterCommand"> <div class="modal-footer">
<i class="fontastic"></i> <a class="btn buttonSave" data-bind="command: saveFilterCommand">
<span data-i18n="GLOBAL/DONE"></span> <i class="fontastic"></i>
</a> <span data-i18n="GLOBAL/DONE"></span>
</div> </a>
</div> </div>
</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 class="modal fade b-folder-clear-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3>
<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> </h3>
</h3> </div>
</div> <div class="modal-body">
<div class="modal-body"> <div>
<div> <i class="fontastic" style="color:red"></i>
<i class="fontastic" style="color:red"></i> &nbsp;&nbsp;
&nbsp;&nbsp; <strong data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></strong>
<strong data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></strong> <br />
<br /> <br />
<br /> <span data-bind="html: dangerDescHtml"></span>
<span data-bind="html: dangerDescHtml"></span> <br />
<br /> <span data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_2"></span>
<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>
</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> </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 class="modal fade b-folder-create-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3>
<h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3> </div>
</div> <div class="modal-body">
<div class="modal-body"> <div class="form-horizontal">
<div class="form-horizontal"> <br />
<br /> <div class="control-group">
<div class="control-group"> <label class="control-label" data-i18n="GLOBAL/NAME"></label>
<label class="control-label" data-i18n="GLOBAL/NAME"></label> <div class="controls">
<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 class="control-group"> </div>
<label class="control-label" data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label> <div class="control-group">
<div class="controls"> <label class="control-label" data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label>
<select data-bind="options: parentFolderSelectList, value: selectedParentValue, <div class="controls">
optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> <select data-bind="options: parentFolderSelectList, value: selectedParentValue,
</div> optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select>
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer"> </div>
<a class="btn buttonCreate" data-bind="command: createFolderCommand"> <div class="modal-footer">
<i class="icon-folder-add"></i> <a class="btn buttonCreate" data-bind="command: createFolderCommand">
<span data-i18n="POPUPS_CREATE_FOLDER/BUTTON_CREATE"></span> <i class="icon-folder-add"></i>
</a> <span data-i18n="POPUPS_CREATE_FOLDER/BUTTON_CREATE"></span>
</div> </a>
</div> </div>
</div> </div>

View file

@ -1,96 +1,94 @@
<div class="modal fade b-identity-content" data-bind="modal: modalVisibility"> <div class="modal fade b-identity-content" data-bind="modal: modalVisibility">
<div> <div class="modal-header g-ui-user-select-none">
<div class="modal-header g-ui-user-select-none"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <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> </h3>
</h3> </div>
</div> <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>
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <span data-bind="text: submitError"></span>
<span data-bind="text: submitError"></span> </div>
</div> <br />
<br /> <div class="control-group" data-bind="visible: !owner(), css: {'error': emailHasError}">
<div class="control-group" data-bind="visible: !owner(), css: {'error': emailHasError}"> <label class="control-label" data-i18n="GLOBAL/EMAIL"></label>
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label> <div class="controls">
<div class="controls"> <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="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> </div>
</div> </div>
<hr /> <div class="control-group" data-bind="visible: owner">
<div class="form-horizontal"> <label class="control-label" data-i18n="GLOBAL/EMAIL"></label>
<div class="control-group g-ui-user-select-none"> <div class="controls">
<div class="controls"> <div class="textEmail" data-bind="text: email"></div>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'POPUPS_IDENTITY/LABEL_SIGNATURE_INSERT_BEFORE',
value: signatureInsertBefore
}
}"></div>
</div>
</div> </div>
<div class="control-group"> </div>
<div class="e-signature-place" data-bind="editor: signature"></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>
</div> </div>
<div class="modal-footer"> <hr />
<a class="btn buttonAddIdentity" data-bind="command: addOrEditIdentityCommand"> <div class="form-horizontal">
<i data-bind="visible: !edit(), css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <div class="control-group g-ui-user-select-none">
<span data-bind="visible: !edit()" data-i18n="POPUPS_IDENTITY/BUTTON_ADD_IDENTITY"></span> <div class="controls">
<i data-bind="visible: edit, css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <div data-bind="component: {
<span data-bind="visible: edit" data-i18n="POPUPS_IDENTITY/BUTTON_UPDATE_IDENTITY"></span> name: 'Checkbox',
</a> 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> </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> </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 class="modal fade b-message-open-pgp-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3 data-i18n="POPUPS_MESSAGE_OPEN_PGP/TITLE_MESSAGE_OPEN_PGP"></h3>
<h3 data-i18n="POPUPS_MESSAGE_OPEN_PGP/TITLE_MESSAGE_OPEN_PGP"></h3> </div>
</div> <div class="modal-body">
<div class="modal-body"> <div class="form-horizontal">
<div class="form-horizontal"> <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 />
<br /> <div class="control-group">
<div class="control-group"> <label class="control-label" data-i18n="POPUPS_MESSAGE_OPEN_PGP/LABEL_KEY"></label>
<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="controls 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">
<div class="key-list__item__names"> <span data-bind="foreach: users">
<span data-bind="foreach: users"> <div>
<div> <span class="key-list__item__name">
<span class="key-list__item__name"> <span data-bind="text: $data"></span>
<span data-bind="text: $data"></span> &nbsp;
&nbsp; <span>[<span data-bind="text: $parent.id"></span>]</span>
<span>[<span data-bind="text: $parent.id"></span>]</span>
</span>
</div>
</span> </span>
</div> </div>
</span>
</div> </div>
</div> </div>
</div> </div>
<div class="control-group"> </div>
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label> <div class="control-group">
<div class="controls"> <label class="control-label" data-i18n="GLOBAL/PASSWORD"></label>
<input type="password" class="inputPassword input-xlarge" autofocus="" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" <div class="controls">
data-bind="textInput: password, onEnter: doCommand" /> <input type="password" class="inputPassword input-xlarge" autofocus="" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
</div> data-bind="textInput: password, onEnter: doCommand" />
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer"> </div>
<button class="btn buttonDo" data-bind="command: doCommand"> <div class="modal-footer">
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i> <button class="btn buttonDo" data-bind="command: doCommand">
<span data-i18n="POPUPS_MESSAGE_OPEN_PGP/BUTTON_DECRYPT"></span> <i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i>
</button> <span data-i18n="POPUPS_MESSAGE_OPEN_PGP/BUTTON_DECRYPT"></span>
</div> </button>
</div> </div>
</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 class="modal fade b-open-pgp-key-generate-content g-ui-user-select-none" data-bind="modal: modalVisibility">
<div> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3 data-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> </div>
</div> <div class="modal-body">
<div class="modal-body"> <div class="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>
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <span data-bind="text: submitError"></span>
<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> </div>
<br /> </div>
<div class="control-group" data-bind="css: {'error': emailError}"> <div class="control-group">
<label class="control-label" data-i18n="GLOBAL/EMAIL"></label> <label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="controls"> <div class="controls">
<input type="email" class="input-large" <input type="text" class="inputName input-large"
autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: email" /> data-bind="value: name" />
</div>
</div> </div>
<div class="control-group"> </div>
<label class="control-label" data-i18n="GLOBAL/NAME"></label> <div class="control-group">
<div class="controls"> <label class="control-label" data-i18n="GLOBAL/PASSWORD"></label>
<input type="text" class="inputName input-large" <div class="controls">
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <input type="password" class="inputPassword input-large"
data-bind="value: name" /> autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false"
</div> data-bind="value: password" />
</div> </div>
<div class="control-group"> </div>
<label class="control-label" data-i18n="GLOBAL/PASSWORD"></label> <div class="control-group">
<div class="controls"> <label class="control-label" data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/LABEL_KEY_BIT_LENGTH"></label>
<input type="password" class="inputPassword input-large" <div class="controls">
autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" <select data-bind="value: keyBitLength, options: [2048, 4096]"></select>
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>
</div> </div>
</div> </div>
<div class="modal-footer"> </div>
<a class="btn buttonHenerateOpenPgpKey" data-bind="command: generateOpenPgpKeyCommand"> <div class="modal-footer">
<i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i> <a class="btn buttonHenerateOpenPgpKey" data-bind="command: generateOpenPgpKeyCommand">
<span data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/BUTTON_GENERATE_OPEN_PGP_KEYS"></span> <i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i>
</a> <span data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/BUTTON_GENERATE_OPEN_PGP_KEYS"></span>
</div> </a>
</div> </div>
</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 class="modal fade b-filter-script g-ui-user-select-none" data-bind="modal: modalVisibility, with: script">
<div data-bind="with: script"> <div class="modal-header">
<div class="modal-header"> <button type="button" class="close" data-bind="command: $root.cancelCommand">×</button>
<button type="button" class="close" data-bind="command: $root.cancelCommand">×</button> <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> </h3>
</h3> </div>
</div> <div class="modal-body">
<div class="modal-body">
<div class="control-group" data-bind="css: {'error': nameError}"> <div class="control-group" data-bind="css: {'error': nameError}">
<div class="controls"> <div class="controls">
<input type="text" class="span5" <input type="text" class="span5"
data-bind="value: name, hasfocus: !exists(), visible: !exists()" data-bind="value: name, hasfocus: !exists(), visible: !exists()"
autocorrect="off" autocapitalize="off" spellcheck="false" autocorrect="off" autocapitalize="off" spellcheck="false"
data-i18n="[placeholder]GLOBAL/NAME" data-i18n="[placeholder]GLOBAL/NAME"
/> />
<span data-bind="text: name, visible: exists"></span> <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> </div>
</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"> <div data-bind="visible: hasChanges">
<i class="icon-file-code"></i> <div class="span8 width100-on-mobile">
</a> <div class="alert g-ui-user-select-none">
<a class="btn buttonSave" data-bind="visible: hasChanges, click: function() { $root.saveScriptCommand(); }, css: {'btn-danger': $root.saveError}"> <i class="fontastic"></i>
<i class="fontastic" data-bind="css: {'icon-spinner': $root.saving}">💾</i> <span data-i18n="POPUPS_SIEVE_SCRIPT/CHANGES_NEED_TO_BE_SAVED_DESC"></span>
<span data-i18n="GLOBAL/SAVE"></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> </a>
</div> </div>
</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> </div>

View file

@ -1,42 +1,40 @@
<div class="modal fade b-template-add-content" data-bind="modal: modalVisibility"> <div class="modal fade b-template-add-content" data-bind="modal: modalVisibility">
<div> <div class="modal-header g-ui-user-select-none">
<div class="modal-header g-ui-user-select-none"> <button type="button" class="close" data-bind="command: cancelCommand">×</button>
<button type="button" class="close" data-bind="command: cancelCommand">×</button> <h3>
<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_ADD_TEMPLATE"></span> <span data-bind="visible: '' !== id()" data-i18n="POPUPS_ADD_TEMPLATE/TITLE_UPDATE_TEMPLATE"></span>
<span data-bind="visible: '' !== id()" data-i18n="POPUPS_ADD_TEMPLATE/TITLE_UPDATE_TEMPLATE"></span> </h3>
</h3> </div>
</div> <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>
<button type="button" class="close" data-bind="click: function () { submitError('') }">×</button> <span data-bind="text: submitError"></span>
<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> </div>
<hr /> <br />
<div class="form-horizontal"> <div class="control-group" data-bind="css: {'error': nameError}">
<div class="control-group" data-bind="css: {'error': bodyError}"> <label class="control-label" data-i18n="GLOBAL/NAME"></label>
<div class="e-template-place" data-bind="initDom: signatureDom"></div> <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>
</div> </div>
<div class="modal-footer"> <hr />
<a class="btn buttonAddAccount" data-bind="command: addTemplateCommand"> <div class="form-horizontal">
<i data-bind="visible: '' == id(), css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <div class="control-group" data-bind="css: {'error': bodyError}">
<span data-bind="visible: '' == id()" data-i18n="POPUPS_ADD_TEMPLATE/BUTTON_ADD_TEMPLATE"></span> <div class="e-template-place" data-bind="initDom: signatureDom"></div>
<i data-bind="visible: '' !== id(), css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i> </div>
<span data-bind="visible: '' !== id()" data-i18n="POPUPS_ADD_TEMPLATE/BUTTON_UPDATE_TEMPLATE"></span>
</a>
</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> </div>

View file

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

View file

@ -1,11 +1,9 @@
<div class="b-settings-accounts g-ui-user-select-none"> <div class="b-settings-accounts g-ui-user-select-none">
<div data-bind="visible: allowAdditionalAccount"> <div data-bind="visible: allowAdditionalAccount">
<div class="form-horizontal"> <div class="legend">
<div class="legend"> <span data-i18n="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span>
<span data-i18n="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span> &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; <i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i>
<i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i>
</div>
</div> </div>
<a class="btn" data-bind="click: addNewAccount"> <a class="btn" data-bind="click: addNewAccount">
<i class="icon-user-add"></i> <i class="icon-user-add"></i>
@ -43,9 +41,7 @@
</div> </div>
<div data-bind="visible: allowIdentities"> <div data-bind="visible: allowIdentities">
<br /> <br />
<div class="form-horizontal"> <div class="legend" data-i18n="SETTINGS_ACCOUNTS/LEGEND_IDENTITIES"></div>
<div class="legend" data-i18n="SETTINGS_ACCOUNTS/LEGEND_IDENTITIES"></div>
</div>
<a class="btn" data-bind="click: addNewIdentity"> <a class="btn" data-bind="click: addNewIdentity">
<i class="icon-user-add"></i> <i class="icon-user-add"></i>
<span data-i18n="SETTINGS_ACCOUNTS/BUTTON_ADD_IDENTITY"></span> <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="b-settings-folders">
<div class="form-horizontal"> <div class="legend">
<div class="legend"> <span data-i18n="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span>
<span data-i18n="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span> &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; <i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i>
<i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i>
</div>
</div> </div>
<div style="border-bottom: 1px solid rgba(128,128,128,0.5);margin-bottom:20px;" data-bind="visible: useImapSubscribe, component: { <div style="border-bottom: 1px solid rgba(128,128,128,0.5);margin-bottom:20px;" data-bind="visible: useImapSubscribe, component: {
name: 'Checkbox', name: 'Checkbox',

View file

@ -104,8 +104,7 @@
}"></div> }"></div>
</div> </div>
</div> </div>
</div>
<div class="form-horizontal">
<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 class="controls">

View file

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

View file

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

View file

@ -1,19 +1,15 @@
<div class="b-settings b-settins-right"> <div class="b-settings b-settins-right">
<div class="b-toolbar" style="padding-left: 0"> <div class="b-toolbar btn-toolbar" style="margin-top: 2px;">
<div class="btn-toolbar" style="margin-top: 2px;"> <div class="btn-group show-mobile" data-bind="visible: !leftPanelDisabled()" style="margin-left: -1px">
<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>
<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>
<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>
<div class="b-content"> <div class="b-content" id="rl-settings-subscreen"></div>
<div id="rl-settings-subscreen"></div>
</div>
</div> </div>

View file

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

View file

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