Fixed bug #1515 Task View is very basic.

- Added sortable fields on Title, Due date, Location, Category and
  Calendar.
- Added Priority column, also sortable.
- Separated the logic of Events and Tasks.
This commit is contained in:
Luc Charland
2012-09-28 15:42:49 -04:00
parent 4038229688
commit 034f2c8745
7 changed files with 277 additions and 80 deletions
+25 -5
View File
@@ -1047,14 +1047,16 @@ _computeBlocksPosition (NSArray *blocks)
- (WOResponse *) tasksListAction
{
NSMutableArray *filteredTasks, *filteredTask;
NSString *sort, *ascending;
NSString *statusFlag;
SOGoUserSettings *us;
NSEnumerator *tasks;
NSMutableArray *filteredTasks, *filteredTask;
BOOL showCompleted;
NSArray *task;
int statusCode;
unsigned int endDateStamp;
NSString *statusFlag;
BOOL showCompleted;
int statusCode;
filteredTasks = [NSMutableArray array];
@@ -1087,7 +1089,25 @@ _computeBlocksPosition (NSArray *blocks)
[filteredTasks addObject: filteredTask];
}
}
[filteredTasks sortUsingSelector: @selector (compareTasksAscending:)];
sort = [[context request] formValueForKey: @"sort"];
if ([sort isEqualToString: @"title"])
[filteredTasks sortUsingSelector: @selector (compareTasksTitleAscending:)];
else if ([sort isEqualToString: @"priority"])
[filteredTasks sortUsingSelector: @selector (compareTasksPriorityAscending:)];
else if ([sort isEqualToString: @"end"])
[filteredTasks sortUsingSelector: @selector (compareTasksEndAscending:)];
else if ([sort isEqualToString: @"location"])
[filteredTasks sortUsingSelector: @selector (compareTasksLocationAscending:)];
else if ([sort isEqualToString: @"category"])
[filteredTasks sortUsingSelector: @selector (compareTasksCategoryAscending:)];
else if ([sort isEqualToString: @"calendarname"])
[filteredTasks sortUsingSelector: @selector (compareTasksCalendarNameAscending:)];
else
[filteredTasks sortUsingSelector: @selector (compareTasksAscending:)];
ascending = [[context request] formValueForKey: @"asc"];
if (![ascending boolValue])
[filteredTasks reverseArray];
return [self _responseWithData: filteredTasks];
}