Monotone-Parent: 55bf09624819e2dafab4437fb67587242c0542e9

Monotone-Revision: caf1d2f37537ebf54064ae629c40a78656a15b5b

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-06-07T23:22:14
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2007-06-07 23:22:14 +00:00
parent c497f8b65a
commit 82f85c1ab9
2 changed files with 94 additions and 14 deletions

View File

@ -1,5 +1,9 @@
2007-06-07 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/Scheduler/UIxCalListingActions.m ([UIxCalListingActions
-_setupContext]): take the range of dates specified by the popup
into account.
* UI/Scheduler/UIxCalListingActions.[hm]: new subclass of
WODirectAction that returns WOResponse objects with the events or
todos satisfying the parameters passed in the url.

View File

@ -65,6 +65,76 @@
[super dealloc];
}
- (void) _setupDatesWithPopup: (NSString *) popupValue
andUserTZ: (NSTimeZone *) userTZ
{
NSCalendarDate *newDate;
NSString *param;
if ([popupValue isEqualToString: @"view_today"])
{
newDate = [NSCalendarDate calendarDate];
[newDate setTimeZone: userTZ];
startDate = [newDate beginOfDay];
endDate = [newDate endOfDay];
}
else if ([popupValue isEqualToString: @"view_all"])
{
startDate = nil;
endDate = nil;
}
else if ([popupValue isEqualToString: @"view_next7"])
{
newDate = [NSCalendarDate calendarDate];
[newDate setTimeZone: userTZ];
startDate = [newDate beginOfDay];
endDate = [[startDate dateByAddingYears: 0 months: 0 days: 6] endOfDay];
}
else if ([popupValue isEqualToString: @"view_next14"])
{
newDate = [NSCalendarDate calendarDate];
[newDate setTimeZone: userTZ];
startDate = [newDate beginOfDay];
endDate = [[startDate dateByAddingYears: 0 months: 0 days: 13] endOfDay];
}
else if ([popupValue isEqualToString: @"view_next31"])
{
newDate = [NSCalendarDate calendarDate];
[newDate setTimeZone: userTZ];
startDate = [newDate beginOfDay];
endDate = [[startDate dateByAddingYears: 0 months: 0 days: 30] endOfDay];
}
else if ([popupValue isEqualToString: @"view_thismonth"])
{
newDate = [NSCalendarDate calendarDate];
[newDate setTimeZone: userTZ];
startDate = [[newDate firstDayOfMonth] beginOfDay];
endDate = [[newDate lastDayOfMonth] endOfDay];
}
else if ([popupValue isEqualToString: @"view_future"])
{
newDate = [NSCalendarDate calendarDate];
[newDate setTimeZone: userTZ];
startDate = [newDate beginOfDay];
endDate = [NSCalendarDate distantFuture];
}
else if ([popupValue isEqualToString: @"view_selectedday"])
{
param = [request formValueForKey: @"day"];
if ([param length] > 0)
startDate = [[NSCalendarDate dateFromShortDateString: param
andShortTimeString: nil
inTimeZone: userTZ] beginOfDay];
else
{
newDate = [NSCalendarDate calendarDate];
[newDate setTimeZone: userTZ];
startDate = [newDate beginOfDay];
}
endDate = [startDate endOfDay];
}
}
- (void) _setupContext
{
SOGoUser *user;
@ -76,21 +146,27 @@
userTZ = [user timeZone];
request = [context request];
param = [request formValueForKey: @"sd"];
param = [request formValueForKey: @"filterpopup"];
if ([param length] > 0)
startDate = [[NSCalendarDate dateFromShortDateString: param
andShortTimeString: nil
inTimeZone: userTZ] beginOfDay];
[self _setupDatesWithPopup: param andUserTZ: userTZ];
else
startDate = nil;
param = [request formValueForKey: @"sd"];
if ([param length] > 0)
endDate = [[NSCalendarDate dateFromShortDateString: param
andShortTimeString: nil
inTimeZone: userTZ] endOfDay];
else
endDate = nil;
{
param = [request formValueForKey: @"sd"];
if ([param length] > 0)
startDate = [[NSCalendarDate dateFromShortDateString: param
andShortTimeString: nil
inTimeZone: userTZ] beginOfDay];
else
startDate = nil;
param = [request formValueForKey: @"sd"];
if ([param length] > 0)
endDate = [[NSCalendarDate dateFromShortDateString: param
andShortTimeString: nil
inTimeZone: userTZ] endOfDay];
else
endDate = nil;
}
}
- (void) _updatePrivacyInComponent: (NSMutableDictionary *) component
@ -222,7 +298,7 @@
[self _setupContext];
fields = [NSArray arrayWithObjects: @"c_name", @"owner", @"status",
@"startdate", @"enddate", @"location", nil];
@"title", @"startdate", @"enddate", @"location", nil];
events = [self _fetchFields: fields forComponentOfType: @"vevent"];
return [self _responseWithData: events];