mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-16 17:05:25 +00:00
Monotone-Parent: ec16bdb7ba63858784457e5200d914d15be4c55e
Monotone-Revision: bae3f2d15f56ace2300155adab60e9293a29ea32 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-10-11T19:46:02 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -34,11 +34,13 @@
|
||||
#import <Foundation/NSTimeZone.h>
|
||||
#import <NGObjWeb/WOContext+SoObjects.h>
|
||||
#import <NGExtensions/NSObject+Logs.h>
|
||||
#import <NGCards/iCalAlarm.h>
|
||||
#import <NGCards/iCalCalendar.h>
|
||||
#import <NGCards/iCalEvent.h>
|
||||
#import <NGCards/iCalDateTime.h>
|
||||
#import <NGCards/iCalPerson.h>
|
||||
#import <NGCards/iCalTimeZone.h>
|
||||
#import <NGCards/iCalTrigger.h>
|
||||
#import <SOGo/SOGoUser.h>
|
||||
#import <Appointments/SOGoAppointmentFolder.h>
|
||||
#import <Appointments/SOGoAppointmentObject.h>
|
||||
@@ -417,6 +419,63 @@
|
||||
return [self getYes: data inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
/* alarms */
|
||||
- (int) getPidLidReminderSet: (void **) data
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
return [[self appointmentWrapper] getPidLidReminderSet: data
|
||||
inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
- (int) getPidLidReminderDelta: (void **) data
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
return [[self appointmentWrapper] getPidLidReminderDelta: data
|
||||
inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
- (int) getPidLidReminderTime: (void **) data
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
return [[self appointmentWrapper] getPidLidReminderTime: data
|
||||
inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
- (int) getPidLidReminderSignalTime: (void **) data
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
return [[self appointmentWrapper] getPidLidReminderSignalTime: data
|
||||
inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
- (int) getPidLidReminderOverride: (void **) data
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
return [[self appointmentWrapper] getPidLidReminderOverride: data
|
||||
inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
- (int) getPidLidReminderType: (void **) data
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
return [[self appointmentWrapper] getPidLidReminderType: data
|
||||
inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
- (int) getPidLidReminderPlaySound: (void **) data
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
return [[self appointmentWrapper] getPidLidReminderPlaySound: data
|
||||
inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
- (int) getPidLidReminderFileParameter: (void **) data
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
return [[self appointmentWrapper] getPidLidReminderFileParameter: data
|
||||
inMemCtx: memCtx];
|
||||
}
|
||||
|
||||
/* attendee */
|
||||
- (void) _setupRecurrenceInCalendar: (iCalCalendar *) calendar
|
||||
withEvent: (iCalEvent *) event
|
||||
@@ -505,6 +564,48 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void) _setupAlarmDataInEvent: (iCalEvent *) newEvent
|
||||
{
|
||||
NSArray *alarms;
|
||||
iCalAlarm *currentAlarm, *alarm = nil;
|
||||
iCalTrigger *trigger;
|
||||
NSNumber *delta;
|
||||
NSString *action;
|
||||
NSUInteger count, max;
|
||||
|
||||
/* find and remove first display alarm */
|
||||
alarms = [newEvent alarms];
|
||||
max = [alarms count];
|
||||
for (count = 0; !alarm && count < max; count++)
|
||||
{
|
||||
currentAlarm = [alarms objectAtIndex: count];
|
||||
action = [[currentAlarm action] lowercaseString];
|
||||
if (!action || [action isEqualToString: @"display"])
|
||||
alarm = currentAlarm;
|
||||
}
|
||||
|
||||
if (alarm)
|
||||
[newEvent removeChild: alarm];
|
||||
|
||||
if ([[newProperties objectForKey: MAPIPropertyKey (PidLidReminderSet)]
|
||||
boolValue])
|
||||
{
|
||||
delta = [newProperties
|
||||
objectForKey: MAPIPropertyKey (PidLidReminderDelta)];
|
||||
if (delta)
|
||||
{
|
||||
alarm = [iCalAlarm new];
|
||||
[alarm setAction: @"DISPLAY"];
|
||||
trigger = [iCalTrigger elementWithTag: @"trigger"];
|
||||
[trigger setValueType: @"DURATION"];
|
||||
[trigger setValue: [NSString stringWithFormat: @"-PT%@M", delta]];
|
||||
[alarm setTrigger: trigger];
|
||||
[newEvent addToAlarms: alarm];
|
||||
[alarm release];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void) save
|
||||
{
|
||||
iCalCalendar *vCalendar;
|
||||
@@ -688,6 +789,9 @@
|
||||
[newEvent setOrganizer: nil];
|
||||
[newEvent removeAllAttendees];
|
||||
|
||||
/* alarm */
|
||||
[self _setupAlarmDataInEvent: newEvent];
|
||||
|
||||
// Organizer
|
||||
value = [newProperties objectForKey: @"recipients"];
|
||||
if (value)
|
||||
|
||||
Reference in New Issue
Block a user