propagate from branch 'ca.inverse.sogo.1_3_12' (head c5233a2a4e6a6abdb50191daf1eb589c9ff5cf80)

to branch 'ca.inverse.sogo' (head 212622191a26c7b5f257c536a45dfea03f404bc1)

Monotone-Parent: 212622191a26c7b5f257c536a45dfea03f404bc1
Monotone-Parent: c5233a2a4e6a6abdb50191daf1eb589c9ff5cf80
Monotone-Revision: e18b5ae2235fde5d7f7f569ead8452a2217d9b5c

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2012-02-14T21:24:10
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2012-02-14 21:24:10 +00:00
4 changed files with 40 additions and 5 deletions

View File

@@ -1,5 +1,20 @@
2012-02-14 Francis Lachapelle <flachapelle@inverse.ca>
* UI/WebServerResources/ContactsUI.js (contactsListCallback): when
restoring selection after the folder refresh, call "selectElement"
on each row. This fixes the contacts selection retrieval when using the
contextual menu.
2012-02-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/SOGoUserManager.m (_compactAndCompleteContacts:):
we make sure that "source" is not nil before assigning it to the
compact record.
* SoObjects/SOGo/SQLSource.m (_lookupContactEntry:considerEmail:):
assign self as value for "source" in the returned record.
(-fetchContactsMatching): same as above.
* SoObjects/SOGo/SOGoSQLUserProfile.m (_sqlJsonRepresentation:):
removed obsolete method.
(-storeJSONProfileInDB:): we now properly escape the stored value

17
NEWS
View File

@@ -1,3 +1,20 @@
1.3.12b (2012-02-14)
-------------------
Bug Fixes
- we now properly escape strings via the database adapator methods when
saving users settings
- fixed a crash when exporting a vCard without specifying a UID
- fixed the contextual menu on newly created contacts and lists
1.3.12a (2012-02-13)
-------------------
Bug Fixes
- the plus sign (+) is now properly escaped in JavaScript (fixes issue when
loading the mailboxes list)
- added missing migration script in Debian/Ubuntu packages
1.3.12 (2012-02-13)
-------------------
New Features

View File

@@ -819,6 +819,7 @@
NSMutableArray *emails;
NSString *uid, *email, *info;
NSNumber *isGroup;
id <SOGoSource> source;
compactContacts = [NSMutableDictionary dictionary];
while ((userEntry = [contacts nextObject]))
@@ -831,7 +832,9 @@
{
returnContact = [NSMutableDictionary dictionary];
[returnContact setObject: uid forKey: @"c_uid"];
[returnContact setObject: [userEntry objectForKey: @"source"] forKey: @"source"];
source = [userEntry objectForKey: @"source"];
if (source)
[returnContact setObject: source forKey: @"source"];
[compactContacts setObject: returnContact forKey: uid];
}
if (![[returnContact objectForKey: @"c_name"] length])

View File

@@ -115,7 +115,6 @@ function contactsListCallback(http) {
{ categories: contact["c_categories"],
contactname: contact["c_cn"] },
tbody);
var cell = createElement("td",
null,
( "displayName" ),
@@ -197,6 +196,7 @@ function contactsListCallback(http) {
var rowPosition = row.rowIndex * row.getHeight();
if (div.getHeight() < rowPosition)
div.scrollTop = rowPosition; // scroll to selected contact
row.selectElement();
break;
}
}
@@ -300,9 +300,9 @@ function onMenuExportContact (event) {
var canExport = (selectedFolders[0].getAttribute("owner") != "nobody");
if (canExport) {
var selectedFolderId = $(selectedFolders[0]).readAttribute("id");
var contactIds = $(document.menuTarget).collect(function(row) {
return row.getAttribute("id");
});
var contactIds = document.menuTarget.collect(function(row) {
return row.readAttribute("id");
});
var url = ApplicationBaseURL + selectedFolderId + "/export"
+ "?uid=" + contactIds.join("&uid=");
window.location.href = url;