diff --git a/OGoContentStore/OCSContactFieldExtractor.m b/OGoContentStore/OCSContactFieldExtractor.m index 7b53fd061..5ca2024fd 100644 --- a/OGoContentStore/OCSContactFieldExtractor.m +++ b/OGoContentStore/OCSContactFieldExtractor.m @@ -42,7 +42,7 @@ static NSString *fieldNames[] = { nil, nil }; -- (NSMutableDictionary *) extractQuickFieldsFromVCard: (NGVCard *) _vCard +- (NSMutableDictionary *) extractQuickFieldsFromVCard: (NGVCard *) vCard { NSMutableDictionary *fields; NSArray *values; @@ -50,15 +50,15 @@ static NSString *fieldNames[] = { NSString *value; unsigned int max; - if (_vCard == nil) + if (vCard == nil) return nil; fields = [NSMutableDictionary dictionaryWithCapacity:16]; - value = [_vCard fn]; + value = [vCard fn]; if (value) [fields setObject: value forKey: @"cn"]; - values = [_vCard n]; + values = [vCard n]; if (values) { max = [values count]; @@ -70,26 +70,25 @@ static NSString *fieldNames[] = { forKey: @"givenName"]; } } - value = [_vCard preferredTel]; + value = [vCard preferredTel]; if (value) [fields setObject: value forKey: @"telephoneNumber"]; - value = [_vCard preferredEMail]; + value = [vCard preferredEMail]; if (value) [fields setObject: value forKey: @"mail"]; - values = [_vCard org]; - if (values) + values = [vCard org]; + max = [values count]; + if (max > 0) { - max = [values count]; - if (max > 0) - { - [fields setObject: [values objectAtIndex: 0] forKey: @"o"]; - if (max > 1) - [fields setObject: [values objectAtIndex: 1] forKey: @"ou"]; - } + [fields setObject: [values objectAtIndex: 0] forKey: @"o"]; + if (max > 1) + [fields setObject: [values objectAtIndex: 1] forKey: @"ou"]; } - adr = [_vCard preferredAdr]; + adr = [vCard preferredAdr]; if (adr) [fields setObject: [adr value: 3] forKey: @"l"]; + value = [[vCard uniqueChildWithTag: @"X-AIM"] value: 0]; + [fields setObject: value forKey: @"screenname"]; return fields; } diff --git a/OGoContentStore/contact.ocs b/OGoContentStore/contact.ocs index 29fa99155..d1372447b 100644 --- a/OGoContentStore/contact.ocs +++ b/OGoContentStore/contact.ocs @@ -24,6 +24,11 @@ sqlType = "VARCHAR(256)"; allowsNull = YES; }, + { + columnName = screenname; + sqlType = "VARCHAR(256)"; + allowsNull = YES; + }, { columnName = l; sqlType = "VARCHAR(256)"; diff --git a/OGoContentStore/sql/generate-folderinfo-sql-for-users.sh b/OGoContentStore/sql/generate-folderinfo-sql-for-users.sh index e8ba9c594..0868d1915 100755 --- a/OGoContentStore/sql/generate-folderinfo-sql-for-users.sh +++ b/OGoContentStore/sql/generate-folderinfo-sql-for-users.sh @@ -110,6 +110,7 @@ CREATE TABLE SOGo_${USER_TABLE}_contacts_quick ( givenname VARCHAR(256), cn VARCHAR(256), sn VARCHAR(256), + screenname VARCHAR(256), l VARCHAR(256), mail VARCHAR(256), o VARCHAR(256), diff --git a/SoObjects/Contacts/SOGoContactGCSFolder.m b/SoObjects/Contacts/SOGoContactGCSFolder.m index 29dbac21b..cc15b14a9 100644 --- a/SoObjects/Contacts/SOGoContactGCSFolder.m +++ b/SoObjects/Contacts/SOGoContactGCSFolder.m @@ -27,8 +27,8 @@ #import "SOGoContactGCSFolder.h" #define folderListingFields [NSArray arrayWithObjects: @"c_name", @"cn", \ - @"sn", @"givenname", @"l", \ - @"mail", @"telephonenumber", \ + @"givenname", @"screenname", \ + @"o", @"mail", @"telephonenumber", \ nil] @implementation SOGoContactGCSFolder @@ -155,7 +155,7 @@ fields = folderListingFields; qualifier = [self _qualifierForFilter: filter]; records = [[self ocsFolder] fetchFields: fields - matchingQualifier: qualifier]; + matchingQualifier: qualifier]; if (records) { ordering diff --git a/SoObjects/Contacts/SOGoContactLDAPFolder.m b/SoObjects/Contacts/SOGoContactLDAPFolder.m index b14734e80..fb51aa20d 100644 --- a/SoObjects/Contacts/SOGoContactLDAPFolder.m +++ b/SoObjects/Contacts/SOGoContactLDAPFolder.m @@ -45,6 +45,7 @@ #define folderListingFields [NSArray arrayWithObjects: @"c_name", @"cn", \ @"displayName", \ @"streetAddress", \ + @"o", \ @"sn", @"givenname", @"l", \ @"mail", @"telephonenumber", \ @"mailNickname", \ diff --git a/UI/Contacts/UIxContactEditor.m b/UI/Contacts/UIxContactEditor.m index a6da42802..b65469a1e 100644 --- a/UI/Contacts/UIxContactEditor.m +++ b/UI/Contacts/UIxContactEditor.m @@ -454,6 +454,7 @@ - (void) _saveSnapshot { CardElement *element; + NSArray *units; [card setNWithFamily: [snapshot objectForKey: @"sn"] given: [snapshot objectForKey: @"givenName"] @@ -485,6 +486,10 @@ value: [snapshot objectForKey: @"calFBURL"]]; [card setUniqueChild: element]; + units = [NSArray arrayWithObject: [snapshot objectForKey: @"workService"]]; + [card setOrg: [snapshot objectForKey: @"workCompany"] + units: units]; + [self _savePhoneValues]; [self _saveEmails]; [[card uniqueChildWithTag: @"x-aim"] diff --git a/UI/Templates/ContactsUI/UIxContactsListView.wox b/UI/Templates/ContactsUI/UIxContactsListView.wox index ed78ceba2..2b007b127 100644 --- a/UI/Templates/ContactsUI/UIxContactsListView.wox +++ b/UI/Templates/ContactsUI/UIxContactsListView.wox @@ -15,7 +15,7 @@ - + - + + + + @@ -45,10 +48,12 @@ onclick="return onContactRowClick(event, this);" ondblclick="return onContactRowDblClick(event, this);" oncontextmenu="return onContactContextMenu(event, this);"> - - - - + + + + + diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js index caee6cdb7..f63a3d6a2 100644 --- a/UI/WebServerResources/ContactsUI.js +++ b/UI/WebServerResources/ContactsUI.js @@ -377,7 +377,7 @@ function onFolderSelectionChange() { function onSearchFormSubmit() { var searchValue = $("searchValue"); - openContactsFolder(URLForFolderID(currentContactFolder), + openContactsFolder(currentContactFolder, "search=" + searchValue.value); return false;