/* Note: can return NSNull objects in the array! */
NSMutableArray *uids;
AgenorUserManager *um;
- unsigned i, count;
+ unsigned i, count;
if (_persons == nil)
return nil;
-
+
count = [_persons count];
uids = [NSMutableArray arrayWithCapacity:count + 1];
um = [AgenorUserManager sharedUserManager];
person = [_persons objectAtIndex:i];
email = [person email];
if ([email isNotNull]) {
+ if ([email hasPrefix:@"mailto:"])
+ email = [uid substringFromIndex:7];
uid = [um getUIDForEmail:email];
- if ([uid isNotNull]) {
- if ([uid hasPrefix:@"mailto:"])
- uid = [uid substringFromIndex:7];
- }
}
else
uid = nil;
+2004-12-13 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * Appointments/SOGoAppointmentFolder.m: fixed bug in
+ -uidsFromICalPersons: (v0.9.18)
+
2004-12-10 Marcus Mueller <znek@mulle-kybernetik.com>
* Appointments/SOGoAppointmentFolder.m: added new quickinfo attributes
2004-12-13 Marcus Mueller <znek@mulle-kybernetik.com>
+ * SOGoAptFormatter.[hm]: new option for formatter (v0.9.21)
+
* SOGoAptFormatter.[hm]: added ability to set custom title for private
appointments. (v0.9.20)
- (void)setPrivateTooltip;
- (void)setPrivateDetails;
+- (void)setPrivateTitleOnly;
- (void)setPrivateSuppressAll;
- (void)setPrivateTitle:(NSString *)_privateTitle;
self->formatAction = @selector(suppressApt:);
}
+- (void)setPrivateTitleOnly {
+ self->formatAction = @selector(titleOnlyForPrivateApt:);
+}
+
- (void)setPrivateTitle:(NSString *)_privateTitle {
ASSIGN(self->privateTitle, _privateTitle);
}
return aptDescr;
}
+- (NSString *)titleOnlyForPrivateApt:(id)_apt {
+ NSString *s;
+
+ s = [self privateTitle];
+ if(!s)
+ return @"";
+ return s;
+}
+
- (NSString *)tooltipForApt:(id)_apt {
NSCalendarDate *startDate, *endDate;
NSMutableString *aptDescr;
# $Id$
-SUBMINOR_VERSION:=20
+SUBMINOR_VERSION:=21
# v0.9.18 requires NGExtensions v4.5.136
2004-12-13 Marcus Mueller <znek@mulle-kybernetik.com>
+ * v0.9.100
+
+ * UIxAppointmentEditor.m: fixed incorrect redirect location
+
+ * UIxCalWeekListview.m, UIxCalWeekChartview.m: use new formatter option
+ to correctly format private appointments
+
* v0.9.99
* {English,French}.lproj/default.strings: new label
Note: 'clientObject' is the SOGoAppointmentFolder!
Update: remember that there are group folders as well.
*/
- NSString *uri, *objectId, *nextMethod;
+ NSString *uri, *objectId, *method;
objectId = [NSClassFromString(@"SOGoAppointmentFolder")
globallyUniqueObjectId];
return [NSException exceptionWithHTTPStatus:500 /* Internal Error */
reason:@"could not create a unique ID"];
}
-
- nextMethod = [NSString stringWithFormat:@"../%@/edit", objectId];
- uri = [self _completeURIForMethod:nextMethod];
+
+ method = [NSString stringWithFormat:@"Calendar/%@/edit", objectId];
+ method = [[self userFolderPath] stringByAppendingPathComponent:method];
+
+ uri = [self completeHrefForMethod:method];
return [self redirectToLocation:uri];
}
- (void)configureFormatters {
[super configureFormatters];
[self->aptFormatter setTitleOnly];
- [self->privateAptFormatter setPrivateDetails];
+ [self->privateAptFormatter setPrivateTitleOnly];
}
- (void)configureFormatters {
[super configureFormatters];
[self->aptFormatter setTitleOnly];
- [self->privateAptFormatter setPrivateDetails];
+ [self->privateAptFormatter setPrivateTitleOnly];
}
- (NSString *)cnForCurrentUid {
# $Id$
-SUBMINOR_VERSION:=99
+SUBMINOR_VERSION:=100
-# v0.9.99 requires SOGoUI v0.9.20
-# v0.9.98 requires SOGoUI v0.9.19
-# v0.9.96 requires SOGoLogic v0.9.27
-# v0.9.94 requires NGExtensions v4.5.136
-# v0.9.84 requires SOGoLogic v0.9.12
-# v0.9.70 requires NGExtensions v4.3.107
-# v0.9.67 requires SOPE v4.3
-# v0.9.61 requires NGExtensions v4.2.102
-# v0.9.41 requires NGObjWeb v4.2.431
-# v0.9.31 requires WEExtensions v4.2.52
-# v0.9.29 requires WEExtensions v4.2.51
+# v0.9.100 requires SOGoUI v0.9.21
+# v0.9.99 requires SOGoUI v0.9.20
+# v0.9.98 requires SOGoUI v0.9.19
+# v0.9.96 requires SOGoLogic v0.9.27
+# v0.9.94 requires NGExtensions v4.5.136
+# v0.9.84 requires SOGoLogic v0.9.12
+# v0.9.70 requires NGExtensions v4.3.107
+# v0.9.67 requires SOPE v4.3
+# v0.9.61 requires NGExtensions v4.2.102
+# v0.9.41 requires NGObjWeb v4.2.431
+# v0.9.31 requires WEExtensions v4.2.52
+# v0.9.29 requires WEExtensions v4.2.51
}
+/*
+ The uid field is in bijection this the email adress :
+ this field can be construct from the email. Email are uniques.
+
+ So, we can use email adresse from identifier.
+ The field is made like this :
+ _ if the email is equipement.gouv.fr then the login
+ is the part before the @
+ for example : fisrtName.lastName
+ _ if the email is not equipement.gouv.fr then the login
+ is the full email adress where @ is change to . (dot)
+ for example : fisrtName.lastName.subDomain.domain.tld
+
+ NOTE: mapping email -> uid is easy, but can also generate uid's not known
+ to the system (i.e. for private addressbook entries, obvious).
+ The reverse mapping can work _only_ if "firstName.lastname." is
+ guaranteed, because the second dot would be mapped to '@'. This
+ is probably error prone.
+ Only LDAP fetches would guarantee correctness in both cases.
+*/
+
- (NSString *)getUIDForEmail:(NSString *)_email {
NSRange r;
NSString *domain;
+2004-12-13 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * SOGoUserManager.m: added comment regarding mapping uid <->mail
+ (v0.9.30)
+
2004-12-10 Marcus Mueller <znek@mulle-kybernetik.com>
* SOGoAppointment.[hm]: added -isPublic and -isTransparent as
# Version file
-SUBMINOR_VERSION:=29
+SUBMINOR_VERSION:=30
# v0.9.26 requires NGExtensions v4.5.136
# v0.9.23 requires NGiCal v4.3.32