propagate from branch 'ca.inverse.sogo.1_3_12' (head f5ba6db440f5a8ba817af65dea12b4a616fdfe71)

to branch 'ca.inverse.sogo' (head df5dd81d62db331ba5c8de9f2257f9430c586534)

Monotone-Parent: df5dd81d62db331ba5c8de9f2257f9430c586534
Monotone-Parent: f5ba6db440f5a8ba817af65dea12b4a616fdfe71
Monotone-Revision: 31373520d86c320c1658f22e3bde2eee178c2003

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2012-01-09T16:38:18
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau committed 2012-01-09 16:38:18 +00:00
commit 5468b9b1a2
11 files changed
+141 -68

No files matched your search

@@ -35,14 +35,19 @@ vtodo_class2 = "(Confidential task)";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Event Invitation: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(sent by %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Event Cancelled: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "The appointment \"%{Summary}\" for the %{OldStartDate} has changed";
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed";
"The following parameters have changed in the \"%{Summary}\" meeting:"
+15 -7
View File
@@ -1,5 +1,5 @@
/*
Copyright (C) 2010 Inverse
Copyright (C) 2010-2012 Inverse
This file is part of SOGo
@@ -49,12 +49,20 @@
if (!values)
[self setupValues];
bodyFormat = [self labelForKey: (@"%{Organizer} %{SentByText}has cancelled"
@" this event: %{Summary}.\n\n"
@"Start: %{StartDate} at %{StartTime}\n"
@"End: %{EndDate} at %{EndTime}\n"
@"Description: %{Description}")
inContext: context];
if ([values objectForKey: @"StartTime"] && [values objectForKey: @"EndTime"])
bodyFormat = [self labelForKey: (@"%{Organizer} %{SentByText}has cancelled"
@" this event: %{Summary}.\n\n"
@"Start: %{StartDate} at %{StartTime}\n"
@"End: %{EndDate} at %{EndTime}\n"
@"Description: %{Description}")
inContext: context];
else
bodyFormat = [self labelForKey: (@"%{Organizer} %{SentByText}has cancelled"
@" this event: %{Summary}.\n\n"
@"Start: %{StartDate}\n"
@"End: %{EndDate}\n"
@"Description: %{Description}")
inContext: context];
return [values keysWithFormat: bodyFormat];
}
+15 -3
View File
@@ -1,5 +1,5 @@
/*
Copyright (C) 2010 Inverse
Copyright (C) 2010-2012 Inverse
This file is part of SOGo
@@ -54,8 +54,20 @@
if (!values)
[self setupValues];
bodyFormat = [self labelForKey: @"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
inContext: context];
if ([values objectForKey: @"StartTime"] && [values objectForKey: @"EndTime"])
bodyFormat = [self labelForKey: (@"%{Organizer} %{SentByText}has invited you"
@" to %{Summary}.\n\n"
@"Start: %{StartDate} at %{StartTime}\n"
@"End: %{EndDate} at %{EndTime}\n"
@"Description: %{Description}")
inContext: context];
else
bodyFormat = [self labelForKey: (@"%{Organizer} %{SentByText}has invited you"
@" to %{Summary}.\n\n"
@"Start: %{StartDate}\n"
@"End: %{EndDate}\n"
@"Description: %{Description}")
inContext: context];
return [values keysWithFormat: bodyFormat];
}
@@ -1,5 +1,5 @@
/*
Copyright (C) 2006-2010 Inverse inc.
Copyright (C) 2006-2012 Inverse inc.
Copyright (C) 2000-2005 SKYRIX Software AG
This file is part of SOGo.
@@ -209,14 +209,16 @@
date = [self newStartDate];
[values setObject: [dateFormatter shortFormattedDate: date]
forKey: @"StartDate"];
[values setObject: [dateFormatter formattedTime: date]
forKey: @"StartTime"];
if (![apt isAllDay])
[values setObject: [dateFormatter formattedTime: date]
forKey: @"StartTime"];
date = [self newEndDate];
[values setObject: [dateFormatter shortFormattedDate: date]
forKey: @"EndDate"];
[values setObject: [dateFormatter formattedTime: date]
forKey: @"EndTime"];
if (![apt isAllDay])
[values setObject: [dateFormatter formattedTime: date]
forKey: @"EndTime"];
description = [[self apt] comment];
[values setObject: (description ? description : @"")
+7 -4
View File
@@ -1,6 +1,6 @@
/* SOGoAptMailReceipt.m - this file is part of SOGo
*
* Copyright (C) 2009 Inverse inc.
* Copyright (C) 2009-2012 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
*
@@ -146,9 +146,12 @@ static NSCharacterSet *wsSet = nil;
formatter = [currentUser dateFormatterInContext: context];
return [NSString stringWithFormat: @"%@ - %@",
[formatter formattedDate: tzDate],
[formatter formattedTime: tzDate]];
if ([apt isAllDay])
return [formatter formattedDate: tzDate];
else
return [NSString stringWithFormat: @"%@ - %@",
[formatter formattedDate: tzDate],
[formatter formattedTime: tzDate]];
}
- (NSString *) aptStartDate
+15 -7
View File
@@ -1,5 +1,5 @@
/*
Copyright (C) 2010 Inverse
Copyright (C) 2010-2012 Inverse
This file is part of SOGo
@@ -131,8 +131,10 @@
date = [self oldStartDate];
[values setObject: [dateFormatter shortFormattedDate: date]
forKey: @"OldStartDate"];
[values setObject: [dateFormatter formattedTime: date]
forKey: @"OldStartTime"];
if (![apt isAllDay])
[values setObject: [dateFormatter formattedTime: date]
forKey: @"OldStartTime"];
[self _setupBodyValuesWithFormatter: dateFormatter];
}
@@ -144,10 +146,16 @@
if (!values)
[self setupValues];
subjectFormat = [self labelForKey: @"The appointment \"%{Summary}\" for the"
@" %{OldStartDate} at"
@" %{OldStartTime} has changed"
inContext: context];
if ([values objectForKey: @"OldStartTime"])
subjectFormat = [self labelForKey: (@"The appointment \"%{Summary}\" for the"
@" %{OldStartDate} at"
@" %{OldStartTime} has changed")
inContext: context];
else
subjectFormat = [self labelForKey: (@"The appointment \"%{Summary}\" for the"
@" %{OldStartDate}"
@" has changed")
inContext: context];
return [values keysWithFormat: subjectFormat];
}
+42 -35
View File
@@ -103,44 +103,51 @@
sourceID = [udSource objectForKey: @"id"];
if ([sourceID length] > 0)
{
type = [[udSource objectForKey: @"type"] lowercaseString];
c = NSClassFromString([_registry sourceClassForType: type]);
sogoSource = [c sourceFromUDSource: udSource inDomain: domain];
if (sourceID)
[_sources setObject: sogoSource forKey: sourceID];
else
[self errorWithFormat: @"id field missing in an user source,"
@" check the SOGoUserSources defaults"];
metadata = [NSMutableDictionary dictionary];
if (domain)
[metadata setObject: domain forKey: @"domain"];
value = [udSource objectForKey: @"canAuthenticate"];
if (value)
[metadata setObject: value forKey: @"canAuthenticate"];
value = [udSource objectForKey: @"isAddressBook"];
if (value)
{
[metadata setObject: value forKey: @"isAddressBook"];
isAddressBook = [value boolValue];
}
else
isAddressBook = NO;
value = [udSource objectForKey: @"displayName"];
if (value)
[metadata setObject: value forKey: @"displayName"];
if ([_sourcesMetadata objectForKey: sourceID])
[self errorWithFormat: @"attempted to register a contact/user source"
@" with duplicated id (%@)", sourceID];
else
{
if (isAddressBook)
[self errorWithFormat: @"addressbook source '%@' has"
@" no displayname", sourceID];
type = [[udSource objectForKey: @"type"] lowercaseString];
c = NSClassFromString([_registry sourceClassForType: type]);
sogoSource = [c sourceFromUDSource: udSource inDomain: domain];
if (sourceID)
[_sources setObject: sogoSource forKey: sourceID];
else
[self errorWithFormat: @"id field missing in an user source,"
@" check the SOGoUserSources defaults"];
metadata = [NSMutableDictionary dictionary];
if (domain)
[metadata setObject: domain forKey: @"domain"];
value = [udSource objectForKey: @"canAuthenticate"];
if (value)
[metadata setObject: value forKey: @"canAuthenticate"];
value = [udSource objectForKey: @"isAddressBook"];
if (value)
{
[metadata setObject: value forKey: @"isAddressBook"];
isAddressBook = [value boolValue];
}
else
isAddressBook = NO;
value = [udSource objectForKey: @"displayName"];
if (value)
[metadata setObject: value forKey: @"displayName"];
else
{
if (isAddressBook)
[self errorWithFormat: @"addressbook source '%@' has"
@" no displayname", sourceID];
}
value = [udSource objectForKey: @"MailFieldNames"];
if (value)
[metadata setObject: value forKey: @"MailFieldNames"];
value = [udSource objectForKey: @"SearchFieldNames"];
if (value)
[metadata setObject: value forKey: @"SearchFieldNames"];
[_sourcesMetadata setObject: metadata forKey: sourceID];
}
value = [udSource objectForKey: @"MailFieldNames"];
if (value)
[metadata setObject: value forKey: @"MailFieldNames"];
value = [udSource objectForKey: @"SearchFieldNames"];
if (value)
[metadata setObject: value forKey: @"SearchFieldNames"];
[_sourcesMetadata setObject: metadata forKey: sourceID];
}
else
[self errorWithFormat: @"attempted to register a contact/user source"