From 798076e6faf4c301bb21f8485a61d7b78edef4ad Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Wed, 11 Aug 2010 18:29:05 +0000 Subject: [PATCH] See ChangeLog Monotone-Parent: 3567e5aef4045091a835f8185e4f1ff94e748c78 Monotone-Revision: e43c9b00bdea42b8d8040a8c2bb1123e3a5230ec Monotone-Author: ludovic@Sophos.ca Monotone-Date: 2010-08-11T18:29:05 --- ChangeLog | 6 +++++- SoObjects/SOGo/NSString+Utilities.m | 4 ++-- UI/MailerUI/UIxMailFolderActions.m | 2 +- UI/WebServerResources/JavascriptAPIExtensions.js | 4 ++-- UI/WebServerResources/MailerUI.js | 5 ++--- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7b28e7d09..b7eab5285 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,7 +11,11 @@ equal to 1, we do NOT set it. * UI/WebServerResources/UIxAclEditor.js In addUserCallback(), we remove the owner of the - resource if it was added. + resource if it was added. This fixes #682. + * We now correctly encode/decode the '&' + character in the mailbox name when copying and moving + messages and also when opening mailboxes. This + fixes #716. 2010-08-03 Ludovic Marcotte diff --git a/SoObjects/SOGo/NSString+Utilities.m b/SoObjects/SOGo/NSString+Utilities.m index 62366309b..108bc508f 100644 --- a/SoObjects/SOGo/NSString+Utilities.m +++ b/SoObjects/SOGo/NSString+Utilities.m @@ -263,12 +263,12 @@ static int cssEscapingCount; int count; strings = [NSArray arrayWithObjects: @"_U_", @"_D_", @"_H_", @"_A_", @"_S_", - @"_C_", @"_CO_", @"_SP_", @"_SQ_", nil]; + @"_C_", @"_CO_", @"_SP_", @"_SQ_", @"_AM_", nil]; [strings retain]; cssEscapingStrings = [strings asPointersOfObjects]; characters = [NSArray arrayWithObjects: @"_", @".", @"#", @"@", @"*", @":", - @",", @" ", @"'", nil]; + @",", @" ", @"'", @"&", nil]; cssEscapingCount = [strings count]; cssEscapingCharacters = NSZoneMalloc (NULL, (cssEscapingCount + 1) diff --git a/UI/MailerUI/UIxMailFolderActions.m b/UI/MailerUI/UIxMailFolderActions.m index f04d3283f..4d0653287 100644 --- a/UI/MailerUI/UIxMailFolderActions.m +++ b/UI/MailerUI/UIxMailFolderActions.m @@ -1,6 +1,6 @@ /* UIxMailFolderActions.m - this file is part of SOGo * - * Copyright (C) 2007-2009 Inverse inc. + * Copyright (C) 2007-2010 Inverse inc. * * Author: Wolfgang Sourdeau * diff --git a/UI/WebServerResources/JavascriptAPIExtensions.js b/UI/WebServerResources/JavascriptAPIExtensions.js index 9da6233e5..f0dda1572 100644 --- a/UI/WebServerResources/JavascriptAPIExtensions.js +++ b/UI/WebServerResources/JavascriptAPIExtensions.js @@ -60,8 +60,8 @@ String.prototype.asDate = function () { }; String.prototype.asCSSIdentifier = function() { - var characters = [ '_' , '\\.', '#' , '@' , '\\*', ':' , ',' , ' ' , "'" ]; - var escapeds = [ '_U_', '_D_', '_H_', '_A_', '_S_', '_C_', '_CO_', '_SP_', '_SQ_' ]; + var characters = [ '_' , '\\.', '#' , '@' , '\\*', ':' , ',' , ' ' , "'", '&' ]; + var escapeds = [ '_U_', '_D_', '_H_', '_A_', '_S_', '_C_', '_CO_', '_SP_', '_SQ_', '_AM_' ]; var newString = this; for (var i = 0; i < characters.length; i++) { diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index a32c13810..204f0e1aa 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -551,7 +551,7 @@ function onMailboxMenuMove(event) { deleteCachedMailbox(targetMailbox); var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/moveMessages"; - var parameters = "uid=" + uids.join(",") + "&folder=" + targetMailbox; + var parameters = "uid=" + uids.join(",") + "&folder=" + encodeURIComponent(targetMailbox); var data = { "id": uids, "mailbox": Mailer.currentMailbox, "path": paths, "folder": targetMailbox, "refresh": true }; triggerAjaxRequest(url, folderRefreshCallback, data, parameters, { "Content-type": "application/x-www-form-urlencoded" }); @@ -570,7 +570,6 @@ function onMailboxMenuCopy(event) { targetMailbox = this.mailbox.fullName(); else // from DnD targetMailbox = this.readAttribute("dataname"); - for (var i = 0; i < rows.length; i++) { var uid = rows[i].readAttribute("id").substr(4); var path = Mailer.currentMailbox + "/" + uid; @@ -582,7 +581,7 @@ function onMailboxMenuCopy(event) { deleteCachedMailbox(targetMailbox); var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/copyMessages"; - var parameters = "uid=" + uids.join(",") + "&folder=" + targetMailbox; + var parameters = "uid=" + uids.join(",") + "&folder=" + encodeURIComponent(targetMailbox); var data = { "id": uids, "mailbox": Mailer.currentMailbox, "path": paths, "folder": targetMailbox, "refresh": false }; triggerAjaxRequest(url, folderRefreshCallback, data, parameters, { "Content-type": "application/x-www-form-urlencoded" });