fix(mail): don't render SVG attachments

Fix #5371
feature/ms-tnef
Francis Lachapelle 2021-08-03 16:26:49 -04:00
parent a23fef66ba
commit 40b570cc12
4 changed files with 17 additions and 13 deletions

View File

@ -249,9 +249,10 @@
_st = [_st lowercaseString];
if ([_mt isEqualToString:@"image"]) {
if ([_st isEqualToString:@"gif"]) return @"gif";
if ([_st isEqualToString:@"jpeg"]) return @"jpg";
if ([_st isEqualToString:@"png"]) return @"png";
if ([_st isEqualToString:@"gif"]) return @"gif";
if ([_st isEqualToString:@"jpeg"]) return @"jpg";
if ([_st isEqualToString:@"png"]) return @"png";
if ([_st isEqualToString:@"svg+xml"]) return @"svg";
}
else if ([_mt isEqualToString:@"text"]) {
if ([_st isEqualToString:@"plain"]) return @"txt";
@ -260,10 +261,10 @@
if ([_st isEqualToString:@"x-vcard"]) return @"vcf";
}
else if ([_mt isEqualToString:@"message"]) {
if ([_st isEqualToString:@"rfc822"]) return @"eml";
if ([_st isEqualToString:@"rfc822"]) return @"eml";
}
else if ([_mt isEqualToString:@"application"]) {
if ([_st isEqualToString:@"pdf"]) return @"pdf";
if ([_st isEqualToString:@"pdf"]) return @"pdf";
}
return nil;
}
@ -326,9 +327,13 @@
- (NSString *) _pathForAttachmentOrDownload: (BOOL) forDownload
{
SOGoMailBodyPart *bodyPart;
NSString *s, *attachment;
NSString *st, *s, *attachment;
NSMutableString *url;
st = [[bodyInfo valueForKey:@"subtype"] lowercaseString];
if (!forDownload && [st isEqualToString: @"svg+xml"])
return nil;
bodyPart = [self clientPart];
s = [[self clientObject] baseURLInContext: [self context]];

View File

@ -47,8 +47,7 @@
s = [[info objectForKey:@"disposition"] objectForKey: @"type"];
shouldDisplay = (s && ([s caseInsensitiveCompare: @"ATTACHMENT"]
== NSOrderedSame));
shouldDisplay = (s && ([s caseInsensitiveCompare: @"ATTACHMENT"] == NSOrderedSame));
if (!shouldDisplay && !textPart)
shouldDisplay = ([[info objectForKey: @"bodyId"] length] ? YES : NO);
@ -219,8 +218,8 @@ static BOOL showNamedTextAttachmentsInline = NO;
if ([mt isEqualToString: @"image"] &&
!([st isEqualToString: @"tiff"] || [st isEqualToString: @"pdf"]))
{
if ([self _shouldDisplayAsAttachment: _info textPart: NO])
return [self linkViewer];
if ([self _shouldDisplayAsAttachment: _info textPart: NO] || [st isEqualToString: @"svg+xml"])
return [self linkViewer];
return [self imageViewer];
}

View File

@ -15,10 +15,10 @@
<div class="md-flex sg-attachment-size">
<var:string value="bodyInfo.size" formatter="sizeFormatter"/>
</div>
<md-button class="sg-icon-button" var:href="pathToAttachment" target="_blank">
<var:if condition="pathToAttachment.length"><md-button class="sg-icon-button" var:href="pathToAttachment" target="_blank">
<md-tooltip md-direction="left"><var:string label:value="View Attachment"/></md-tooltip>
<md-icon>open_in_new</md-icon>
</md-button>
</md-button></var:if>
<md-button class="sg-icon-button" var:href="pathForDownload">
<md-tooltip md-direction="left"><var:string label:value="Save Attachment"/></md-tooltip>
<md-icon>file_download</md-icon>

View File

@ -81,7 +81,7 @@
partSrc = angular.element(this.message.$content()[partIndex].content).find('img')[0].src;
var images = _.filter(this.message.attachmentAttrs, function(attrs) {
return attrs.mimetype.indexOf('image/') === 0;
return attrs.mimetype.indexOf('image/') === 0 && attrs.mimetype.indexOf('svg+xml') < 0;
});
var selectedIndex = _.findIndex(images, function(image) {