Monotone-Parent: 387d4024d17f365f108803c45c8199af49497950
Monotone-Revision: 0889f44ef075162f639e073a81781dfd866bbc41 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-01-11T23:08:36 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
parent
91fe9abd50
commit
8069166883
|
@ -1,3 +1,9 @@
|
||||||
|
2011-01-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
|
* OpenChange/SOGoContactGCSEntry+MAPIStore.m (-setMAPIProperties):
|
||||||
|
carefully existing handled fields to avoid removing them during
|
||||||
|
modification.
|
||||||
|
|
||||||
2011-01-11 Ludovic Marcotte <lmarcotte@inverse.ca>
|
2011-01-11 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||||
|
|
||||||
* OpenChange/MAPIStoreContactsMessageTable.m
|
* OpenChange/MAPIStoreContactsMessageTable.m
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
|
|
||||||
- (void) setMAPIProperties: (NSDictionary *) properties
|
- (void) setMAPIProperties: (NSDictionary *) properties
|
||||||
{
|
{
|
||||||
NGVCard *newCard, *oldCard;
|
NGVCard *newCard;
|
||||||
NSArray *elements;
|
NSArray *elements;
|
||||||
CardElement *element;
|
CardElement *element;
|
||||||
int postalAddressId;
|
int postalAddressId;
|
||||||
|
@ -46,16 +46,7 @@
|
||||||
|
|
||||||
[self logWithFormat: @"setMAPIProperties: %@", properties];
|
[self logWithFormat: @"setMAPIProperties: %@", properties];
|
||||||
|
|
||||||
oldCard = [self vCard];
|
newCard = [self vCard];
|
||||||
if (isNew)
|
|
||||||
newCard = oldCard;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
newCard = [NGVCard new];
|
|
||||||
[newCard setUid: [oldCard uid]];
|
|
||||||
ASSIGN (card, newCard);
|
|
||||||
[newCard release];
|
|
||||||
}
|
|
||||||
[newCard setTag: @"vcard"];
|
[newCard setTag: @"vcard"];
|
||||||
[newCard setVersion: @"3.0"];
|
[newCard setVersion: @"3.0"];
|
||||||
[newCard setProdID: @"-//Inverse inc.//OpenChange+SOGo//EN"];
|
[newCard setProdID: @"-//Inverse inc.//OpenChange+SOGo//EN"];
|
||||||
|
@ -66,9 +57,32 @@
|
||||||
if (value)
|
if (value)
|
||||||
[newCard setFn: value];
|
[newCard setFn: value];
|
||||||
|
|
||||||
|
elements = [newCard childrenWithTag: @"email"];
|
||||||
value = [properties objectForKey: MAPIPropertyKey (PidLidEmail1EmailAddress)];
|
value = [properties objectForKey: MAPIPropertyKey (PidLidEmail1EmailAddress)];
|
||||||
if (value)
|
if (value)
|
||||||
|
{
|
||||||
|
if ([elements count] > 0)
|
||||||
|
[[elements objectAtIndex: 0] setValue: 0 to: value];
|
||||||
|
else
|
||||||
|
[newCard addEmail: value
|
||||||
|
types: [NSArray arrayWithObject: @"pref"]];
|
||||||
|
}
|
||||||
|
value = [properties objectForKey: MAPIPropertyKey (PidLidEmail2EmailAddress)];
|
||||||
|
if (value)
|
||||||
|
{
|
||||||
|
if ([elements count] > 1)
|
||||||
|
[[elements objectAtIndex: 1] setValue: 0 to: value];
|
||||||
|
else
|
||||||
[newCard addEmail: value types: nil];
|
[newCard addEmail: value types: nil];
|
||||||
|
}
|
||||||
|
value = [properties objectForKey: MAPIPropertyKey (PidLidEmail3EmailAddress)];
|
||||||
|
if (value)
|
||||||
|
{
|
||||||
|
if ([elements count] > 2)
|
||||||
|
[[elements objectAtIndex: 2] setValue: 0 to: value];
|
||||||
|
else
|
||||||
|
[newCard addEmail: value types: nil];
|
||||||
|
}
|
||||||
|
|
||||||
postalAddressId = [[properties objectForKey: MAPIPropertyKey (PidLidPostalAddressId)]
|
postalAddressId = [[properties objectForKey: MAPIPropertyKey (PidLidPostalAddressId)]
|
||||||
intValue];
|
intValue];
|
||||||
|
@ -81,10 +95,7 @@
|
||||||
andAttribute: @"type"
|
andAttribute: @"type"
|
||||||
havingValue: @"work"];
|
havingValue: @"work"];
|
||||||
if ([elements count] > 0)
|
if ([elements count] > 0)
|
||||||
{
|
|
||||||
element = [elements objectAtIndex: 0];
|
element = [elements objectAtIndex: 0];
|
||||||
[element setValues: nil];
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
element = [CardElement elementWithTag: @"label"];
|
element = [CardElement elementWithTag: @"label"];
|
||||||
|
@ -92,8 +103,12 @@
|
||||||
[card addChild: element];
|
[card addChild: element];
|
||||||
}
|
}
|
||||||
if (postalAddressId == 2)
|
if (postalAddressId == 2)
|
||||||
|
{
|
||||||
|
[element removeValue: @"pref"
|
||||||
|
fromAttribute: @"type"];
|
||||||
[element addAttribute: @"type"
|
[element addAttribute: @"type"
|
||||||
value: @"pref"];
|
value: @"pref"];
|
||||||
|
}
|
||||||
[element setValue: 0 to: value];
|
[element setValue: 0 to: value];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,10 +116,7 @@
|
||||||
andAttribute: @"type"
|
andAttribute: @"type"
|
||||||
havingValue: @"work"];
|
havingValue: @"work"];
|
||||||
if ([elements count] > 0)
|
if ([elements count] > 0)
|
||||||
{
|
|
||||||
element = [elements objectAtIndex: 0];
|
element = [elements objectAtIndex: 0];
|
||||||
[element setValues: nil];
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
element = [CardElement elementWithTag: @"adr"];
|
element = [CardElement elementWithTag: @"adr"];
|
||||||
|
|
Loading…
Reference in a new issue