See ChangeLogs.
Monotone-Parent: 4ada003303186187c511ea7faea08604da6b3db4 Monotone-Revision: 1e456d9a08ec90bd4e7fad4909eecfaa354aed5a Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2011-07-08T15:48:55 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
6e0dc80c1f
commit
3f6bca5d1e
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,20 @@
|
||||||
|
2011-07-12 Francis Lachapelle <flachapelle@inverse.ca>
|
||||||
|
|
||||||
|
* SoObjects/SOGo/SOGoFolder.m (-compare:): handle the case when
|
||||||
|
the display name is not defined.
|
||||||
|
|
||||||
|
* UI/Scheduler/UIxCalListingActions.m
|
||||||
|
(-_fetchFields:forComponentOfType:): test the calendar name and
|
||||||
|
set it to an empty string if it's not defined.
|
||||||
|
|
||||||
|
* UI/Scheduler/UIxCalendarSelector.m (-calendars): idem.
|
||||||
|
|
||||||
|
* UI/WebServerResources/UIxCalendarProperties.js (onOKClick):
|
||||||
|
refuses to save the properties if the calendar name is empty.
|
||||||
|
|
||||||
|
* UI/WebServerResources/SchedulerUI.js (updateCalendarProperties):
|
||||||
|
Create a new text node in case the calendar has no name.
|
||||||
|
|
||||||
2011-07-12 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
2011-07-12 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
* OpenChange/MAPIStoreTable.m
|
* OpenChange/MAPIStoreTable.m
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2011-07-12 Francis Lachapelle <flachapelle@inverse.ca>
|
||||||
|
|
||||||
|
* iCalCalendar.m (-addTimeZone:): now returns true if the timezone
|
||||||
|
was already defined in the calendar.
|
||||||
|
|
||||||
2011-07-11 Francis Lachapelle <flachapelle@inverse.ca>
|
2011-07-11 Francis Lachapelle <flachapelle@inverse.ca>
|
||||||
|
|
||||||
* iCalDailyRecurrenceCalculator.m
|
* iCalDailyRecurrenceCalculator.m
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
- (NSArray *) freeBusys;
|
- (NSArray *) freeBusys;
|
||||||
- (NSArray *) timezones;
|
- (NSArray *) timezones;
|
||||||
|
|
||||||
- (void) addTimeZone: (iCalTimeZone *) iTZ;
|
- (BOOL) addTimeZone: (iCalTimeZone *) iTZ;
|
||||||
- (iCalTimeZone *) timeZoneWithId: (NSString *) tzId;
|
- (iCalTimeZone *) timeZoneWithId: (NSString *) tzId;
|
||||||
|
|
||||||
/* collection */
|
/* collection */
|
||||||
|
|
|
@ -160,13 +160,15 @@
|
||||||
return [self childrenWithTag: @"vfreebusy"];
|
return [self childrenWithTag: @"vfreebusy"];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) addTimeZone: (iCalTimeZone *) iTZ
|
- (BOOL) addTimeZone: (iCalTimeZone *) iTZ
|
||||||
{
|
{
|
||||||
iCalTimeZone *possibleTz;
|
iCalTimeZone *possibleTz;
|
||||||
|
|
||||||
possibleTz = [self timeZoneWithId: [iTZ tzId]];
|
possibleTz = [self timeZoneWithId: [iTZ tzId]];
|
||||||
if (!possibleTz)
|
if (!possibleTz)
|
||||||
[self addChild: iTZ];
|
[self addChild: iTZ];
|
||||||
|
|
||||||
|
return (!possibleTz);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (iCalTimeZone *) timeZoneWithId: (NSString *) tzId
|
- (iCalTimeZone *) timeZoneWithId: (NSString *) tzId
|
||||||
|
|
|
@ -232,6 +232,11 @@
|
||||||
{
|
{
|
||||||
comparison = [self _compareByNameInContainer: otherFolder];
|
comparison = [self _compareByNameInContainer: otherFolder];
|
||||||
if (comparison == NSOrderedSame)
|
if (comparison == NSOrderedSame)
|
||||||
|
if ([self displayName] == nil)
|
||||||
|
comparison = NSOrderedAscending;
|
||||||
|
else if ([otherFolder displayName] == nil)
|
||||||
|
comparison = NSOrderedDescending;
|
||||||
|
else
|
||||||
comparison
|
comparison
|
||||||
= [[self displayName]
|
= [[self displayName]
|
||||||
localizedCaseInsensitiveCompare: [otherFolder displayName]];
|
localizedCaseInsensitiveCompare: [otherFolder displayName]];
|
||||||
|
|
|
@ -312,7 +312,7 @@ static NSArray *tasksFields = nil;
|
||||||
NSNull *marker;
|
NSNull *marker;
|
||||||
SOGoAppointmentFolders *clientObject;
|
SOGoAppointmentFolders *clientObject;
|
||||||
SOGoUser *ownerUser;
|
SOGoUser *ownerUser;
|
||||||
NSString *owner, *role;
|
NSString *owner, *role, *calendarName;
|
||||||
BOOL isErasable, folderIsRemote;
|
BOOL isErasable, folderIsRemote;
|
||||||
|
|
||||||
infos = [NSMutableArray array];
|
infos = [NSMutableArray array];
|
||||||
|
@ -381,7 +381,10 @@ static NSArray *tasksFields = nil;
|
||||||
forKey: @"c_folder"];
|
forKey: @"c_folder"];
|
||||||
[newInfo setObject: [currentFolder ownerInContext: context]
|
[newInfo setObject: [currentFolder ownerInContext: context]
|
||||||
forKey: @"c_owner"];
|
forKey: @"c_owner"];
|
||||||
[newInfo setObject: [currentFolder displayName]
|
calendarName = [currentFolder displayName];
|
||||||
|
if (calendarName == nil)
|
||||||
|
calendarName = @"";
|
||||||
|
[newInfo setObject: calendarName
|
||||||
forKey: @"calendarName"];
|
forKey: @"calendarName"];
|
||||||
if (![[newInfo objectForKey: @"c_title"] length])
|
if (![[newInfo objectForKey: @"c_title"] length])
|
||||||
[self _fixComponentTitle: newInfo withType: component];
|
[self _fixComponentTitle: newInfo withType: component];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* UIxCalendarSelector.m - this file is part of SOGo
|
/* UIxCalendarSelector.m - this file is part of SOGo
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007, 2008 Inverse inc.
|
* Copyright (C) 2007-2011 Inverse inc.
|
||||||
*
|
*
|
||||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
*
|
*
|
||||||
|
@ -107,6 +107,8 @@ _intValueFromHex (NSString *hexString)
|
||||||
calendar = [NSMutableDictionary dictionary];
|
calendar = [NSMutableDictionary dictionary];
|
||||||
folderName = [folder nameInContainer];
|
folderName = [folder nameInContainer];
|
||||||
fDisplayName = [folder displayName];
|
fDisplayName = [folder displayName];
|
||||||
|
if (fDisplayName == nil)
|
||||||
|
fDisplayName = @"";
|
||||||
if ([fDisplayName isEqualToString: [co defaultFolderName]])
|
if ([fDisplayName isEqualToString: [co defaultFolderName]])
|
||||||
fDisplayName = [self labelForKey: fDisplayName];
|
fDisplayName = [self labelForKey: fDisplayName];
|
||||||
[calendar setObject: [NSString stringWithFormat: @"/%@", folderName]
|
[calendar setObject: [NSString stringWithFormat: @"/%@", folderName]
|
||||||
|
|
|
@ -2542,6 +2542,10 @@ function updateCalendarProperties(calendarID, calendarName, calendarColor) {
|
||||||
// log("nodeID: " + nodeID);
|
// log("nodeID: " + nodeID);
|
||||||
var calendarNode = $(nodeID);
|
var calendarNode = $(nodeID);
|
||||||
var childNodes = calendarNode.childNodes;
|
var childNodes = calendarNode.childNodes;
|
||||||
|
var textNode = childNodes[childNodes.length-1];
|
||||||
|
if (textNode.tagName == 'DIV')
|
||||||
|
calendarNode.appendChild(document.createTextNode(calendarName));
|
||||||
|
else
|
||||||
childNodes[childNodes.length-1].nodeValue = calendarName;
|
childNodes[childNodes.length-1].nodeValue = calendarName;
|
||||||
|
|
||||||
appendStyleElement(nodeID, calendarColor);
|
appendStyleElement(nodeID, calendarColor);
|
||||||
|
|
|
@ -30,10 +30,17 @@ function onOKClick(event) {
|
||||||
var originalTag = $("originalCalendarSyncTag");
|
var originalTag = $("originalCalendarSyncTag");
|
||||||
var allTags = $("allCalendarSyncTags");
|
var allTags = $("allCalendarSyncTags");
|
||||||
|
|
||||||
if (allTags)
|
if (calendarName.value.blank()) {
|
||||||
|
alert(_("Please specify a calendar name."));
|
||||||
|
save = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (save
|
||||||
|
&& allTags)
|
||||||
allTags = allTags.value.split(",");
|
allTags = allTags.value.split(",");
|
||||||
|
|
||||||
if (tag
|
if (save
|
||||||
|
&& tag
|
||||||
&& $("synchronizeCalendar").checked) {
|
&& $("synchronizeCalendar").checked) {
|
||||||
if (tag.value.blank()) {
|
if (tag.value.blank()) {
|
||||||
alert(_("tagNotDefined"));
|
alert(_("tagNotDefined"));
|
||||||
|
@ -52,7 +59,8 @@ function onOKClick(event) {
|
||||||
else
|
else
|
||||||
save = confirm(_("tagWasAdded"));
|
save = confirm(_("tagWasAdded"));
|
||||||
}
|
}
|
||||||
else if (originalTag
|
else if (save
|
||||||
|
&& originalTag
|
||||||
&& !originalTag.value.blank())
|
&& !originalTag.value.blank())
|
||||||
save = confirm(_("tagWasRemoved"));
|
save = confirm(_("tagWasRemoved"));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue