mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-10-11 23:07:12 +00:00
feat(preferences): Add user preferences to enable / disable signature for new mail, reply and forward
This commit is contained in:
1 parent
577d991d42
commit
8582e423bd
14 files changed
+158
-46
No files matched your search
@@ -155,9 +155,9 @@
|
||||
{
|
||||
[headers setObject: [self _emailFromIdentity: identity] forKey: @"from"];
|
||||
signature = [identity objectForKey: @"signature"];
|
||||
if ([signature length])
|
||||
ud = [[context activeUser] userDefaults];
|
||||
if ([signature length] && [ud mailUseSignatureOnNew])
|
||||
{
|
||||
ud = [[context activeUser] userDefaults];
|
||||
[newDraftMessage setIsHTML: [[ud mailComposeMessageType] isEqualToString: @"html"]];
|
||||
isHTML = [newDraftMessage isHTML];
|
||||
nl = (isHTML? @"<br />" : @"\n");
|
||||
|
||||
@@ -753,7 +753,7 @@
|
||||
|
||||
// Add signature
|
||||
signature = [identity objectForKey: @"signature"];
|
||||
if ([signature length])
|
||||
if ([signature length] && [ud mailUseSignatureOnForward])
|
||||
{
|
||||
nl = (htmlComposition? @"<br />" : @"\n");
|
||||
space = (htmlComposition ? @" " : @" ");
|
||||
|
||||
@@ -195,6 +195,9 @@
|
||||
"Compose messages in" = "Compose messages in";
|
||||
"composemessagestype_html" = "HTML";
|
||||
"composemessagestype_text" = "Plain text";
|
||||
"Insert signature on new message" = "Insert signature on new message";
|
||||
"Insert signature on reply" = "Insert signature on reply";
|
||||
"Insert signature on forward" = "Insert signature on forward";
|
||||
|
||||
/* Base font size for messages composed in HTML */
|
||||
"Default font size" = "Default font size";
|
||||
|
||||
@@ -195,6 +195,9 @@
|
||||
"Compose messages in" = "Composer les messages en";
|
||||
"composemessagestype_html" = "HTML";
|
||||
"composemessagestype_text" = "Texte";
|
||||
"Insert signature on new message" = "Insérer la signature sur un nouveau message";
|
||||
"Insert signature on reply" = "Insérer la signature sur une réponse";
|
||||
"Insert signature on forward" = "Insérer la signature sur un transfert";
|
||||
|
||||
/* Base font size for messages composed in HTML */
|
||||
"Default font size" = "Taille de la police par défaut";
|
||||
|
||||
@@ -343,8 +343,18 @@ static SoProduct *preferencesProduct = nil;
|
||||
if (![[defaults source] objectForKey: @"SOGoMailReplyPlacement"])
|
||||
[[defaults source] setObject: [defaults mailReplyPlacement] forKey: @"SOGoMailReplyPlacement"];
|
||||
|
||||
if (![[defaults source] objectForKey: @"SOGoMailSignaturePlacement"])
|
||||
[[defaults source] setObject: [defaults mailSignaturePlacement] forKey: @"SOGoMailSignaturePlacement"];
|
||||
if (![[defaults source] objectForKey: @"SOGoMailUseSignatureOnNew"])
|
||||
[[defaults source] setObject: [NSNumber numberWithBool: [defaults mailUseSignatureOnNew]] forKey: @"SOGoMailUseSignatureOnNew"];
|
||||
|
||||
if (![[defaults source] objectForKey: @"SOGoMailUseSignatureOnReply"])
|
||||
[[defaults source] setObject: [NSNumber numberWithBool: [defaults mailUseSignatureOnReply]] forKey: @"SOGoMailUseSignatureOnReply"];
|
||||
|
||||
if (![[defaults source] objectForKey: @"SOGoMailUseSignatureOnForward"])
|
||||
[[defaults source] setObject: [NSNumber numberWithBool: [defaults mailUseSignatureOnForward]] forKey: @"SOGoMailUseSignatureOnForward"];
|
||||
|
||||
if (![[defaults source] objectForKey: @"SOGoMailAddOutgoingAddresses"])
|
||||
[[defaults source] setObject: [NSNumber numberWithBool: [defaults mailAddOutgoingAddresses]] forKey: @"SOGoMailAddOutgoingAddresses"];
|
||||
|
||||
|
||||
if (![[defaults source] objectForKey: @"SOGoMailComposeMessageType"])
|
||||
[[defaults source] setObject: [defaults mailComposeMessageType] forKey: @"SOGoMailComposeMessageType"];
|
||||
|
||||
@@ -803,6 +803,30 @@
|
||||
</md-input-container>
|
||||
</div>
|
||||
|
||||
<div layout="row" layout-xs="column">
|
||||
<md-checkbox
|
||||
ng-model="app.preferences.defaults.SOGoMailUseSignatureOnNew"
|
||||
ng-true-value="1"
|
||||
ng-false-value="0"
|
||||
label:aria-label="Insert signature on new message">
|
||||
<var:string label:value="Insert signature on new message"/>
|
||||
</md-checkbox>
|
||||
<md-checkbox
|
||||
ng-model="app.preferences.defaults.SOGoMailUseSignatureOnReply"
|
||||
ng-true-value="1"
|
||||
ng-false-value="0"
|
||||
label:aria-label="Insert signature on reply">
|
||||
<var:string label:value="Insert signature on reply"/>
|
||||
</md-checkbox>
|
||||
<md-checkbox
|
||||
ng-model="app.preferences.defaults.SOGoMailUseSignatureOnForward"
|
||||
ng-true-value="1"
|
||||
ng-false-value="0"
|
||||
label:aria-label="Insert signature on forward">
|
||||
<var:string label:value="Insert signature on forward"/>
|
||||
</md-checkbox>
|
||||
</div>
|
||||
|
||||
<div layout="row">
|
||||
<md-input-container class="md-block" flex="50">
|
||||
<label><var:string label:value="Compose messages in"/></label>
|
||||
|
||||
@@ -402,38 +402,44 @@
|
||||
nlNb = 2;
|
||||
else
|
||||
nlNb = 1;
|
||||
|
||||
if ((vm.isNew() && Preferences.defaults.SOGoMailUseSignatureOnNew === 1)
|
||||
|| (!vm.isNew() && Preferences.defaults.SOGoMailUseSignatureOnForward === 1 && vm.message && vm.message.origin && vm.message.origin.action && vm.message.origin.action === 'forward')
|
||||
|| (!vm.isNew() && Preferences.defaults.SOGoMailUseSignatureOnReply === 1 && vm.message && vm.message.origin && vm.message.origin.action && vm.message.origin.action === 'reply')
|
||||
) {
|
||||
if (identity && identity.signature)
|
||||
signature = nl.repeat(nlNb) + '--' + space + nl + identity.signature;
|
||||
else
|
||||
signature = '';
|
||||
|
||||
if (identity && identity.signature)
|
||||
signature = nl.repeat(nlNb) + '--' + space + nl + identity.signature;
|
||||
else
|
||||
signature = '';
|
||||
previousIdentity = _.find(this.identities, function (currentIdentity, index) {
|
||||
|
||||
previousIdentity = _.find(this.identities, function (currentIdentity, index) {
|
||||
if (currentIdentity.signature) {
|
||||
var currentSignature = new RegExp('(' + reNl + '){' + nlNb + '}--' + space + reNl +
|
||||
currentIdentity.signature.replace(/[-\[\]{}()*+?.,\\^$|#\s]/g, '\\$&'));
|
||||
if (vm.message.editable.text.search(currentSignature) >= 0) {
|
||||
vm.message.editable.text = vm.message.editable.text.replace(currentSignature, signature);
|
||||
return true;
|
||||
if (currentIdentity.signature) {
|
||||
var currentSignature = new RegExp('(' + reNl + '){' + nlNb + '}--' + space + reNl +
|
||||
currentIdentity.signature.replace(/[-\[\]{}()*+?.,\\^$|#\s]/g, '\\$&'));
|
||||
if (vm.message.editable.text.search(currentSignature) >= 0) {
|
||||
vm.message.editable.text = vm.message.editable.text.replace(currentSignature, signature);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
if (!previousIdentity && signature.length > 0) {
|
||||
// Must place signature at proper place
|
||||
if (!this.isNew() && this.replyPlacement == 'above' && this.signaturePlacement == 'above') {
|
||||
var quotedMessageIndex = this.message.editable.text.search(new RegExp(reNl + '.+?:( ?' + reNl + '){' + nlNb + '}(> |<blockquote type="cite")'));
|
||||
if (quotedMessageIndex >= 0) {
|
||||
this.message.editable.text =
|
||||
this.message.editable.text.slice(0, quotedMessageIndex) +
|
||||
signature +
|
||||
this.message.editable.text.slice(quotedMessageIndex);
|
||||
return false;
|
||||
});
|
||||
|
||||
if (!previousIdentity && signature.length > 0) {
|
||||
// Must place signature at proper place
|
||||
if (!this.isNew() && this.replyPlacement == 'above' && this.signaturePlacement == 'above') {
|
||||
var quotedMessageIndex = this.message.editable.text.search(new RegExp(reNl + '.+?:( ?' + reNl + '){' + nlNb + '}(> |<blockquote type="cite")'));
|
||||
if (quotedMessageIndex >= 0) {
|
||||
this.message.editable.text =
|
||||
this.message.editable.text.slice(0, quotedMessageIndex) +
|
||||
signature +
|
||||
this.message.editable.text.slice(quotedMessageIndex);
|
||||
} else {
|
||||
this.message.editable.text = signature + this.message.editable.text;
|
||||
}
|
||||
} else {
|
||||
this.message.editable.text = signature + this.message.editable.text;
|
||||
this.message.editable.text += signature;
|
||||
}
|
||||
} else {
|
||||
this.message.editable.text += signature;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user