}
- (NSString *)dateNavigationURLWithNewStartDate:(NSCalendarDate *)_newDate {
- return [NSString stringWithFormat:@"%@?startDate=%@",
+#warning !! REMOVE ME!!
+ return [NSString stringWithFormat:@"%@?startDate=%@",
[self ownMethodName],
[self dateStringForDate:_newDate]];
}
queryString:nil];
}
+/* date */
+
+- (NSCalendarDate *)selectedDate {
+ NSString *s;
+
+ s = [self queryParameterForKey:@"day"];
+ if(s) {
+ return [self dateForDateString:s];
+ }
+ return [NSCalendarDate date];
+}
+
/* fetching */
- (NSCalendarDate *)startDate {
- return [NSCalendarDate date];
+ return [self selectedDate];
}
- (NSCalendarDate *)endDate {
- return [[NSCalendarDate date] tomorrow];
+ return [[self startDate] tomorrow];
}
- (NSArray *)fetchGIDs {
return self->appointments;
}
+
+/* date selection & conversion */
+
+
+- (NSDictionary *)queryParametersBySettingSelectedDate:(NSCalendarDate *)_date {
+ NSMutableDictionary *qp;
+
+ qp = [[self queryParameters] mutableCopy];
+ [self setSelectedDateQueryParameter:_date inDictionary:qp];
+ return [qp autorelease];
+}
+
+- (void)setSelectedDateQueryParameter:(NSCalendarDate *)_newDate
+ inDictionary:(NSMutableDictionary *)_qp;
+{
+ if(_newDate != nil)
+ [_qp setObject:[self dateStringForDate:_newDate]
+ forKey:@"day"];
+ else
+ [_qp removeObjectForKey:@"day"];
+}
+
- (NSString *)dateStringForDate:(NSCalendarDate *)_date {
return [_date descriptionWithCalendarFormat:@"%Y%m%d"];
}
- (NSCalendarDate *)dateForDateString:(NSString *)_dateString {
return [NSCalendarDate dateWithString:_dateString calendarFormat:@"%Y%m%d"];
}
-
-- (NSString *)completedLinkForView:(NSString *)_view {
- NSString *dateString;
-
- dateString = [[[self context] request] formValueForKey:@"startDate"];
- if(dateString)
- return [_view stringByAppendingFormat:@"?startDate=%@", dateString];
- return _view;
-}
-
@end /* OGoCalView */