mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Resolve #1225 by using optional link tracking
This commit is contained in:
parent
d2c59d2e1c
commit
d55ce60cc5
42 changed files with 153 additions and 46 deletions
|
|
@ -208,6 +208,7 @@ export const
|
||||||
|
|
||||||
result = {
|
result = {
|
||||||
hasExternals: false,
|
hasExternals: false,
|
||||||
|
tracking: false,
|
||||||
linkedData: []
|
linkedData: []
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -398,10 +399,14 @@ export const
|
||||||
if ('A' === name) {
|
if ('A' === name) {
|
||||||
value = oElement.href;
|
value = oElement.href;
|
||||||
if (!/^([a-z]+):/i.test(value)) {
|
if (!/^([a-z]+):/i.test(value)) {
|
||||||
setAttribute('data-x-broken-href', value);
|
setAttribute('data-x-href-broken', value);
|
||||||
delAttribute('href');
|
delAttribute('href');
|
||||||
} else {
|
} else {
|
||||||
oElement.href = stripTracking(value);
|
oElement.href = stripTracking(value);
|
||||||
|
if (oElement.href != value) {
|
||||||
|
result.tracking = true;
|
||||||
|
setAttribute('data-x-href-tracking', value);
|
||||||
|
}
|
||||||
setAttribute('target', '_blank');
|
setAttribute('target', '_blank');
|
||||||
// setAttribute('rel', 'external nofollow noopener noreferrer');
|
// setAttribute('rel', 'external nofollow noopener noreferrer');
|
||||||
}
|
}
|
||||||
|
|
@ -423,9 +428,8 @@ export const
|
||||||
*/
|
*/
|
||||||
|
|
||||||
let skipStyle = false;
|
let skipStyle = false;
|
||||||
if (hasAttribute('src')) {
|
value = delAttribute('src');
|
||||||
value = stripTracking(delAttribute('src'));
|
if (value) {
|
||||||
|
|
||||||
if ('IMG' === name) {
|
if ('IMG' === name) {
|
||||||
oElement.loading = 'lazy';
|
oElement.loading = 'lazy';
|
||||||
let attachment;
|
let attachment;
|
||||||
|
|
@ -462,12 +466,18 @@ export const
|
||||||
oStyle.display = 'none';
|
oStyle.display = 'none';
|
||||||
// setAttribute('style', 'display:none');
|
// setAttribute('style', 'display:none');
|
||||||
setAttribute('data-x-src-hidden', value);
|
setAttribute('data-x-src-hidden', value);
|
||||||
|
// result.tracking = true;
|
||||||
}
|
}
|
||||||
else if (httpre.test(value))
|
else if (httpre.test(value))
|
||||||
{
|
{
|
||||||
setAttribute('data-x-src', value);
|
let src = stripTracking(value);
|
||||||
|
if (src != value) {
|
||||||
|
result.tracking = true;
|
||||||
|
setAttribute('data-x-src-tracking', value);
|
||||||
|
}
|
||||||
|
setAttribute('data-x-src', src);
|
||||||
result.hasExternals = true;
|
result.hasExternals = true;
|
||||||
oElement.alt || (oElement.alt = value.replace(/^.+\/([^/?]+).*$/, '$1').slice(-20));
|
oElement.alt || (oElement.alt = src.replace(/^.+\/([^/?]+).*$/, '$1').slice(-20));
|
||||||
}
|
}
|
||||||
else if (value.startsWith('data:image/'))
|
else if (value.startsWith('data:image/'))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,7 @@ export class MessageModel extends AbstractModel {
|
||||||
isHtml: false,
|
isHtml: false,
|
||||||
hasImages: false,
|
hasImages: false,
|
||||||
hasExternals: false,
|
hasExternals: false,
|
||||||
|
hasTracking: false,
|
||||||
|
|
||||||
pgpSigned: null,
|
pgpSigned: null,
|
||||||
pgpVerified: null,
|
pgpVerified: null,
|
||||||
|
|
@ -373,6 +374,7 @@ export class MessageModel extends AbstractModel {
|
||||||
let result = msgHtml(this);
|
let result = msgHtml(this);
|
||||||
this.hasExternals(result.hasExternals);
|
this.hasExternals(result.hasExternals);
|
||||||
this.hasImages(!!result.hasExternals);
|
this.hasImages(!!result.hasExternals);
|
||||||
|
this.hasTracking(!!result.tracking);
|
||||||
this.linkedData = result.linkedData;
|
this.linkedData = result.linkedData;
|
||||||
body.innerHTML = result.html;
|
body.innerHTML = result.html;
|
||||||
if (!this.isSpam && FolderUserStore.spamFolder() != this.folder) {
|
if (!this.isSpam && FolderUserStore.spamFolder() != this.folder) {
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,8 @@ export class MailMessageView extends AbstractViewRight {
|
||||||
actionsMenu: null,
|
actionsMenu: null,
|
||||||
// viewer
|
// viewer
|
||||||
viewFromShort: '',
|
viewFromShort: '',
|
||||||
dkimData: ['none', '', '']
|
dkimData: ['none', '', ''],
|
||||||
|
nowTracking: false
|
||||||
});
|
});
|
||||||
|
|
||||||
this.moveAction = moveAction;
|
this.moveAction = moveAction;
|
||||||
|
|
@ -208,6 +209,7 @@ export class MailMessageView extends AbstractViewRight {
|
||||||
// TODO: make first param a user setting #683
|
// TODO: make first param a user setting #683
|
||||||
this.viewFromShort(message.from.toString(false, true));
|
this.viewFromShort(message.from.toString(false, true));
|
||||||
this.dkimData(message.dkim[0] || ['none', '', '']);
|
this.dkimData(message.dkim[0] || ['none', '', '']);
|
||||||
|
this.nowTracking(false);
|
||||||
} else {
|
} else {
|
||||||
MessagelistUserStore.selectedMessage(null);
|
MessagelistUserStore.selectedMessage(null);
|
||||||
|
|
||||||
|
|
@ -500,6 +502,17 @@ export class MailMessageView extends AbstractViewRight {
|
||||||
currentMessage().showExternalImages();
|
currentMessage().showExternalImages();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showTracking() {
|
||||||
|
const msg = currentMessage(), body = msg?.body;
|
||||||
|
if (body && msg.hasTracking()) {
|
||||||
|
let attr = 'data-x-href-tracking';
|
||||||
|
body.querySelectorAll('a['+attr+']').forEach(node => node.href = node.getAttribute(attr));
|
||||||
|
// attr = 'data-x-src-tracking';
|
||||||
|
// body.querySelectorAll('img['+attr+']').forEach(node => node.src = node.getAttribute(attr));
|
||||||
|
this.nowTracking(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
whitelistText(txt) {
|
whitelistText(txt) {
|
||||||
let value = (SettingsUserStore.viewImagesWhitelist().trim() + '\n' + txt).trim();
|
let value = (SettingsUserStore.viewImagesWhitelist().trim() + '\n' + txt).trim();
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam-Score",
|
"SPAM_SCORE": "Spam-Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNUNG: Virus erkannt",
|
"HAS_VIRUS_WARNING": "WARNUNG: Virus erkannt",
|
||||||
"TAGS": "Stichworte",
|
"TAGS": "Stichworte",
|
||||||
"NEW_TAG": "Neues Schlagwort"
|
"NEW_TAG": "Neues Schlagwort",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Wichtig",
|
"$important": "Wichtig",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Puntuación de spam",
|
"SPAM_SCORE": "Puntuación de spam",
|
||||||
"HAS_VIRUS_WARNING": "ADVERTENCIA: virus detectado",
|
"HAS_VIRUS_WARNING": "ADVERTENCIA: virus detectado",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Puntuzioa",
|
"SPAM_SCORE": "Spam Puntuzioa",
|
||||||
"HAS_VIRUS_WARNING": "KONTUZ: virusa detektatu da",
|
"HAS_VIRUS_WARNING": "KONTUZ: virusa detektatu da",
|
||||||
"TAGS": "Etiketak",
|
"TAGS": "Etiketak",
|
||||||
"NEW_TAG": "Etiketa berria"
|
"NEW_TAG": "Etiketa berria",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Garrantzitsua",
|
"$important": "Garrantzitsua",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Score de spam",
|
"SPAM_SCORE": "Score de spam",
|
||||||
"HAS_VIRUS_WARNING": "ATTENTION : virus détecté",
|
"HAS_VIRUS_WARNING": "ATTENTION : virus détecté",
|
||||||
"TAGS": "Étiquettes",
|
"TAGS": "Étiquettes",
|
||||||
"NEW_TAG": "Nouvelle étiquette"
|
"NEW_TAG": "Nouvelle étiquette",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "FIGYELEM: vírust észleltünk",
|
"HAS_VIRUS_WARNING": "FIGYELEM: vírust észleltünk",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Punteggio Spam",
|
"SPAM_SCORE": "Punteggio Spam",
|
||||||
"HAS_VIRUS_WARNING": "AVVISO: rilevato virus",
|
"HAS_VIRUS_WARNING": "AVVISO: rilevato virus",
|
||||||
"TAGS": "Tag",
|
"TAGS": "Tag",
|
||||||
"NEW_TAG": "Nuovo tag"
|
"NEW_TAG": "Nuovo tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Importante",
|
"$important": "Importante",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "警告: ウィルスが検出されました",
|
"HAS_VIRUS_WARNING": "警告: ウィルスが検出されました",
|
||||||
"TAGS": "タグ",
|
"TAGS": "タグ",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "重要",
|
"$important": "重要",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Søppelvurdering",
|
"SPAM_SCORE": "Søppelvurdering",
|
||||||
"HAS_VIRUS_WARNING": "ADVARSEL: virus oppdaget",
|
"HAS_VIRUS_WARNING": "ADVARSEL: virus oppdaget",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spamscore",
|
"SPAM_SCORE": "Spamscore",
|
||||||
"HAS_VIRUS_WARNING": "WAARSCHUWING: virus gedetecteerd",
|
"HAS_VIRUS_WARNING": "WAARSCHUWING: virus gedetecteerd",
|
||||||
"TAGS": "Labels",
|
"TAGS": "Labels",
|
||||||
"NEW_TAG": "Nieuwe label"
|
"NEW_TAG": "Nieuwe label",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Belangrijk",
|
"$important": "Belangrijk",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Punktacja\/Reputacja spamu",
|
"SPAM_SCORE": "Punktacja\/Reputacja spamu",
|
||||||
"HAS_VIRUS_WARNING": "Uwaga: wykryto wirusa!",
|
"HAS_VIRUS_WARNING": "Uwaga: wykryto wirusa!",
|
||||||
"TAGS": "Tagi",
|
"TAGS": "Tagi",
|
||||||
"NEW_TAG": "Nowy tag"
|
"NEW_TAG": "Nowy tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Ważne",
|
"$important": "Ważne",
|
||||||
|
|
@ -386,7 +388,8 @@
|
||||||
"IMAGEURL": "Odnośnik obrazu",
|
"IMAGEURL": "Odnośnik obrazu",
|
||||||
"IMAGEUPLOAD": "Wybierz obraz",
|
"IMAGEUPLOAD": "Wybierz obraz",
|
||||||
"UNDO": "Cofnij",
|
"UNDO": "Cofnij",
|
||||||
"REDO": "Ponów"
|
"REDO": "Ponów",
|
||||||
|
"REMOVESTYLE": "Remove style"
|
||||||
},
|
},
|
||||||
"SETTINGS_LABELS": {
|
"SETTINGS_LABELS": {
|
||||||
"GENERAL": "Ogólne",
|
"GENERAL": "Ogólne",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Pontuação de Spam",
|
"SPAM_SCORE": "Pontuação de Spam",
|
||||||
"HAS_VIRUS_WARNING": "AVISO: vírus detetado",
|
"HAS_VIRUS_WARNING": "AVISO: vírus detetado",
|
||||||
"TAGS": "Etiquetas",
|
"TAGS": "Etiquetas",
|
||||||
"NEW_TAG": "Nova etiqueta"
|
"NEW_TAG": "Nova etiqueta",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Importante",
|
"$important": "Importante",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Pontuação de Spam",
|
"SPAM_SCORE": "Pontuação de Spam",
|
||||||
"HAS_VIRUS_WARNING": "AVISO: vírus detetado",
|
"HAS_VIRUS_WARNING": "AVISO: vírus detetado",
|
||||||
"TAGS": "Etiquetas",
|
"TAGS": "Etiquetas",
|
||||||
"NEW_TAG": "Nova etiqueta"
|
"NEW_TAG": "Nova etiqueta",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Importante",
|
"$important": "Importante",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Оценка спама",
|
"SPAM_SCORE": "Оценка спама",
|
||||||
"HAS_VIRUS_WARNING": "ВНИМАНИЕ: Обнаружен вирус!",
|
"HAS_VIRUS_WARNING": "ВНИМАНИЕ: Обнаружен вирус!",
|
||||||
"TAGS": "Метки",
|
"TAGS": "Метки",
|
||||||
"NEW_TAG": "Новая метка"
|
"NEW_TAG": "Новая метка",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Важное",
|
"$important": "Важное",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "VARNING: virus upptäckt",
|
"HAS_VIRUS_WARNING": "VARNING: virus upptäckt",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Spam Score",
|
"SPAM_SCORE": "Spam Score",
|
||||||
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
"HAS_VIRUS_WARNING": "WARNING: virus detected",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Important",
|
"$important": "Important",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "Điểm số thư rác",
|
"SPAM_SCORE": "Điểm số thư rác",
|
||||||
"HAS_VIRUS_WARNING": "BÁO ĐỘNG ĐỎ: phát hiện có virut trong thư",
|
"HAS_VIRUS_WARNING": "BÁO ĐỘNG ĐỎ: phát hiện có virut trong thư",
|
||||||
"TAGS": "Thẻ",
|
"TAGS": "Thẻ",
|
||||||
"NEW_TAG": "New tag"
|
"NEW_TAG": "New tag",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "Quan trọng",
|
"$important": "Quan trọng",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "垃圾邮件分数",
|
"SPAM_SCORE": "垃圾邮件分数",
|
||||||
"HAS_VIRUS_WARNING": "警告:检测到病毒",
|
"HAS_VIRUS_WARNING": "警告:检测到病毒",
|
||||||
"TAGS": "标签",
|
"TAGS": "标签",
|
||||||
"NEW_TAG": "新标签"
|
"NEW_TAG": "新标签",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "重要",
|
"$important": "重要",
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,9 @@
|
||||||
"SPAM_SCORE": "垃圾郵件計分",
|
"SPAM_SCORE": "垃圾郵件計分",
|
||||||
"HAS_VIRUS_WARNING": "警告: 已偵測到病毒",
|
"HAS_VIRUS_WARNING": "警告: 已偵測到病毒",
|
||||||
"TAGS": "標籤",
|
"TAGS": "標籤",
|
||||||
"NEW_TAG": "新增標籤"
|
"NEW_TAG": "新增標籤",
|
||||||
|
"ENABLE_TRACKING_LINKS": "Enable tracking links",
|
||||||
|
"TRACKING_ENABLED": "Links are now tracked when clicked!"
|
||||||
},
|
},
|
||||||
"MESSAGE_TAGS": {
|
"MESSAGE_TAGS": {
|
||||||
"$important": "重要",
|
"$important": "重要",
|
||||||
|
|
|
||||||
|
|
@ -287,6 +287,11 @@
|
||||||
</div>
|
</div>
|
||||||
</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 data-bind="visible: message().pgpEncrypted()">
|
||||||
<div class="openpgp-control encrypted" data-bind="css: {success: message().pgpDecrypted()}">
|
<div class="openpgp-control encrypted" data-bind="css: {success: message().pgpDecrypted()}">
|
||||||
<span data-icon="🔒" data-i18n="OPENPGP/ENCRYPTED_MESSAGE"></span>
|
<span data-icon="🔒" data-i18n="OPENPGP/ENCRYPTED_MESSAGE"></span>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue