Added option to convert HTML to Markdown instead of plain, using Turndown #1604

This commit is contained in:
the-djmaze 2024-09-14 14:00:36 +02:00
parent d3b0d6ca57
commit 8fb7067531
45 changed files with 201 additions and 135 deletions

View file

@ -4,6 +4,9 @@ import { SettingsUserStore } from 'Stores/User/Settings';
const const
tmpl = createElement('template'), tmpl = createElement('template'),
turndown = new TurndownService(),
htmlre = /[&<>"']/g, htmlre = /[&<>"']/g,
httpre = /^(https?:)?\/\//i, httpre = /^(https?:)?\/\//i,
htmlmap = { htmlmap = {
@ -604,6 +607,9 @@ export const
* @returns {string} * @returns {string}
*/ */
htmlToPlain = html => { htmlToPlain = html => {
if (SettingsUserStore.markdown()) {
return htmlToMarkdown(html);
}
const const
hr = '⎯'.repeat(64), hr = '⎯'.repeat(64),
forEach = (selector, fn) => tmpl.content.querySelectorAll(selector).forEach(fn), forEach = (selector, fn) => tmpl.content.querySelectorAll(selector).forEach(fn),
@ -640,6 +646,8 @@ export const
.replace(/<t[dh](\s[\s\S]*?)?>/gi, '\t') .replace(/<t[dh](\s[\s\S]*?)?>/gi, '\t')
.replace(/<\/tr(\s[\s\S]*?)?>/gi, '\n'); .replace(/<\/tr(\s[\s\S]*?)?>/gi, '\n');
forEach('style', node => node.remove());
// lines // lines
forEach('hr', node => node.replaceWith(`\n\n${hr}\n\n`)); forEach('hr', node => node.replaceWith(`\n\n${hr}\n\n`));
@ -700,6 +708,11 @@ export const
return (tmpl.content.textContent || '').trim(); return (tmpl.content.textContent || '').trim();
}, },
htmlToMarkdown = html => {
tmpl.innerHTML = html;
return turndown.turndown(tmpl.content);
},
/** /**
* @param {string} plain * @param {string} plain
* @param {boolean} findEmailAndLinksInText = false * @param {boolean} findEmailAndLinksInText = false
@ -771,5 +784,7 @@ export const
rl.Utils = { rl.Utils = {
htmlToPlain: htmlToPlain, htmlToPlain: htmlToPlain,
plainToHtml: plainToHtml plainToHtml: plainToHtml,
htmlToMarkdown: htmlToMarkdown
// markdownToHtml: md => marked.parse(md)
}; };

View file

@ -45,6 +45,7 @@ export const
proxy = url => proxy = url =>
BASE + '?/ProxyExternal/' BASE + '?/ProxyExternal/'
// + btoa(JSON.stringify([token,url]).replace(/ /g, '%20')).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''),
+ btoa(url.replace(/ /g, '%20')).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''), + btoa(url.replace(/ /g, '%20')).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''),
// + b64EncodeJSONSafe(url.replace(/ /g, '%20')), // + b64EncodeJSONSafe(url.replace(/ /g, '%20')),

View file

@ -62,7 +62,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
'viewHTML', 'viewImages', 'viewImagesWhitelist', 'removeColors', 'allowStyles', 'allowDraftAutosave', 'viewHTML', 'viewImages', 'viewImagesWhitelist', 'removeColors', 'allowStyles', 'allowDraftAutosave',
'hideDeleted', 'listInlineAttachments', 'simpleAttachmentsList', 'collapseBlockquotes', 'hideDeleted', 'listInlineAttachments', 'simpleAttachmentsList', 'collapseBlockquotes',
'useCheckboxesInList', 'listGrouped', 'replySameFolder', 'allowSpellcheck', 'useCheckboxesInList', 'listGrouped', 'replySameFolder', 'allowSpellcheck',
'messageReadAuto', 'showNextMessage', 'messageNewWindow' 'messageReadAuto', 'showNextMessage', 'messageNewWindow', 'markdown'
].forEach(name => this[name] = SettingsUserStore[name]); ].forEach(name => this[name] = SettingsUserStore[name]);
this.allowLanguagesOnSettings = !!SettingsGet('allowLanguagesOnSettings'); this.allowLanguagesOnSettings = !!SettingsGet('allowLanguagesOnSettings');
@ -123,7 +123,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
'ViewHTML', 'ViewImages', 'ViewImagesWhitelist', 'RemoveColors', 'AllowStyles', 'AllowDraftAutosave', 'ViewHTML', 'ViewImages', 'ViewImagesWhitelist', 'RemoveColors', 'AllowStyles', 'AllowDraftAutosave',
'HideDeleted', 'ListInlineAttachments', 'simpleAttachmentsList', 'CollapseBlockquotes', 'HideDeleted', 'ListInlineAttachments', 'simpleAttachmentsList', 'CollapseBlockquotes',
'UseCheckboxesInList', 'listGrouped', 'ReplySameFolder', 'allowSpellcheck', 'UseCheckboxesInList', 'listGrouped', 'ReplySameFolder', 'allowSpellcheck',
'messageReadAuto', 'showNextMessage', 'messageNewWindow', 'messageReadAuto', 'showNextMessage', 'messageNewWindow', 'markdown',
'DesktopNotifications', 'SoundNotification']); 'DesktopNotifications', 'SoundNotification']);
const fReloadLanguageHelper = (saveSettingsStep) => () => { const fReloadLanguageHelper = (saveSettingsStep) => () => {

View file

@ -50,6 +50,7 @@ export const SettingsUserStore = new class {
layout: 1, layout: 1,
editorDefaultType: 'Html', editorDefaultType: 'Html',
editorWysiwyg: 'Squire', editorWysiwyg: 'Squire',
markdown: 0,
msgDefaultAction: 1 msgDefaultAction: 1
}); });
@ -113,7 +114,8 @@ export const SettingsUserStore = new class {
'requireTLS', 'requireTLS',
'pgpSign', 'pgpSign',
'pgpEncrypt', 'pgpEncrypt',
'allowSpellcheck' 'allowSpellcheck',
'markdown'
/* /*
'MessagesPerPage', 'MessagesPerPage',
'MessageReadDelay', 'MessageReadDelay',

View file

@ -595,6 +595,7 @@ class Actions
'listGrouped' => $oConfig->Get('defaults', 'mail_list_grouped', false), 'listGrouped' => $oConfig->Get('defaults', 'mail_list_grouped', false),
'MessagesPerPage' => \max(10, \intval($oConfig->Get('webmail', 'messages_per_page', 25)) ?: 25), 'MessagesPerPage' => \max(10, \intval($oConfig->Get('webmail', 'messages_per_page', 25)) ?: 25),
'messageNewWindow' => false, 'messageNewWindow' => false,
'markdown' => false,
'messageReadAuto' => true, // (bool) $oConfig->Get('webmail', 'message_read_auto', true), 'messageReadAuto' => true, // (bool) $oConfig->Get('webmail', 'message_read_auto', true),
'MessageReadDelay' => (int) $oConfig->Get('webmail', 'message_read_delay', 5), 'MessageReadDelay' => (int) $oConfig->Get('webmail', 'message_read_delay', 5),
'MsgDefaultAction' => (int) $oConfig->Get('defaults', 'msg_default_action', 1), 'MsgDefaultAction' => (int) $oConfig->Get('defaults', 'msg_default_action', 1),
@ -690,7 +691,8 @@ class Actions
$aResult['listGrouped'] = (bool)$oSettings->GetConf('listGrouped', $aResult['listGrouped']); $aResult['listGrouped'] = (bool)$oSettings->GetConf('listGrouped', $aResult['listGrouped']);
$aResult['ContactsAutosave'] = (bool)$oSettings->GetConf('ContactsAutosave', $aResult['ContactsAutosave']); $aResult['ContactsAutosave'] = (bool)$oSettings->GetConf('ContactsAutosave', $aResult['ContactsAutosave']);
$aResult['MessagesPerPage'] = \max(10, \intval($oSettings->GetConf('MessagesPerPage', $aResult['MessagesPerPage']) ?: $aResult['MessagesPerPage'])); $aResult['MessagesPerPage'] = \max(10, \intval($oSettings->GetConf('MessagesPerPage', $aResult['MessagesPerPage']) ?: $aResult['MessagesPerPage']));
$aResult['messageNewWindow'] = (int)$oSettings->GetConf('messageNewWindow', $aResult['messageNewWindow']); $aResult['messageNewWindow'] = (bool)$oSettings->GetConf('messageNewWindow', $aResult['messageNewWindow']);
$aResult['markdown'] = (bool)$oSettings->GetConf('markdown', $aResult['markdown']);
$aResult['messageReadAuto'] = (int)$oSettings->GetConf('messageReadAuto', $aResult['messageReadAuto']); $aResult['messageReadAuto'] = (int)$oSettings->GetConf('messageReadAuto', $aResult['messageReadAuto']);
$aResult['MessageReadDelay'] = (int)$oSettings->GetConf('MessageReadDelay', $aResult['MessageReadDelay']); $aResult['MessageReadDelay'] = (int)$oSettings->GetConf('MessageReadDelay', $aResult['MessageReadDelay']);
$aResult['MsgDefaultAction'] = (int)$oSettings->GetConf('MsgDefaultAction', $aResult['MsgDefaultAction']); $aResult['MsgDefaultAction'] = (int)$oSettings->GetConf('MsgDefaultAction', $aResult['MsgDefaultAction']);

View file

@ -198,6 +198,7 @@ trait User
$this->setSettingsFromParams($oSettings, 'MessageReadDelay', 'int'); $this->setSettingsFromParams($oSettings, 'MessageReadDelay', 'int');
$this->setSettingsFromParams($oSettings, 'MsgDefaultAction', 'int'); $this->setSettingsFromParams($oSettings, 'MsgDefaultAction', 'int');
$this->setSettingsFromParams($oSettings, 'showNextMessage', 'bool'); $this->setSettingsFromParams($oSettings, 'showNextMessage', 'bool');
$this->setSettingsFromParams($oSettings, 'markdown', 'bool');
$this->setSettingsFromParams($oSettings, 'Resizer4Width', 'int'); $this->setSettingsFromParams($oSettings, 'Resizer4Width', 'int');
$this->setSettingsFromParams($oSettings, 'Resizer5Width', 'int'); $this->setSettingsFromParams($oSettings, 'Resizer5Width', 'int');

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "قم باضافة المستلمين تلقائيا الى دفتر العناوين", "LABEL_CONTACTS_AUTOSAVE": "قم باضافة المستلمين تلقائيا الى دفتر العناوين",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Показваць заўсёды", "IMAGES_OPTION_ALWAYS": "Показваць заўсёды",
"IMAGES_WHITELIST": "Фарматы з белага спісу", "IMAGES_WHITELIST": "Фарматы з белага спісу",
"MESSAGE_POPUP_WINDOW": "Усплываючае вакно ў новым вакне замест карткі", "MESSAGE_POPUP_WINDOW": "Усплываючае вакно ў новым вакне замест карткі",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Аўтаматычна дадаваць атрымальнікаў лістоў у адрасную кнігу", "LABEL_CONTACTS_AUTOSAVE": "Аўтаматычна дадаваць атрымальнікаў лістоў у адрасную кнігу",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Автоматично добавяне на получателите към адресната ви книга", "LABEL_CONTACTS_AUTOSAVE": "Автоматично добавяне на получателите към адресната ви книга",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Automaticky přidávat adresy příjemců do Adresáře", "LABEL_CONTACTS_AUTOSAVE": "Automaticky přidávat adresy příjemců do Adresáře",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Tilføj automatisk modtager til adressebog", "LABEL_CONTACTS_AUTOSAVE": "Tilføj automatisk modtager til adressebog",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Immer anzeigen", "IMAGES_OPTION_ALWAYS": "Immer anzeigen",
"IMAGES_WHITELIST": "Ausnahmeliste für Bilder", "IMAGES_WHITELIST": "Ausnahmeliste für Bilder",
"MESSAGE_POPUP_WINDOW": "In neuem Fenster statt Tab anzeigen", "MESSAGE_POPUP_WINDOW": "In neuem Fenster statt Tab anzeigen",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Empfänger automatisch zu Ihrem Adressbuch hinzuzufügen", "LABEL_CONTACTS_AUTOSAVE": "Empfänger automatisch zu Ihrem Adressbuch hinzuzufügen",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Αυτόματη προσθήκη επαφών στον κατάλογο διευθύνσεων", "LABEL_CONTACTS_AUTOSAVE": "Αυτόματη προσθήκη επαφών στον κατάλογο διευθύνσεων",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Automatically add recipients to your address book", "LABEL_CONTACTS_AUTOSAVE": "Automatically add recipients to your address book",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Mostrar siempre", "IMAGES_OPTION_ALWAYS": "Mostrar siempre",
"IMAGES_WHITELIST": "Lista blanca de imágenes", "IMAGES_WHITELIST": "Lista blanca de imágenes",
"MESSAGE_POPUP_WINDOW": "Popup en nueva ventana en lugar de pestaña", "MESSAGE_POPUP_WINDOW": "Popup en nueva ventana en lugar de pestaña",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Agregar automáticamente destinatarios a la libreta de direcciones", "LABEL_CONTACTS_AUTOSAVE": "Agregar automáticamente destinatarios a la libreta de direcciones",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Lisa saajad automaatselt aadressiraamatusse", "LABEL_CONTACTS_AUTOSAVE": "Lisa saajad automaatselt aadressiraamatusse",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Automatikoki gehitu hartzaileak helbide-liburura", "LABEL_CONTACTS_AUTOSAVE": "Automatikoki gehitu hartzaileak helbide-liburura",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "اطلاعات تماس گیرندگان را بصورت خودکار در آدرس‌بوک ذخیره کن", "LABEL_CONTACTS_AUTOSAVE": "اطلاعات تماس گیرندگان را بصورت خودکار در آدرس‌بوک ذخیره کن",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Lisää yhetystieto automaattisesti osoitekirjaan", "LABEL_CONTACTS_AUTOSAVE": "Lisää yhetystieto automaattisesti osoitekirjaan",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Toujours afficher", "IMAGES_OPTION_ALWAYS": "Toujours afficher",
"IMAGES_WHITELIST": "Liste blanche Images", "IMAGES_WHITELIST": "Liste blanche Images",
"MESSAGE_POPUP_WINDOW": "Popup dans une nouvelle fenêtre au lieu d'un onglet", "MESSAGE_POPUP_WINDOW": "Popup dans une nouvelle fenêtre au lieu d'un onglet",
"MAILTO": "Inscrivez-vous en tant que gestionnaire de liens 'mailto:'" "MAILTO": "Inscrivez-vous en tant que gestionnaire de liens 'mailto:'",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Ajouter automatiquement les destinataires à votre carnet d'adresses", "LABEL_CONTACTS_AUTOSAVE": "Ajouter automatiquement les destinataires à votre carnet d'adresses",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Címzettek automatikus hozzáadása a címtárhoz", "LABEL_CONTACTS_AUTOSAVE": "Címzettek automatikus hozzáadása a címtárhoz",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Tambah penerima ke daftar alamat secara otomatis", "LABEL_CONTACTS_AUTOSAVE": "Tambah penerima ke daftar alamat secara otomatis",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Bæta viðtakendum sjálfkrafa í nafnaskrá", "LABEL_CONTACTS_AUTOSAVE": "Bæta viðtakendum sjálfkrafa í nafnaskrá",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Visualizza sempre", "IMAGES_OPTION_ALWAYS": "Visualizza sempre",
"IMAGES_WHITELIST": "Whitelist per immagini", "IMAGES_WHITELIST": "Whitelist per immagini",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Aggiungi automaticamente le persone che ti inviano mail alla rubrica", "LABEL_CONTACTS_AUTOSAVE": "Aggiungi automaticamente le persone che ti inviano mail alla rubrica",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "返信したアドレスをアドレス帳へ自動的に追加する", "LABEL_CONTACTS_AUTOSAVE": "返信したアドレスをアドレス帳へ自動的に追加する",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "수신인을 주소록에 자동으로 추가", "LABEL_CONTACTS_AUTOSAVE": "수신인을 주소록에 자동으로 추가",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Automatiškai pridėti gavėjus į adresų knygą", "LABEL_CONTACTS_AUTOSAVE": "Automatiškai pridėti gavėjus į adresų knygą",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Automatically add recipients to your address book", "LABEL_CONTACTS_AUTOSAVE": "Automatically add recipients to your address book",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Legg til mottakere i adresseboka automatisk", "LABEL_CONTACTS_AUTOSAVE": "Legg til mottakere i adresseboka automatisk",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Altijd tonen", "IMAGES_OPTION_ALWAYS": "Altijd tonen",
"IMAGES_WHITELIST": "Afbeeldingen whitelist", "IMAGES_WHITELIST": "Afbeeldingen whitelist",
"MESSAGE_POPUP_WINDOW": "Openen in een nieuw venster i.p.v. tab", "MESSAGE_POPUP_WINDOW": "Openen in een nieuw venster i.p.v. tab",
"MAILTO": "Registreer als 'mailto:'-linkhandler" "MAILTO": "Registreer als 'mailto:'-linkhandler",
"HTML_TO_MD": "Converteer HTML naar Markdown i.p.v. platte tekst"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Automatisch ontvangers toevoegen aan uw adresboek", "LABEL_CONTACTS_AUTOSAVE": "Automatisch ontvangers toevoegen aan uw adresboek",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Zawsze pokazuj", "IMAGES_OPTION_ALWAYS": "Zawsze pokazuj",
"IMAGES_WHITELIST": "Biała lista obrazów", "IMAGES_WHITELIST": "Biała lista obrazów",
"MESSAGE_POPUP_WINDOW": "Pokaż w nowym oknie zamiast w nowej karcie", "MESSAGE_POPUP_WINDOW": "Pokaż w nowym oknie zamiast w nowej karcie",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Automatycznie dodawaj odbiorców do książki adresowej", "LABEL_CONTACTS_AUTOSAVE": "Automatycznie dodawaj odbiorców do książki adresowej",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Adicionar automaticamente os destinatários na lista de endereços", "LABEL_CONTACTS_AUTOSAVE": "Adicionar automaticamente os destinatários na lista de endereços",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Mostrar sempre", "IMAGES_OPTION_ALWAYS": "Mostrar sempre",
"IMAGES_WHITELIST": "Lista Branca de imagens", "IMAGES_WHITELIST": "Lista Branca de imagens",
"MESSAGE_POPUP_WINDOW": "Abrir em nova janela em vez de um separador", "MESSAGE_POPUP_WINDOW": "Abrir em nova janela em vez de um separador",
"MAILTO": "Registar como manipulador de ligações 'mailto:'" "MAILTO": "Registar como manipulador de ligações 'mailto:'",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Adicionar destinatários automaticamente à sua lista de endereços", "LABEL_CONTACTS_AUTOSAVE": "Adicionar destinatários automaticamente à sua lista de endereços",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Adaugă automat destinatarii la agenda de scrisori", "LABEL_CONTACTS_AUTOSAVE": "Adaugă automat destinatarii la agenda de scrisori",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Показать всегда", "IMAGES_OPTION_ALWAYS": "Показать всегда",
"IMAGES_WHITELIST": "Форматы из белого списка", "IMAGES_WHITELIST": "Форматы из белого списка",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Автоматически добавлять получателей писем в адресную книгу", "LABEL_CONTACTS_AUTOSAVE": "Автоматически добавлять получателей писем в адресную книгу",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Automaticky pridávať príjemcov správ do Adresára", "LABEL_CONTACTS_AUTOSAVE": "Automaticky pridávať príjemcov správ do Adresára",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Samodejno dodaj prejemnike v imenik", "LABEL_CONTACTS_AUTOSAVE": "Samodejno dodaj prejemnike v imenik",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Lägg till mottagare automatiskt i din adressbok", "LABEL_CONTACTS_AUTOSAVE": "Lägg till mottagare automatiskt i din adressbok",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Otomatik olarak adres defterinize alıcıyı ekle", "LABEL_CONTACTS_AUTOSAVE": "Otomatik olarak adres defterinize alıcıyı ekle",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Автоматично додавати отримувачів у адресну книгу", "LABEL_CONTACTS_AUTOSAVE": "Автоматично додавати отримувачів у адресну книгу",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "Show always", "IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist", "IMAGES_WHITELIST": "Images whitelist",
"MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab", "MESSAGE_POPUP_WINDOW": "Popup in new window instead of tab",
"MAILTO": "Register as 'mailto:' links handler" "MAILTO": "Register as 'mailto:' links handler",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "Tự động thêm người nhận thư vào sổ địa chỉ của bạn", "LABEL_CONTACTS_AUTOSAVE": "Tự động thêm người nhận thư vào sổ địa chỉ của bạn",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "永遠顯示", "IMAGES_OPTION_ALWAYS": "永遠顯示",
"IMAGES_WHITELIST": "圖片白名單", "IMAGES_WHITELIST": "圖片白名單",
"MESSAGE_POPUP_WINDOW": "在新彈出窗口而非分頁中打開", "MESSAGE_POPUP_WINDOW": "在新彈出窗口而非分頁中打開",
"MAILTO": "注冊成 mailto: 連結處理器" "MAILTO": "注冊成 mailto: 連結處理器",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "自動新增收件者至通訊錄", "LABEL_CONTACTS_AUTOSAVE": "自動新增收件者至通訊錄",

View file

@ -499,7 +499,8 @@
"IMAGES_OPTION_ALWAYS": "总是显示", "IMAGES_OPTION_ALWAYS": "总是显示",
"IMAGES_WHITELIST": "图片白名单", "IMAGES_WHITELIST": "图片白名单",
"MESSAGE_POPUP_WINDOW": "弹出页面使用新窗口代替新选项卡", "MESSAGE_POPUP_WINDOW": "弹出页面使用新窗口代替新选项卡",
"MAILTO": "注册成 mailto: 链接处理器" "MAILTO": "注册成 mailto: 链接处理器",
"HTML_TO_MD": "Convert HTML to Markdown instead of plain text"
}, },
"SETTINGS_CONTACTS": { "SETTINGS_CONTACTS": {
"LABEL_CONTACTS_AUTOSAVE": "自动添加到您的地址簿", "LABEL_CONTACTS_AUTOSAVE": "自动添加到您的地址簿",

View file

@ -49,15 +49,8 @@
<div data-bind="component: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
label: 'SETTINGS_GENERAL/REPLY_SAME_FOLDER', label: 'SETTINGS_GENERAL/HTML_TO_MD',
value: replySameFolder value: markdown
}
}"></div>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'SETTINGS_GENERAL/SHOW_NEXT_MESSAGE',
value: showNextMessage
} }
}"></div> }"></div>
</div> </div>
@ -109,90 +102,6 @@
<select data-bind="options: threadAlgorithms, value: threadAlgorithm"></select> <select data-bind="options: threadAlgorithms, value: threadAlgorithm"></select>
</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: '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="SHORTCUTS_HELP/TAB_MESSAGE_VIEW"></div> <div class="legend" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_VIEW"></div>
<div class="control-group"> <div class="control-group">
<div data-bind="component: { <div data-bind="component: {
@ -267,6 +176,13 @@
} }
}"></div> }"></div>
<em style="margin: 0 0 1em 2em;display: block;" data-i18n="SETTINGS_GENERAL/PREFER_HTML_INFO"></em> <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: { <div data-bind="component: {
name: 'Checkbox', name: 'Checkbox',
params: { params: {
@ -302,6 +218,97 @@
</div> </div>
</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="legend" data-i18n="SETTINGS_GENERAL/NOTIFICATIONS"></div>
<div class="control-group"> <div class="control-group">
<div> <div>

View file

@ -65,6 +65,7 @@ config.paths.js = {
// 'vendors/knockout/build/output/knockout-latest.debug.js', // 'vendors/knockout/build/output/knockout-latest.debug.js',
'vendors/squire/build/squire-raw.js', 'vendors/squire/build/squire-raw.js',
'vendors/mathiasbynens/punycode.js', 'vendors/mathiasbynens/punycode.js',
'vendors/turndown/turndown.js',
'dev/External/SquireUI.js' 'dev/External/SquireUI.js'
] ]
}, },