- ID de exploración:
- 7a0dfe89-8065-45b0-aa94-3ce46c409a95Finalizado
- URL enviada:
- https://hikari.sgx.fredriclesomar.my.id/
- Informe finalizado:
Enlaces: 1 encontrados
Los enlaces salientes identificados en la página
Enlace | Texto |
---|---|
https://mailvelope.com/en/help |
Variables JavaScript: 13 encontradas
Las variables JavaScript globales cargadas en el objeto de ventana de una página son variables declaradas fuera de las funciones y a las que se puede acceder desde cualquier lugar del código en el ámbito actual
Nombre | Tipo |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
rl | object |
shortcuts | object |
hasher | object |
Crossroads | function |
Jua | function |
BSN | object |
ko | object |
Mensajes de registro de la consola: 0 encontrados
Mensajes registrados en la consola web
HTML
El cuerpo HTML sin procesar de la página
<!DOCTYPE html><html class="rl-started-trigger" lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="google" content="notranslate"> <meta name="robots" content="noindex,nofollow,noodp"> <meta name="theme-color" content="black"> <title></title> <style id="app-boot-css">:root{--fontSans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--fontSerif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--fontMono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}#rl-app.fontArial{--fontSans:"Nimbus Sans L","Liberation sans","Arial Unicode MS",Arial,Helvetica,Garuda,Utkal,FreeSans,sans-serif}#rl-app.fontTahoma{--fontSans:"Luxi Sans",Tahoma,Loma,Geneva,Meera,sans-serif}#rl-app.fontTrebuchet{--fontSans:"DejaVu Sans Condensed",Trebuchet,"Trebuchet MS",sans-serif}#rl-app.fontLucida{--fontSans:"Lucida Sans Unicode","Lucida Sans","DejaVu Sans","Bitstream Vera Sans","DejaVu LGC Sans",sans-serif}#rl-app.fontVerdana{--fontSans:"DejaVu Sans",Verdana,Geneva,"Bitstream Vera Sans","DejaVu LGC Sans",sans-serif}#rl-app.fontMonoCourier{--fontMono:"Liberation Mono","Courier New",FreeMono,Courier,monospace}#rl-app.fontMonoLucida{--fontMono:"DejaVu Sans Mono","DejaVu LGC Sans Mono","Bitstream Vera Sans Mono","Lucida Console",Monaco,monospace}#rl-app.fontSerifTimes{--fontSerif:"Nimbus Roman No9 L","Times New Roman",Times,FreeSerif,serif}#rl-app.fontSerifPalatino{--fontSerif:"Bitstream Charter","Palatino Linotype",Palatino,Palladio,"URW Palladio L","Book Antiqua",Times,serif}#rl-app.fontSerifGeorgia{--fontSerif:"URW Palladio L",Georgia,Times,serif}body,html{margin:0;padding:0;-webkit-text-size-adjust:100%}#rl-app *,#rl-app ::after,#rl-app ::before{box-sizing:border-box}#rl-app{background-color:var(--main-bg-color,#aaa);color:var(--main-color,#333);font-family:var(--fontSans);-webkit-touch-callout:none;font-size:var(--main-font-size,14px);line-height:1.25;position:relative}body#rl-app{height:100vh;height:100dvh;width:100vw}#rl-BadBrowser,#rl-NoCookie,#rl-loading,#rl-loading-error{color:var(--loading-color,#000);text-shadow:var(--loading-text-shadow);font-size:214%;line-height:130%;position:fixed;text-align:center;top:50%;transform:translateY(-50%);width:100%}#rl-loading .icon-spinner{height:1em;width:1em}
</style> <link type="text/css" rel="stylesheet" href="/snappymail/snappymail/v/2.38.2/static/css/app.min.css"> <link rel="manifest" href="/snappymail/snappymail/v/2.38.2/static/manifest.json"> <link rel="icon" href="/snappymail/snappymail/v/2.38.2/static/favicon.svg" type="image/svg+xml"> <style id="app-theme-style" data-name="Default">:root{color-scheme:light;/* MAIN */
--main-color:#333;--main-bg-color:#48525C;--main-bg-image:url("/snappymail/snappymail/v/2.38.2/themes/Default/images/background.jpg");/* LOADING */
--loading-color:#ddd;--loading-text-shadow:0px 1px 0px rgba(0,0,0,0.5);/* LOGIN */
--login-color:#eee;--login-bg-color:rgba(0,0,0,0.5);--login-box-shadow:0px 2px 10px rgba(0,0,0,0.5);--login-border:none;--login-border-radius:7px;/* MENU */
--dropdown-menu-color:#333;--dropdown-menu-bg-color:#fff;--dropdown-menu-hover-bg-color:#48525C;--dropdown-menu-hover-color:#eee;--dropdown-menu-disable-color:#999;/* FOLDERS */
--folders-color:#fff;--folders-disabled-color:#aaa;--folders-selected-color:#fff;--folders-selected-bg-color:rgba(0,0,0,0.5);--folders-focused-color:#fff;--folders-focused-bg-color:rgba(0,0,0,0.7);--folders-hover-color:#fff;--folders-hover-bg-color:rgba(0,0,0,0.5);--folders-drop-color:#fff;--folders-drop-bg-color:rgba(0,0,0,0.5);/* SETTINGS */
--settings-menu-color:#fff;--settings-menu-selected-color:#fff;--settings-menu-selected-bg-color:rgba(0,0,0,0.5);--settings-menu-hover-color:#fff;--settings-menu-hover-bg-color:rgba(0,0,0,0.5);/* MESSAGE LIST */
--message-list-toolbar-bg-color:#eee;}.thm-message-list-top-toolbar,.thm-message-list-bottom-toolbar{background-image:linear-gradient(to bottom,#f4f4f4,#dfdfdf) !important;background-repeat:repeat-x !important;}</style> <link type="image/png" rel="shortcut icon" href="/snappymail/snappymail/v/2.38.2/static/apple-touch-icon.png"> <link type="image/png" rel="apple-touch-icon" href="/snappymail/snappymail/v/2.38.2/static/apple-touch-icon.png"> <script src="/snappymail/snappymail/v/2.38.2/static/js/min/libs.min.js"></script><script src="/snappymail/snappymail/v/2.38.2/static/js/min/app.min.js"></script></head> <body id="rl-app" data-admin="0" spellcheck="false"> <div id="rl-loading"> <div id="rl-loading-desc">SnappyMail</div> <i class="icon-spinner"></i> <noscript><div class="error-desc">JavaScript is required for this application.<br />
JavaScript support is not available in your browser.<br />
Please enable JavaScript support in your browser settings and retry.</div></noscript> </div> <div id="rl-loading-error" hidden="">An error occurred.<br>Please refresh the page and try again.<br></div> <div id="rl-BadBrowser" hidden=""> <h1>Your browser is outdated.</h1> <div class="error-desc">To use all the features of the application,<br>
download and install one of the latest browsers.</div> </div> <div id="rl-NoCookie" hidden=""> <h1>Cookies support is required for this application.</h1> <div class="error-desc">Cookies support is not available in your browser.
Please enable Cookie support in your browser settings and retry.</div> </div> <div id="rl-content" hidden=""> <div id="rl-left"></div> <div id="rl-right"></div> </div> <div id="rl-popups"></div> <template id="CheckboxComponent"><label class="e-component e-checkbox material-design" data-bind="css: { 'disabled': !enable() }"> <div> <input type="checkbox" value="1" data-bind="checked: value, enable: enable, attr: {name: name}"> <div role="checkbox"></div> </div> <!-- ko if: label --> <span data-bind="attr: {'data-i18n': label}"></span> <!-- /ko --> </label> </template><template id="SelectComponent"><div class="e-component"> <select data-bind="options: options, value: value, optionsText: optionsText, optionsValue: optionsValue, css: className, optionsAfterRender: defaultOptionsAfterRender"></select> <!-- ko if: label --> <span data-bind="attr: {'data-i18n': label}"></span> <!-- /ko --> <!-- ko if: trigger --> <span data-bind="saveTrigger: trigger"></span> <!-- /ko --> </div> </template><template id="Login"><div class="descWrapper" data-bind="visible: '' !== loadingDesc, text: loadingDesc"></div> <div class="alert" data-bind="hidden: !submitError()" hidden=""> <a href="#" class="close" data-bind="click: hideError">×</a> <span data-bind="text: submitError"></span> <p data-bind="visible: '' !== submitErrorAdditional()"> <span data-i18n="GLOBAL/SERVER_MESSAGE"></span>: <!-- ko text: submitErrorAdditional --><!-- /ko --> </p> </div> <form action="#/" spellcheck="false" method="POST" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}"> <div class="controls" data-bind="css: {'error': emailError}"> <span class="fontastic">✉</span> <input name="Email" required="" type="text" class="input-block-level" pattern="[^@\s]+(@[^\s]+)?" inputmode="email" autofocus="" autocomplete="email" autocorrect="off" autocapitalize="off" data-bind="textInput: email, disable: submitRequest" data-i18n="[placeholder]GLOBAL/EMAIL"> </div> <div class="controls" data-bind="css: {'error': passwordError}"> <span class="fontastic">🔑</span> <input name="Password" required="" type="password" class="input-block-level" autocomplete="current-password" autocorrect="off" autocapitalize="off" data-bind="textInput: password, disable: submitRequest" data-i18n="[placeholder]GLOBAL/PASSWORD"> </div> <div id="plugin-Login-BottomControlGroup"></div> <div class="controls" style="display: flex"> <div class="e-checkbox" tabindex="0" data-bind="toggle: signMe"> <i role="checkbox" class="fontastic" data-bind="text: signMe() ? '☑' : '☐'"></i> <span data-i18n="LOGIN/LABEL_SIGN_ME"></span> </div> <div class="language-buttons"> <a href="#" class="language-button fontastic" data-bind="visible: allowLanguagesOnLogin, click: selectLanguage, css: { 'icon-spinner' : langRequest }" data-i18n="[title]POPUPS_LANGUAGES/TITLE_LANGUAGES"> 🌍 </a> </div> </div> <div> <button class="btn btn-large buttonLogin" data-bind="command: submitCommand" data-i18n="LOGIN/BUTTON_SIGN_IN"></button> </div> </form> </template><template id="MailFolderList"><div class="b-folders g-ui-user-select-none"> <div class="b-toolbar btn-toolbar"> <a class="btn buttonCompose" data-bind="click: composeClick, css: {'btn-warning': composeInEdit, 'btn-success': !composeInEdit()}" data-i18n="[title]FOLDER_LIST/BUTTON_NEW_MESSAGE"> <i class="icon-paper-plane"></i> <span class="buttonComposeText" data-i18n="FOLDER_LIST/BUTTON_NEW_MESSAGE"></span> </a> <a class="btn buttonContacts fontastic" data-bind="visible: allowContacts, click: contactsClick" data-i18n="[title]GLOBAL/CONTACTS">📇</a> </div> <div class="b-content"> <ul class="b-folders-system" data-bind="foreach: systemFolders"> <li> <a data-bind="dropmessages: $data, css: { 'selected': selected, 'selectable': selectable, 'anim-action-class': actionBlink, 'is-flagged': isFlagged }, attr: { 'data-icon': icon, 'data-unread': unreadCount }"> <!-- ko text: localName --><!-- /ko --> <!-- ko if: isInbox --> <span class="flag-icon fontastic"></span> <!-- /ko --> </a> </li> </ul> <hr> <div class="search-input-wrp" data-bind="visible: foldersFilterVisible"> <input type="search" id="folderSearchInput" data-bind="textInput: foldersFilter" data-i18n="[placeholder]GLOBAL/SEARCH"> <a data-bind="click: clearFolderSearch, visible: foldersFilter">✕</a> </div> <div class="e-checkbox" tabindex="0" data-bind="toggle: filterUnseen"> <i role="checkbox" class="fontastic" data-bind="text: filterUnseen() ? '☑' : '☐'"></i> <span data-i18n="SEARCH/UNSEEN"></span> </div> <ul class="b-folders-user" data-bind="css: {unreadOnly: filterUnseen}, template: { name: 'MailFolderListItem', foreach: folderListVisible }"></ul> <div class="move-action-content-wrapper" data-bind="visible: moveAction"></div> </div> <div class="b-footer btn-toolbar"> <div class="btn-group"> <a class="btn fontastic toggleLeft" data-bind="click: toggleLeftPanel"></a> </div> <div class="btn-group hide-on-panel-disabled"> <a class="btn icon-folder-add" data-bind="click: createFolder" data-i18n="[title]POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></a> <a class="btn fontastic" data-bind="click: configureFolders" data-i18n="[title]SETTINGS_LABELS/FOLDERS">⚙</a> </div> </div> </div> </template><template id="MailFolderListItem"><li> <a data-bind="dropmessages: $data, css: { 'selected': selected() && !isSystemFolder(), 'system': isSystemFolder, 'selectable': canBeSelected, 'unread-sub': hasUnreadInSub, 'anim-action-class': actionBlink }, attr: { 'data-unread': unreadCount, href: href }"> <i data-bind="css: collapsedCss()"></i> <!-- ko text: name --><!-- /ko --> </a> <!-- ko if: hasVisibleSubfolders --> <ul data-bind="template: { name: 'MailFolderListItem', foreach: visibleSubfolders }, css: { 'collapsed': collapsed() }"></ul> <!-- /ko --> </li> </template><template id="MailMessageList"><div class="btn-toolbar" data-bind="css: {'hasChecked':checkAll}"> <a class="btn btn-thin fontastic toggleLeft"></a> <a class="btn buttonCompose onCheckedHide" data-bind="click: composeClick, css: {'btn-warning': composeInEdit, 'btn-success': !composeInEdit()}" data-i18n="[title]FOLDER_LIST/BUTTON_NEW_MESSAGE"> <i class="icon-paper-plane"></i> </a> <a class="btn onCheckedHide" data-bind="click: reload" data-i18n="[title]MESSAGE_LIST/BUTTON_RELOAD"> <i class="icon-spinner not-animated"></i> </a> <a href="#" tabindex="-1" class="btn onCheckedShow" data-bind="command: moveCommand" data-i18n="[title]GLOBAL/MOVE_TO"> <i class="icon-copy visible-on-ctrl-btn"></i> <i class="fontastic hidden-on-ctrl-btn">📁</i> </a> <div class="btn-group onCheckedShow"> <a class="btn fontastic" data-bind="visible: archiveAllowed, command: archiveCommand" data-i18n="[title]GLOBAL/TO_ARCHIVE">🗄</a> <a class="btn fontastic" data-bind="visible: canMarkAsSpam, command: spamCommand" data-i18n="[title]GLOBAL/TO_SPAM">⚠</a> <a class="btn" data-bind="visible: isSpamFolder, command: notSpamCommand" data-i18n="[title]GLOBAL/NOT_SPAM"> <i class="icon-check-mark-circle-two"></i> </a> <a class="btn fontastic" data-bind="command: deleteCommand" data-i18n="[title]GLOBAL/DELETE">🗑</a> <!-- <a class="btn fontastic" data-bind="command: undeleteCommand, hidden: hideDeleted" data-i18n="[title]GLOBAL/UNDELETE" style="transform:rotate(-180deg)">🗑</a> --> </div> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true"> <a id="more-list-dropdown-id" class="btn dropdown-toggle fontastic" href="#" tabindex="-1" data-i18n="[title]GLOBAL/MORE">☰</a> <menu class="dropdown-menu" role="menu" aria-labelledby="more-list-dropdown-id"> <li role="presentation" data-bind="click: listUnsetSeen, css: {'disabled': !messageList.hasCheckedOrSelected()}"> <a href="#" tabindex="-1" data-icon="" data-i18n="MESSAGE_LIST/MENU_UNSET_SEEN"></a> </li> <li role="presentation" data-bind="click: listSetSeen, css: {'disabled': !messageList.hasCheckedOrSelected()}"> <a href="#" tabindex="-1" data-icon="" data-i18n="MESSAGE_LIST/MENU_SET_SEEN"></a> </li> <li role="presentation" data-bind="click: listSetFlags, css: {'disabled': !messageList.hasCheckedOrSelected()}"> <a href="#" tabindex="-1" data-icon="★" data-i18n="MESSAGE_LIST/MENU_SET_FLAG"></a> </li> <li role="presentation" data-bind="click: listUnsetFlags, css: {'disabled': !messageList.hasCheckedOrSelected()}"> <a href="#" tabindex="-1" data-icon="☆" data-i18n="MESSAGE_LIST/MENU_UNSET_FLAG"></a> </li> <li role="presentation" data-bind="click: listSetAllSeen, css: {'disabled': !messageList().length}"> <a href="#" tabindex="-1" data-icon="" data-i18n="MESSAGE_LIST/MENU_SET_ALL_SEEN"></a> </li> <li class="dividerbar" role="presentation" data-bind="command: forwardCommand"> <a href="#" tabindex="-1" data-icon="↞" data-i18n="MESSAGE_LIST/BUTTON_MULTY_FORWARD"></a> </li> <li role="presentation" data-bind="command: downloadAttachCommand, visible: downloadAsZipAllowed"> <a href="#" tabindex="-1" data-icon="📦" data-i18n="MESSAGE_LIST/DOWNLOAD_ALL_ATTACHMENTS"></a> </li> <li role="presentation" data-bind="command: downloadZipCommand, visible: downloadAsZipAllowed"> <a href="#" tabindex="-1" data-icon="💾" data-i18n="MESSAGE/LINK_DOWNLOAD_AS_ZIP"></a> </li> <li class="dividerbar" role="presentation" data-bind="command: moveCommand"> <a href="#" tabindex="-1" data-icon="📁" data-i18n="GLOBAL/MOVE_TO"></a> </li> <li class="presentation" role="presentation" data-bind="command: copyCommand"> <a href="#" tabindex="-1" data-icon="" data-i18n="GLOBAL/COPY_TO"></a> </li> <li role="presentation" data-bind="visible: archiveAllowed, command: archiveCommand"> <a href="#" tabindex="-1" data-icon="🗄" data-i18n="GLOBAL/TO_ARCHIVE">🗄</a> </li> <li role="presentation" data-bind="visible: canMarkAsSpam, command: spamCommand"> <a href="#" tabindex="-1" data-icon="⚠" data-i18n="GLOBAL/SPAM"></a> </li> <li role="presentation" data-bind="visible: isSpamFolder, command: notSpamCommand"> <a href="#" tabindex="-1" data-icon="" data-i18n="GLOBAL/NOT_SPAM"></a> </li> <li role="presentation" data-bind="command: deleteCommand"> <a href="#" tabindex="-1" data-icon="🗑" data-i18n="GLOBAL/DELETE"></a> </li> <li role="presentation" data-bind="command: undeleteCommand, hidden: hideDeleted"> <a href="#" tabindex="-1" data-icon="🗑" data-i18n="GLOBAL/UNDELETE" class="rotate"></a> </li> <li role="presentation" data-bind="visible: allowDangerousActions, command: deleteWithoutMoveCommand"> <a href="#" tabindex="-1" data-icon="🗑" data-i18n="MESSAGE_LIST/BUTTON_DELETE_WITHOUT_MOVE"></a> </li> <li role="presentation" data-bind="visible: allowDangerousActions, click: clear"> <a href="#" tabindex="-1" data-icon="🔥" data-i18n="MESSAGE_LIST/BUTTON_EMPTY_FOLDER"></a> </li> </menu> </div> <div class="btn-group dropdown onCheckedHide" data-bind="visible: !sortSupported()"> <div id="no-sort-list" class="btn fontastic" data-i18n="[title]MESSAGE_LIST/NO_SORT">✖⬇</div> </div> <div class="btn-group dropdown onCheckedHide" data-bind="visible: sortSupported(), registerBootstrapDropdown: true"> <a id="sort-list-dropdown-id" class="btn dropdown-toggle fontastic" href="#" tabindex="-1" data-i18n="[title]MESSAGE_LIST/SORT" data-bind="text: sortText">⬇</a> <menu class="dropdown-menu" role="menu" aria-labelledby="sort-list-dropdown-id"> <li role="presentation" data-sort="" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="📅⬇" data-i18n="MESSAGE_LIST/SORT_DATE_DESC"></a> </li> <li role="presentation" data-sort="DATE" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="📅⬆" data-i18n="MESSAGE_LIST/SORT_DATE_ASC"></a> </li> <li class="dividerbar" role="presentation" data-sort="FROM" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="@⬇" data-i18n="MESSAGE_LIST/SORT_FROM_ASC"></a> </li> <li role="presentation" data-sort="REVERSE FROM" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="@⬆" data-i18n="MESSAGE_LIST/SORT_FROM_DESC"></a> </li> <li class="dividerbar" role="presentation" data-sort="REVERSE SIZE" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="✉⬇" data-i18n="MESSAGE_LIST/SORT_SIZE_DESC"></a> </li> <li role="presentation" data-sort="SIZE" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="✉⬆" data-i18n="MESSAGE_LIST/SORT_SIZE_ASC"></a> </li> <li class="dividerbar" role="presentation" data-sort="SUBJECT" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="𝐒⬇" data-i18n="MESSAGE_LIST/SORT_SUBJECT_ASC"></a> </li> <li role="presentation" data-sort="REVERSE SUBJECT" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="𝐒⬆" data-i18n="MESSAGE_LIST/SORT_SUBJECT_DESC"></a> </li> </menu> </div> </div> <div class="messageList g-ui-user-select-none" data-bind="css: {'hideMessageListCheckbox': !useCheckboxesInList() }"> <div class="second-toolbar thm-message-list-top-toolbar"> <i class="checkboxCheckAll fontastic" data-bind="text: checkAll() ? (isIncompleteChecked() ? '▣' : '☑') : '☐'"></i> <div class="search-input-wrp"> <input type="search" class="inputSearch" tabindex="-1" placeholder="Search" autocorrect="off" autocapitalize="off" data-i18n="[placeholder]GLOBAL/SEARCH" data-bind="textInput: inputSearch, hasfocus: focusSearch"> <a class="closeSearch" data-bind="click: cancelSearch, visible: messageListSearchDesc()">×</a> </div> <a class="btn buttonMoreSearch" data-bind="click: advancedSearchClick">▼</a> </div> <div class="b-content"> <div class="listThreadUidDesc" data-bind="visible: messageList.threadUid(), click: cancelThreadUid" data-icon="⬅" data-i18n="MESSAGE_LIST/BACK_TO_MESSAGE_LIST"></div> <div class="listSearchDesc" data-bind="visible: messageListSearchDesc(), text: messageListSearchDesc"></div> <div class="listDragOver" data-bind="css: {'viewAppendArea': dragOver() && !messageList.error() && !popupVisibility(), 'dragOverEnter': dragOverEnter }" data-icon="⬇" data-i18n="MESSAGE_LIST/PUT_MESSAGE_HERE"></div> <div class="listClear" data-bind="visible: clearListIsVisible()"> <a href="#" class="g-ui-link" data-i18n="MESSAGE_LIST/BUTTON_EMPTY_FOLDER" data-bind="click: clear"></a> </div> <div class="listError error" data-bind="visible: !dragOver() && messageList.error(), text: messageList.error"></div> <div class="listEmptyMessage" data-bind="visible: listEmptyMessage(), text: listEmptyMessage()"></div> <div class="listLoading" data-bind="visible: !dragOver() && !messageList().length && messageList.isLoading() && !messageList.error()"> <i class="icon-spinner"></i> <span data-i18n="GLOBAL/LOADING"></span> </div> <!-- ko if: listGrouped --> <div class="messageListPlace" data-bind="dragmessages: 1, i18nUpdate: groupedList, foreach: groupedList" draggable="true"> <div class="groupLabel" data-bind="text: label, click: $root.groupSearch" data-i18n="[title]GLOBAL/SEARCH"></div> <!-- ko foreach: messages --> <div class="messageListItem" data-bind="css: lineAsCss(), attr: {title: preview}"> <div class="messageCheckbox"> <div class="checkboxMessage fontastic" data-bind="text: checked() ? '☑' : '☐'"></div> </div><div> <div class="flagParent fontastic"></div> <div class="senderParent" data-bind="attr: {title: senderClearEmailsString}, text: senderEmailsString"></div> <div class="subjectParent" data-bind="text: subject"></div> <div class="threads-len" data-bind="visible: 1 < threadsLen(), text: threadsLenText(), attr: {'data-unseen': threadUnseenLen() || null}"></div> <div class="attachmentParent"> <i data-bind="css: attachmentIconClass"></i> </div> <div class="sizeParent" data-bind="text: friendlySize()"></div> <time data-bind="attr:{'data-time-format':$root.timeFormat()}, time: dateTimestamp"></time> </div> </div> <!-- /ko --> </div> <!-- /ko --> <!-- ko ifnot: listGrouped --> <div class="messageListPlace" data-bind="dragmessages: 1, foreach: messageList" draggable="true"> <div class="messageListItem" data-bind="css: lineAsCss(), attr:{title:preview}"> <div class="messageCheckbox"> <div class="checkboxMessage fontastic" data-bind="text: checked() ? '☑' : '☐'"></div> </div><div data-bind="attr:{style:indent()}, css:{reply:indent()}"> <div class="flagParent fontastic"></div> <div class="senderParent" data-bind="attr: {title: senderClearEmailsString}, text: senderEmailsString"></div> <div class="subjectParent" data-bind="text: subject"></div> <div class="threads-len" data-bind="visible: 1 < threadsLen(), text: threadsLenText(), attr: {'data-unseen': threadUnseenLen() || null}"></div> <div class="attachmentParent"> <i data-bind="css: attachmentIconClass"></i> </div> <div class="sizeParent" data-bind="text: friendlySize()"></div> <time data-time-format="AUTO" data-bind="time: dateTimestamp"></time> </div> </div> </div> <!-- /ko --> <div id="messagesDragImage"><span class="text"></span> <span class="fontastic">✉</span></div> </div> <div class="b-footer thm-message-list-bottom-toolbar"> <!-- ko if: userUsageProc() --> <span data-bind="attr: { title: quotaTooltip() }" class="e-quota"> <!-- ko text: userUsageProc --><!-- /ko -->% </span> <!-- /ko --> <!-- ko template: { name: 'Paginator', data: messageListPaginator } --><!-- /ko --> </div> </div> </template><template id="MailMessageView"><div class="top-toolbar g-ui-user-select-none btn-toolbar"> <div class="btn-group" data-i18n="[title]GLOBAL/CLOSE"> <a class="btn buttonClose fontastic" data-bind="click: closeMessage">✖</a> </div> <div class="btn-group" data-bind="visible: isDraftFolder()" data-i18n="[title]MESSAGE/BUTTON_EDIT"> <a class="btn btn-success buttonEdit fontastic" data-bind="command: editCommand">🖉</a> </div> <div class="btn-group"> <a class="btn fontastic" data-bind="visible: archiveAllowed, command: archiveCommand" data-i18n="[title]GLOBAL/TO_ARCHIVE">🗄</a> <a class="btn fontastic" data-bind="visible: canMarkAsSpam , command: spamCommand" data-i18n="[title]GLOBAL/TO_SPAM">⚠</a> <a class="btn" data-bind="visible: isSpamFolder, command: notSpamCommand" data-i18n="[title]GLOBAL/NOT_SPAM"> <i class="icon-check-mark-circle-two"></i> </a> <a class="btn fontastic" data-bind="visible: !canBeUndeleted(), command: deleteCommand" data-i18n="[title]GLOBAL/DELETE">🗑</a> <a class="btn fontastic" data-bind="visible: canBeUndeleted, command: undeleteCommand" data-i18n="[title]GLOBAL/UNDELETE"><div class="btn-rotate">🗑</div></a> </div> <div class="btn-group"> <a class="btn btn-thin buttonUp fontastic" data-bind="command: goUpCommand">❮</a> <a class="btn btn-thin buttonDown fontastic" data-bind="command: goDownCommand">❯</a> </div> </div> <div class="messageView"> <div class="b-message-view-backdrop" data-bind="visible: moveAction"> <div class="backdrop-message" data-icon="📁" data-i18n="MESSAGE/MESSAGE_VIEW_MOVE_DESC"></div> </div> <div class="b-message-view-checked-helper" data-bind="visible: !message() && '' === messageError() && hasCheckedMessages(), text: printableCheckedMessageCount()"></div> <div class="b-message-view-desc error" data-bind="visible: !message() && '' !== messageError() && !hasCheckedMessages(), text: messageError()"> </div> <div class="b-message-view-desc" data-i18n="MESSAGE/MESSAGE_VIEW_DESC" data-bind="visible: !message() && '' === messageError() && !hasCheckedMessages()"> </div> <div class="b-message" data-bind="visible: message, i18nUpdate: message, css: message()?.lineAsCss(0)"> <div class="message-fixed-button-toolbar"> <a class="btn btn-success buttonEdit fontastic hide-mobile" data-bind="visible: isDraftFolder(), command: editCommand">🖉</a> <div class="btn-group" style="margin-right: -8px; display: inline;"> <span data-bind="visible: canBeRepliedOrForwarded"> <a class="btn btn-thin btn-transparent buttonReply fontastic" data-bind="visible: 1 == msgDefaultAction(), command: replyCommand" data-i18n="[title]MESSAGE/BUTTON_REPLY">←</a> <a class="btn btn-thin btn-transparent buttonReplyAll fontastic" data-bind="visible: 2 == msgDefaultAction(), command: replyAllCommand" data-i18n="[title]MESSAGE/BUTTON_REPLY_ALL">↞</a> </span> <div class="btn-group" data-bind="registerBootstrapDropdown: true, initDom: actionsMenu" style="display: inline-block"> <a class="btn btn-thin btn-transparent dropdown-toggle fontastic" id="more-view-dropdown-id" href="#" tabindex="-1">☰</a> <menu class="dropdown-menu right-edge" role="menu" aria-labelledby="more-view-dropdown-id"> <div data-bind="visible: !isDraftFolder()"> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: replyCommand" data-icon="←" data-i18n="MESSAGE/BUTTON_REPLY"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: replyAllCommand" data-icon="↞" data-i18n="MESSAGE/BUTTON_REPLY_ALL"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: forwardCommand" data-icon="→" data-i18n="MESSAGE/BUTTON_FORWARD"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: forwardAsAttachmentCommand" data-icon="⥅" data-i18n="MESSAGE/BUTTON_FORWARD_AS_ATTACHMENT"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: editAsNewCommand" data-icon="🖉" data-i18n="MESSAGE/BUTTON_EDIT_AS_NEW"></a> </li> </div> <div class="dividerbar"> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: setUnseen" data-icon=" " data-i18n="MESSAGE_LIST/MENU_UNSET_SEEN"></a> </li> <li role="presentation" data-bind="visible: archiveAllowed"> <a href="#" tabindex="-1" data-bind="command: archiveCommand" data-icon="🗄" data-i18n="GLOBAL/TO_ARCHIVE"></a> </li> <li role="presentation" data-bind="visible: canMarkAsSpam"> <a href="#" tabindex="-1" data-bind="command: spamCommand" data-icon="⚠" data-i18n="GLOBAL/TO_SPAM"></a> </li> <li role="presentation" data-bind="visible: isSpamFolder"> <a href="#" tabindex="-1" data-bind="command: notSpamCommand"> <i class="icon-check-mark-circle-two"></i> <span data-i18n="GLOBAL/NOT_SPAM"></span> </a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: moveCommand" data-icon="📁" data-i18n="GLOBAL/MOVE_TO"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: copyCommand" data-icon="" data-i18n="GLOBAL/COPY_TO"></a> </li> <li role="presentation" data-bind="visible: !canBeUndeleted()"> <a href="#" tabindex="-1" data-bind="command: deleteCommand" data-icon="🗑" data-i18n="GLOBAL/DELETE"></a> </li> <li role="presentation" data-bind="visible: canBeUndeleted"> <a href="#" tabindex="-1" data-bind="command: undeleteCommand" data-icon="🗑" data-i18n="GLOBAL/UNDELETE" class="rotate"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: deleteWithoutMoveCommand" data-icon="🗑" data-i18n="MESSAGE_LIST/BUTTON_DELETE_WITHOUT_MOVE"></a> </li> <li class="dividerbar" role="presentation" data-bind="visible: firstUnsubsribeLink"> <a target="_blank" href="#" tabindex="-1" data-bind="attr: { href: firstUnsubsribeLink }" data-icon="✖" data-i18n="MESSAGE/BUTTON_UNSUBSCRIBE"></a> </li> </div> <div data-bind="with: message" class="dividerbar"> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: printMessage" data-icon="🖨" data-i18n="MESSAGE/MENU_PRINT"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: $root.toggleFullScreen"> <i data-bind="css: { 'icon-arrows-out': !$root.fullScreenMode(), 'icon-arrows-in': $root.fullScreenMode }"></i> <span data-i18n="SHORTCUTS_HELP/LABEL_FULLSCREEN_TOGGLE"></span> </a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: popupMessage" data-icon="⧉" data-i18n="MESSAGE/BUTTON_IN_NEW_WINDOW"></a> </li> <li role="presentation" data-bind="visible: html() && !isHtml()"> <a href="#" tabindex="-1" data-bind="click: viewHtml" data-icon="👁" data-i18n="MESSAGE/HTML_VIEW"></a> </li> <li role="presentation" data-bind="visible: isHtml()"> <a href="#" tabindex="-1" data-bind="click: viewPlain" data-icon="👁" data-i18n="MESSAGE/PLAIN_VIEW"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: swapColors" data-icon="🎨" data-i18n="MESSAGE/SWAP_COLORS"></a> </li> <li class="dividerbar" role="presentation"> <a target="_blank" href="#" tabindex="-1" data-bind="attr: { href: viewRaw() }"> <i class="icon-file-code"></i> <span data-i18n="MESSAGE/MENU_VIEW_ORIGINAL"></span> </a> </li> <li role="presentation"> <a target="_blank" href="#" tabindex="-1" data-bind="attr: { href: downloadLink() }" data-icon="📥" data-i18n="MESSAGE/MENU_DOWNLOAD_ORIGINAL"></a> </li> </div> </menu> </div> </div> </div> <div class="messageItemHeader" data-bind="if: message, i18nUpdate: message"> <div class="subjectParent"> <span class="infoParent g-ui-user-select-none fontastic" data-bind="click: toggleFullInfo">ℹ</span> <span class="flagParent g-ui-user-select-none flagOff fontastic" data-bind="text: message().isFlagged() ? '★' : '☆', css: {flagOn: message().isFlagged(), flagOff: !message().isFlagged()}"></span> <span class="subject" data-bind="text: message().subject"></span> <a href="#" class="close" data-bind="click: closeMessage" style="margin-top: -8px;">×</a> </div> <div class="informationShort"> <span class="from" data-bind="html: viewFromShort, attr:{ title: message().from }"></span> <i class="fontastic" data-bind="text: dkimIcon, css: dkimIconClass, attr:{ title: dkimTitle }"></i> </div> </div> <div id="messageItem"> <div class="messageItemHeader" data-bind="if: message, i18nUpdate: message"> <div data-bind="hidden: showFullInfo"> <time class="date" data-time-format="FULL" data-bind="visible: 0 < message().dateTimestamp(), time: message().dateTimestamp()"></time> <div class="informationShortWrp"> <div class="informationShort" data-bind="visible: message().to.length"> <span data-i18n="GLOBAL/TO"></span>: <span data-bind="text: message().to"></span> </div> <div class="informationShort" data-bind="visible: message().cc.length"> <span data-i18n="GLOBAL/CC"></span>: <span data-bind="text: message().cc"></span> </div> </div> <div class="informationShort" data-bind="visible: message().spamResult"> <span data-i18n="MESSAGE/SPAM_SCORE"></span>: <meter min="0" max="100" optimum="0" low="33" high="66" data-bind="value: message().spamScore, attr:{ title: message().spamStatus() }"></meter> </div> </div> <div class="informationFull" data-bind="visible: showFullInfo, with: message"> <table> <tbody><tr data-bind="visible: from.length"> <td data-i18n="GLOBAL/FROM"></td> <td data-bind="text: from"></td> </tr> <tr data-bind="visible: to.length"> <td data-i18n="GLOBAL/TO"></td> <td data-bind="text: to"></td> </tr> <tr data-bind="visible: cc.length"> <td data-i18n="GLOBAL/CC"></td> <td data-bind="text: cc"></td> </tr> <tr data-bind="visible: bcc.length"> <td data-i18n="GLOBAL/BCC"></td> <td data-bind="text: bcc"></td> </tr> <tr data-bind="visible: replyTo.length"> <td data-i18n="GLOBAL/REPLY_TO"></td> <td data-bind="text: replyTo"></td> </tr> <tr data-bind="visible: dateTimestamp"> <td data-i18n="MESSAGE/LABEL_DATE"></td> <td> <time data-time-format="FULL" data-bind="time: dateTimestamp"></time> (<time data-time-format="FROMNOW" data-bind="time: dateTimestamp"></time>) </td> </tr> <tr data-bind="visible: spamResult"> <td data-i18n="GLOBAL/SPAM"></td> <td data-bind="text: spamStatus()"></td> </tr> <tr data-bind="visible: friendlySize()"> <td data-i18n="POPUPS_FILTER/SELECT_FIELD_SIZE"></td> <td class="size" data-bind="text: friendlySize()"></td> </tr> </tbody></table> </div> <div class="hasVirus" data-bind="visible: message().hasVirus" data-i18n="MESSAGE/HAS_VIRUS_WARNING"></div> <!-- ko if: tagsAllowed --> <div class="messageTags"> <span data-i18n="MESSAGE/TAGS"></span>: <span class="messageAssignedTags" data-bind="html: tagsToHTML"></span> <div class="btn-group" data-bind="registerBootstrapDropdown: true" style="display: inline-block"> <a class="btn btn-thin btn-transparent dropdown-toggle fontastic" id="tags-dropdown-id" href="#" tabindex="-1">🏷</a> <menu class="dropdown-menu right-edge" role="menu" aria-labelledby="tags-dropdown-id"> <div data-bind="foreach: message().tagOptions()"> <li role="presentation"> <a href="#" tabindex="-1" data-icon="☐" data-bind="click: toggle, text: label, attr:{ title: value, class: css, 'data-icon': checked ? '☑' : '☐' }"></a> </li> </div> <li role="presentation" class="dividerbar"> <a href="#" tabindex="-1" data-icon="✚" data-bind="click: newTag" data-i18n="MESSAGE/NEW_TAG"></a> </li> </menu> </div> </div> <!-- /ko --> </div> <div tabindex="0" data-bind="hasfocus: messageDomFocused"> <div class="loading" data-bind="visible: messageLoadingThrottle"> <i class="icon-spinner"></i> <span data-i18n="GLOBAL/LOADING"></span> </div> <div data-bind="hidden: messageLoadingThrottle"> <div class="bodySubHeader" data-bind="if: message, i18nUpdate: message"> <div class="readReceipt" data-bind="visible: askReadReceipt, click: readReceipt" data-icon="✉" data-i18n="MESSAGE/BUTTON_NOTIFY_READ_RECEIPT"></div> <details class="attachmentsPlace" data-bind="visible: hasAttachments, css: {'selection-mode' : showAttachmentControls}, attr: { open: hasAttachments }"> <summary data-i18n="MESSAGE/PRINT_LABEL_ATTACHMENTS"></summary> <!-- ko ifnot: simpleAttachmentsList --> <ul class="attachmentList" data-bind="foreach: listAttachments"> <li class="attachmentItem" draggable="true" data-bind="event: { dragstart: eventDragStart }, attr: { title: fileName }, css: {checked: checked}"> <div class="attachmentIcon" data-bind="css: { hasPreview: hasPreview(), hasPreplay: hasPreplay(), isImage: isImage() }, attr: { style: thumbnailStyle() }"> <i class="hidePreview iconMain" data-bind="css: iconClass()"></i> <div class="showPreview"> <a data-bind="css: {attachmentImagePreview: isImage()}, attr: { title: fileName, href: linkPreviewMain() }" target="_blank"> <i class="iconMain" data-bind="visible: !hasThumbnail(), css: iconClass()"></i> <div class="iconPreview fontastic">👁</div> </a> </div> </div> <div class="attachmentNameParent"> <div class="attachmentName" data-bind="text: fileName"></div> <div class="attachmentSize" data-bind="text: friendlySize()"></div> </div> <div class="checkboxAttachment fontastic" data-bind="visible: download, text: checked() ? '☑' : '☐', click: toggleChecked"></div> </li> </ul> <!-- /ko --> <!-- ko if: simpleAttachmentsList --> <ul class="attachmentListSimple" data-bind="foreach: listAttachments"> <li class="attachmentItem" data-bind="attr: { title: fileName }, css: {checked: checked}"> <span class="attachmentName" data-bind="text: fileName"></span> <i class="checkboxAttachment fontastic" data-bind="visible: download, text: checked() ? '☑' : '☐', click: toggleChecked"></i> </li> </ul> <!-- /ko --> <i class="fontastic controls-handle" data-bind="visible: allowAttachmentControls, click: toggleAttachmentControls">⚙</i> <div class="attachmentsControls" data-bind="visible: showAttachmentControls"> <span data-bind="visible: downloadAsZipAllowed"> <i class="fontastic iconcolor-red" data-bind="visible: downloadAsZipError">✖</i> <i class="icon-file-archive" data-bind="visible: !downloadAsZipError(), css: {'icon-file-archive': !downloadAsZipLoading(), 'icon-spinner': downloadAsZipLoading()}"></i> <span class="g-ui-link" data-bind="click: downloadAsZip" data-i18n="MESSAGE/LINK_DOWNLOAD_AS_ZIP"></span> </span> </div> </details> <div class="btn-toolbar showImages" data-bind="visible: message().hasImages()"> <div class="btn" data-bind="click: showImages" data-icon="🖼" data-i18n="MESSAGE/BUTTON_SHOW_IMAGES"></div> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, visible: showWhitelistOptions" style="display: inline-block"> <a class="btn dropdown-toggle" id="whitelist-dropdown-id" data-icon="🖼" href="#" tabindex="-1"><span data-i18n="SETTINGS_GENERAL/IMAGES_WHITELIST"></span> ▼</a> <menu class="dropdown-menu" role="menu" aria-labelledby="whitelist-dropdown-id"> <!-- ko foreach: message().whitelistOptions() --> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: $root.whitelistText, text: $data"></a> </li> <!-- /ko --> </menu> </div> </div> <div class="btn-toolbar" data-bind="visible: message().hasTracking()"> <div class="btn" data-bind="visible: !nowTracking(), click: showTracking" data-icon="🔗" data-i18n="MESSAGE/ENABLE_TRACKING_LINKS"></div> <div class="alert" data-bind="visible: nowTracking" data-i18n="MESSAGE/TRACKING_ENABLED" style="margin:0"></div> </div> <div data-bind="visible: message().pgpEncrypted()"> <div class="crypto-control encrypted" data-bind="css: {success: message().pgpDecrypted()}"> <span data-icon="🔒" data-i18n="OPENPGP/ENCRYPTED_MESSAGE"></span> <button class="btn" data-bind="visible: pgpSupported, click: pgpDecrypt" data-i18n="CRYPTO/DECRYPT"></button> <div class="alert-error" data-icon="⚠" data-bind="visible: message().pgpEncrypted()?.error, text: message().pgpEncrypted()?.error"></div> </div> </div> <div data-bind="visible: message().pgpSigned()"> <div class="crypto-control signed" data-bind="css: {success: true === message().pgpSigned()?.success, error: false === message().pgpSigned()?.success}"> <span data-icon="✍" data-i18n="OPENPGP/SIGNED_MESSAGE"></span> <button class="btn" data-bind="visible: pgpSupported, click: pgpVerify" data-i18n="CRYPTO/VERIFY"></button> <div data-icon="⚠" data-bind="visible: message().pgpSigned()?.error, text: message().pgpSigned()?.error"></div> </div> </div> <div data-bind="visible: message().smimeEncrypted()"> <div class="crypto-control encrypted" data-bind="css: {success: message().smimeDecrypted()}"> <span data-icon="🔒" data-i18n="SMIME/ENCRYPTED_MESSAGE"></span> <button class="btn" data-bind="click: smimeDecrypt" data-i18n="CRYPTO/DECRYPT"></button> <div class="alert-error" data-icon="⚠" data-bind="visible: message().smimeEncrypted()?.error, text: message().smimeEncrypted()?.error"></div> </div> </div> <div data-bind="visible: message().smimeSigned()"> <div class="crypto-control signed" data-bind="css: {success: true === message().smimeSigned()?.success, error: false === message().smimeSigned()?.success}"> <span data-icon="✍" data-i18n="SMIME/SIGNED_MESSAGE"></span> <button class="btn" data-bind="click: smimeVerify" data-i18n="CRYPTO/VERIFY"></button> </div> </div> </div> <div class="bodyText" dir="auto"></div> </div> </div> </div> </div> </div> </template><template id="PopupsAccount"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_ADD_ACCOUNT"></h3> <h3 data-bind="visible: !isNew()" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_UPDATE_ACCOUNT"></h3> </header> <form id="accountform" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="alert" data-bind="visible: '' !== submitError()"> <a href="#" class="close" data-bind="click: hideError">×</a> <span data-bind="text: submitError"></span> <div data-bind="visible: submitErrorAdditional, text: submitErrorAdditional"></div> </div> <div class="control-group"> <label data-i18n="GLOBAL/EMAIL"></label> <strong style="margin-top: 5px;" data-bind="visible: !isNew(), text: email"></strong> <input name="email" type="text" class="input-xlarge" autofocus="" autocorrect="off" autocapitalize="off" data-bind="visible: isNew, textInput: email, attr: {required: isNew}"> </div> <div class="control-group"> <label data-i18n="GLOBAL/PASSWORD"></label> <input name="password" type="password" class="input-xlarge" autocomplete="new-password" autocorrect="off" autocapitalize="off" data-bind="value: password, attr: {required:isNew}"> </div> <div class="control-group"> <label data-i18n="GLOBAL/NAME"></label> <input name="name" type="text" class="input-xlarge" data-bind="value: name"> </div> </form> <footer> <button form="accountform" class="btn buttonAddAccount"> <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="GLOBAL/SAVE"></span> </button> </footer> </template><template id="PopupsAdvancedSearch"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="SEARCH/TITLE_ADV"></h3> </header> <form id="advancedsearchform" class="modal-body form-horizontal" action="#/" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div> <div class="control-group"> <label data-i18n="GLOBAL/FROM"></label> <input type="text" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: from"> </div> <div class="control-group"> <label data-i18n="GLOBAL/TO"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: to"> </div> <div class="control-group"> <label data-i18n="GLOBAL/SUBJECT"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: subject"> </div> <div class="control-group"> <label data-i18n="SEARCH/TEXT"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: text"> </div> <!-- ko if: showKeywords --> <div class="control-group"> <label data-i18n="SEARCH/KEYWORD"></label> <div data-bind="component: { name: 'Select', params: { options: keywords, value: keyword, optionsText: 'label', optionsValue: 'value' } }"></div> </div> <!-- /ko --> </div> <div> <div class="control-group"> <label data-i18n="SEARCH/DATE"></label> <div data-bind="component: { name: 'Select', params: { options: selectedDates, value: selectedDateValue, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <label data-i18n="SEARCH/REPLIED"></label> <div data-bind="component: { name: 'Select', params: { options: repliedOptions, value: repliedValue, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <!-- ko if: showMultisearch --> <div class="control-group"> <label data-i18n="SEARCH/SUBFOLDERS"></label> <div data-bind="component: { name: 'Select', params: { options: selectedTree, value: selectedTreeValue, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <!-- /ko --> <div class="control-group"> <label></label> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SEARCH/UNSEEN', value: unseen } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SEARCH/FLAGGED', value: starred } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SEARCH/HAS_ATTACHMENT', value: hasAttachment } }"></div> </div> </div> </div> </form> <footer> <button form="advancedsearchform" class="btn buttonAdvSearch" data-icon="🔎" data-i18n="GLOBAL/SEARCH"></button> </footer> </template><template id="PopupsCompose"><header class="g-ui-user-select-none" data-bind="css: {loading: saving() || sending()}"> <a class="btn" data-bind="command: sendCommand, tooltipErrorTip: sendErrorDesc, css: {'btn-success': sendButtonSuccess, 'btn-danger': sendError, 'btn-warning': sendSuccessButSaveError }"> <i data-bind="css: {'icon-paper-plane': !sending(), 'icon-spinner': sending()}"></i> <span class="hide-mobile" data-i18n="COMPOSE/BUTTON_SEND"></span> </a> <a class="btn button-save" data-bind="command: saveCommand, tooltipErrorTip: savedErrorDesc, css: {'btn-danger': savedError }"> <i class="fontastic" data-bind="css: {'icon-spinner': saving()}">💾</i> <span class="hide-mobile" data-i18n="GLOBAL/SAVE"></span> </a> <a class="btn btn-danger button-delete fontastic" data-bind="command: deleteCommand">🗑</a> <span class="saved-text hide-mobile" data-bind="text: savedTimeText"></span> <div class="pull-right"> <a class="btn hide-mobile" data-i18n="GLOBAL/BCC" data-bind="visible: !showBcc(), toggle: showBcc"></a> <a class="btn hide-mobile" data-i18n="GLOBAL/CC" data-bind="visible: !showCc(), toggle: showCc"></a> <a class="btn fontastic" data-bind="visible: allowContacts, command: contactsCommand" data-i18n="[title]GLOBAL/CONTACTS">📇</a> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true" style="display:inline-block;vertical-align:top"> <a class="btn dropdown-toggle fontastic">☰</a> <menu class="dropdown-menu right-edge" role="menu"> <li data-bind="toggle: showBcc"> <a> <i class="fontastic" data-bind="text: showBcc() ? '☑' : '☐'"></i> <span data-i18n="GLOBAL/BCC"></span> </a> </li> <li data-bind="toggle: showCc"> <a> <i class="fontastic" data-bind="text: showCc() ? '☑' : '☐'"></i> <span data-i18n="GLOBAL/CC"></span> </a> </li> <li data-bind="toggle: showReplyTo"> <a> <i class="fontastic" data-bind="text: showReplyTo() ? '☑' : '☐'"></i> <span data-i18n="GLOBAL/REPLY_TO"></span> </a> </li> <li data-bind="toggle: requestReadReceipt"> <a> <i class="fontastic" data-bind="text: requestReadReceipt() ? '☑' : '☐'"></i> <span data-i18n="COMPOSE/BUTTON_REQUEST_READ_RECEIPT"></span> </a> </li> <li data-bind="toggle: requestDsn"> <a> <i class="fontastic" data-bind="text: requestDsn() ? '☑' : '☐'"></i> <span data-i18n="COMPOSE/BUTTON_REQUEST_DSN"></span> </a> </li> <li data-bind="toggle: requireTLS"> <a> <i class="fontastic" data-bind="text: requireTLS() ? '☑' : '☐'"></i> <span data-i18n="COMPOSE/BUTTON_REQUIRE_TLS"></span> </a> </li> <li data-bind="toggle: markAsImportant"> <a> <i class="fontastic" data-bind="text: markAsImportant() ? '☑' : '☐'"></i> <span data-i18n="COMPOSE/BUTTON_MARK_AS_IMPORTANT"></span> </a> </li> <li data-bind="toggle: doSign, visible: canSign"> <a data-bind="attr:{title: signOptionsText}"> <i class="fontastic" data-bind="text: doSign() ? '☑' : '☐'"></i> <span data-icon="✍" data-i18n="CRYPTO/SIGN"></span> </a> </li> <li data-bind="toggle: doEncrypt, visible: canEncrypt"> <a data-bind="attr:{title: encryptOptionsText}"> <i class="fontastic" data-bind="text: doEncrypt() || 'mailvelope' == viewArea() ? '☑' : '☐'"></i> <span data-icon="🔒" data-i18n="CRYPTO/ENCRYPT"></span> </a> </li> </menu> </div> <a class="minimize-custom" data-bind="click: skipCommand" data-i18n="[title]COMPOSE/BUTTON_MINIMIZE"></a> <a class="close" data-bind="click: doClose" data-i18n="[title]GLOBAL/CANCEL">×</a> </div> </header> <div class="modal-body"> <div class="b-header g-ui-user-select-none"> <table> <tbody><tr> <td data-i18n="GLOBAL/FROM"></td> <td> <!-- ko if: allowIdentities --> <input type="text" data-bind="textInput: from" style="width:calc(100% - 2em)"> <!-- /ko --> <span class="e-identity" data-bind="hidden: allowIdentities, text: from"></span> <!-- ko if: 1 < identitiesOptions().length --> <div class="dropdown" style="display:inline-block" data-bind="registerBootstrapDropdown: true, initDom: identitiesMenu"> <a class="dropdown-toggle" href="#" tabindex="-1" id="identity-toggle" role="button"></a> <menu class="dropdown-menu right-edge" role="menu" aria-labelledby="identity-toggle" data-bind="foreach: identitiesOptions"> <li role="presentation"> <a tabindex="-1" href="#" data-bind="click: function (oIdentity) { $root.selectIdentity(oIdentity); return true; }, text: optText"></a> </li> </menu> </div> <!-- /ko --> </td> </tr> <tr> <td> <label data-bind="css: {'error-to': emptyToError}, tooltipErrorTip: emptyToErrorTooltip" data-i18n="GLOBAL/TO"></label> </td> <td> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: to, autoCompleteSource: emailsSource"> </td> </tr> <tr class="cc-row" data-bind="visible: showCc"> <td data-i18n="GLOBAL/CC"></td> <td> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: cc, autoCompleteSource: emailsSource"> </td> </tr> <tr class="bcc-row" data-bind="visible: showBcc"> <td data-i18n="GLOBAL/BCC"></td> <td> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: bcc, autoCompleteSource: emailsSource"> </td> </tr> <tr class="reply-to-row" data-bind="visible: showReplyTo"> <td data-i18n="GLOBAL/REPLY_TO"></td> <td> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: replyTo"> </td> </tr> <tr> <td data-i18n="GLOBAL/SUBJECT"></td> <td> <input type="text" name="subject" autocomplete="off" data-bind="textInput: subject, attr:{spellcheck:allowSpellcheck()?'true':'false'}"> </td> </tr> </tbody></table> <div style="display:flex"> <div class="btn-group" style="flex-grow:1"></div> <div class="btn-group"> <a class="btn fontastic" data-bind="toggle: doSign, visible: canSign, css: {'btn-success': doSign()}" data-i18n="[title]CRYPTO/SIGN"> ✍ </a> <a class="btn fontastic" data-bind="toggle: doEncrypt, visible: canEncrypt, css: {'btn-success': doEncrypt() || 'mailvelope' == viewArea()}" data-i18n="[title]CRYPTO/ENCRYPT"> 🔒 </a> </div> <div class="btn-group"> <a class="btn fontastic" style="padding-left: 10px; padding-right: 10px;" id="composeUploadButton" data-bind="visible: addAttachmentEnabled()" data-i18n="[title]COMPOSE/ATTACH_FILES"> ⁺📎 </a> </div> </div> </div> <div class="tabs"> <input type="radio" name="tabs" value="body" id="tab-body" data-bind="checked: viewArea"> <label for="tab-body" role="tab" aria-selected="true" aria-controls="panel1" tabindex="0"> <i class="icon-file-text"></i> <span data-i18n="GLOBAL/TEXT"></span> </label> <div class="tab-content" role="tabpanel" aria-hidden="false" style="grid-column-end:4"> <div class="textAreaParent" data-bind="initDom: editorArea, attr:{spellcheck:allowSpellcheck()?'true':'false'}"></div> </div> <input type="radio" name="tabs" value="attachments" id="tab-attachments" data-bind="checked: viewArea"> <label for="tab-attachments" role="tab" aria-selected="false" aria-controls="panel2" tabindex="0" data-bind=" css: { 'btn-danger': attachmentsInErrorCount() }, tooltipErrorTip: attachmentsErrorTooltip"> <b data-bind="visible: attachmentsCount, text: attachmentsCount"></b> <i data-bind="css: { 'icon-attachment': !attachmentsInProcessCount(), 'icon-spinner': attachmentsInProcessCount()}"></i> <span data-i18n="GLOBAL/ATTACHMENTS"></span> </label> <div class="tab-content attachmentAreaParent" role="tabpanel" aria-hidden="true" style="grid-column-end:4"> <div class="b-attachment-place" data-bind="visible: addAttachmentEnabled() && dragAndDropVisible(), css: {dragAndDropOver: dragAndDropOver}" data-i18n="COMPOSE/ATTACH_DROP_FILES_DESC"></div> <ul class="attachmentList" data-bind="foreach: attachments"> <li class="attachmentItem" data-bind="attr: { title: title }, css: { waiting: waiting, error: '' !== error() }"> <div class="attachmentIcon"> <i class="iconMain" data-bind="css: iconClass, visible: !uploading() || 0 === progress()"></i> <div class="iconProgress" data-bind="attr: { style: progressStyle }, visible: uploading"></div> <div class="iconBG" data-bind="text: progressText, visible: uploading"></div> </div> <div class="attachmentNameParent"> <a href="#" class="close pull-right" style="margin-top:-4px;" data-bind="click: cancel">×</a> <div class="attachmentName" data-bind="text: fileName"></div> <span class="attachmentSize" data-bind="text: friendlySize"></span> </div> </li> </ul> <div class="no-attachments-desc" data-bind="visible: 0 === attachments().length" data-i18n="COMPOSE/NO_ATTACHMENTS_HERE_DESC"></div> </div> <input type="radio" name="tabs" value="mailvelope" id="tab-mailvelope" data-bind="checked: viewArea"> <label for="tab-mailvelope" role="tab" aria-selected="false" aria-controls="panel3" tabindex="0" data-bind="visible: canMailvelope"> <i class="mailvelope-icon"></i> <span>Mailvelope</span> </label> <div class="tab-content textAreaParent" id="mailvelope-editor" role="tabpanel" aria-hidden="true" style="grid-column-end:4" data-bind="visible: canMailvelope"></div> </div> </div> </template><template id="PopupsContacts"><header class="b-header-toolbar g-ui-user-select-none"> <a href="#" class="close" data-bind="click: tryToClose">×</a> <div class="btn-toolbar"> <a class="btn" data-bind="click: newContact" data-icon="✚" data-i18n="CONTACTS/BUTTON_ADD_CONTACT"></a> <a class="btn btn-success fontastic" data-bind="command: newMessageCommand">✉</a> <a class="btn fontastic" data-bind="command: deleteCommand">🗑</a> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, visible: !contacts.importing() && !contacts.syncing()"> <a id="contacts-more-dropdown-id" class="btn dropdown-toggle fontastic" href="#">☰</a> <menu class="dropdown-menu right-edge" role="menu" aria-labelledby="contacts-more-dropdown-id"> <li role="presentation"> <a href="#" data-bind="initDom: importButton"> <i data-bind="css: {'icon-import': !contacts.importing(), 'icon-spinner': contacts.importing}"></i> <span data-i18n="CONTACTS/BUTTON_IMPORT"></span> </a> </li> <li class="dividerbar" role="presentation"> <a href="#" data-bind="click: exportCsv"> <i class="icon-export"></i> <span data-i18n="CONTACTS/BUTTON_EXPORT_CSV"></span> </a> </li> <li role="presentation"> <a href="#" data-bind="click: exportVcf"> <i class="icon-export"></i> <span data-i18n="CONTACTS/BUTTON_EXPORT_VCARD"></span> </a> </li> <li class="dividerbar" role="presentation" data-bind="visible: contactsSyncEnabled"> <a href="#" data-bind="command: syncCommand"> <i class="fontastic" data-bind="css: {'icon-spinner': contacts.syncing}">⇆</i> <span data-i18n="CONTACTS/BUTTON_SYNC"></span> </a> </li> </menu> </div> <span data-bind="visible: contacts.importing() || contacts.syncing()" class="btn"><i class="icon-spinner"></i></span> </div> </header> <div class="modal-body"> <div class="left"> <div class="b-list-toolbar"> <input type="search" class="e-search" placeholder="Search" autofocus="" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]GLOBAL/SEARCH" data-bind="value: search"> </div> <div class="b-list-content g-ui-user-select-none" data-bind="css: {'hideContactListCheckbox': !useCheckboxesInList()}"> <div class="content"> <div class="listClear" data-bind="visible: !!search()"> <span class="g-ui-link" data-i18n="CONTACTS/CLEAR_SEARCH" data-bind="click: clearSearch"></span> </div> <div class="listEmptyList" data-bind="visible: 0 === contacts().length && '' === search() && !contacts.loading()" data-i18n="CONTACTS/EMPTY_LIST"></div> <div class="listEmptyListLoading" data-bind="visible: 0 === contacts().length && '' === search() && contacts.loading()"> <i class="icon-spinner"></i> <span data-i18n="GLOBAL/LOADING"></span> </div> <div class="listEmptySearchList" data-bind="visible: 0 === contacts().length && '' !== search() && !contacts.loading()" data-i18n="CONTACTS/EMPTY_SEARCH"></div> <div class="e-contact-foreach g-ui-user-select-none" data-bind="foreach: contacts, visible: contacts().length"> <div class="e-contact-item g-ui-user-select-none" data-bind="css: lineAsCss()"> <div class="checkboxItem fontastic" data-bind="text: checked() ? '☑' : '☐'"></div> <div class="nameParent" data-bind="text: display"></div> </div> </div> </div> </div> <div class="b-list-footer-toolbar"> <div class="footer-pager"> <!-- ko template: { name: 'Paginator', data: contactsPaginator } --><!-- /ko --> </div> </div> </div> <div class="right"> <form class="b-view-content" spellcheck="false" data-bind="css: {'read-only': contact() && contact().readOnly()}"> <div class="b-contact-view-desc" data-bind="visible: !contact()" data-i18n="CONTACTS/CONTACT_VIEW_DESC"></div> <div class="tabs" data-bind="visible: contact, i18nUpdate: contact"> <!-- ko with: contact --> <input type="radio" name="contacttabs" id="tab-contact" checked=""> <label for="tab-contact" role="tab" aria-selected="true" aria-controls="panel1" tabindex="0" data-i18n="CONTACTS/TAB_CONTACT"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label class="fontastic iconsize24">👤</label> <div> <div class="property-line" data-i18n="[title]CONTACTS/FIRST_NAME"> <span data-bind="text: givenName"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: givenName" data-i18n="[placeholder]CONTACTS/FIRST_NAME"> </div> <div class="property-line" data-i18n="[title]CONTACTS/LAST_NAME"> <span data-bind="text: surName"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: surName" data-i18n="[placeholder]CONTACTS/LAST_NAME"> </div> <div class="property-line" data-i18n="[title]CONTACTS/MIDDLE_NAME"> <span data-bind="text: middleName"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: middleName" data-i18n="[placeholder]CONTACTS/MIDDLE_NAME"> </div> <div class="property-line" data-i18n="[title]CONTACTS/NAME_PREFIX"> <span data-bind="text: namePrefix"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: namePrefix" data-i18n="[placeholder]CONTACTS/NAME_PREFIX"> </div> <div class="property-line" data-i18n="[title]CONTACTS/NAME_SUFFIX"> <span data-bind="text: nameSuffix"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: nameSuffix" data-i18n="[placeholder]CONTACTS/NAME_SUFFIX"> </div> <div class="property-line" data-bind="visible: null != nickname()" data-i18n="[title]CONTACTS/ADD_MENU_NICKNAME"> <span data-bind="text: nickname"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: nickname" data-i18n="[placeholder]CONTACTS/NICK_NAME"> </div> </div> </div> <div class="control-group"> <label class="fontastic iconsize24" data-i18n="[title]GLOBAL/EMAIL">@</label> <div> <label class="e-component e-checkbox material-design"> <div> <input type="checkbox" data-bind="checked: sendToAll"> <div role="checkbox"></div> </div> <span data-i18n="CONTACTS/SEND_TO_ALL_CONTACT_EMAILS"></span> </label> <div data-bind="foreach: email"> <div class="property-line"> <span data-bind="text: value"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: value"> </div> </div> <a href="#" class="btn fontastic" data-bind="visible: !readOnly(), click: addEmail">✚</a> </div> </div> <div class="control-group" data-bind="visible: tel().length"> <label class="fontastic iconsize24" data-i18n="[title]CONTACTS/ADD_MENU_PHONE">📞</label> <div> <div data-bind="foreach: tel"> <div class="property-line"> <span data-bind="text: value"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: value"> </div> </div> <a href="#" class="btn fontastic" data-bind="visible: !readOnly(), click: addTel">✚</a> </div> </div> <div class="control-group" data-bind="visible: url().length"> <label class="fontastic iconsize24" data-i18n="[title]CONTACTS/ADD_MENU_URL">🌍</label> <div> <div data-bind="foreach: url"> <div class="property-line"> <span data-bind="text: value"></span> <input type="text" placeholder="https://" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: value"> </div> </div> <a href="#" class="btn fontastic" data-bind="visible: !readOnly(), click: addUrl">✚</a> </div> </div> <div class="control-group" data-bind="visible: null != note()"> <label class="fontastic iconsize24" data-i18n="[title]CONTACTS/ADD_MENU_NOTE">🖉</label> <div class="property-line"> <span data-bind="text: note"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: note"> </div> </div> </div> <!-- <input type="radio" name="contacttabs" id="tab-contact-locations"> <label for="tab-contact-locations" role="tab" aria-selected="false" aria-controls="panel2" tabindex="0" data-i18n="CONTACTS/TAB_LOCATIONS"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div data-bind="foreach: adr"> <div class="control-group"> <div data-bind="text: type"></div> <div data-bind="text: street"></div> <div data-bind="text: street_ext"></div> <div data-bind="text: locality"></div> <div data-bind="text: region"></div> <div data-bind="text: postcode"></div> <div data-bind="text: pobox"></div> <div data-bind="text: country"></div> <div data-bind="text: preferred"></div> </div> </div> </div> --> <input type="radio" name="contacttabs" id="tab-contact-business"> <label for="tab-contact-business" role="tab" aria-selected="false" aria-controls="panel3" tabindex="0" data-i18n="CONTACTS/TAB_BUSINESS"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label data-i18n="CONTACTS/LABEL_ORGANIZATION"></label> <span data-bind="text: org"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: org"> </div> <div class="control-group"> <label data-i18n="CONTACTS/LABEL_DEPARTMENT"></label> <span data-bind="text: department"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: department"> </div> <div class="control-group"> <label data-i18n="CONTACTS/LABEL_TITLE"></label> <span data-bind="text: title"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: title"> </div> </div> <input type="radio" name="contacttabs" id="tab-contact-crypto"> <label for="tab-contact-crypto" role="tab" aria-selected="false" aria-controls="panel4" tabindex="0" data-i18n="CONTACTS/TAB_CRYPTO"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label data-i18n="CRYPTO/SIGN"></label> <select name="x-crypto[signpref]" data-bind="value: signpref"> <option value="Ask" data-i18n="CONTACTS/ASK"></option> <option value="Never" data-i18n="CONTACTS/NEVER"></option> <option value="Always" data-i18n="CONTACTS/ALWAYS"></option> <option value="IfPossible" data-i18n="CONTACTS/ALWAYS_IF_POSSIBLE"></option> </select> </div> <div class="control-group"> <label data-i18n="CRYPTO/ENCRYPT"></label> <select name="x-crypto[encryptpref]" data-bind="value: encryptpref"> <option value="Ask" data-i18n="CONTACTS/ASK"></option> <option value="Never" data-i18n="CONTACTS/NEVER"></option> <option value="Always" data-i18n="CONTACTS/ALWAYS"></option> <option value="IfPossible" data-i18n="CONTACTS/ALWAYS_IF_POSSIBLE"></option> </select> </div> </div> <!-- /ko --> </div> </form> <div class="b-view-content-toolbar btn-toolbar" data-bind="i18nUpdate: contact"> <!-- ko with: contact --> <div class="btn-group"> <button class="btn button-save-contact" data-bind="visible: !readOnly(), command: $root.saveCommand"> <i data-bind="css: {'icon-ok': !$root.isSaving(), 'icon-spinner': $root.isSaving()}"></i> <span data-i18n="CONTACTS/BUTTON_CREATE_CONTACT" data-bind="visible: !id()"></span> <span data-i18n="GLOBAL/SAVE" data-bind="visible: id"></span> </button> </div> <div class="btn-group dropdown" data-bind="visible: !readOnly(), registerBootstrapDropdown: true"> <a id="button-add-prop-dropdown-id" href="#" class="btn dropdown-toggle" data-i18n="CONTACTS/ADD_MENU_LABEL"></a> <menu class="dropdown-menu right-edge" style="text-align: left" role="menu" aria-labelledby="button-add-prop-dropdown-id"> <li role="presentation" data-bind="visible: null == nickname()"> <a href="#" data-bind="click: addNickname"> <i class="icon-none"></i> <span data-i18n="CONTACTS/ADD_MENU_NICKNAME"></span> </a> </li> <li role="presentation"> <a href="#" data-bind="click: addEmail"> <i class="fontastic">@</i> <span data-i18n="GLOBAL/EMAIL"></span> </a> </li> <li role="presentation"> <a href="#" data-bind="click: addTel"> <i class="fontastic">📞</i> <span data-i18n="CONTACTS/ADD_MENU_PHONE"></span> </a> </li> <li role="presentation"> <a href="#" data-bind="click: addUrl"> <i class="fontastic">🌍</i> <span data-i18n="CONTACTS/ADD_MENU_URL"></span> </a> </li> <li role="presentation" data-bind="visible: null == note()"> <a href="#" data-bind="click: addNote"> <i class="fontastic">🖉</i> <span data-i18n="CONTACTS/ADD_MENU_NOTE"></span> </a> </li> <!-- <li class="dividerbar" role="presentation"> <a href="#" data-bind="click: addNewAddress"> <span data-i18n="CONTACTS/ADD_MENU_ADDRESS"></span> </a> </li>--> </menu> </div> <!-- <div class="read-only-sign fontastic iconsize24" data-bind="visible: readOnly" data-i18n="[title]CONTACTS/LABEL_READ_ONLY">🔒</div> --> <!-- /ko --> </div> </div> </div> </template><template id="PopupsFilter"><header> <a href="#" class="close" data-bind="click: close">×</a> <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> </header> <form id="sieve-script-filter" class="modal-body" spellcheck="false" data-bind="submit: saveFilter, with: filter"> <div class="control-group" data-bind="css: {'error': nameError}"> <input type="text" class="span5" data-bind="value: name" autofocus="" autocorrect="off" autocapitalize="off" data-i18n="[placeholder]GLOBAL/NAME"> </div> <div class="legend" data-i18n="POPUPS_FILTER/LEGEND_CONDITIONS"></div> <div class="control-group" 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="foreach: conditions"> <div class="control-group" data-bind="css: {'error': valueError}" style="display:flex"> <div style="flex-grow:1" data-bind="css: {'error': valueError}, template: {name: template(), data: $data}"></div> <span class="delete-action button-delete fontastic" style="margin-top: 5px;" data-bind="click: function (oCondition) { $root.removeCondition(oCondition); }">🗑</span> </div> </div> <div class="control-group" data-bind="visible: 0 === conditions().length" data-i18n="POPUPS_FILTER/ALL_INCOMING_MESSAGES_DESC"></div> <div class="control-group"> <a class="btn" data-bind="click: addCondition" data-icon="✚" data-i18n="POPUPS_FILTER/BUTTON_ADD_CONDITION"></a> </div> <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> </form> <footer> <button class="btn buttonSave" form="sieve-script-filter" data-icon="✔" data-i18n="GLOBAL/DONE"></button> </footer> </template><template id="PopupsFolder"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-bind="text: folder()?.fullName"></h3> </header> <form id="folderform" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="control-group" data-bind="if: editing"> <label data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label> <select name="parent" data-bind="options: parentFolderSelectList, value: parentFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> </div> <div class="control-group" data-bind="if: editing"> <label data-i18n="GLOBAL/NAME"></label> <input name="folder" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" required="" data-bind="textInput: name"> </div> <div data-bind="with: folder"> <!-- ko if: canBeSubscribed --> <div class="control-group"> <label class="fontastic">👁</label> <div data-bind="component: { name: 'Checkbox', params: { name: 'subscribe', label: 'SETTINGS_FOLDERS/BUTTON_SUBSCRIBE', value: isSubscribed } }"></div> </div> <!-- /ko --> <div class="control-group"> <label data-i18n="POPUPS_FILTER/SELECT_FIELD_SIZE"></label> <span data-bind="text: friendlySize"></span> </div> <div class="control-group"> <label data-i18n="MESSAGE_LIST/MENU_SELECT_UNSEEN"></label> <span data-bind="text: unreadEmails"></span> / <span style="margin:0" data-bind="text: totalEmails"></span> </div> <!-- ko if: $root.displaySpecSetting() && canBeSelected() && isSubscribed() --> <div class="control-group"> <label class="icon-check-mark-circle-two"></label> <div data-bind="component: { name: 'Checkbox', params: { name: 'checkable', label: 'SETTINGS_FOLDERS/HELP_CHECK_FOR_NEW_MESSAGES', value: checkable } }"></div> </div> <!-- /ko --> <!-- ko if: $root.showKolab --> <div class="control-group"> <label>Kolab</label> <select data-bind="options: $root.kolabTypeOptions, value: kolabType, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <!-- /ko --> </div> <div class="control-group" data-bind="if: ACLAllowed"> <label>ACL</label> <div> <table class="table table-hover" style="width:auto"><tbody> <!-- ko foreach: folder()?.ACL --> <tr> <td data-bind="text: identifier"></td> <td> <button class="btn fontastic" data-bind="visible: mine, click: $root.editACL">👁</button> <button class="btn fontastic" data-bind="visible: !mine(), click: $root.editACL">🖉</button> <button class="btn fontastic" data-bind="visible: !mine(), click: $root.deleteACL">🗑</button> </td> </tr> <!-- /ko --> <tr data-bind="visible: adminACL"><td></td><td> <button class="btn fontastic" data-bind="click: createACL">✚</button> </td></tr> </tbody></table> </div> </div> </form> <footer> <button form="folderform" class="btn"> <i class="icon-folder-add"></i> <span data-i18n="GLOBAL/SAVE"></span> </button> </footer> </template><template id="PopupsFolderACL"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3>ACL: <span data-bind="text: folderName"></span></h3> </header> <form id="folderaclform" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="control-group"> <label data-i18n="GLOBAL/EMAIL"></label> <input name="identifier" class="input-xlarge" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="visible: create, value: identifier" required=""> <span data-bind="visible: !create(), text: identifier"></span> </div> <div class="control-group"> <label data-i18n="IMAP/ACL_RIGHTS"></label> <table class="table table-hover table-bordered" style="width:auto"><tbody> <tr title="SETACL/DELETEACL/GETACL/LISTRIGHTS"> <td data-i18n="IMAP/ACL_A"></td> <td><input type="checkbox" value="a" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="SELECT the mailbox, perform STATUS"> <td data-i18n="IMAP/ACL_R"></td> <td><input type="checkbox" value="r" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="Mailbox is visible to LIST/LSUB commands, SUBSCRIBE mailbox"> <td data-i18n="IMAP/ACL_L"></td> <td><input type="checkbox" value="l" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="perform APPEND, COPY into mailbox"> <td data-i18n="IMAP/ACL_I"></td> <td><input type="checkbox" value="i" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="set or clear \SEEN flag via STORE, also set \SEEN during APPEND/COPY/FETCH BODY[...]"> <td data-i18n="IMAP/ACL_S"></td> <td><input type="checkbox" value="s" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="set or clear \DELETED flag via STORE, set \DELETED flag during APPEND/COPY"> <td data-i18n="IMAP/ACL_T"></td> <td><input type="checkbox" value="t" data-bind="checked: rights, disable: mine"></td> </tr> <!-- <tr title="STORE DELETED flag, perform EXPUNGE"> <td data-i18n="IMAP/ACL_T">Old</td> <td><input type="checkbox" value="d" data-bind="checked: rights, disable: mine"></td> </tr> --> <tr title="set or clear flags other than \SEEN and \DELETED via STORE, also set them during APPEND/COPY"> <td data-i18n="IMAP/ACL_W"></td> <td><input type="checkbox" value="w" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="send mail to submission address for mailbox, not enforced by IMAP4 itself"> <td data-i18n="IMAP/ACL_P"></td> <td><input type="checkbox" value="p" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="CREATE new sub-mailboxes in any implementation-defined hierarchy, parent mailbox for the new mailbox name in RENAME"> <td data-i18n="IMAP/ACL_K"></td> <td><input type="checkbox" value="k" data-bind="checked: rights, disable: mine"></td> </tr> <!-- <tr title="CREATE new sub-mailboxes in any implementation-defined hierarchy"> <td data-i18n="IMAP/ACL_K">Old</td> <td><input type="checkbox" value="c" data-bind="checked: rights, disable: mine"></td> </tr> --> <tr title="DELETE mailbox, old mailbox name in RENAME"> <td data-i18n="IMAP/ACL_X"></td> <td><input type="checkbox" value="x" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="perform EXPUNGE and expunge as a part of CLOSE"> <td data-i18n="IMAP/ACL_E"></td> <td><input type="checkbox" value="e" data-bind="checked: rights, disable: mine"></td> </tr> </tbody></table> </div> </form> <footer> <button data-bind="visible: mine" form="folderaclform" class="btn" data-i18n="GLOBAL/CLOSE"></button> <button data-bind="visible: !mine()" form="folderaclform" class="btn" data-i18n="GLOBAL/SAVE"></button> </footer> </template><template id="PopupsFolderClear"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEAR_FOLDER" data-bind="hidden: clearing"></h3> <h3 data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEARING_PROCESS" data-bind="visible: clearing"></h3> </header> <div class="modal-body"> <i class="fontastic" style="color:red">⚠</i> <strong data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></strong> <p data-bind="html: dangerDescHtml"></p> <span data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_2"></span> </div> <footer> <a class="btn btn-danger" data-bind="command: clearCommand"> <i class="fontastic" data-bind="css: {'icon-spinner white': clearing}">🔥</i> <span data-i18n="GLOBAL/CLEAR"></span> </a> </footer> </template><template id="PopupsFolderCreate"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3> </header> <form id="createfolderform" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="control-group"> <label data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label> <select name="parent" data-bind="options: parentFolderSelectList, value: parentFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-i18n="GLOBAL/NAME"></label> <input name="folder" type="text" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" required="" pattern="^[^\\/]+$" data-bind="textInput: name"> </div> <div class="control-group" data-bind="component: { name: 'Checkbox', params: { name: 'subscribe', label: 'SETTINGS_FOLDERS/BUTTON_SUBSCRIBE', value: subscribe } }"></div> </form> <footer> <button form="createfolderform" class="btn buttonCreate"> <i class="icon-folder-add"></i> <span data-i18n="POPUPS_CREATE_FOLDER/BUTTON_CREATE"></span> </button> </footer> </template><template id="PopupsFolderSystem"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="POPUPS_SYSTEM_FOLDERS/TITLE_SYSTEM_FOLDERS"></h3> </header> <div class="modal-body"> <div class="form-horizontal"> <div class="alert" data-bind="visible: '' !== notification()"></div> <div class="control-group"> <label data-icon="📧" data-i18n="FOLDER_LIST/SENT_NAME"></label> <select data-bind="options: folderSelectList, value: sentFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-icon="🗎" data-i18n="FOLDER_LIST/DRAFTS_NAME"></label> <select data-bind="options: folderSelectList, value: draftsFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-icon="⚠" data-i18n="GLOBAL/SPAM"></label> <select data-bind="options: folderSelectList, value: spamFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-icon="🗑" data-i18n="FOLDER_LIST/TRASH_NAME"></label> <select data-bind="options: folderSelectList, value: trashFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-icon="🗄" data-i18n="FOLDER_LIST/ARCHIVE_NAME"></label> <select data-bind="options: folderSelectList, value: archiveFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> </div> </div> </template><template id="PopupsIdentity"><header class="g-ui-user-select-none"> <a href="#" class="close" data-bind="click: tryToClose">×</a> <h3 data-bind="visible: !edit()" data-i18n="POPUPS_IDENTITY/TITLE_ADD_IDENTITY"></h3> <h3 data-bind="visible: edit" data-i18n="POPUPS_IDENTITY/TITLE_UPDATE_IDENTITY"></h3> </header> <form id="identityform" class="modal-body" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="alert" data-bind="visible: '' !== submitError()"> <a href="#" class="close" data-bind="click: function () { submitError('') }">×</a> <span data-bind="text: submitError"></span> </div> <div class="tabs" data-bind="with: identity"> <input type="radio" name="identitytabs" id="tab-identity" checked=""> <label data-i18n="SETTINGS_LABELS/GENERAL" for="tab-identity" role="tab" aria-selected="true" aria-controls="panel1" tabindex="0"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label data-i18n="GLOBAL/NAME"></label> <input name="Name" type="text" class="input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: name, hasfocus: $root.nameFocused"> </div> <div class="control-group"> <label data-i18n="GLOBAL/EMAIL"></label> <div> <div class="textEmail" data-bind="text: email, visible: !id()"></div> <input name="Email" type="email" class="input-xlarge" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="visible: id, value: email, attr: {required: id}"> </div> </div> <div class="control-group"> <label data-i18n="POPUPS_IDENTITY/LABEL"></label> <div> <input name="Label" type="text" class="input-xlarge" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: label, hasfocus: $root.labelFocused"> </div> </div> </div> <input type="radio" name="identitytabs" id="tab-identity-signature"> <label data-i18n="POPUPS_IDENTITY/SIGNATURE" for="tab-identity-signature" role="tab" aria-selected="false" aria-controls="panel2" tabindex="0"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="e-signature-place" data-bind="editor: signature"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_IDENTITY/LABEL_SIGNATURE_INSERT_BEFORE', value: signatureInsertBefore, name: 'SignatureInsertBefore' } }"></div> </div> <input type="radio" name="identitytabs" id="tab-identity-crypto"> <label data-i18n="CONTACTS/TAB_CRYPTO" for="tab-identity-crypto" role="tab" aria-selected="false" aria-controls="panel3" tabindex="0"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'CRYPTO/SIGN', value: pgpSign, name: 'pgpSign' } }"></div> </div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'CRYPTO/ENCRYPT', value: pgpEncrypt, name: 'pgpEncrypt' } }"></div> </div> <!-- <div class="control-group"> <label data-i18n="CRYPTO/ENCRYPT"></label> <select name="PgpEncrypt" data-bind="value: pgpEncrypt"> <option value="Ask" data-i18n="CONTACTS/ASK"></option> <option value="Never" data-i18n="CONTACTS/NEVER"></option> <option value="Always" data-i18n="CONTACTS/ALWAYS"></option> <option value="IfPossible" data-i18n="CONTACTS/ALWAYS_IF_POSSIBLE"></option> </select> </div> --> <details> <summary><strong>S/MIME</strong></summary> <div class="control-group" data-bind="css: {'error': smimeKey() && !smimeKeyValid()}"> <label data-i18n="CRYPTO/PRIVATE_KEY"></label> <textarea name="smimeKey" class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: smimeKey"></textarea> </div> <!-- <div class="control-group" data-bind="visible:smimeKeyValid() && !smimeKeyEncrypted()"> --> <div class="control-group" data-bind="visible:smimeKeyValid"> <label></label> <button type="button" data-bind="click: $root.setSMimeKeyPass" data-i18n="CRYPTO/CHANGE_PASS"></button> </div> <div class="control-group" data-bind="css: {'error': smimeCertificate() && !smimeCertificateValid()}"> <label data-i18n="SMIME/CERTIFICATE"></label> <textarea name="smimeCertificate" class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: smimeCertificate"></textarea> </div> <div class="control-group" data-bind="hidden:smimeCertificate"> <label></label> <button type="button" data-bind="click: $root.createSelfSigned" data-i18n="CRYPTO/CREATE_SELF_SIGNED"></button> </div> </details> </div> <input type="radio" name="identitytabs" id="tab-identity-advanced"> <label data-i18n="SETTINGS_FILTERS/ADVANCED" for="tab-identity-advanced" role="tab" aria-selected="false" aria-controls="panel4" tabindex="0"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label data-i18n="GLOBAL/REPLY_TO"></label> <input name="ReplyTo" type="email" class="inputReplyTo input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: replyTo"> </div> <div class="control-group"> <label data-i18n="GLOBAL/BCC"></label> <input name="Bcc" type="email" class="inputBcc input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: bcc"> </div> <div class="control-group"> <label data-i18n="FOLDER_LIST/SENT_NAME"></label> <select name="sentFolder" data-bind="options: $root.folderSelectList, value: sentFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> </div> </div> </form> <footer> <button form="identityform" class="btn buttonAddIdentity"> <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="GLOBAL/SAVE"></span> </button> </footer> </template><template id="PopupsKeyboardShortcutsHelp"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="SHORTCUTS_HELP/LEGEND_SHORTCUTS_HELP"></h3> </header> <div class="modal-body"> <div class="tabs"> <input type="radio" name="helptabs" id="tab-help1" checked=""> <label for="tab-help1" role="tab" aria-selected="true" aria-controls="panel1" tabindex="0" data-i18n="SHORTCUTS_HELP/TAB_MAILBOX"></label> <div class="tab-content" role="tabpanel" aria-hidden="false"> <table class="table table-striped table-bordered" style="border-radius: 0 4px 4px 4px"> <tbody> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_OPEN_USER_DROPDOWN"></td><td>M</td></tr> <tr><td class="fontastic">←</td><td data-i18n="SHORTCUTS_HELP/LABEL_REPLY"></td><td>R, Reply</td></tr> <tr><td class="fontastic">↞</td><td data-i18n="SHORTCUTS_HELP/LABEL_REPLY_ALL"></td><td>A, Shift + Reply</td></tr> <tr><td class="fontastic">→</td><td data-i18n="SHORTCUTS_HELP/LABEL_FORWARD"></td><td>F, Fwd</td></tr> <tr><td class="fontastic">→</td><td data-i18n="SHORTCUTS_HELP/LABEL_FORWARD_MULTIPLY"></td><td>Shift + F, Shift + Fwd</td></tr> <tr><td class="icon-help"></td><td data-i18n="GLOBAL/HELP"></td><td>F1, Help</td></tr> </tbody> </table> </div> <input type="radio" name="helptabs" id="tab-help2"> <label for="tab-help2" role="tab" aria-selected="false" aria-controls="panel2" tabindex="0" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_LIST"></label> <div class="tab-content" role="tabpanel" aria-hidden="true"> <table class="table table-striped table-bordered"> <tbody> <tr><td class="fontastic">☑</td><td data-i18n="SHORTCUTS_HELP/LABEL_CHECK_ALL"></td><td><!-- ko text: metaKey --><!-- /ko --> + A</td></tr> <tr><td class="fontastic">🗄</td><td data-i18n="GLOBAL/TO_ARCHIVE"></td><td>Z</td></tr> <tr><td class="fontastic">🗑</td><td data-i18n="SHORTCUTS_HELP/LABEL_DELETE"></td><td>Delete, Shift + Delete</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_OPEN_THREAD"></td><td>T</td></tr> <tr><td class="fontastic">📁</td><td data-i18n="SHORTCUTS_HELP/LABEL_MOVE"></td><td>Insert</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_READ"></td><td>Q</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_UNREAD"></td><td>U</td></tr> <tr><td class="fontastic">★</td><td data-i18n="SHORTCUTS_HELP/LABEL_IMPORTANT"></td><td>I</td></tr> <tr><td></td><td data-i18n="GLOBAL/SEARCH"></td><td>/</td></tr> <tr><td class="icon-arrows-out"></td><td data-i18n="SHORTCUTS_HELP/LABEL_FULLSCREEN_ENTER"></td><td>Enter</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_VIEW_MESSAGE_ENTER"></td><td>Enter</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_SWITCH_TO_MESSAGE"></td><td>→, Tab</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_SWITCH_TO_FOLDER_LIST"></td><td>←, Shift + Tab</td></tr> </tbody> </table> </div> <input type="radio" name="helptabs" id="tab-help3"> <label for="tab-help3" role="tab" aria-selected="false" aria-controls="panel3" tabindex="0" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_VIEW"></label> <div class="tab-content" role="tabpanel" aria-hidden="true"> <table class="table table-striped table-bordered"> <tbody> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_FULLSCREEN_TOGGLE"></td><td>Enter, Open</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_BLOCKQUOTES_TOGGLE"></td><td>B</td></tr> <tr><td data-i18n="MESSAGE/SWAP_COLORS"></td><td>Shift + B</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_EXIT_FULLSCREEN"></td><td>Esc, Close</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_CLOSE_MESSAGE"></td><td>Esc, Close</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_SWITCH_TO_LIST"></td><td>Shift + Tab, Esc</td></tr> </tbody> </table> </div> <input type="radio" name="helptabs" id="tab-help4"> <label for="tab-help4" role="tab" aria-selected="false" aria-controls="panel4" tabindex="0" data-i18n="SHORTCUTS_HELP/TAB_COMPOSE"></label> <div class="tab-content" role="tabpanel" aria-hidden="true"> <table class="table table-striped table-bordered"> <tbody> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_OPEN_COMPOSE_POPUP"></td><td>W, C, New</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_OPEN_IDENTITIES_DROPDOWN"></td><td><!-- ko text: metaKey --><!-- /ko --> + M</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_SAVE_MESSAGE"></td><td><!-- ko text: metaKey --><!-- /ko --> + S, Save</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_SEND_MESSAGE"></td><td>Send, <!-- ko text: metaKey --><!-- /ko --> + Enter</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_MINIMIZE_COMPOSE_POPUP"></td><td>Esc, Close</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_CLOSE_COMPOSE"></td><td>Shift + Esc, Shift + Close</td></tr> </tbody> </table> </div> </div> </div> </template><template id="PopupsOpenPgpGenerate"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="OPENPGP/POPUP_GENERATE_TITLE"></h3> </header> <form id="openpgp-generate" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="alert" data-bind="visible: '' !== submitError()"> <a href="#" class="close" data-bind="click: hideError">×</a> <span data-bind="text: submitError"></span> </div> <!-- Disable stupid browser password autofill --> <input type="password" style="display:none"> <div class="control-group" data-bind="css: {'error': emailError}"> <label data-i18n="GLOBAL/EMAIL"></label> <input type="email" required="" class="input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" list="emailaddresses" data-bind="value: email"> </div> <div class="control-group"> <label data-i18n="GLOBAL/NAME"></label> <input type="text" required="" class="input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: name"> </div> <div class="control-group"> <label data-i18n="GLOBAL/PASSWORD"></label> <input type="password" required="" class="input-xlarge" autocomplete="new-password" autocorrect="off" autocapitalize="off" data-bind="value: password"> </div> <div class="control-group"> <label data-i18n="OPENPGP/LABEL_KEY_TYPE"></label> <select data-bind="value: keyType, options: ['ECC', 'RSA']"></select> </div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'OPENPGP/BACKUP_PUBLIC_KEY_ON_SERVER', value: backupPublicKey } }"></div> <br> <div data-bind="component: { name: 'Checkbox', params: { label: 'OPENPGP/BACKUP_PRIVATE_KEY_ON_SERVER', value: backupPrivateKey } }"></div> <br> <div data-bind="visible: canGnuPG, component: { name: 'Checkbox', params: { label: 'OPENPGP/STORE_PUBLIC_KEY_IN_GNUPG', value: saveGnuPGPublic } }"></div> <br> <div data-bind="visible: canGnuPG, component: { name: 'Checkbox', params: { label: 'OPENPGP/STORE_PRIVATE_KEY_IN_GNUPG', value: saveGnuPGPrivate } }"></div> </div> <datalist id="emailaddresses"> <!-- ko foreach: identities --> <option data-bind="attr:{value:email}"></option> <!-- /ko --> </datalist> </form> <footer> <button class="btn" form="openpgp-generate"> <i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i> <span data-i18n="OPENPGP/POPUP_GENERATE_BUTTON"></span> </button> </footer> </template><template id="PopupsOpenPgpImport"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="OPENPGP/POPUP_IMPORT_TITLE"></h3> </header> <form id="openpgp-import" class="modal-body" autocomplete="off" data-bind="submit: submitForm"> <div class="alert" data-bind="visible: keyError() && keyErrorMessage(), text: keyErrorMessage"></div> <div class="control-group"> <!-- could be email or fingerprint --> <input type="search" data-bind="textInput: search"> <button class="btn" type="button" data-bind="enable: search, click: searchPGP" data-i18n="GLOBAL/SEARCH"></button> </div> <div class="control-group" data-bind="css: {'error': keyError}"> <textarea class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: key" required=""></textarea> </div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'OPENPGP/BACKUP_ON_SERVER', value: saveServer } }"></div> <div data-bind="visible: canGnuPG, component: { name: 'Checkbox', params: { label: 'OPENPGP/STORE_IN_GNUPG', value: saveGnuPG } }"></div> </div> </form> <footer> <button class="btn" form="openpgp-import" data-icon="✚" data-i18n="OPENPGP/POPUP_IMPORT_BUTTON"></button> </footer> </template><template id="PopupsOpenPgpKey"><header class="g-ui-user-select-none"> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="OPENPGP/POPUP_VIEW_TITLE"></h3> </header> <div class="modal-body"> <pre data-bind="initDom: keyDom, text: key"></pre> </div> <footer> <a class="btn buttonClose" data-bind="click: close" data-icon="✖" data-i18n="GLOBAL/CLOSE"></a> <a class="btn buttonClose" data-bind="click: selectKey" data-icon="🔑" data-i18n="OPENPGP/POPUP_VIEW_BUTTON"></a> </footer> </template><template id="PopupsSMimeImport"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="SMIME/POPUP_IMPORT_TITLE"></h3> </header> <form id="smime-import" class="modal-body" autocomplete="off" data-bind="submit: submitForm"> <div class="alert" data-bind="visible: pemError() && pemErrorMessage(), text: pemErrorMessage"></div> <div class="control-group" data-bind="css: {'error': pemError}"> <textarea class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: pem" required=""></textarea> </div> </form> <footer> <button class="btn" form="smime-import" data-icon="✚" data-i18n="OPENPGP/POPUP_IMPORT_BUTTON"></button> </footer> </template><template id="PopupsSieveScript"><!-- ko with: script --> <header> <a href="#" class="close" data-bind="click: $root.close">×</a> <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> <span data-bind="visible: exists">: <!-- ko text: name--><!-- /ko --></span> </h3> </header> <form class="modal-body" spellcheck="false"> <div class="control-group" data-bind="css: {'error': nameError}, hidden: exists"> <input type="text" class="span5" data-bind="value: name" autocorrect="off" autocapitalize="off" data-i18n="[placeholder]GLOBAL/NAME"> </div> <div class="alert g-ui-user-select-none" data-bind="visible: hasChanges" data-icon="⚠" data-i18n="POPUPS_SIEVE_SCRIPT/CHANGES_NEED_TO_BE_SAVED_DESC"></div> <div class="alert alert-error g-ui-user-select-none" style="white-space:pre" data-bind="visible: $root.errorText, text: $root.errorText" data-icon="⚠"></div> <div class="control-group" data-bind="visible: $root.rawActive"> <details> <summary data-i18n="POPUPS_SIEVE_SCRIPT/CAPABILITY_LABEL"></summary> <pre data-bind="text: $root.sieveCapabilities"></pre> </details> <details> <summary>Actions</summary> <pre data-bind="text: $root.availableActions"></pre> </details> <details> <summary>Controls</summary> <pre data-bind="text: $root.availableControls"></pre> </details> <details> <summary>Tests</summary> <pre data-bind="text: $root.availableTests"></pre> </details> <textarea style="width:100%;height:60vh" data-bind="value: body, valueUpdate: 'input'"></textarea> </div> <div data-bind="visible: !$root.rawActive()"> <table class="table table-hover list-table filters-list g-ui-user-select-none"> <colgroup> <col style="width: 30px"> <col style="width: 16px"> <col> <col style="width: 140px"> <col style="width: 1em"> </colgroup> <tbody data-bind="foreach: filters, i18nUpdate: filters"> <tr class="filter-item" draggable="true" data-bind="sortableItem: { list: $parent.filters }"> <td class="fontastic" data-bind="click: function () { $parent.hasChanges(true); enabled(!enabled()); }, text: enabled() ? '☑' : '☐'"></td> <td class="drag-wrapper fontastic drag-handle">⬍</td> <td class="e-action"> <span class="filter-name" data-bind="text: name()"></span> <span class="filter-sub-name" data-bind="text: nameSub()"></span> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: function(oFilter) { $root.deleteFilter(oFilter); }" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-filter fontastic" data-bind="visible: !askDelete(), click: function (oFilter) { $root.filterForDeletion(oFilter); }">🗑</span> </td> </tr> </tbody> </table> <a class="btn" data-bind="click: $root.addFilter" data-icon="✚" data-i18n="POPUPS_SIEVE_SCRIPT/BUTTON_ADD_FILTER"></a> </div> </form> <footer> <a class="btn" data-bind="visible: allowFilters(), 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" data-bind="visible: $root.rawActive, click: function() { $root.validateScript(); }"> <span data-i18n="POPUPS_SIEVE_SCRIPT/VALIDATE"></span> </a> --> <a class="btn buttonSave" data-bind="click: function() { $root.saveScript(); }, css: {'btn-danger': $root.saveError}"> <i class="fontastic" data-bind="css: {'icon-spinner': $root.saving}">💾</i> <span data-i18n="GLOBAL/SAVE"></span> </a> </footer> <!-- /ko --> </template><template id="SettingsAccounts"><div data-bind="visible: allowAdditionalAccount"> <div class="legend"> <span data-i18n="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span> <i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i> </div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_ACCOUNTS/SHOW_UNREAD', value: showUnread } }"></div> <a class="btn" data-bind="click: addNewAccount"> <i class="icon-user-add"></i> <span data-i18n="SETTINGS_ACCOUNTS/BUTTON_ADD_ACCOUNT"></span> </a> <table class="table table-hover list-table accounts-list" data-bind="i18nUpdate: accounts"> <tbody data-bind="foreach: accounts"> <tr draggable="true" data-bind="attr: {draggable:isAdditional}, sortableItem: { list: $root.accounts, afterMove: $root.accountsAndIdentitiesAfterMove }"> <!-- ko if:!isAdditional() --> <td></td> <td colspan="3" data-bind="text: displayName"></td> <!-- /ko --> <!-- ko if:isAdditional --> <td> <i class="fontastic drag-handle">⬍</i> </td> <td class="e-action"> <span class="account-name" data-bind="text: displayName"></span> </td> <!-- <td><span class="icon-import" data-bind="click: importAll"></span></td> --> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete}, click: function(oAccount) { $root.deleteAccount(oAccount); }" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete fontastic" data-bind="visible: !askDelete(), click: function (oAccount) { $root.accountForDeletion(oAccount); }">🗑</span> </td> <!-- /ko --> </tr> </tbody> </table> </div> <div data-bind="visible: allowIdentities"> <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> </a> <table class="table table-hover list-table identities-list" data-bind="i18nUpdate: identities"> <tbody data-bind="foreach: identities"> <tr draggable="true" data-bind="attr: {'data-identity-id': id}, sortableItem: { list: $root.identities, afterMove: $root.accountsAndIdentitiesAfterMove }"> <td> <i class="fontastic drag-handle">⬍</i> </td> <td class="e-action"> <span class="identity-name" data-bind="text: formattedName()"></span> <span class="identity-default" data-bind="visible: !$context.$index()" data-i18n="GLOBAL/DEFAULT"></span> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="visible: id, css: {'delete-access': askDelete}, click: function(oIdentity) { $root.deleteIdentity(oIdentity); }" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete fontastic" data-bind="visible: !askDelete() && id(), click: function (oIdentity) { $root.identityForDeletion(oIdentity); }">🗑</span> </td> </tr> </tbody> </table> </div> </template><template id="SettingsContacts"><div class="form-horizontal"> <div class="legend" data-i18n="GLOBAL/CONTACTS"></div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_CONTACTS/LABEL_CONTACTS_AUTOSAVE', value: contactsAutosave } }"></div> </div> </div> <form class="form-horizontal" spellcheck="false" data-bind="visible: allowContactsSync"> <div class="legend" data-i18n="SETTINGS_CONTACTS/LEGEND_CONTACTS_SYNC"></div> <div class="control-group"> <label data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_ENABLE"></label> <div data-bind="component: { name: 'Select', params: { options: syncModeOptions, value: syncMode, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <label data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_AB_URL"></label> <input type="text" class="input-xxlarge" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: syncUrl" placeholder="https://"> </div> <div class="control-group"> <label data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_USER"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: syncUser"> </div> <div class="control-group"> <label data-i18n="GLOBAL/PASSWORD"></label> <input type="password" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: syncPass"> </div> </form> </template><template id="SettingsFilters"><div class="form-horizontal"> <div class="legend"> <span data-i18n="SETTINGS_LABELS/FILTERS"></span> <i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i> </div> </div> <div class="alert alert-error g-ui-user-select-none" data-bind="visible: serverError, text: serverErrorDesc" data-icon="⚠"></div> <table class="table table-hover list-table g-ui-user-select-none"> <colgroup> <col style="width: 30px"> <col> <col style="width: 140px"> <col style="width: 1em"> </colgroup> <tbody> <tr class="script-item"> <td style="border:0" class="e-action fontastic" data-bind="click: disableScripts, text: hasActive() ? '○' : '⦿'"></td> <td style="border:0" data-i18n="GLOBAL/INACTIVE">Inactive</td> <td style="border:0"></td> <td style="border:0"></td> </tr> </tbody> <tbody data-bind="foreach: scripts, i18nUpdate: scripts"> <!-- ko if: allowFilters() --> <tr class="script-item"> <td><div class="e-action fontastic" data-bind="visible: body, click: function (oScript) { $root.enableScript(oScript); }, text: active() ? '⦿' : '○'"></div></td> <td class="e-action script-name" data-i18n="SETTINGS_FILTERS/SIMPLE" data-bind="attr:{title: name}"></td> <td></td> <td></td> </tr> <tr><th colspan="4" data-i18n="SETTINGS_FILTERS/ADVANCED"></th></tr> <!-- /ko --> <!-- ko if: !allowFilters() --> <tr class="script-item"> <td><div class="e-action fontastic" data-bind="visible: body, click: function (oScript) { $root.enableScript(oScript); }, text: active() ? '⦿' : '○'"></div></td> <td class="e-action script-name" data-bind="text: name"></td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete}, click: function(oScript) { $root.deleteScript(oScript); }" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="e-action fontastic" data-bind="visible: !askDelete() && !allowFilters(), click: function (oScript) { $root.scriptForDeletion(oScript); }">🗑</span> </td> </tr> <!-- /ko --> </tbody> </table> <a class="btn" data-bind="click: addScript" data-icon="✚" data-i18n="SETTINGS_FILTERS/BUTTON_ADD_SCRIPT"></a> </template><template id="SettingsFiltersActionDiscard"><div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </template><template id="SettingsFiltersActionForward"><div class="control-group" data-bind="css: {'error': actionValueError}"> <input type="text" class="span3" data-bind="value: actionValue" data-i18n="[placeholder]GLOBAL/EMAIL"> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/KEEP_LABEL', value: keep } }"></div> <div data-bind="visible: $root.allowMarkAsRead, component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/MARK_AS_READ_LABEL', value: markAsRead } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </div> </template><template id="SettingsFiltersActionMoveToFolder"><div class="control-group" data-bind="css: {'error': actionValueError}"> <select class="span3" data-bind="options: $root.folderSelectList, value: $root.selectedFolderValue, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <div class="control-group"> <div> <div data-bind="visible: $root.allowMarkAsRead, component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/MARK_AS_READ_LABEL', value: markAsRead } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </div> </template><template id="SettingsFiltersActionNone"><div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </template><template id="SettingsFiltersActionReject"><div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div> <textarea class="span5" data-bind="value: actionValue" style="height: 100px;" data-i18n="[placeholder]POPUPS_FILTER/REJECT_MESSAGE_LABEL"></textarea> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </div> </template><template id="SettingsFiltersActionVacation"><div class="control-group" style="margin-bottom: 0"> <div data-bind="component: { name: 'Select', params: { options: [1, 2, 3, 7, 30], label: 'POPUPS_FILTER/REPLY_INTERVAL_LABEL', value: actionValueThird, size: 1 } }"></div> </div> <div class="control-group" data-bind="css: {'error': actionValueFourthError}" style="margin-bottom: 0"> <div> <input type="text" class="span5" data-bind="value: actionValueFourth" data-i18n="[placeholder]POPUPS_FILTER/VACATION_RECIPIENTS_LABEL"> </div> </div> <div class="control-group" style="margin-bottom: 0"> <input type="text" class="span5" data-bind="value: actionValueSecond" data-i18n="[placeholder]POPUPS_FILTER/VACATION_SUBJECT_LABEL"> </div> <div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <textarea class="span5" data-bind="value: actionValue" style="height: 100px;" data-i18n="[placeholder]POPUPS_FILTER/VACATION_MESSAGE_LABEL"></textarea> </div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </template><template id="SettingsFiltersConditionBody"><select class="span3" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select> <select class="span2" data-bind="options: $root.typeOptionsBody, value: type, optionsText: 'name', optionsValue: 'id'"></select> <input class="span3" type="text" data-bind="value: value"> </template><template id="SettingsFiltersConditionDefault"><select class="span3" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select> <select class="span2" data-bind="options: $root.typeOptions, value: type, optionsText: 'name', optionsValue: 'id'"></select> <input class="span3" type="text" data-bind="value: value"> </template><template id="SettingsFiltersConditionMore"><select class="span2" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select> <input class="span2" type="text" data-bind="value: valueSecond"> <select class="span2" data-bind="options: $root.typeOptions, value: type, optionsText: 'name', optionsValue: 'id'"></select> <input class="span3" type="text" data-bind="value: value"> </template><template id="SettingsFiltersConditionSize"><select class="span3" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select> <select class="span2" data-bind="options: $root.typeOptionsSize, value: type, optionsText: 'name', optionsValue: 'id'"></select> <input class="span3" type="text" data-bind="value: value"> </template><template id="SettingsFolderItem"><tr data-bind="css: { 'selectable': selectable, 'system': isSystemFolder }"> <td data-bind="click: edit, css: 'deep-' + deep"> <span class="folder-name" data-bind="text: name, tooltipErrorTip: errorMsg"></span> <span class="folder-system-name" data-bind="text: nameInfo, visible: isSystemFolder"></span> <span class="folder-size" data-bind="text: friendlySize, visible: size"></span> </td> <td data-i18n="[title]SETTINGS_FOLDERS/HELP_DELETE_FOLDER"> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: $root.deleteFolder" data-i18n="GLOBAL/ARE_YOU_SURE"></a> <span class="e-action fontastic" data-bind="visible: canBeDeleted() && !askDelete(), click: $root.folderForDeletion">🗑</span> </td> <td data-i18n="[title]SETTINGS_FOLDERS/HELP_SHOW_HIDE_FOLDER" data-bind="if: canBeSubscribed"> <span class="e-action fontastic" data-bind="css: {'unsubscribed-folder':!isSubscribed()}, click: $root.toggleFolderSubscription">👁</span> </td> <!-- ko if: $root.displaySpecSetting --> <td data-i18n="[title]SETTINGS_FOLDERS/HELP_CHECK_FOR_NEW_MESSAGES" data-bind="if: canBeSelected() && isSubscribed()"> <span class="e-action icon-check-mark-circle-two" data-bind="css: {'check-folder':checkable(), 'unchecked-folder':!checkable()}, click: $root.toggleFolderCheckable"></span> </td> <!-- /ko --> <!-- ko if: $root.showKolab --> <td class="kolab" title="Kolab"> <select data-bind="options: $root.kolabTypeOptions, value: kolabType, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender, event:{ input: $root.toggleFolderKolabType}"></select> </td> <!-- /ko --> </tr> <!-- ko template: { name: 'SettingsFolderItem', foreach: subFolders } --><!-- /ko --> </template><template id="SettingsFolders"><div class="legend"> <span data-i18n="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span> <i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i> </div> <div style="margin-bottom:20px;" data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_FOLDERS/HIDE_UNSUBSCRIBED', value: hideUnsubscribed } }"></div> <!-- ko if: showKolab --> <div style="margin-bottom:20px;" data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_FOLDERS/UNHIDE_KOLAB_FOLDERS', value: unhideKolabFolders } }"></div> <!-- /ko --> <a class="btn" data-bind="click: createFolder"> <i class="icon-folder-add"></i> <span data-i18n="SETTINGS_FOLDERS/BUTTON_CREATE"></span> </a> <a class="btn" data-bind="click: systemFolder" data-icon="🔧" data-i18n="SETTINGS_FOLDERS/BUTTON_SYSTEM"></a> <div class="alert folders-list-error" data-bind="visible: folderListOptimized"> <b data-i18n="SETTINGS_FOLDERS/TO_MANY_FOLDERS_DESC_1"></b> <br> <span data-i18n="SETTINGS_FOLDERS/TO_MANY_FOLDERS_DESC_2"></span> </div> <div class="alert folders-list-error" data-bind="visible: '' !== folderListError()"> <a href="#" class="close" data-bind="click: hideError">×</a> <span data-bind="text: folderListError"></span> </div> <table class="table table-hover list-table" data-bind="i18nUpdate: folderList"> <tbody data-bind="template: { name: 'SettingsFolderItem', foreach: folderList }"></tbody> </table> </template><template id="SettingsGeneral"><div class="form-horizontal"> <div class="legend" data-i18n="SETTINGS_LABELS/GENERAL"></div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/IDENTITY"></label> <b class="editMainIdentity" data-bind="click: editMainIdentity, text: identityMainDesc"></b> </div> <div class="control-group" data-bind="visible: allowLanguagesOnSettings"> <label data-i18n="SETTINGS_GENERAL/LANGUAGE"></label> <div> <span class="select" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage"></span> <span data-bind="saveTrigger: languageTrigger"></span> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/HOUR_FORMAT"></label> <div> <select data-bind="value: hourCycle"> <option value="" data-i18n="GLOBAL/DEFAULT">default</option> <option value="h11">00:00 AM</option> <option value="h12">12:00 AM</option> <option value="h23">00:00 (24 hour)</option> <option value="h24">24:00 (24 hour)</option> </select> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/LAYOUT"></label> <div data-bind="component: { name: 'Select', params: { options: layoutTypes, value: layout, trigger: layoutTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/CHECK_MAIL_INTERVAL"></label> <div> <input type="number" max="60" step="1" class="span1" data-bind="textInput: checkMailInterval, attr:{min:minRefreshInterval}"> <span data-i18n="SETTINGS_GENERAL/MINUTES"></span> <span data-bind="saveTrigger: checkMailIntervalTrigger"></span> </div> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/HTML_TO_MD', value: markdown } }"></div> </div> </div> <div class="legend" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_LIST"></div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/MESSAGE_PER_PAGE"></label> <div> <input type="number" min="10" max="50" step="1" class="span1" data-bind="textInput: messagesPerPage"> <span data-bind="saveTrigger: messagesPerPageTrigger"></span> </div> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/HIDE_DELETED_MESSAGES', value: hideDeleted } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/USE_CHECKBOXES_IN_LIST', value: useCheckboxesInList } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/LIST_MESSAGES_GROUPED', value: listGrouped } }"></div> <div data-bind="visible: threadsAllowed, component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/USE_THREADS', value: useThreads } }"></div> </div> </div> <div class="control-group" data-bind="visible: threadsAllowed() && useThreads()"> <label data-i18n="SETTINGS_GENERAL/THREAD_ALGORITHM"></label> <select data-bind="options: threadAlgorithms, value: threadAlgorithm"></select> </div> <div class="legend" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_VIEW"></div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/MARK_MESSAGE_READ_AFTER', value: messageReadAuto } }"></div> <div> <input type="number" min="0" step="1" class="span1" data-bind="textInput: messageReadDelay"> <span data-i18n="SETTINGS_GENERAL/SECONDS"></span> <span data-bind="saveTrigger: messageReadDelayTrigger"></span> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/MSG_DEFAULT_ACTION"></label> <div data-bind="component: { name: 'Select', params: { options: msgDefaultActions, value: msgDefaultAction, trigger: msgDefaultActionTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/COLLAPSE_BLOCKQUOTES', value: collapseBlockquotes } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/LIST_INLINE_ATTACHMENTS', value: listInlineAttachments } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/LIST_SIMPLE_ATTACHMENTS', value: simpleAttachmentsList } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/REMOVE_COLORS', value: removeColors } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/ALLOW_STYLES', value: allowStyles } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/PREFER_HTML', value: viewHTML } }"></div> <em style="margin: 0 0 1em 2em;display: block;" data-i18n="SETTINGS_GENERAL/PREFER_HTML_INFO"></em> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/SHOW_NEXT_MESSAGE', value: showNextMessage } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/MESSAGE_POPUP_WINDOW', value: messageNewWindow } }"></div> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/MAX_QUOTE_LEVEL"></label> <div> <input type="number" min="0" step="1" class="span1" data-bind="textInput: maxBlockquotesLevel"> <span data-bind="saveTrigger: maxBlockquotesLevelTrigger"></span> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/EXTERNAL_IMAGES"></label> <div> <select data-bind="value: viewImages"> <option value="ask" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_ASK"></option> <option value="match" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_WHITELIST"></option> <option value="always" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_ALWAYS"></option> </select> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/IMAGES_WHITELIST"></label> <div> <textarea data-bind="textInput: viewImagesWhitelist"></textarea> </div> </div> <div class="legend" data-i18n="SHORTCUTS_HELP/TAB_COMPOSE"></div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/EDITOR"></label> <div data-bind="component: { name: 'Select', params: { options: editorDefaultTypes, value: editorDefaultType, trigger: editorDefaultTypeTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group" data-bind="visible: hasWysiwygs"> <label>WYSIWYG</label> <div data-bind="component: { name: 'Select', params: { options: wysiwygs, value: editorWysiwyg, trigger: editorWysiwygTrigger, optionsText: 'name', optionsValue: 'name' } }"></div> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/REPLY_SAME_FOLDER', value: replySameFolder } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/ALLOW_DRAFT_AUTOSAVE', value: allowDraftAutosave } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/BUTTON_REQUEST_READ_RECEIPT', value: requestReadReceipt } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/BUTTON_REQUEST_DSN', value: requestDsn } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/BUTTON_REQUIRE_TLS', value: requireTLS } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'CRYPTO/SIGN', value: pgpSign } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'CRYPTO/ENCRYPT', value: pgpEncrypt } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/ALLOW_SPELLCHECK', value: allowSpellcheck } }"></div> </div> </div> <button type="button" data-bind="visible: mailto, click: registerMailto" class="btn" data-i18n="SETTINGS_GENERAL/MAILTO"></button> <div class="legend" data-i18n="SETTINGS_GENERAL/NOTIFICATIONS"></div> <div class="control-group"> <div> <div> <div style="display: inline-block;" data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/CHROME_NOTIFICATION_DESC', value: desktopNotifications, enable: isDesktopNotificationAllowed } }"></div> <span data-bind="visible: !isDesktopNotificationAllowed()" style="color: #999" data-i18n="SETTINGS_GENERAL/CHROME_NOTIFICATION_DESC_DENIED"></span> <span class="fontastic" data-bind="click: testSystemNotification" style="color:green;cursor:pointer">▶️</span> </div> <div> <div style="display: inline-block;" data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/SOUND_NOTIFICATION', value: soundNotification } }"></div> <select data-bind="options: notificationSounds, value: notificationSound"></select> <span class="fontastic" data-bind="click: testSoundNotification" style="color:green;cursor:pointer">▶️</span> </div> </div> </div> </div> </template><template id="SettingsMenu"><div class="b-toolbar btn-toolbar"> <a class="btn btn-thin fontastic toggleLeft" data-bind="click: toggleLeftPanel"></a> <a class="btn" data-bind="click: backToInbox" data-icon="⬅" data-i18n="GLOBAL/BACK"></a> </div> <nav data-bind="foreach: menu"> <a data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route), 'data-i18n': label }"></a> </nav> </template><template id="SettingsPane"><div class="btn-toolbar"> <a class="btn btn-thin fontastic toggleLeft"></a> </div> </template><template id="SettingsSecurity"><div class="form-horizontal"> <div class="legend" data-i18n="SETTINGS_SECURITY/LEGEND_SECURITY"></div> <div class="control-group"> <label data-i18n="SETTINGS_SECURITY/LABEL_AUTOLOGOUT"></label> <div data-bind="component: { name: 'Select', params: { options: autoLogoutOptions, value: autoLogout, trigger: autoLogoutTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <label data-i18n="SETTINGS_SECURITY/FORGET_KEY_PASS"></label> <div data-bind="component: { name: 'Select', params: { options: autoLogoutOptions, value: keyPassForget, trigger: keyPassForgetTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> </div> <div class="legend">OpenPGP</div> <button class="btn" data-bind="click: addOpenPgpKey" data-icon="✚" data-i18n="SETTINGS_OPENPGP/BUTTON_IMPORT_KEY"></button> <!-- ko if: canOpenPGP || canGnuPG --> <button class="btn" data-bind="click: generateOpenPgpKey" data-icon="🔑" data-i18n="SETTINGS_OPENPGP/BUTTON_GENERATE_KEY_PAIR"></button> <!-- /ko --> <!-- ko if: canGnuPG --> <details style="margin:1em 0"> <summary style="font-size:larger;font-weight:bold">GnuPG</summary> <table class="table table-hover list-table"> <tbody><tr><th colspan="4" data-i18n="SETTINGS_OPENPGP/TITLE_PRIVATE">Private keys</th></tr></tbody> <tbody data-bind="foreach: gnupgPrivateKeys, i18nUpdate: gnupgPrivateKeys"> <tr> <td data-bind="click: view"> <span data-bind="visible: can_sign" class="fontastic" data-i18n="[title]CRYPTO/SIGN">✍</span> <span data-bind="visible: can_decrypt" class="fontastic" data-i18n="[title]CRYPTO/DECRYPT">🔓</span> <span class="key-id" data-bind="text: id"></span> <!-- ko foreach: emails --> <span class="key-user" data-bind="text: $data"></span> <!-- /ko --> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> </tr> </tbody> <tbody><tr><th colspan="4" data-i18n="SETTINGS_OPENPGP/TITLE_PUBLIC">Public keys</th></tr></tbody> <tbody data-bind="foreach: gnupgPublicKeys, i18nUpdate: gnupgPublicKeys"> <tr> <td data-bind="click: view"> <span data-bind="visible: can_verify" class="fontastic" data-i18n="[title]CRYPTO/VERIFY">✔</span> <span data-bind="visible: can_encrypt" class="fontastic" data-i18n="[title]CRYPTO/ENCRYPT">🔒</span> <span class="key-id" data-bind="text: id"></span> <!-- ko foreach: emails --> <span class="key-user" data-bind="text: $data"></span> <!-- /ko --> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> </tr> </tbody> </table> </details> <!-- /ko --> <!-- ko if: canOpenPGP --> <details style="margin:1em 0"> <summary style="font-size:larger;font-weight:bold">OpenPGP.js</summary> <table class="table table-hover list-table"> <tbody><tr><th colspan="4" data-i18n="SETTINGS_OPENPGP/TITLE_PRIVATE">Private keys</th></tr></tbody> <tbody data-bind="foreach: openpgpkeysPrivate, i18nUpdate: openpgpkeysPrivate"> <tr> <td data-bind="click: view"> <span class="fontastic" data-i18n="[title]SETTINGS_OPENPGP/TITLE_PRIVATE">🔒</span> <span class="key-id" data-bind="text: id"></span> <!-- ko foreach: emails --> <span class="key-user" data-bind="text: $data"></span> <!-- /ko --> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> </tr> </tbody> <tbody><tr><th colspan="4" data-i18n="SETTINGS_OPENPGP/TITLE_PUBLIC">Public keys</th></tr></tbody> <tbody data-bind="foreach: openpgpkeysPublic, i18nUpdate: openpgpkeysPublic"> <tr> <td data-bind="click: view"> <span class="fontastic" data-i18n="[title]SETTINGS_OPENPGP/TITLE_PUBLIC">🔑</span> <span class="key-id" data-bind="text: id"></span> <!-- ko foreach: emails --> <span class="key-user" data-bind="text: $data"></span> <!-- /ko --> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> </tr> </tbody> </table> <button class="btn" data-bind="click: importToOpenPGP" data-i18n="SETTINGS_OPENPGP/IMPORT_FROM_SERVER"></button> </details> <!-- /ko --> <details style="margin:1em 0"> <summary style="font-size:larger;font-weight:bold">Mailvelope</summary> <a data-bind="visible: !canMailvelope" href="https://mailvelope.com/en/help" target="_blank" data-i18n="SETTINGS_OPENPGP/GET_MAILVELOPE"></a> <div id="mailvelope-settings" style="height:40em" data-bind="visible: canMailvelope"></div> </details> <details> <summary class="legend" data-i18n="SMIME/CERTIFICATES"></summary> <button class="btn" data-bind="click: importToSMime" data-icon="✚" data-i18n="OPENPGP/POPUP_IMPORT_BUTTON"></button> <table class="table table-hover list-table"> <tbody data-bind="foreach: smimeCertificates, i18nUpdate: smimeCertificates"> <tr> <td> <span data-bind="visible: smimesign" class="fontastic" data-i18n="[title]CRYPTO/VERIFY">✔</span> <span data-bind="visible: smimeencrypt" class="fontastic" data-i18n="[title]CRYPTO/ENCRYPT">🔒</span> <span class="key-name" data-bind="text: CN"></span> <span class="key-user" data-bind="text: emailAddress"></span> <br> <span data-i18n="CRYPTO/VALID_UNTIL"></span>: <time data-time-format="FULL" data-bind="time:validTo_time_t"></time> </td> <!-- TODO <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> --> </tr> </tbody> </table> </details> </template><template id="SettingsThemes"><div class="legend"> <span data-i18n="SETTINGS_THEMES/LEGEND_THEMES"></span> <span data-bind="saveTrigger: themeTrigger"></span> </div> <div data-bind="foreach: themesObjects"> <figure data-bind="click: $root.setTheme, css: { 'selected': selected }"> <figcaption data-bind="text: nameDisplay"></figcaption> <img data-bind="attr: { 'src': themePreviewSrc }"> </figure> </div> <br> <br> <div class="form-horizontal"> <div class="legend" data-i18n="SETTINGS_THEMES/LABEL_FONTS"></div> <div class="control-group"> <label>Sans-serif</label> <select data-bind="value: fontSansSerif"> <option value="" data-i18n="GLOBAL/DEFAULT"></option> <option value="Arial">Arial</option> <option value="Lucida">Lucida</option> <option value="Tahoma">Tahoma</option> <option value="Trebuchet">Trebuchet</option> <option value="Verdana">Verdana</option> </select> </div> <div class="control-group"> <label>Serif</label> <select data-bind="value: fontSerif"> <option value="" data-i18n="GLOBAL/DEFAULT"></option> <option value="Times">Times</option> <option value="Palatino">Palatino</option> <option value="Georgia">Georgia</option> </select> </div> <div class="control-group"> <label>Mono</label> <select data-bind="value: fontMono"> <option value="" data-i18n="GLOBAL/DEFAULT"></option> <option value="Courier">Courier</option> <option value="Lucida">Lucida</option> </select> </div> </div> <br> <br> <div class="form-horizontal" data-bind="visible: background.enabled"> <div class="legend" data-i18n="SETTINGS_THEMES/LABEL_BACKGROUND"></div> <div class="control-group g-ui-user-select-none"> <div class="row" data-bind="visible: '' !== background.error()" style="margin-left: 0; margin-bottom: 10px;"> <div class="alert alert-error span6" data-bind="text: background.error" style="margin-left: 0"></div> </div> <div class="row" data-bind="visible: '' !== background.name()" style="margin-left: 0"> <a class="btn" data-bind="visible: '' !== background.name(), click: clearBackground" data-icon="✖"></a> <b data-bind="text: background.name"></b> </div> <div class="row" data-bind="visible: '' === background.name()" style="margin-left: 0"> <a class="btn" data-bind="initDom: background.uploaderButton"> <i class="fontastic" data-bind="css: {'icon-spinner': background.loading()}">🖼</i> <span data-i18n="SETTINGS_THEMES/BUTTON_UPLOAD_BACKGROUND_IMAGE"></span> </a> </div> </div> </div> </template><template id="SystemDropDown"><div class="btn-toolbar g-ui-user-select-none"> <div class="audioPlace" data-bind="visible: '' !== currentAudio(), attr: { title: currentAudio }, click: stopPlay"> <div class="playIcon"><div></div></div> <i class="stopIcon fontastic">⏸</i> </div> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, initDom: accountMenu"> <a id="top-system-dropdown-id" href="#" tabindex="-1" class="btn single btn-block dropdown-toggle"> <span class="accountPlace hide-mobile" data-bind="text: accountName(), attr:{ title: accountEmail }"></span> <i class="fontastic" data-bind="css: {'icon-spinner': accountsLoading()}">👤</i> <!-- <b data-bind="text: accountsUnreadCount, visible: 100 > accountsUnreadCount() && accountsUnreadCount()"></b> <b data-bind="visible: 99 < accountsUnreadCount()">99+</b> --> </a> <menu class="dropdown-menu right-edge" tabindex="-1" role="menu" aria-labelledby="top-system-dropdown-id"> <!-- ko foreach: accounts --> <li role="presentation"> <a class="email-title" href="#" data-bind="click: $root.accountClick, text: label(), attr: {title: email, 'data-unread': unreadEmails, 'data-icon': $root.accountEmail() === email ? '✔' : '👤'}"></a> </li> <!-- /ko --> <li class="dividerbar" role="presentation" data-bind="visible: allowAccounts"> <a href="#" tabindex="-1" data-bind="click: addAccountClick" data-icon="✚" data-i18n="TOP_TOOLBAR/BUTTON_ADD_ACCOUNT"></a> </li> <li role="presentation" data-bind="visible: allowContacts"> <a href="#" tabindex="-1" data-bind="click: contactsClick" data-icon="📇" data-i18n="GLOBAL/CONTACTS"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: settingsClick" data-icon="⚙" data-i18n="TITLES/SETTINGS"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: settingsHelp" data-icon="🛈" data-i18n="GLOBAL/HELP"></a> </li> <li class="dividerbar" role="presentation"> <a href="#" tabindex="-1" data-bind="click: logoutClick" data-icon="⏻" data-i18n="GLOBAL/LOGOUT"></a> </li> </menu> </div> </div> </template><template id="Paginator"><nav class="e-paginator g-ui-user-select-none" data-bind="foreach: $data"> <a data-bind="css: { 'current': current }, attr: { title: title }, text: name"></a> </nav> </template><template id="PopupsAsk"><div class="modal-body"> <div data-bind="html: askDesc"></div> <form class="form-horizontal" data-bind="visible: askPass() || askUsername(), submit: yesClick" style="margin: 2em 0 0" id="AskForm"> <div class="control-group" data-bind="visible: askUsername"> <label data-i18n="GLOBAL/USERNAME"></label> <input type="text" data-bind="value: username"> </div> <div class="control-group" data-bind="visible: askPass"> <label data-i18n="GLOBAL/PASSWORD"></label> <input type="password" data-bind="value: passphrase"> </div> <div data-bind="visible: askRemeber, component: { name: 'Checkbox', params: { label: 'GLOBAL/REMEMBER', value: remember } }"></div> </form> </div> <footer> <button class="btn buttonYes" form="AskForm" data-bind="click: yesClick, text: yesButton" data-icon="✔"></button> <button class="btn buttonNo" data-bind="click: noClick, text: noButton" data-icon="✖"></button> </footer> </template><template id="PopupsLanguages"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="POPUPS_LANGUAGES/TITLE_LANGUAGES"></h3> </header> <div class="modal-body" style="min-height: 150px;" data-bind="foreach: languages"> <label data-bind="click: function () { $root.changeLanguage(key); }, css: {'selected': selected, 'user': user}, attr: { title: title }, text: fullName"> </label> </div> </template> <script nonce="" type="text/javascript">(e=>{const t=t=>e.location.pathname.replace(/\/+$/,"")+"/?/"+t,r=t=>e.getElementById("rl-"+t),a="1"==r("app").dataset.admin,o="application/json",n=e=>{r("loading").hidden=!0,e.hidden=!1},s=e=>{let t=r("loading-error");t.append(e),n(t)},i=t=>t?new Promise(((r,a)=>{const o=e.createElement("script");o.onload=()=>r(),o.onerror=()=>a("Failed loading "+t),o.src=t,e.head.append(o)})):Promise.reject("src is empty");try{let t=e.cookie.match(/(^|;) ?smctoken=([^;]+)/);if(t=t?t[2]:localStorage.getItem("smctoken"),!t){let e=new Uint8Array(16);crypto.getRandomValues(e),t=encodeURIComponent(btoa(String.fromCharCode(...e)))}localStorage.setItem("smctoken",t),e.cookie="smctoken="+t+";path=/;samesite=strict;secure"}catch(e){}let c={};window.rl={adminArea:()=>a,settings:{get:e=>c[e],set:(e,t)=>c[e]=t,app:e=>c.System[e]},setTitle:t=>e.title=(t||"")+(c.title?(t?" - ":"")+c.title:""),setData:e=>{c=e,rl.app.refresh()},loadScript:i,fetch:(e,t,r)=>{t=Object.assign({mode:"same-origin",cache:"no-cache",redirect:"error",referrerPolicy:"no-referrer",credentials:"same-origin",headers:{}},t);let a=1,n=(c.System||{}).token,s={};return r&&(t.method="POST",r instanceof FormData&&(r.forEach(((e,t)=>{e instanceof File?a=0:Reflect.has(s,t)?(Array.isArray(s[t])||(s[t]=[s[t]]),s[t].push(e)):s[t]=e})),a?r=s:n&&r.set("XToken",n)),a&&(t.headers["Content-Type"]=o,r=JSON.stringify(r)),t.body=r),n&&(t.headers["X-SM-Token"]=n),fetch(e,t)},fetchJSON:(e,t,r)=>((t=Object.assign({headers:{}},t)).headers.Accept=o,rl.fetch(e,t,r).then((t=>{if(t.ok){const r=t.headers.get("Content-Type");return r.startsWith(o)?t.json():Promise.reject(new Error(`Invalid Content-Type '${r}' for url '${e}'`))}return Promise.reject(new Error("Network response error: "+t.status))})))},navigator.cookieEnabled?[].flat?rl.fetchJSON(t(`${a?"Admin":""}AppData/0/${Math.random().toString().slice(2)}/`)).then((r=>{c=r;const o=r.StaticLibsJs,n=()=>rl.app.bootstart();i(o).then((()=>i(o.replace("/libs.",`/${a?"admin":"app"}.`)))).then((()=>r.PluginsLink?i(t(r.PluginsLink)):Promise.resolve())).then((()=>rl.app?n():e.addEventListener("readystatechange",(()=>"complete"==e.readyState&&n())))).catch((e=>{throw s(e),e}))})).catch((e=>s(e))):n(r("BadBrowser")):n(r("NoCookie"))})(document);
document.documentElement.lang = 'en';
rl.I18N={"LANGS_NAMES":{"id":"Bahasa Indonesia","cs":"Čeština","da":"Dansk","de":"Deutsch","et":"Eesti","en":"English","es":"Español","eo":"Esperanto","eu":"Euskara","fr":"Français","is":"Íslenska","it":"Italiano","lv":"Latviešu","lt":"Lietuvių","hu":"Magyar","nl":"Nederlands","nb":"Norsk (bokmål)","pl":"Polski","pt":"Português","pt-BR":"Português (Brasil)","ro":"Română","sk":"Slovenčina","sl":"Slovenščina","fi":"Suomi","sv":"Svenska","vi":"Tiếng Việt","tr":"Türkçe","el":"Ελληνικά","be":"Беларуская","bg":"Български","ru":"Русский","uk":"Українська","ar":"العربية","fa":"فارسی","ko":"한국어","ja":"日本語","zh":"简体中文","zh-TW":"繁體中文(台灣)"},"LANGS_NAMES_EN":{"ar":"Arabic","eu":"Basque","be":"Belarusian","bg":"Bulgarian","zh":"Chinese Simplified (China)","zh-TW":"Chinese Traditional (Taiwan)","cs":"Czech","da":"Danish","nl":"Dutch","en":"English","eo":"Esperanto","et":"Estonian","fi":"Finnish","fr":"French","de":"German","el":"Greek","hu":"Hungarian","is":"Icelandic","id":"Indonesian","it":"Italian","ja":"Japanese","ko":"Korean","lv":"Latvian","lt":"Lithuanian","nb":"Norwegian Bokmål","fa":"Persian","pl":"Polish","pt":"Portuguese","pt-BR":"Portuguese (Brazil)","ro":"Romanian","ru":"Russian","sk":"Slovak","sl":"Slovenian","es":"Spanish","sv":"Swedish","tr":"Turkish","uk":"Ukrainian","vi":"Vietnamese"},"LANG_DIR":"ltr","GLOBAL":{"TO_ARCHIVE":"Archive","ARE_YOU_SURE":"Are you sure?","BACK":"Back","BCC":"Bcc","CANCEL":"Cancel","CC":"Cc","CLEAR":"Clear","CLOSE":"Close","CONTACTS":"Contacts","DELETE":"Delete","UNDELETE":"Undelete","DONE":"Done","EMAIL":"Email","FROM":"From","LOADING":"Loading","LOGOUT":"Logout","MORE":"More","MOVE_TO":"Move To","COPY_TO":"Copy To","NAME":"Name","NONE":"None","TO_SPAM":"Move message(s) to Spam","NOT_SPAM":"Not Spam","USERNAME":"Username","PASSWORD":"Passphrase","REMEMBER":"Remember","REPLY_TO":"Reply-To","SAVE":"Save","SAVE_CHANGES":"Save changes?","SEARCH":"Search","SPAM":"Spam","SUBJECT":"Subject","TEST":"Test","TO":"To","SERVER_MESSAGE":"Server message","YES":"Yes","NO":"No","INACTIVE":"Inactive","DEFAULT":"default","HELP":"Help","TEXT":"Text","ATTACHMENTS":"Attachments"},"LOGIN":{"LABEL_LOGIN":"Login","LABEL_SIGN_ME":"Remember Me","BUTTON_SIGN_IN":"Sign In"},"TOP_TOOLBAR":{"BUTTON_ADD_ACCOUNT":"Add Account"},"SEARCH":{"TITLE_ADV":"Advanced Search","TEXT":"Text","HAS_ATTACHMENT":"Has attachment(s)","FLAGGED":"Flagged","UNSEEN":"Unseen","DATE":"Date","DATE_ALL":"All","BEFORE_3_DAYS":"Older then 3 days","BEFORE_7_DAYS":"Older then 1 week","BEFORE_MONTH":"Older then 1 month","BEFORE_3_MONTHS":"Older then 3 months","BEFORE_6_MONTHS":"Older then 6 months","BEFORE_YEAR":"Older then 1 year","SINCE_3_DAYS":"Up to 3 days old","SINCE_7_DAYS":"Up to 1 week old","SINCE_MONTH":"Up to 1 month old","SINCE_3_MONTHS":"Up to 3 months old","SINCE_6_MONTHS":"Up to 6 months old","SINCE_YEAR":"Up to 1 year old","SUBFOLDERS":"Subfolders","SUBFOLDERS_NONE":"None","SUBFOLDERS_SUBTREE":"All","SUBFOLDERS_SUBTREE_ONE":"One level","REPLIED":"Answered","KEYWORD":"Tag"},"FOLDER_LIST":{"BUTTON_COMPOSE":"Compose","BUTTON_NEW_MESSAGE":"New message","INBOX_NAME":"Inbox","SENT_NAME":"Sent","DRAFTS_NAME":"Drafts","TRASH_NAME":"Trash","ARCHIVE_NAME":"Archive"},"IMAP":{"ACL_RIGHTS":"Rights","ACL_A":"Administer","ACL_E":"Expunge","ACL_I":"Insert messages","ACL_K":"Create sub-folders","ACL_L":"Show messages","ACL_P":"Send mail","ACL_R":"Select folder","ACL_S":"\\SEEN tag","ACL_T":"\\DELETED tag","ACL_W":"Other tags","ACL_X":"Delete/Rename folder"},"MESSAGE_LIST":{"BUTTON_RELOAD":"Reload Message List","BUTTON_EMPTY_FOLDER":"Clear Folder","BUTTON_MULTY_FORWARD":"Forward as attachment(s)","BUTTON_DELETE_WITHOUT_MOVE":"Delete permanently","MENU_SET_SEEN":"Mark as read","MENU_SET_ALL_SEEN":"Mark all as read","MENU_UNSET_SEEN":"Mark as unread","MENU_SET_FLAG":"Flag","MENU_UNSET_FLAG":"Unflag","MENU_SELECT_ALL":"All","MENU_SELECT_INVERT":"Invert","MENU_SELECT_UNSEEN":"Unread","MENU_SELECT_SEEN":"Read","MENU_SELECT_FLAGGED":"Flagged","MENU_SELECT_UNFLAGGED":"Unflagged","DOWNLOAD_ALL_ATTACHMENTS":"Download all attachments","EMPTY_LIST":"Empty list.","EMPTY_SEARCH_LIST":"No messages matched your search.","SEARCH_RESULT_FOR":"Search results for \"%SEARCH%\"","BACK_TO_MESSAGE_LIST":"Back to message list","PUT_MESSAGE_HERE":"Drop message here to view it in the list","TODAY_AT":"today at %TIME%","YESTERDAY_AT":"yesterday at %TIME%","NEW_MESSAGE_NOTIFICATION":"You have %COUNT% new messages!","QUOTA_SIZE":"Using <strong>%SIZE% (%PROC%%)</strong> of your <strong>%LIMIT%</strong>","SORT":"Sort","NO_SORT":"Mail server does not support sorting","SORT_DATE_ASC":"Date ascending","SORT_DATE_DESC":"Date descending","SORT_SIZE_ASC":"Size ascending","SORT_SIZE_DESC":"Size descending","SORT_SUBJECT_ASC":"Subject A-Z","SORT_SUBJECT_DESC":"Subject Z-A","SORT_FROM_ASC":"From A-Z","SORT_FROM_DESC":"From Z-A"},"MESSAGE":{"BUTTON_EDIT":"Edit","BUTTON_UNSUBSCRIBE":"Unsubscribe from this list","BUTTON_REPLY":"Reply","BUTTON_REPLY_ALL":"Reply All","BUTTON_FORWARD":"Forward","BUTTON_FORWARD_AS_ATTACHMENT":"Forward as attachment","BUTTON_EDIT_AS_NEW":"Edit as New","BUTTON_SHOW_IMAGES":"Display external images","BUTTON_NOTIFY_READ_RECEIPT":"The sender has asked to be notified when you read this message.","BUTTON_IN_NEW_WINDOW":"View in separate window","BUTTON_THREAD_LIST":"Thread list","BUTTON_THREAD_PREV":"Previous","BUTTON_THREAD_NEXT":"Next","BUTTON_THREAD_MORE":"More messages","MENU_HEADERS":"Show message headers","MENU_VIEW_ORIGINAL":"Show Source","HTML_VIEW":"View HTML message","PLAIN_VIEW":"View plain text message","SWAP_COLORS":"Swap default (background)color","MENU_DOWNLOAD_ORIGINAL":"Download as .eml file","MENU_FILTER_SIMILAR":"Filter messages like this","MENU_PRINT":"Print","EMPTY_SUBJECT_TEXT":"(No subject)","LABEL_DATE":"Date","LABEL_FROM_SHORT":"from","LABEL_TO_SHORT":"to","PRINT_LABEL_ATTACHMENTS":"Attachments","MESSAGE_VIEW_DESC":"Select any message in the list to view it here.","MESSAGE_VIEW_MOVE_DESC":"Click folder name in the left panel to select the destination.","LINK_DOWNLOAD_AS_ZIP":"Download as zip","SPAM_SCORE":"Spam Score","HAS_VIRUS_WARNING":"WARNING: virus detected","TAGS":"Tags","NEW_TAG":"New tag","ENABLE_TRACKING_LINKS":"Enable tracking links","TRACKING_ENABLED":"Links are now tracked when clicked!"},"MESSAGE_TAGS":{"$important":"Important","$todo":"To Do","$label1":"Important","$label2":"Work","$label3":"Personal","$label4":"To Do","$label5":"Later"},"READ_RECEIPT":{"SUBJECT":"Return Receipt (displayed) - %SUBJECT%","BODY":"This is a Return Receipt for the mail that you sent to %READ-RECEIPT%.\n\nNote: \"This Return Receipt only acknowledges that the message was displayed on the recipient's computer.\"\nThere is no guarantee that the recipient has read or understood the message contents.\n"},"SUGGESTIONS":{"SEARCHING_DESC":"Searching..."},"CONTACTS":{"TAB_CONTACT":"Contact","TAB_LOCATIONS":"Locations","TAB_BUSINESS":"Business","LABEL_ORGANIZATION":"Organization","LABEL_DEPARTMENT":"Department","LABEL_TITLE":"Title","TAB_CRYPTO":"Crypto","ASK":"Ask","NEVER":"Never","ALWAYS":"Always","ALWAYS_IF_POSSIBLE":"Always if possible","BUTTON_ADD_CONTACT":"Add Contact","BUTTON_CREATE_CONTACT":"Create","BUTTON_IMPORT":"Import (csv, vcf, vCard)","BUTTON_EXPORT_VCARD":"Export (vcf, vCard)","BUTTON_EXPORT_CSV":"Export (csv)","ERROR_IMPORT_FILE":"Import error (invalid file format)","EMPTY_LIST":"No contacts here","EMPTY_SEARCH":"No contacts found","CLEAR_SEARCH":"Clear search","CONTACT_VIEW_DESC":"Select contact in the list to view it here.","LABEL_BIRTHDAY":"Birthday","DISPLAY_NAME":"Display name","LAST_NAME":"Last name","FIRST_NAME":"First name","MIDDLE_NAME":"Middle name","NAME_PREFIX":"Name prefix","NAME_SUFFIX":"Name suffix","NICK_NAME":"Nickname","LABEL_READ_ONLY":"Read only","ADD_MENU_LABEL":"Add","ADD_MENU_NICKNAME":"Nickname","ADD_MENU_NOTE":"Note","ADD_MENU_PHONE":"Phone","ADD_MENU_URL":"URL","ADD_MENU_ADDRESS":"Address","ADD_MENU_BIRTHDAY":"Birthday","ADD_MENU_TAGS":"Tags","BUTTON_SHARE_ALL":"Everyone","BUTTON_SYNC":"Synchronization (CardDAV)","SEND_TO_ALL_CONTACT_EMAILS":"Send to all contact emails"},"COMPOSE":{"LINK_SHOW_INPUTS":"show all fields","BUTTON_SEND":"Send","BUTTON_MINIMIZE":"Minimize","SAVED_TIME":"Saved at %TIME%","SAVED_ERROR_ON_SEND":"Message was sent but not saved to sent items folder","DISCARD_UNSAVED_DATA":"Discard unsaved data?","ATTACH_FILES":"Attach files","ATTACH_DROP_FILES_DESC":"Drop files here","REPLY_MESSAGE_TITLE":"%DATETIME%, %EMAIL% wrote","FORWARD_MESSAGE_TOP_TITLE":"-------- Forwarded message -------","FORWARD_MESSAGE_TOP_SENT":"Sent","EMPTY_TO_ERROR_DESC":"Please specify at least one recipient","NO_ATTACHMENTS_HERE_DESC":"No attachments here.","ATTACHMENTS_ERROR_DESC":"Warning! Not all attachments have been uploaded.","ATTACHMENTS_UPLOAD_ERROR_DESC":"Not all attachments have been uploaded yet.","ALLOW_SPELLCHECK":"Enable browser spelling checker","ALLOW_DRAFT_AUTOSAVE":"Automatically save draft","BUTTON_REQUEST_READ_RECEIPT":"Request a read receipt","BUTTON_MARK_AS_IMPORTANT":"Mark as important","BUTTON_REQUEST_DSN":"Request a delivery receipt","BUTTON_REQUIRE_TLS":"Require secure delivery","ERROR_EMPTY_BODY":"Message body is empty"},"POPUPS_ASK":{"EXIT_ARE_YOU_SURE":"Are you sure you want to exit?","DESC_WANT_CLOSE_THIS_WINDOW":"Are you sure you want to close this window?","DESC_WANT_DELETE_MESSAGES":"Are you sure you want to delete the message(s)?"},"POPUPS_LANGUAGES":{"TITLE_LANGUAGES":"Choose your language"},"POPUPS_ADD_ACCOUNT":{"TITLE_ADD_ACCOUNT":"Add Account","BUTTON_ADD_ACCOUNT":"Add","TITLE_UPDATE_ACCOUNT":"Edit Account"},"POPUPS_IDENTITY":{"TITLE_ADD_IDENTITY":"Add Identity","TITLE_UPDATE_IDENTITY":"Edit Identity","LABEL":"Label","BUTTON_ADD_IDENTITY":"Add","SIGNATURE":"Signature","LABEL_SIGNATURE_INSERT_BEFORE":"Insert this signature before quoted text in replies"},"POPUPS_CREATE_FOLDER":{"TITLE_CREATE_FOLDER":"Create a folder","LABEL_PARENT":"Parent folder","BUTTON_CREATE":"Create","TITLE_CREATING_PROCESS":"Creating a folder"},"POPUPS_CLEAR_FOLDER":{"TITLE_CLEAR_FOLDER":"Purge all messages from the folder?","DANGER_DESC_WARNING":"Warning!","DANGER_DESC_HTML_1":"This action will result in removing all mails from '<strong>%FOLDER%</strong>' folder completely.","DANGER_DESC_HTML_2":"Once started, the process cannot be aborted or canceled.","TITLE_CLEARING_PROCESS":"Purging the folder..."},"CRYPTO":{"SIGN":"Sign","ENCRYPT":"Encrypt","DECRYPT":"Decrypt","VERIFY":"Verify","GOOD_SIGNATURE":"Good signature from %USER%","ERROR":"%TYPE% error: %ERROR%","CREATE_SELF_SIGNED":"Create self-signed","VALID_UNTIL":"Valid until","PRIVATE_KEY":"Private key","CHANGE_PASS":"Change passphrase","CURRENT_PASS":"Current passphrase","NEW_PASS":"New passphrase","ASK_CRYPTKEY_PASS":"Your login passphrase has changed. Please fill in your old login passphrase to decrypt data"},"OPENPGP":{"POPUP_IMPORT_TITLE":"Import OpenPGP key","POPUP_IMPORT_BUTTON":"Import","POPUP_VIEW_TITLE":"View OpenPGP key","POPUP_VIEW_BUTTON":"Select","POPUP_GENERATE_TITLE":"Generate OpenPGP key pair","POPUP_GENERATE_BUTTON":"Generate","LABEL_KEY_TYPE":"Type","SIGNED_MESSAGE":"OpenPGP signed message","ENCRYPTED_MESSAGE":"OpenPGP encrypted message","STORE_IN_GNUPG":"Store on server in GnuPG","STORE_PUBLIC_KEY_IN_GNUPG":"Store public key on server in GnuPG","STORE_PRIVATE_KEY_IN_GNUPG":"Store private key on server in GnuPG","BACKUP_ON_SERVER":"Store (encrypted) on server","BACKUP_PUBLIC_KEY_ON_SERVER":"Backup public key on server","BACKUP_PRIVATE_KEY_ON_SERVER":"Backup private key on server"},"SMIME":{"POPUP_IMPORT_TITLE":"Import S/MIME certificate","CERTIFICATE":"Certificate","CERTIFICATES":"S/MIME Certificates","SIGNED_MESSAGE":"S/MIME signed message","ENCRYPTED_MESSAGE":"S/MIME encrypted message","PRIVATE_KEY_OF":"S/MIME private key of %EMAIL%"},"POPUPS_FILTER":{"TITLE_CREATE_FILTER":"Create a filter","TITLE_EDIT_FILTER":"Update filter","LEGEND_CONDITIONS":"Conditions","LEGEND_ACTIONS":"Actions","BUTTON_ADD_CONDITION":"Add a Condition","SELECT_ACTION_MOVE_TO":"Move to","SELECT_ACTION_FORWARD_TO":"Forward to","SELECT_ACTION_REJECT":"Reject","SELECT_ACTION_VACATION_MESSAGE":"Vacation message","SELECT_ACTION_DISCARD":"Discard","SELECT_FIELD_RECIPIENTS":"Recipients (To or CC)","SELECT_FIELD_HEADER":"Header","SELECT_FIELD_BODY":"Body","SELECT_FIELD_SIZE":"Size","SELECT_TYPE_CONTAINS":"Contains","SELECT_TYPE_NOT_CONTAINS":"Not Contains","SELECT_TYPE_MATCHES":"Matches (* and ? supported)","SELECT_TYPE_NOT_MATCHES":"Not Matches (* and ? supported)","SELECT_TYPE_REGEXP":"Regexp","SELECT_TYPE_NOT_REGEXP":"Not Regexp","SELECT_TYPE_EQUAL_TO":"Equal To","SELECT_TYPE_NOT_EQUAL_TO":"Not Equal To","SELECT_TYPE_OVER":"Over","SELECT_TYPE_UNDER":"Under","SELECT_TYPE_TEXT":"Text","SELECT_TYPE_RAW":"Raw","SELECT_MATCH_ANY":"Matching ANY of the following rules","SELECT_MATCH_ALL":"Matching ALL of the following rules","MARK_AS_READ_LABEL":"Mark as read","REPLY_INTERVAL_LABEL":"Reply interval (days)","KEEP_LABEL":"Keep","STOP_LABEL":"Stop further processing of rules","VACATION_SUBJECT_LABEL":"Subject (optional)","VACATION_MESSAGE_LABEL":"Message","VACATION_RECIPIENTS_LABEL":"Recipients (comma separated)","REJECT_MESSAGE_LABEL":"Reject message","ALL_INCOMING_MESSAGES_DESC":"All incoming messages"},"POPUPS_SIEVE_SCRIPT":{"TITLE_CREATE":"Create Script","TITLE_EDIT":"Edit Script","BUTTON_ADD_FILTER":"Add a Filter","BUTTON_RAW_SCRIPT":"Use Custom User Script","CAPABILITY_LABEL":"Capabilities","CHANGES_NEED_TO_BE_SAVED_DESC":"These changes need to be saved to the server."},"POPUPS_SYSTEM_FOLDERS":{"TITLE_SYSTEM_FOLDERS":"Select system folders","SELECT_CHOOSE_ONE":"Choose one","SELECT_UNUSE_NAME":"Do not use","NOTIFICATION_SENT":"You haven't selected \"Sent\" system folder messages are put to after sending.\nIf you don't want to save sent message, please select \"Do not use\" option.\n","NOTIFICATION_DRAFTS":"You haven't selected \"Drafts\" system folder messages are saved to while composing.","NOTIFICATION_SPAM":"You haven't selected \"Spam\" system folder spamed messages are placed to.\nIf you wish to remove messages permanently, please select \"Do not use\" option.\n","NOTIFICATION_TRASH":"You haven't selected \"Trash\" system folder deleted messages are placed to.\nIf you wish to remove messages permanently, please select \"Do not use\" option.\n","NOTIFICATION_ARCHIVE":"You haven't selected \"Archive\" system folder achived messages are placed to."},"TITLES":{"MAILBOX":"MailBox","SETTINGS":"Settings"},"UPLOAD":{"ERROR_FILE_IS_TOO_BIG":"File is too big","ERROR_FILE_PARTIALLY_UPLOADED":"File was partially uploaded due to unknown error","ERROR_NO_FILE_UPLOADED":"No file uploaded","ERROR_MISSING_TEMP_FOLDER":"The temporary file is missing","ERROR_ON_SAVING_FILE":"Saving uploaded file failed","ERROR_FILE_TYPE":"Invalid file type","ERROR_UNKNOWN":"An unknown file upload error occurred"},"EDITOR":{"PLAIN":"HTML <-> TEXT","SOURCE":"HTML <-> SOURCE","FONTFAMILY":"Font family","FONTSIZE":"Font size","DIR":"Text direction","DIR_LTR":"Left to right","DIR_RTL":"Right to left","DIR_AUTO":"Automatic","TEXTCOLOR":"Text color","BACKGROUNDCOLOR":"Background color","BOLD":"Bold","ITALIC":"Italic","UNDERLINE":"Underline","STRIKE":"Strikethrough","SUB":"Subscript","SUP":"Superscript","OL":"Ordered list","UL":"Unordered list","QUOTE":"Blockquote","INDENTDECREASE":"Decrease indent","INDENTINCREASE":"Increase indent","LINK":"Link","IMAGEURL":"Image URL","IMAGEUPLOAD":"Image select","UNDO":"Undo","REDO":"Redo","REMOVESTYLE":"Remove style"},"SETTINGS_LABELS":{"GENERAL":"General","CONTACTS":"Contacts","FOLDERS":"Folders","ACCOUNTS":"Accounts","FILTERS":"Filters","SECURITY":"Security","THEMES":"Themes"},"SETTINGS_FILTERS":{"SIMPLE":"Simple","ADVANCED":"Advanced","BUTTON_ADD_SCRIPT":"Add a Script","SUBNAME_MOVE_TO":"Move to \"%FOLDER%\"","SUBNAME_FORWARD_TO":"Forward to \"%EMAIL%\"","SUBNAME_REJECT":"Reject","SUBNAME_VACATION_MESSAGE":"Vacation message","SUBNAME_DISCARD":"Discard"},"SETTINGS_SECURITY":{"LEGEND_SECURITY":"Security","LABEL_AUTOLOGOUT":"Auto Logout","FORGET_KEY_PASS":"Forget private key passphrase","NEVER":"Never"},"SETTINGS_GENERAL":{"LANGUAGE":"Language","HOUR_FORMAT":"Hour format","IDENTITY":"Identity","LAYOUT":"Layout","LAYOUT_NO_SPLIT":"No Split","LAYOUT_VERTICAL_SPLIT":"Vertical Split","LAYOUT_HORIZONTAL_SPLIT":"Horizontal Split","SHOW_NEXT_MESSAGE":"Show next message when (re)move current message","EDITOR":"Default text editor","EDITOR_HTML":"Html","EDITOR_PLAIN":"Plain","VIEW_OPTIONS":"View options","USE_PREVIEW_PANE":"Use preview pane","HIDE_DELETED_MESSAGES":"Hide messages marked for deletion","USE_CHECKBOXES_IN_LIST":"Display checkboxes in list","USE_THREADS":"Use threads","THREAD_ALGORITHM":"Threads algorithm","REPLY_SAME_FOLDER":"Place replies in the folder of the message being replied to","PREFER_HTML":"Prefer HTML to plain text","PREFER_HTML_INFO":"Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.","REMOVE_COLORS":"Remove background and text colors from message body","ALLOW_STYLES":"Allow <style> CSS","MESSAGE_PER_PAGE":"Messages on page","CHECK_MAIL_INTERVAL":"Check mail interval","MARK_MESSAGE_READ_AFTER":"Mark message as read after","MSG_DEFAULT_ACTION":"Default action","SECONDS":"seconds","MINUTES":"minutes","NOTIFICATIONS":"Notifications","SOUND_NOTIFICATION":"Sound notification","CHROME_NOTIFICATION_DESC":"Show new messages notification popups","CHROME_NOTIFICATION_DESC_DENIED":"(Blocked by the browser)","COLLAPSE_BLOCKQUOTES":"Collapse quoted text","MAX_QUOTE_LEVEL":"Maximum visible quoted text levels","LIST_INLINE_ATTACHMENTS":"Show inline attachments in list","LIST_SIMPLE_ATTACHMENTS":"Simple attachments list","LIST_MESSAGES_GROUPED":"List messages grouped (when sorting by date or from)","EXTERNAL_IMAGES":"External images","IMAGES_OPTION_ASK":"Always ask","IMAGES_OPTION_WHITELIST":"Whitelist or ask","IMAGES_OPTION_ALWAYS":"Show always","IMAGES_WHITELIST":"Images whitelist","MESSAGE_POPUP_WINDOW":"Popup in new window instead of tab","MAILTO":"Register as 'mailto:' links handler","HTML_TO_MD":"Convert HTML to Markdown instead of plain text"},"SETTINGS_CONTACTS":{"LABEL_CONTACTS_AUTOSAVE":"Automatically add recipients to your address book","LEGEND_CONTACTS_SYNC":"Remote Synchronization (CardDAV)","LABEL_CONTACTS_SYNC_ENABLE":"Enable remote synchronization","LABEL_CONTACTS_SYNC_SERVER":"Server","LABEL_CONTACTS_SYNC_AB_URL":"Addressbook URL","LABEL_CONTACTS_SYNC_USER":"User","SYNC_READ":"Read only"},"SETTINGS_THEMES":{"LEGEND_THEMES":"Themes","LABEL_BACKGROUND":"Background","LABEL_FONTS":"Fonts","BUTTON_UPLOAD_BACKGROUND_IMAGE":"Upload background image (JPG, PNG)","ERROR_FILE_IS_TOO_BIG":"File is too big","ERROR_FILE_TYPE_ERROR":"Invalid file type (JPG and PNG only)","ERROR_UNKNOWN":"An unknown file upload error occurred"},"SETTINGS_FOLDERS":{"LEGEND_FOLDERS":"Folder List","BUTTON_CREATE":"Create Folder","BUTTON_SYSTEM":"System Folders","BUTTON_SUBSCRIBE":"Subscribe","BUTTON_UNSUBSCRIBE":"Unsubscribe","LOADING_PROCESS":"Updating folder list","CREATING_PROCESS":"Creating a folder","DELETING_PROCESS":"Deleting a folder","RENAMING_PROCESS":"Renaming a folder","TO_MANY_FOLDERS_DESC_1":"You have too many folders!","TO_MANY_FOLDERS_DESC_2":"We have shown only a part of them, to avoid performance problems.","HELP_DELETE_FOLDER":"Delete folder","HELP_SHOW_HIDE_FOLDER":"Show/hide folder","HELP_CHECK_FOR_NEW_MESSAGES":"Check for new messages","HIDE_UNSUBSCRIBED":"Hide unsubscribed folders","UNHIDE_KOLAB_FOLDERS":"Unhide Kolab folders","TYPE_CALENDAR":"Calendar","TYPE_CONFIGURATION":"Configuration","TYPE_CONTACTS":"Contacts","TYPE_FILES":"Files","TYPE_JOURNAL":"Journal","TYPE_NOTES":"Notes","TYPE_TASKS":"Tasks"},"SETTINGS_ACCOUNTS":{"LEGEND_ACCOUNTS":"Accounts","LEGEND_IDENTITIES":"Identities","LEGEND_ACCOUNTS_AND_IDENTITIES":"Accounts and Identities","BUTTON_ADD_ACCOUNT":"Add an Account","BUTTON_ADD_IDENTITY":"Add an Identity","LOADING_PROCESS":"Updating...","SHOW_UNREAD":"Show unread messages count"},"SETTINGS_OPENPGP":{"BUTTON_IMPORT_KEY":"Import Key","BUTTON_GENERATE_KEY_PAIR":"Generate Key Pair","IMPORT_FROM_SERVER":"Import from server","TITLE_PRIVATE":"Private","TITLE_PUBLIC":"Public","GET_MAILVELOPE":"Get Mailvelope browser add-on."},"SHORTCUTS_HELP":{"LEGEND_SHORTCUTS_HELP":"Keyboard shortcuts help","TAB_MAILBOX":"Mailbox","TAB_MESSAGE_LIST":"Message list","TAB_MESSAGE_VIEW":"Message view","TAB_COMPOSE":"Compose","LABEL_OPEN_USER_DROPDOWN":"Open user dropdown","LABEL_REPLY":"Reply","LABEL_REPLY_ALL":"Reply All","LABEL_FORWARD":"Forward","LABEL_FORWARD_MULTIPLY":"Forward as attachment(s)","LABEL_CHECK_ALL":"Select all messages","LABEL_DELETE":"Delete","LABEL_OPEN_THREAD":"Open selected thread","LABEL_MOVE":"Move","LABEL_READ":"Read selected messages","LABEL_UNREAD":"Unread selected messages","LABEL_IMPORTANT":"Important, flag selected messages","LABEL_CANCEL_SEARCH":"Cancel search","LABEL_FULLSCREEN_ENTER":"Fullscreen (Preview pane layout)","LABEL_VIEW_MESSAGE_ENTER":"View message (No preview pane layout)","LABEL_SWITCH_TO_MESSAGE":"Switch focus to selected message","LABEL_SWITCH_TO_FOLDER_LIST":"Switch focus to folder list","LABEL_FULLSCREEN_TOGGLE":"Toggle fullscreen mode","LABEL_BLOCKQUOTES_TOGGLE":"Toggle message blockquotes","LABEL_THREAD_NEXT":"Next message in thread","LABEL_THREAD_PREV":"Previous message in thread","LABEL_EXIT_FULLSCREEN":"Exit fullscreen mode","LABEL_CLOSE_MESSAGE":"Close message (No preview pane layout)","LABEL_SWITCH_TO_LIST":"Switch focus back to message list","LABEL_OPEN_COMPOSE_POPUP":"Open compose popup","LABEL_MINIMIZE_COMPOSE_POPUP":"Minimize compose popup","LABEL_OPEN_IDENTITIES_DROPDOWN":"Open identities dropdown","LABEL_SAVE_MESSAGE":"Save message","LABEL_SEND_MESSAGE":"Send message","LABEL_CLOSE_COMPOSE":"Close compose"},"NOTIFICATIONS":{"RequestError":"Request failed","RequestAborted":"Request is aborted","RequestTimeout":"Request timed out","InvalidToken":"Invalid token","AuthError":"Authentication failed","ConnectionError":"Can't connect to server","DomainAlreadyExists":"Domain already exists","DomainNotAllowed":"Domain is not allowed","AccountNotAllowed":"Account is not allowed","CryptKeyError":"Your login passphrase has changed","ContactsSyncError":"Contacts synchronization error","CantGetMessageList":"Can't get message list","CantGetMessage":"Can't get message","CantDeleteMessage":"Can't delete message","CantCopyMessage":"Can't copy message","CantMoveMessage":"Can't move message","CantSaveMessage":"Can't save message","CantSendMessage":"Can't send message","InvalidRecipients":"Invalid recipients","CantSaveFilters":"Can't save filters","CantGetFilters":"Can't get filters","CantActivateFiltersScript":"Can't activate filters script","CantDeleteFiltersScript":"Can't delete filters script","FiltersAreNotCorrect":"Filters are not correct","CantCreateFolder":"Can't create folder","CantRenameFolder":"Can't rename folder","CantDeleteFolder":"Can't delete folder","CantDeleteNonEmptyFolder":"Can't delete non-empty directory","CantSubscribeFolder":"Can't subscribe folder","CantUnsubscribeFolder":"Can't unsubscribe folder","DemoSendMessageError":"For security purposes, this account is not allowed to send messages to external e-mail addresses!","DemoAccountError":"For security purposes, this account is not allowed for this action!","AccountAlreadyExists":"Account already exists","AccountDoesNotExist":"Account doesn't exist","AccountSwitchFailed":"Switch to account \"%EMAIL%\" failed","MailServerError":"An error has occured while accessing mail server","InvalidInputArgument":"Invalid input argument","UnknownError":"Unknown error"}};
rl.relativeTime = {
long: {
year: {
past: {
one: "{0} year ago",
other: "{0} years ago"
},
future: {
one: "in {0} year",
other: "in {0} years"
}
},
month: {
past: {
one: "{0} month ago",
other: "{0} months ago"
},
future: {
one: "in {0} month",
other: "in {0} months"
}
},
week: {
past: {
one: "{0} week ago",
other: "{0} weeks ago"
},
future: {
one: "in {0} week",
other: "in {0} weeks"
}
},
day: {
past: {
one: "{0} day ago",
other: "{0} days ago"
},
future: {
one: "in {0} day",
other: "in {0} days"
}
},
hour: {
past: {
one: "{0} hour ago",
other: "{0} hours ago"
},
future: {
one: "in {0} hour",
other: "in {0} hours"
}
},
minute: {
past: {
one: "{0} minute ago",
other: "{0} minutes ago"
},
future: {
one: "in {0} minute",
other: "in {0} minutes"
}
},
second: {
past: {
one: "{0} second ago",
other: "{0} seconds ago"
},
future: {
one: "in {0} second",
other: "in {0} seconds"
}
}
},
/* 'zero', 'one', 'two', 'few', 'many', 'other' */
plural: n => 1 == n ? 'one' : 'other'
}
;</script> </body></html><!--cached-->