diff --git a/NEWS b/NEWS index 80aa5b1c1..8d4d2e018 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,8 @@ New features - [web] show all/only this calendar - [web] convert a message to an appointment or a task (#1722) - [web] customizable base font size for HTML messages + - [web you can now limit the file upload size using the WOMaxUploadSize + configuration parameter (integer value in kilobytes) (#3510, #3135) Enhancements - [web] added Junk handling feature from v2 diff --git a/UI/MailerUI/English.lproj/Localizable.strings b/UI/MailerUI/English.lproj/Localizable.strings index b98565fb2..370a4a8ee 100644 --- a/UI/MailerUI/English.lproj/Localizable.strings +++ b/UI/MailerUI/English.lproj/Localizable.strings @@ -303,3 +303,6 @@ "Your email has been saved" = "Your email has been saved"; "Your email has been sent" = "Your email has been sent"; "Folder compacted" = "Folder compacted"; + +/* Error when uploading a file attachment */ +"An error occured while uploading" = "An error occured while uploading"; diff --git a/UI/MailerUI/UIxMailEditor.m b/UI/MailerUI/UIxMailEditor.m index dcce99e27..bc372eb7b 100644 --- a/UI/MailerUI/UIxMailEditor.m +++ b/UI/MailerUI/UIxMailEditor.m @@ -590,6 +590,12 @@ static NSArray *infoKeys = nil; request = [context request]; httpBody = [[request httpRequest] body]; + + // We got an exception from SOPE - most likely due to + // WOMaxUploadSize being reached. + if ([httpBody isKindOfClass: [NSException class]]) + return httpBody; + filenames = [self _scanAttachmentFilenamesInRequest: httpBody]; co = [self clientObject]; diff --git a/UI/WebServerResources/js/Mailer/MessageEditorController.js b/UI/WebServerResources/js/Mailer/MessageEditorController.js index d6b3e4813..2c49399a5 100644 --- a/UI/WebServerResources/js/Mailer/MessageEditorController.js +++ b/UI/WebServerResources/js/Mailer/MessageEditorController.js @@ -44,6 +44,12 @@ this.removeFromQueue(item); }, onErrorItem: function(item, response, status, headers) { + $mdToast.show( + $mdToast.simple() + .content(l('An error occured while uploading' + ' ' + item.file.name)) + .position('top right') + .hideDelay(3000)); + this.removeFromQueue(item); //console.debug(item); console.debug('error = ' + JSON.stringify(response, undefined, 2)); } });