mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-23 04:15:26 +00:00
Monotone-Parent: 2946be96e24ef28355163488376def0341ef650f
Monotone-Revision: 41b11d3b1b18c4d1c7da8ba97062c553d70d8596 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2008-08-26T17:16:16 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -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])
|
||||
{
|
||||
|
||||
@@ -1055,7 +1055,7 @@ function newContactFromEmail(event) {
|
||||
|
||||
function onEmailTo(event) {
|
||||
openMailTo(this.innerHTML.strip());
|
||||
preventDefault(event);
|
||||
Event.stop(event);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 = /([ ]+)?(.+)\ </;
|
||||
var emailNamere = /([^ ]+)\ </;
|
||||
if (emailNamere.test(tmpMailTo)) {
|
||||
emailNamere.exec(tmpMailTo);
|
||||
emailName = RegExp.$2;
|
||||
emailName = RegExp.$1;
|
||||
}
|
||||
|
||||
return emailName;
|
||||
}
|
||||
|
||||
function extractSubject(mailTo) {
|
||||
var subject = "";
|
||||
|
||||
var subjectre = /\?subject=([^&]+)/;
|
||||
if (subjectre.test(mailTo)) {
|
||||
subjectre.exec(mailTo);
|
||||
subject = RegExp.$1;
|
||||
}
|
||||
|
||||
return subject;
|
||||
}
|
||||
|
||||
function sanitizeMailTo(dirtyMailTo) {
|
||||
var emailName = extractEmailName(dirtyMailTo);
|
||||
var email = "" + extractEmailAddress(dirtyMailTo);
|
||||
var email = extractEmailAddress(dirtyMailTo);
|
||||
|
||||
var mailto = "";
|
||||
if (emailName && emailName.length > 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 */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user