mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-03-11 09:51:23 +00:00
display the number of active tasks in calendar view
This commit is contained in:
@@ -80,6 +80,8 @@ typedef enum {
|
||||
|
||||
- (NSArray *) calendarUIDs;
|
||||
|
||||
- (NSString *) activeTasks;
|
||||
|
||||
/* vevent UID handling */
|
||||
|
||||
- (NSString *) resourceNameForEventUID: (NSString *) _uid;
|
||||
|
||||
@@ -522,7 +522,6 @@ static iCalEvent *iCalEventK = nil;
|
||||
{
|
||||
/* this is used for group calendars (this folder just returns itself) */
|
||||
NSString *s;
|
||||
|
||||
s = [[self container] nameInContainer];
|
||||
// [self logWithFormat:@"CAL UID: %@", s];
|
||||
return [s isNotNull] ? [NSArray arrayWithObjects:&s count:1] : nil;
|
||||
@@ -3270,4 +3269,25 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir
|
||||
return users;
|
||||
}
|
||||
|
||||
- (NSString *) activeTasks
|
||||
{
|
||||
NSArray *tasksList;
|
||||
NSString *activeTasks;
|
||||
NSMutableArray *fields;
|
||||
|
||||
fields = [NSMutableArray arrayWithObjects: @"c_component", @"c_status", nil];
|
||||
|
||||
tasksList = [self bareFetchFields: fields
|
||||
from: nil
|
||||
to: nil
|
||||
title: nil
|
||||
component: @"vtodo"
|
||||
additionalFilters: @"c_status != 2 AND c_status != 3"];
|
||||
|
||||
activeTasks = [NSString stringWithFormat:@"(%d)", [tasksList count]];
|
||||
|
||||
return activeTasks;
|
||||
}
|
||||
|
||||
|
||||
@end /* SOGoAppointmentFolder */
|
||||
|
||||
@@ -92,38 +92,42 @@ _intValueFromHex (NSString *hexString)
|
||||
SOGoAppointmentFolder *folder;
|
||||
NSMutableDictionary *calendar;
|
||||
unsigned int count, max;
|
||||
NSString *folderName, *fDisplayName;
|
||||
NSString *folderName, *fDisplayName, *fActiveTasks;
|
||||
NSNumber *isActive;
|
||||
|
||||
|
||||
if (!calendars)
|
||||
{
|
||||
co = [self clientObject];
|
||||
folders = [co subFolders];
|
||||
max = [folders count];
|
||||
calendars = [[NSMutableArray alloc] initWithCapacity: max];
|
||||
for (count = 0; count < max; count++)
|
||||
{
|
||||
co = [self clientObject];
|
||||
folders = [co subFolders];
|
||||
max = [folders count];
|
||||
calendars = [[NSMutableArray alloc] initWithCapacity: max];
|
||||
for (count = 0; count < max; count++)
|
||||
{
|
||||
folder = [folders objectAtIndex: count];
|
||||
calendar = [NSMutableDictionary dictionary];
|
||||
folderName = [folder nameInContainer];
|
||||
fDisplayName = [folder displayName];
|
||||
if (fDisplayName == nil)
|
||||
fDisplayName = @"";
|
||||
if ([fDisplayName isEqualToString: [co defaultFolderName]])
|
||||
fDisplayName = [self labelForKey: fDisplayName];
|
||||
[calendar setObject: [NSString stringWithFormat: @"/%@", folderName]
|
||||
forKey: @"id"];
|
||||
[calendar setObject: fDisplayName forKey: @"displayName"];
|
||||
[calendar setObject: folderName forKey: @"folder"];
|
||||
[calendar setObject: [folder calendarColor] forKey: @"color"];
|
||||
isActive = [NSNumber numberWithBool: [folder isActive]];
|
||||
[calendar setObject: isActive forKey: @"active"];
|
||||
[calendar setObject: [folder ownerInContext: context]
|
||||
forKey: @"owner"];
|
||||
[calendars addObject: calendar];
|
||||
}
|
||||
folder = [folders objectAtIndex: count];
|
||||
calendar = [NSMutableDictionary dictionary];
|
||||
folderName = [folder nameInContainer];
|
||||
fDisplayName = [folder displayName];
|
||||
if (fDisplayName == nil)
|
||||
fDisplayName = @"";
|
||||
if ([fDisplayName isEqualToString: [co defaultFolderName]])
|
||||
fDisplayName = [self labelForKey: fDisplayName];
|
||||
[calendar setObject: [NSString stringWithFormat: @"/%@", folderName]
|
||||
forKey: @"id"];
|
||||
[calendar setObject: fDisplayName forKey: @"displayName"];
|
||||
[calendar setObject: folderName forKey: @"folder"];
|
||||
[calendar setObject: [folder calendarColor] forKey: @"color"];
|
||||
isActive = [NSNumber numberWithBool: [folder isActive]];
|
||||
[calendar setObject: isActive forKey: @"active"];
|
||||
[calendar setObject: [folder ownerInContext: context]
|
||||
forKey: @"owner"];
|
||||
fActiveTasks = [folder activeTasks];
|
||||
if (fActiveTasks == nil)
|
||||
fActiveTasks = @"";
|
||||
[calendar setObject:fActiveTasks forKey:@"activeTasks" ];
|
||||
[calendars addObject: calendar];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return calendars;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,9 +38,12 @@ div.colorBox.calendarFolder<var:string value="currentCalendar.folder" />
|
||||
<var:foreach list="calendars" item="currentCalendar"
|
||||
><li class="denied" var:id="currentCalendar.id" var:owner="currentCalendar.owner" >
|
||||
<input type="checkbox" class="checkBox" const:disabled="disabled" var:checked="currentCalendar.active" />
|
||||
<div var:class="currentCalendarClass"><entity name="nbsp"/></div
|
||||
><var:string value="currentCalendar.displayName"
|
||||
/></li>
|
||||
<div var:class="currentCalendarClass"><entity name="nbsp"/></div>
|
||||
<span>
|
||||
<var:string value="currentCalendar.displayName" />
|
||||
<var:string value="currentCalendar.activeTasks" />
|
||||
</span>
|
||||
</li>
|
||||
</var:foreach>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user