From 674e43663152481ef184feeb55031e47ec66bb01 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 26 Aug 2008 17:16:16 +0000 Subject: [PATCH] Monotone-Parent: 2946be96e24ef28355163488376def0341ef650f Monotone-Revision: 41b11d3b1b18c4d1c7da8ba97062c553d70d8596 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2008-08-26T17:16:16 Monotone-Branch: ca.inverse.sogo --- UI/MailerUI/UIxMailAccountActions.m | 18 ++++++++++++++---- UI/WebServerResources/MailerUI.js | 2 +- UI/WebServerResources/UIxMailEditor.js | 10 ++++------ UI/WebServerResources/generic.js | 26 ++++++++++++++++++++------ 4 files changed, 39 insertions(+), 17 deletions(-) diff --git a/UI/MailerUI/UIxMailAccountActions.m b/UI/MailerUI/UIxMailAccountActions.m index cb54d667b..f53bff49e 100644 --- a/UI/MailerUI/UIxMailAccountActions.m +++ b/UI/MailerUI/UIxMailAccountActions.m @@ -147,23 +147,33 @@ SOGoDraftObject *newDraftMessage; NSString *urlBase, *url, *value, *signature; NSArray *mailTo; + NSMutableDictionary *headers; BOOL save; drafts = [[self clientObject] draftsFolderInContext: context]; newDraftMessage = [drafts newDraft]; - + headers = [NSMutableDictionary dictionary]; + save = NO; value = [[self request] formValueForKey: @"mailto"]; if ([value length] > 0) { mailTo = [value componentsSeparatedByString: @","]; - [newDraftMessage - setHeaders: [NSDictionary dictionaryWithObject: mailTo - forKey: @"to"]]; + [headers setObject: mailTo forKey: @"to"]; save = YES; } + value = [[self request] formValueForKey: @"subject"]; + if ([value length] > 0) + { + [headers setObject: value forKey: @"subject"]; + save = YES; + } + + if (save) + [newDraftMessage setHeaders: headers]; + signature = [[context activeUser] signature]; if ([signature length]) { diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 2ab321081..60f016182 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -1055,7 +1055,7 @@ function newContactFromEmail(event) { function onEmailTo(event) { openMailTo(this.innerHTML.strip()); - preventDefault(event); + Event.stop(event); return false; } diff --git a/UI/WebServerResources/UIxMailEditor.js b/UI/WebServerResources/UIxMailEditor.js index a43789c35..2861d7bf9 100644 --- a/UI/WebServerResources/UIxMailEditor.js +++ b/UI/WebServerResources/UIxMailEditor.js @@ -571,8 +571,8 @@ function onWindowResize(event) { // headerarea)[0]; // $("attachments").setStyle({ height: (headerarea.getHeight() - fromfield.getHeight() - 10) + 'px' }); } - var subjectfield = headerarea.select("div#subjectRow span.headerField").first(); - var subjectinput = headerarea.select("div#subjectRow input.textField").first(); + var subjectfield = headerarea.down("div#subjectRow span.headerField"); + var subjectinput = headerarea.down("div#subjectRow input.textField"); // Resize subject field subjectinput.setStyle({ width: (window.width() @@ -585,12 +585,10 @@ function onWindowResize(event) { addresslist.setStyle({ width: ($(this).width() - attachmentswidth - 10) + 'px' }); // Set textarea position - textarea.setStyle({ 'top': (headerarea.getHeight() + headerarea.offsetTop) + 'px' }); - - var textareaoffset = textarea.offsetTop; + textarea.setStyle({ 'top': headerarea.select("hr").first().offsetTop + 'px' }); // Resize the textarea (message content) - textarea.rows = Math.round((window.height() - textareaoffset) / rowheight); + textarea.rows = Math.round((window.height() - textarea.offsetTop) / rowheight); } function onMailEditorClose(event) { diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index 87f1a6588..4481863e2 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -140,7 +140,7 @@ function extractEmailAddress(mailTo) { var email = ""; var emailre - = /(([a-zA-Z0-9\._-]+)*[a-zA-Z0-9_-]+@([a-zA-Z0-9\._-]+)*[a-zA-Z0-9_-]+)/g; + = /(([a-zA-Z0-9\._-]+)*[a-zA-Z0-9_-]+@([a-zA-Z0-9\._-]+)*[a-zA-Z0-9_-]+)/; if (emailre.test(mailTo)) { emailre.exec(mailTo); email = RegExp.$1; @@ -155,18 +155,30 @@ function extractEmailName(mailTo) { var tmpMailTo = mailTo.replace("<", "<"); tmpMailTo = tmpMailTo.replace(">", ">"); - var emailNamere = /([ ]+)?(.+)\ 0) @@ -234,6 +246,7 @@ function openMailComposeWindow(url, wId) { function openMailTo(senderMailTo) { var addresses = senderMailTo.split(","); var sanitizedAddresses = new Array(); + var subject = extractSubject(senderMailTo); for (var i = 0; i < addresses.length; i++) { var sanitizedAddress = sanitizeMailTo(addresses[i]); if (sanitizedAddress.length > 0) @@ -241,10 +254,11 @@ function openMailTo(senderMailTo) { } var mailto = sanitizedAddresses.join(","); - + if (mailto.length > 0) openMailComposeWindow(ApplicationBaseURL - + "../Mail/compose?mailto=" + mailto); + + "../Mail/compose?mailto=" + mailto + + ((subject.length > 0)?"?subject="+subject:"")); return false; /* stop following the link */ }