From 2765c2a2ecd2eeb16d3be4bc706de2106f17047e Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 6 Feb 2009 20:09:56 +0000 Subject: [PATCH] Monotone-Parent: efd9926cc2f7cfa8385ca79896abdf82e8b16d59 Monotone-Revision: c9246310f08403905093c99e74adb38f7c4c3c7e Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-02-06T20:09:56 Monotone-Branch: ca.inverse.sogo --- SoObjects/Contacts/SOGoContactGCSFolder.m | 58 ++++++++----------- SoObjects/Contacts/SOGoContactLDAPFolder.m | 21 +++---- UI/Contacts/UIxContactsListView.m | 9 --- .../ContactsUI/UIxContactsListView.wox | 15 +++-- UI/WebServerResources/ContactsUI.js | 16 ++--- 5 files changed, 49 insertions(+), 70 deletions(-) diff --git a/SoObjects/Contacts/SOGoContactGCSFolder.m b/SoObjects/Contacts/SOGoContactGCSFolder.m index 927a4adaa..e4689cb65 100644 --- a/SoObjects/Contacts/SOGoContactGCSFolder.m +++ b/SoObjects/Contacts/SOGoContactGCSFolder.m @@ -232,13 +232,33 @@ return qualifier; } +- (void) fixupContactRecord: (NSMutableDictionary *) contactRecord +{ + NSString *data; + + data = [contactRecord objectForKey: @"c_cn"]; + if (![data length]) + { + data = [contactRecord keysWithFormat: @"%{c_givenname} %{c_sn}"]; + [contactRecord setObject: data forKey: @"c_cn"]; + } + + if (![contactRecord objectForKey: @"c_mail"]) + [contactRecord setObject: @"" forKey: @"c_mail"]; + if (![contactRecord objectForKey: @"c_screenname"]) + [contactRecord setObject: @"" forKey: @"c_screenname"]; + if (![contactRecord objectForKey: @"c_o"]) + [contactRecord setObject: @"" forKey: @"c_o"]; + if (![contactRecord objectForKey: @"c_telephonenumber"]) + [contactRecord setObject: @"" forKey: @"c_telephonenumber"]; +} + - (NSArray *) _flattenedRecords: (NSArray *) records { NSMutableArray *newRecords; NSEnumerator *oldRecords; NSDictionary *oldRecord; NSMutableDictionary *newRecord; - NSString *data; newRecords = [NSMutableArray arrayWithCapacity: [records count]]; @@ -246,40 +266,8 @@ oldRecord = [oldRecords nextObject]; while (oldRecord) { - newRecord = [NSMutableDictionary new]; - [newRecord autorelease]; - - [newRecord setObject: [oldRecord objectForKey: @"c_name"] - forKey: @"c_uid"]; - [newRecord setObject: [oldRecord objectForKey: @"c_name"] - forKey: @"c_name"]; - - data = [oldRecord objectForKey: @"c_cn"]; - if (![data length]) - data = [oldRecord keysWithFormat: @"%{c_givenname} %{c_sn}"]; - [newRecord setObject: data - forKey: @"displayName"]; - - data = [oldRecord objectForKey: @"c_mail"]; - if (!data) - data = @""; - [newRecord setObject: data forKey: @"mail"]; - - data = [oldRecord objectForKey: @"c_screenname"]; - if (!data) - data = @""; - [newRecord setObject: data forKey: @"screenName"]; - - data = [oldRecord objectForKey: @"c_o"]; - if (!data) - data = @""; - [newRecord setObject: data forKey: @"org"]; - - data = [oldRecord objectForKey: @"c_telephonenumber"]; - if (![data length]) - data = @""; - [newRecord setObject: data forKey: @"phone"]; - + newRecord = [NSMutableDictionary dictionaryWithDictionary: oldRecord]; + [self fixupContactRecord: newRecord]; [newRecords addObject: newRecord]; oldRecord = [oldRecords nextObject]; } diff --git a/SoObjects/Contacts/SOGoContactLDAPFolder.m b/SoObjects/Contacts/SOGoContactLDAPFolder.m index 0f726b732..21a69bc4a 100644 --- a/SoObjects/Contacts/SOGoContactLDAPFolder.m +++ b/SoObjects/Contacts/SOGoContactLDAPFolder.m @@ -167,11 +167,12 @@ if (!obj) { ldifEntry = [ldapSource lookupContactEntryWithUIDorEmail: objectName]; - obj = ((ldifEntry) - ? [SOGoContactLDIFEntry contactEntryWithName: objectName - withLDIFEntry: ldifEntry - inContainer: self] - : [NSException exceptionWithHTTPStatus: 404]); + if (ldifEntry) + obj = [SOGoContactLDIFEntry contactEntryWithName: objectName + withLDIFEntry: ldifEntry + inContainer: self]; + else + obj = [NSException exceptionWithHTTPStatus: 404]; } return obj; @@ -212,24 +213,24 @@ data = [oldRecord objectForKey: @"c_cn"]; if (!data) data = @""; - [newRecord setObject: data forKey: @"displayName"]; + [newRecord setObject: data forKey: @"c_cn"]; data = [oldRecord objectForKey: @"mail"]; if (!data) data = @""; - [newRecord setObject: data forKey: @"mail"]; + [newRecord setObject: data forKey: @"c_mail"]; data = [oldRecord objectForKey: @"nsAIMid"]; if (![data length]) data = [oldRecord objectForKey: @"nscpaimscreenname"]; if (![data length]) data = @""; - [newRecord setObject: data forKey: @"screenName"]; + [newRecord setObject: data forKey: @"c_screenname"]; data = [oldRecord objectForKey: @"o"]; if (!data) data = @""; - [newRecord setObject: data forKey: @"org"]; + [newRecord setObject: data forKey: @"c_o"]; data = [oldRecord objectForKey: @"telephoneNumber"]; if (![data length]) @@ -238,7 +239,7 @@ data = [oldRecord objectForKey: @"homePhone"]; if (![data length]) data = @""; - [newRecord setObject: data forKey: @"phone"]; + [newRecord setObject: data forKey: @"c_telephonenumber"]; contactInfo = [ud stringForKey: @"SOGoLDAPContactInfoAttribute"]; if ([contactInfo length] > 0) { diff --git a/UI/Contacts/UIxContactsListView.m b/UI/Contacts/UIxContactsListView.m index e6b2e2ad1..eeed561c3 100644 --- a/UI/Contacts/UIxContactsListView.m +++ b/UI/Contacts/UIxContactsListView.m @@ -60,15 +60,6 @@ return currentContact; } -- (NSString *) currentCName -{ - NSString *cName; - - cName = [currentContact objectForKey: @"c_name"]; - - return [cName stringByEscapingURL]; -} - - (id ) mailerContactsAction { selectorComponentClass = @"UIxContactsMailerSelection"; diff --git a/UI/Templates/ContactsUI/UIxContactsListView.wox b/UI/Templates/ContactsUI/UIxContactsListView.wox index 8520f889c..5dba56529 100644 --- a/UI/Templates/ContactsUI/UIxContactsListView.wox +++ b/UI/Templates/ContactsUI/UIxContactsListView.wox @@ -29,14 +29,13 @@ - - - - - + var:id="currentContact.c_name" + var:contactname="currentContact.c_cn"> + + + + + diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js index d97fef2e0..429e94f71 100644 --- a/UI/WebServerResources/ContactsUI.js +++ b/UI/WebServerResources/ContactsUI.js @@ -351,10 +351,10 @@ function moveTo(uri) { /* contact menu entries */ function onContactRowDblClick(event) { - var contactId = this.getAttribute('contactid'); + var cname = this.getAttribute('id'); openContactWindow(URLForFolderID(Contact.currentAddressBook) - + "/" + contactId + "/edit", contactId); + + "/" + cname + "/edit", cname); return false; } @@ -364,7 +364,7 @@ function onContactSelectionChange(event) { if (rows.length == 1) { var node = $(rows[0]); - loadContact(node.getAttribute('contactid')); + loadContact(node.getAttribute('id')); } else if (rows.length > 1) { $('contactView').update(); @@ -551,7 +551,7 @@ function onConfirmContactSelection(event) { var contactsList = $("contactsList"); var rows = contactsList.getSelectedRows(); for (i = 0; i < rows.length; i++) { - var cid = rows[i].getAttribute("contactid"); + var cid = rows[i].getAttribute("id"); var cname = '' + rows[i].getAttribute("contactname"); var email = '' + rows[i].cells[1].innerHTML; @@ -562,10 +562,10 @@ function onConfirmContactSelection(event) { preventDefault(event); } -function refreshContacts(contactId) { - openContactsFolder(Contact.currentAddressBook, true, contactId); - delete cachedContacts[Contact.currentAddressBook + "/" + contactId]; - loadContact(contactId); +function refreshContacts(cname) { + openContactsFolder(Contact.currentAddressBook, true, cname); + delete cachedContacts[Contact.currentAddressBook + "/" + cname]; + loadContact(cname); return false; }