(feat) screenname (x-aim) is now shown and editable

This commit is contained in:
Ludovic Marcotte
2015-11-27 10:58:56 -05:00
parent 4d0361759a
commit dbffc50f06
7 changed files with 470 additions and 420 deletions
+414 -410
View File
@@ -1,5 +1,4 @@
/*
Copyright (C) 2004 SKYRIX Software AG
Copyright (C) 2005-2015 Inverse inc.
This file is part of SOGo.
@@ -69,70 +68,70 @@
/* accessors */
- (NSString *) _cardStringWithLabel: (NSString *) label
value: (NSString *) value
byEscapingHTMLString: (BOOL) escapeHTML
asLinkScheme: (NSString *) scheme
withLinkAttributes: (NSString *) attrs
{
NSMutableString *cardString;
// - (NSString *) _cardStringWithLabel: (NSString *) label
// value: (NSString *) value
// byEscapingHTMLString: (BOOL) escapeHTML
// asLinkScheme: (NSString *) scheme
// withLinkAttributes: (NSString *) attrs
// {
// NSMutableString *cardString;
cardString = [NSMutableString stringWithCapacity: 80];
value = [value stringByReplacingString: @"\r" withString: @""];
if ([value length] > 0)
{
if (escapeHTML)
value = [value stringByEscapingHTMLString];
if ([scheme length] > 0)
value = [NSString stringWithFormat: @"<a href=\"%@%@\" %@>%@</a>", scheme, value, attrs, value];
// cardString = [NSMutableString stringWithCapacity: 80];
// value = [value stringByReplacingString: @"\r" withString: @""];
// if ([value length] > 0)
// {
// if (escapeHTML)
// value = [value stringByEscapingHTMLString];
// if ([scheme length] > 0)
// value = [NSString stringWithFormat: @"<a href=\"%@%@\" %@>%@</a>", scheme, value, attrs, value];
if (label)
[cardString appendFormat: @"<dt>%@</dt><dd>%@</dd>\n",
[self labelForKey: label], value];
else
[cardString appendFormat: @"<dt></dt><dd>%@</dd>\n", value];
}
// if (label)
// [cardString appendFormat: @"<dt>%@</dt><dd>%@</dd>\n",
// [self labelForKey: label], value];
// else
// [cardString appendFormat: @"<dt></dt><dd>%@</dd>\n", value];
// }
return cardString;
}
// return cardString;
// }
- (NSString *) _cardStringWithLabel: (NSString *) label
value: (NSString *) value
{
return [self _cardStringWithLabel: label
value: value
byEscapingHTMLString: YES
asLinkScheme: nil
withLinkAttributes: nil];
}
// - (NSString *) _cardStringWithLabel: (NSString *) label
// value: (NSString *) value
// {
// return [self _cardStringWithLabel: label
// value: value
// byEscapingHTMLString: YES
// asLinkScheme: nil
// withLinkAttributes: nil];
// }
- (NSString *) _cardStringWithLabel: (NSString *) label
value: (NSString *) value
asLinkScheme: (NSString *) scheme
{
return [self _cardStringWithLabel: label
value: value
byEscapingHTMLString: YES
asLinkScheme: scheme
withLinkAttributes: nil];
}
// - (NSString *) _cardStringWithLabel: (NSString *) label
// value: (NSString *) value
// asLinkScheme: (NSString *) scheme
// {
// return [self _cardStringWithLabel: label
// value: value
// byEscapingHTMLString: YES
// asLinkScheme: scheme
// withLinkAttributes: nil];
// }
- (NSString *) displayName
{
return [self _cardStringWithLabel: @"Display Name:"
value: [card fn]];
}
// - (NSString *) displayName
// {
// return [self _cardStringWithLabel: @"Display Name:"
// value: [card fn]];
// }
- (NSString *) nickName
{
return [self _cardStringWithLabel: @"Nickname:"
value: [card nickname]];
}
// - (NSString *) nickName
// {
// return [self _cardStringWithLabel: @"Nickname:"
// value: [card nickname]];
// }
- (NSString *) fullName
{
return [card fullName];
}
// - (NSString *) fullName
// {
// return [card fullName];
// }
- (NSArray *) _languageContactsCategories
{
@@ -173,345 +172,345 @@
return cats;
}
- (NSString *) primaryEmail
{
NSString *email, *fn, *attrs;
// - (NSString *) primaryEmail
// {
// NSString *email, *fn, *attrs;
email = [card preferredEMail];
if ([email length] > 0)
{
fn = [card fn];
if ([fn length] > 0)
attrs = [NSString stringWithFormat: @"%@ <%@>", fn, email];
else
attrs = email;
attrs = [attrs stringByReplacingString: @"'" withString: @"\\'"];
attrs = [attrs stringByReplacingString: @"\"" withString: @"\\\""];
attrs = [NSString stringWithFormat: @"onclick=\"return openMailTo('%@');\"", attrs];
}
else
{
attrs = nil;
}
// email = [card preferredEMail];
// if ([email length] > 0)
// {
// fn = [card fn];
// if ([fn length] > 0)
// attrs = [NSString stringWithFormat: @"%@ <%@>", fn, email];
// else
// attrs = email;
// attrs = [attrs stringByReplacingString: @"'" withString: @"\\'"];
// attrs = [attrs stringByReplacingString: @"\"" withString: @"\\\""];
// attrs = [NSString stringWithFormat: @"onclick=\"return openMailTo('%@');\"", attrs];
// }
// else
// {
// attrs = nil;
// }
return [self _cardStringWithLabel: @"Email:"
value: email
byEscapingHTMLString: YES
asLinkScheme: @"mailto:"
withLinkAttributes: attrs];
}
// return [self _cardStringWithLabel: @"Email:"
// value: email
// byEscapingHTMLString: YES
// asLinkScheme: @"mailto:"
// withLinkAttributes: attrs];
// }
- (NSArray *) secondaryEmails
{
NSMutableArray *secondaryEmails;
NSString *email, *fn, *attrs;
NSArray *emails;
// - (NSArray *) secondaryEmails
// {
// NSMutableArray *secondaryEmails;
// NSString *email, *fn, *attrs;
// NSArray *emails;
emails = [card secondaryEmails];
secondaryEmails = [NSMutableArray array];
attrs = nil;
// emails = [card secondaryEmails];
// secondaryEmails = [NSMutableArray array];
// attrs = nil;
// We might not have a preferred item but rather something like this:
// EMAIL;TYPE=work:dd@ee.com
// EMAIL;TYPE=home:ff@gg.com
//
// or:
//
// EMAIL;TYPE=INTERNET:a@a.com
// EMAIL;TYPE=INTERNET,HOME:b@b.com
//
// In this case, we always return the entry NOT matching the primaryEmail
if ([emails count] > 0)
{
int i;
// // We might not have a preferred item but rather something like this:
// // EMAIL;TYPE=work:dd@ee.com
// // EMAIL;TYPE=home:ff@gg.com
// //
// // or:
// //
// // EMAIL;TYPE=INTERNET:a@a.com
// // EMAIL;TYPE=INTERNET,HOME:b@b.com
// //
// // In this case, we always return the entry NOT matching the primaryEmail
// if ([emails count] > 0)
// {
// int i;
for (i = 0; i < [emails count]; i++)
{
email = [[emails objectAtIndex: i] flattenedValuesForKey: @""];
if ([email length])
{
fn = [card fn];
if ([fn length])
attrs = [NSString stringWithFormat: @"%@ <%@>", fn, email];
else
attrs = email;
attrs = [attrs stringByReplacingString: @"'" withString: @"\\'"];
attrs = [attrs stringByReplacingString: @"\"" withString: @"\\\""];
attrs = [NSString stringWithFormat: @"onclick=\"return openMailTo('%@');\"", attrs];
// for (i = 0; i < [emails count]; i++)
// {
// email = [[emails objectAtIndex: i] flattenedValuesForKey: @""];
// if ([email length])
// {
// fn = [card fn];
// if ([fn length])
// attrs = [NSString stringWithFormat: @"%@ <%@>", fn, email];
// else
// attrs = email;
// attrs = [attrs stringByReplacingString: @"'" withString: @"\\'"];
// attrs = [attrs stringByReplacingString: @"\"" withString: @"\\\""];
// attrs = [NSString stringWithFormat: @"onclick=\"return openMailTo('%@');\"", attrs];
[secondaryEmails addObject: [self _cardStringWithLabel: nil
value: email
byEscapingHTMLString: YES
asLinkScheme: @"mailto:"
withLinkAttributes: attrs]];
}
}
}
else
{
[secondaryEmails addObject: [self _cardStringWithLabel: nil
value: nil]];
}
// [secondaryEmails addObject: [self _cardStringWithLabel: nil
// value: email
// byEscapingHTMLString: YES
// asLinkScheme: @"mailto:"
// withLinkAttributes: attrs]];
// }
// }
// }
// else
// {
// [secondaryEmails addObject: [self _cardStringWithLabel: nil
// value: nil]];
// }
return secondaryEmails;
}
// return secondaryEmails;
// }
- (NSString *) screenName
{
NSString *screenName;
// - (NSString *) screenName
// {
// NSString *screenName;
screenName = [[card uniqueChildWithTag: @"x-aim"] flattenedValuesForKey: @""];
// screenName = [[card uniqueChildWithTag: @"x-aim"] flattenedValuesForKey: @""];
return [self _cardStringWithLabel: @"Screen Name:"
value: screenName
asLinkScheme: @"aim:goim?screenname="];
}
// return [self _cardStringWithLabel: @"Screen Name:"
// value: screenName
// asLinkScheme: @"aim:goim?screenname="];
// }
- (NSString *) preferredTel
{
return [self _cardStringWithLabel: @"Phone Number:"
value: [card preferredTel] asLinkScheme: @"tel:"];
}
// - (NSString *) preferredTel
// {
// return [self _cardStringWithLabel: @"Phone Number:"
// value: [card preferredTel] asLinkScheme: @"tel:"];
// }
- (NSString *) preferredAddress
{
return @"";
}
// - (NSString *) preferredAddress
// {
// return @"";
// }
- (BOOL) hasTelephones
{
if (!phones)
phones = [card childrenWithTag: @"tel"];
// - (BOOL) hasTelephones
// {
// if (!phones)
// phones = [card childrenWithTag: @"tel"];
return ([phones count] > 0);
}
// return ([phones count] > 0);
// }
- (NSString *) workPhone
{
// We do this (exclude FAX) in order to avoid setting the WORK number as the FAX
// one if we do see the FAX field BEFORE the WORK number.
return [self _cardStringWithLabel: @"Work:" value: [card workPhone] asLinkScheme: @"tel:"];
}
// - (NSString *) workPhone
// {
// // We do this (exclude FAX) in order to avoid setting the WORK number as the FAX
// // one if we do see the FAX field BEFORE the WORK number.
// return [self _cardStringWithLabel: @"Work:" value: [card workPhone] asLinkScheme: @"tel:"];
// }
- (NSString *) homePhone
{
return [self _cardStringWithLabel: @"Home:" value: [card homePhone] asLinkScheme: @"tel:"];
}
// - (NSString *) homePhone
// {
// return [self _cardStringWithLabel: @"Home:" value: [card homePhone] asLinkScheme: @"tel:"];
// }
- (NSString *) fax
{
return [self _cardStringWithLabel: @"Fax:" value: [card fax] asLinkScheme: @"tel:"];
}
// - (NSString *) fax
// {
// return [self _cardStringWithLabel: @"Fax:" value: [card fax] asLinkScheme: @"tel:"];
// }
- (NSString *) mobile
{
return [self _cardStringWithLabel: @"Mobile:" value: [card mobile] asLinkScheme: @"tel:"];
}
// - (NSString *) mobile
// {
// return [self _cardStringWithLabel: @"Mobile:" value: [card mobile] asLinkScheme: @"tel:"];
// }
- (NSString *) pager
{
return [self _cardStringWithLabel: @"Pager:" value: [card pager] asLinkScheme: @"tel:"];
}
// - (NSString *) pager
// {
// return [self _cardStringWithLabel: @"Pager:" value: [card pager] asLinkScheme: @"tel:"];
// }
- (BOOL) hasHomeInfos
{
BOOL result;
NSArray *elements;
// - (BOOL) hasHomeInfos
// {
// BOOL result;
// NSArray *elements;
elements = [card childrenWithTag: @"adr"
andAttribute: @"type"
havingValue: @"home"];
if ([elements count] > 0)
{
result = YES;
homeAdr = [elements objectAtIndex: 0];
}
else
result = ([[card childrenWithTag: @"url"
andAttribute: @"type"
havingValue: @"home"] count] > 0);
// elements = [card childrenWithTag: @"adr"
// andAttribute: @"type"
// havingValue: @"home"];
// if ([elements count] > 0)
// {
// result = YES;
// homeAdr = [elements objectAtIndex: 0];
// }
// else
// result = ([[card childrenWithTag: @"url"
// andAttribute: @"type"
// havingValue: @"home"] count] > 0);
return result;
}
// return result;
// }
- (NSString *) homePobox
{
return [self _cardStringWithLabel: nil
value: [homeAdr flattenedValueAtIndex: 0
forKey: @""]];
}
// - (NSString *) homePobox
// {
// return [self _cardStringWithLabel: nil
// value: [homeAdr flattenedValueAtIndex: 0
// forKey: @""]];
// }
- (NSString *) homeExtendedAddress
{
return [self _cardStringWithLabel: nil
value: [homeAdr flattenedValueAtIndex: 1
forKey: @""]];
}
// - (NSString *) homeExtendedAddress
// {
// return [self _cardStringWithLabel: nil
// value: [homeAdr flattenedValueAtIndex: 1
// forKey: @""]];
// }
- (NSString *) homeStreetAddress
{
return [self _cardStringWithLabel: nil
value: [homeAdr flattenedValueAtIndex: 2
forKey: @""]];
}
// - (NSString *) homeStreetAddress
// {
// return [self _cardStringWithLabel: nil
// value: [homeAdr flattenedValueAtIndex: 2
// forKey: @""]];
// }
- (NSString *) homeCityAndProv
{
NSString *city, *prov;
NSMutableString *data;
// - (NSString *) homeCityAndProv
// {
// NSString *city, *prov;
// NSMutableString *data;
city = [homeAdr flattenedValueAtIndex: 3 forKey: @""];
prov = [homeAdr flattenedValueAtIndex: 4 forKey: @""];
// city = [homeAdr flattenedValueAtIndex: 3 forKey: @""];
// prov = [homeAdr flattenedValueAtIndex: 4 forKey: @""];
data = [NSMutableString string];
[data appendString: city];
if ([city length] > 0 && [prov length] > 0)
[data appendString: @", "];
[data appendString: prov];
// data = [NSMutableString string];
// [data appendString: city];
// if ([city length] > 0 && [prov length] > 0)
// [data appendString: @", "];
// [data appendString: prov];
return [self _cardStringWithLabel: nil value: data];
}
// return [self _cardStringWithLabel: nil value: data];
// }
- (NSString *) homePostalCodeAndCountry
{
NSString *postalCode, *country;
NSMutableString *data;
// - (NSString *) homePostalCodeAndCountry
// {
// NSString *postalCode, *country;
// NSMutableString *data;
postalCode = [homeAdr flattenedValueAtIndex: 5 forKey: @""];
country = [homeAdr flattenedValueAtIndex: 6 forKey: @""];
// postalCode = [homeAdr flattenedValueAtIndex: 5 forKey: @""];
// country = [homeAdr flattenedValueAtIndex: 6 forKey: @""];
data = [NSMutableString string];
[data appendString: postalCode];
if ([postalCode length] > 0 && [country length] > 0)
[data appendFormat: @", "];
[data appendString: country];
// data = [NSMutableString string];
// [data appendString: postalCode];
// if ([postalCode length] > 0 && [country length] > 0)
// [data appendFormat: @", "];
// [data appendString: country];
return [self _cardStringWithLabel: nil value: data];
}
// return [self _cardStringWithLabel: nil value: data];
// }
- (NSString *) _formattedURL: (NSString *) url
{
NSRange schemaR;
NSString *schema, *data;
// - (NSString *) _formattedURL: (NSString *) url
// {
// NSRange schemaR;
// NSString *schema, *data;
if ([url length] > 0)
{
schemaR = [url rangeOfString: @"://"];
if (schemaR.length > 0)
{
schema = [url substringToIndex: schemaR.location + schemaR.length];
data = [url substringFromIndex: schemaR.location + schemaR.length];
}
else
{
schema = @"http://";
data = url;
}
}
else
{
schema = nil;
data = nil;
}
// if ([url length] > 0)
// {
// schemaR = [url rangeOfString: @"://"];
// if (schemaR.length > 0)
// {
// schema = [url substringToIndex: schemaR.location + schemaR.length];
// data = [url substringFromIndex: schemaR.location + schemaR.length];
// }
// else
// {
// schema = @"http://";
// data = url;
// }
// }
// else
// {
// schema = nil;
// data = nil;
// }
return [self _cardStringWithLabel: nil
value: data
byEscapingHTMLString: YES
asLinkScheme: schema
withLinkAttributes: @"target=\"_blank\""];
}
// return [self _cardStringWithLabel: nil
// value: data
// byEscapingHTMLString: YES
// asLinkScheme: schema
// withLinkAttributes: @"target=\"_blank\""];
// }
- (NSString *) _urlOfType: (NSString *) aType
{
NSArray *elements;
NSString *url;
// - (NSString *) _urlOfType: (NSString *) aType
// {
// NSArray *elements;
// NSString *url;
elements = [card childrenWithTag: @"url"
andAttribute: @"type"
havingValue: aType];
if ([elements count] > 0)
url = [[elements objectAtIndex: 0] flattenedValuesForKey: @""];
else
url = nil;
// elements = [card childrenWithTag: @"url"
// andAttribute: @"type"
// havingValue: aType];
// if ([elements count] > 0)
// url = [[elements objectAtIndex: 0] flattenedValuesForKey: @""];
// else
// url = nil;
return [self _formattedURL: url];
}
// return [self _formattedURL: url];
// }
- (NSString *) homeUrl
{
NSString *s;
// - (NSString *) homeUrl
// {
// NSString *s;
s = [self _urlOfType: @"home"];
// s = [self _urlOfType: @"home"];
if (!s || [s length] == 0)
{
NSArray *elements;
NSString *workURL;
int i;
// if (!s || [s length] == 0)
// {
// NSArray *elements;
// NSString *workURL;
// int i;
elements = [card childrenWithTag: @"url"
andAttribute: @"type"
havingValue: @"work"];
workURL = nil;
// elements = [card childrenWithTag: @"url"
// andAttribute: @"type"
// havingValue: @"work"];
// workURL = nil;
if ([elements count] > 0)
workURL = [[elements objectAtIndex: 0] flattenedValuesForKey: @""];
// if ([elements count] > 0)
// workURL = [[elements objectAtIndex: 0] flattenedValuesForKey: @""];
elements = [card childrenWithTag: @"url"];
// elements = [card childrenWithTag: @"url"];
if (workURL && [elements count] > 1)
{
for (i = 0; i < [elements count]; i++)
{
if ([[[elements objectAtIndex: i] flattenedValuesForKey: @""]
caseInsensitiveCompare: workURL] != NSOrderedSame)
{
s = [[elements objectAtIndex: i] flattenedValuesForKey: @""];
break;
}
}
// if (workURL && [elements count] > 1)
// {
// for (i = 0; i < [elements count]; i++)
// {
// if ([[[elements objectAtIndex: i] flattenedValuesForKey: @""]
// caseInsensitiveCompare: workURL] != NSOrderedSame)
// {
// s = [[elements objectAtIndex: i] flattenedValuesForKey: @""];
// break;
// }
// }
}
else if (!workURL && [elements count] > 0)
{
s = [[elements objectAtIndex: 0] flattenedValuesForKey: @""];
}
// }
// else if (!workURL && [elements count] > 0)
// {
// s = [[elements objectAtIndex: 0] flattenedValuesForKey: @""];
// }
if (s && [s length] > 0)
s = [self _formattedURL: s];
}
// if (s && [s length] > 0)
// s = [self _formattedURL: s];
// }
return s;
}
// return s;
// }
- (BOOL) hasWorkInfos
{
BOOL result;
NSArray *elements;
// - (BOOL) hasWorkInfos
// {
// BOOL result;
// NSArray *elements;
elements = [card childrenWithTag: @"adr"
andAttribute: @"type"
havingValue: @"work"];
if ([elements count] > 0)
{
result = YES;
workAdr = [elements objectAtIndex: 0];
}
else
result = (([[card childrenWithTag: @"url"
andAttribute: @"type"
havingValue: @"work"] count] > 0)
|| [[card childrenWithTag: @"org"] count] > 0);
// elements = [card childrenWithTag: @"adr"
// andAttribute: @"type"
// havingValue: @"work"];
// if ([elements count] > 0)
// {
// result = YES;
// workAdr = [elements objectAtIndex: 0];
// }
// else
// result = (([[card childrenWithTag: @"url"
// andAttribute: @"type"
// havingValue: @"work"] count] > 0)
// || [[card childrenWithTag: @"org"] count] > 0);
return result;
}
// return result;
// }
- (NSString *) workTitle
{
return [self _cardStringWithLabel: nil value: [card title]];
}
// - (NSString *) workTitle
// {
// return [self _cardStringWithLabel: nil value: [card title]];
// }
- (NSArray *) orgUnits
{
@@ -608,65 +607,65 @@
return addresses;
}
- (NSString *) workService
{
NSMutableArray *orgServices;
NSArray *values;
CardElement *org;
NSString *service, *services;
NSUInteger count, max;
// - (NSString *) workService
// {
// NSMutableArray *orgServices;
// NSArray *values;
// CardElement *org;
// NSString *service, *services;
// NSUInteger count, max;
org = [card org];
values = [org valuesForKey: @""];
max = [values count];
if (max > 1)
{
orgServices = [NSMutableArray arrayWithCapacity: max];
for (count = 1; count < max; count++)
{
service = [org flattenedValueAtIndex: count forKey: @""];
if ([service length] > 0)
[orgServices addObject: service];
}
// org = [card org];
// values = [org valuesForKey: @""];
// max = [values count];
// if (max > 1)
// {
// orgServices = [NSMutableArray arrayWithCapacity: max];
// for (count = 1; count < max; count++)
// {
// service = [org flattenedValueAtIndex: count forKey: @""];
// if ([service length] > 0)
// [orgServices addObject: service];
// }
services = [orgServices componentsJoinedByString: @", "];
}
else
services = nil;
// services = [orgServices componentsJoinedByString: @", "];
// }
// else
// services = nil;
return [self _cardStringWithLabel: nil value: services];
}
// return [self _cardStringWithLabel: nil value: services];
// }
- (NSString *) workUrl
{
return [self _urlOfType: @"work"];
}
// - (NSString *) workUrl
// {
// return [self _urlOfType: @"work"];
// }
- (BOOL) hasOtherInfos
{
return ([[card note] length] > 0
|| [[card bday] length] > 0
|| [[card tz] length] > 0);
}
// - (BOOL) hasOtherInfos
// {
// return ([[card note] length] > 0
// || [[card bday] length] > 0
// || [[card tz] length] > 0);
// }
- (NSString *) bday
{
SOGoDateFormatter *dateFormatter;
NSCalendarDate *date;
NSString *bday;
// - (NSString *) bday
// {
// SOGoDateFormatter *dateFormatter;
// NSCalendarDate *date;
// NSString *bday;
date = [card birthday];
bday = nil;
// date = [card birthday];
// bday = nil;
if (date)
{
dateFormatter = [[[self context] activeUser] dateFormatterInContext: context];
bday = [dateFormatter formattedDate: date];
}
// if (date)
// {
// dateFormatter = [[[self context] activeUser] dateFormatterInContext: context];
// bday = [dateFormatter formattedDate: date];
// }
return bday;
//return [self _cardStringWithLabel: @"Birthday:" value: bday];
}
// return bday;
// //return [self _cardStringWithLabel: @"Birthday:" value: bday];
// }
// - (NSString *) tz
// {
@@ -693,29 +692,29 @@
/* hrefs */
- (NSString *) completeHrefForMethod: (NSString *) _method
withParameter: (NSString *) _param
forKey: (NSString *) _key
{
NSString *href;
// - (NSString *) completeHrefForMethod: (NSString *) _method
// withParameter: (NSString *) _param
// forKey: (NSString *) _key
// {
// NSString *href;
[self setQueryParameter:_param forKey:_key];
href = [self completeHrefForMethod:[self ownMethodName]];
[self setQueryParameter:nil forKey:_key];
// [self setQueryParameter:_param forKey:_key];
// href = [self completeHrefForMethod:[self ownMethodName]];
// [self setQueryParameter:nil forKey:_key];
return href;
}
// return href;
// }
- (NSString *)attributesTabLink {
return [self completeHrefForMethod:[self ownMethodName]
withParameter:@"attributes"
forKey:@"tab"];
}
- (NSString *)debugTabLink {
return [self completeHrefForMethod:[self ownMethodName]
withParameter:@"debug"
forKey:@"tab"];
}
// - (NSString *)attributesTabLink {
// return [self completeHrefForMethod:[self ownMethodName]
// withParameter:@"attributes"
// forKey:@"tab"];
// }
// - (NSString *)debugTabLink {
// return [self completeHrefForMethod:[self ownMethodName]
// withParameter:@"debug"
// forKey:@"tab"];
// }
/* action */
@@ -751,6 +750,7 @@
* @apiSuccess (Success 200) {String} [nickname] Nickname
* @apiSuccess (Success 200) {String} [c_sn] Lastname
* @apiSuccess (Success 200) {String} [c_fn] Fullname
* @apiSuccess (Success 200) {String} [c_screenname] Screen Name (X-AIM for now)
* @apiSuccess (Success 200) {String} [tz] Timezone
* @apiSuccess (Success 200) {String} [note] Note
* @apiSuccess (Success 200) {String[]} allCategories All available categories
@@ -812,6 +812,10 @@
if ([firstName length] > 0)
[data setObject: firstName forKey: @"c_givenname"];
}
o = [[card uniqueChildWithTag: @"x-aim"] flattenedValuesForKey: @""];
if ([o length]) [data setObject: o forKey: @"c_screenname"];
o = [card nickname];
if (o) [data setObject: o forKey: @"nickname"];
o = [card title];