diff --git a/NEWS b/NEWS
index 28e9bde5b..9ef1ea199 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,8 @@
------------------
New features
- -
+ - it's now possible to set a default reminder for calendar components
+ using SOGoCalendarDefaultReminder
Enhancements
- we now automatically convert into file attachments
diff --git a/SoObjects/SOGo/SOGoDefaults.plist b/SoObjects/SOGo/SOGoDefaults.plist
index 9b5b7050d..fe89d6c5c 100644
--- a/SoObjects/SOGo/SOGoDefaults.plist
+++ b/SoObjects/SOGo/SOGoDefaults.plist
@@ -69,12 +69,10 @@
SOGoCalendarShouldDisplayWeekend = YES;
SOGoCalendarEventsDefaultClassification = "PUBLIC";
SOGoCalendarTasksDefaultClassification = "PUBLIC";
+ SOGoCalendarDefaultReminder = "NONE";
SOGoFreeBusyDefaultInterval = ( 7, 7 );
- SOGoReminderEnabled = YES;
- SOGoRemindWithASound = YES;
-
SOGoSearchMinimumWordLength = 2;
SOGoMailLabelsColors = {
diff --git a/SoObjects/SOGo/SOGoUserDefaults.h b/SoObjects/SOGo/SOGoUserDefaults.h
index 3fdaf0306..05c3fd34c 100644
--- a/SoObjects/SOGo/SOGoUserDefaults.h
+++ b/SoObjects/SOGo/SOGoUserDefaults.h
@@ -183,14 +183,8 @@ extern NSString *SOGoWeekStartFirstFullWeek;
- (void) setCalendarTasksDefaultClassification: (NSString *) newValue;
- (NSString *) calendarTasksDefaultClassification;
-- (void) setReminderEnabled: (BOOL) newValue;
-- (BOOL) reminderEnabled;
-
-- (void) setReminderTime: (NSString *) newValue;
-- (NSString *) reminderTime;
-
-- (void) setRemindWithASound: (BOOL) newValue;
-- (BOOL) remindWithASound;
+- (void) setCalendarDefaultReminder: (NSString *) newValue;
+- (NSString *) calendarDefaultReminder;
/* contacts */
- (void) setContactsCategories: (NSArray *) newValues;
diff --git a/SoObjects/SOGo/SOGoUserDefaults.m b/SoObjects/SOGo/SOGoUserDefaults.m
index 006a9d346..6286d03c4 100644
--- a/SoObjects/SOGo/SOGoUserDefaults.m
+++ b/SoObjects/SOGo/SOGoUserDefaults.m
@@ -59,29 +59,6 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
up = [SOGoUserProfileKlass userProfileWithType: SOGoUserProfileTypeDefaults
forUID: userId];
[up fetchProfile];
- // if ([_defaults values])
- // {
- // BOOL b;
- // b = NO;
-
- // if (![[_defaults stringForKey: @"MessageCheck"] length])
- // {
- // [_defaults setObject: defaultMessageCheck forKey: @"MessageCheck"];
- // b = YES;
- // }
- // if (![[_defaults stringForKey: @"TimeZone"] length])
- // {
- // [_defaults setObject: [serverTimeZone name] forKey: @"TimeZone"];
- // b = YES;
- // }
-
- // if (b)
- // [_defaults synchronize];
-
-
- // See explanation in -language
- // [self invalidateLanguage];
- // }
parent = [SOGoDomainDefaults defaultsForDomain: domainId];
if (!parent)
@@ -706,34 +683,14 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
return [self stringForKey: @"SOGoCalendarTasksDefaultClassification"];
}
-- (void) setReminderEnabled: (BOOL) newValue
+- (void) setCalendarDefaultReminder: (NSString *) newValue
{
- [self setBool: newValue forKey: @"SOGoReminderEnabled"];
+ [self setObject: newValue forKey: @"SOGoCalendarDefaultReminder"];
}
-- (BOOL) reminderEnabled
+- (NSString *) calendarDefaultReminder
{
- return [self boolForKey: @"SOGoReminderEnabled"];
-}
-
-- (void) setReminderTime: (NSString *) newValue
-{
- [self setObject: newValue forKey: @"SOGoReminderTime"];
-}
-
-- (NSString *) reminderTime
-{
- return [self stringForKey: @"SOGoReminderTime"];
-}
-
-- (void) setRemindWithASound: (BOOL) newValue
-{
- [self setBool: newValue forKey: @"SOGoRemindWithASound"];
-}
-
-- (BOOL) remindWithASound
-{
- return [self boolForKey: @"SOGoRemindWithASound"];
+ return [self stringForKey: @"SOGoCalendarDefaultReminder"];
}
//
diff --git a/UI/PreferencesUI/English.lproj/Localizable.strings b/UI/PreferencesUI/English.lproj/Localizable.strings
index d739522c9..f4509c1eb 100644
--- a/UI/PreferencesUI/English.lproj/Localizable.strings
+++ b/UI/PreferencesUI/English.lproj/Localizable.strings
@@ -111,18 +111,19 @@
"personalCalendar" = "Personal calendar";
"firstCalendar" = "First enabled calendar";
-"reminderTime_0000" = "0 minutes";
-"reminderTime_0005" = "5 minutes";
-"reminderTime_0010" = "10 minutes";
-"reminderTime_0015" = "15 minutes";
-"reminderTime_0030" = "30 minutes";
-"reminderTime_0100" = "1 hour";
-"reminderTime_0200" = "2 hours";
-"reminderTime_0400" = "4 hours";
-"reminderTime_0800" = "8 hours";
-"reminderTime_1200" = "1/2 day";
-"reminderTime_2400" = "1 day";
-"reminderTime_4800" = "2 days";
+"reminder_NONE" = "No reminder";
+"reminder_5_MINUTES_BEFORE" = "5 minutes before";
+"reminder_10_MINUTES_BEFORE" = "10 minutes before";
+"reminder_15_MINUTES_BEFORE" = "15 minutes before";
+"reminder_30_MINUTES_BEFORE" = "30 minutes before";
+"reminder_45_MINUTES_BEFORE" = "45 minutes before";
+"reminder_1_HOUR_BEFORE" = "1 hour before";
+"reminder_2_HOURS_BEFORE" = "2 hours before";
+"reminder_5_HOURS_BEFORE" = "5 hours before";
+"reminder_15_HOURS_BEFORE" = "15 hours before";
+"reminder_1_DAY_BEFORE" = "1 day before";
+"reminder_2_DAYS_BEFORE" = "2 days before";
+"reminder_1_WEEK_BEFORE" = "1 week before";
/* Mailer */
"Show subscribed mailboxes only" = "Show subscribed mailboxes only";
diff --git a/UI/PreferencesUI/UIxPreferences.m b/UI/PreferencesUI/UIxPreferences.m
index 7b082f622..612d1eb6c 100644
--- a/UI/PreferencesUI/UIxPreferences.m
+++ b/UI/PreferencesUI/UIxPreferences.m
@@ -58,11 +58,55 @@
workweek = from -> to
identities */
+static NSArray *reminderItems = nil;
+static NSArray *reminderValues = nil;
+
@implementation UIxPreferences
++ (void) initialize
+{
+ if (!reminderItems && !reminderValues)
+ {
+ reminderItems = [NSArray arrayWithObjects:
+ @"5_MINUTES_BEFORE",
+ @"10_MINUTES_BEFORE",
+ @"15_MINUTES_BEFORE",
+ @"30_MINUTES_BEFORE",
+ @"45_MINUTES_BEFORE",
+ @"-",
+ @"1_HOUR_BEFORE",
+ @"2_HOURS_BEFORE",
+ @"5_HOURS_BEFORE",
+ @"15_HOURS_BEFORE",
+ @"-",
+ @"1_DAY_BEFORE",
+ @"2_DAYS_BEFORE",
+ @"1_WEEK_BEFORE",
+ nil];
+ reminderValues = [NSArray arrayWithObjects:
+ @"-PT5M",
+ @"-PT10M",
+ @"-PT15M",
+ @"-PT30M",
+ @"-PT45M",
+ @"",
+ @"-PT1H",
+ @"-PT2H",
+ @"-PT5H",
+ @"-PT15H",
+ @"",
+ @"-P1D",
+ @"-P2D",
+ @"-P1W",
+ nil];
+
+ [reminderItems retain];
+ [reminderValues retain];
+ }
+}
+
- (id) init
{
- //NSDictionary *locale;
SOGoDomainDefaults *dd;
if ((self = [super init]))
@@ -485,6 +529,54 @@
return [userDefaults calendarTasksDefaultClassification];
}
+- (NSArray *) reminderList
+{
+ return reminderItems;
+}
+
+- (NSString *) itemReminderText
+{
+ NSString *text;
+
+ if ([item isEqualToString: @"-"])
+ text = item;
+ else
+ text = [self labelForKey: [NSString stringWithFormat: @"reminder_%@", item]];
+
+ return text;
+}
+
+- (void) setReminder: (NSString *) theReminder
+{
+ NSString *value;
+ int index;
+
+ index = NSNotFound;
+ value = @"NONE";
+
+ if (theReminder && [theReminder caseInsensitiveCompare: @"-"] != NSOrderedSame)
+ index = [reminderItems indexOfObject: theReminder];
+
+ if (index != NSNotFound)
+ value = [reminderValues objectAtIndex: index];
+
+ [userDefaults setCalendarDefaultReminder: value];
+}
+
+- (NSString *) reminder
+{
+ NSString *value;
+ int index;
+
+ value = [userDefaults calendarDefaultReminder];
+ index = [reminderValues indexOfObject: value];
+
+ if (index != NSNotFound)
+ return [reminderItems objectAtIndex: index];
+
+ return @"NONE";
+}
+
- (NSArray *) hoursList
{
static NSMutableArray *hours = nil;
@@ -558,58 +650,6 @@
[userDefaults setFirstWeekOfYear: newFirstWeek];
}
-- (BOOL) reminderEnabled
-{
- return [userDefaults reminderEnabled];
-}
-
-- (void) setReminderEnabled: (BOOL) newValue
-{
- [userDefaults setReminderEnabled: newValue];
-}
-
-- (BOOL) remindWithASound
-{
- return [userDefaults remindWithASound];
-}
-
-- (void) setRemindWithASound: (BOOL) newValue
-{
- [userDefaults setRemindWithASound: newValue];
-}
-
-- (NSArray *) reminderTimesList
-{
- static NSArray *reminderTimesList = nil;
-
- if (!reminderTimesList)
- {
- reminderTimesList = [NSArray arrayWithObjects: @"0000", @"0005",
- @"0010", @"0015", @"0030", @"0100",
- @"0200", @"0400", @"0800", @"1200",
- @"2400", @"4800", nil];
- [reminderTimesList retain];
- }
-
- return reminderTimesList;
-}
-
-- (NSString *) itemReminderTimeText
-{
- return [self labelForKey:
- [NSString stringWithFormat: @"reminderTime_%@", item]];
-}
-
-- (NSString *) userReminderTime
-{
- return [userDefaults reminderTime];
-}
-
-- (void) setReminderTime: (NSString *) newTime
-{
- [userDefaults setReminderTime: newTime];
-}
-
/* Mailer */
- (void) setShowSubscribedFoldersOnly: (BOOL) showSubscribedFoldersOnly
{
diff --git a/UI/Scheduler/UIxComponentEditor.h b/UI/Scheduler/UIxComponentEditor.h
index ed7b38d5a..ba592a562 100644
--- a/UI/Scheduler/UIxComponentEditor.h
+++ b/UI/Scheduler/UIxComponentEditor.h
@@ -1,8 +1,6 @@
/* UIxComponentEditor.h - this file is part of SOGo
*
- * Copyright (C) 2006-2012 Inverse inc.
- *
- * Author: Wolfgang Sourdeau
+ * Copyright (C) 2006-2013 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -42,8 +40,6 @@
NSString *saveURL;
NSMutableArray *calendarList;
- //NSMutableArray *organizerList;
- //NSDictionary *organizerIdentity;
NSDictionary *organizerProfile;
/* individual values */
diff --git a/UI/Scheduler/UIxComponentEditor.m b/UI/Scheduler/UIxComponentEditor.m
index 9c3e7cbc5..86bd0cb0b 100644
--- a/UI/Scheduler/UIxComponentEditor.m
+++ b/UI/Scheduler/UIxComponentEditor.m
@@ -1152,25 +1152,39 @@ iRANGE(2);
return reminderItems;
}
- - (void) setReminder: (NSString *) theReminder
- {
- ASSIGN(reminder, theReminder);
- }
+- (void) setReminder: (NSString *) theReminder
+{
+ ASSIGN(reminder, theReminder);
+}
- (NSString *) reminder
- {
- return reminder;
- }
+{
+ if ([[self clientObject] isNew])
+ {
+ NSString *value;
+ int index;
+
+ value = [userDefaults calendarDefaultReminder];
+ index = [reminderValues indexOfObject: value];
+
+ if (index != NSNotFound)
+ return [reminderItems objectAtIndex: index];
+
+ return @"NONE";
+ }
- - (void) setReminderQuantity: (NSString *) theReminderQuantity
- {
- ASSIGN(reminderQuantity, theReminderQuantity);
- }
+ return reminder;
+}
+
+- (void) setReminderQuantity: (NSString *) theReminderQuantity
+{
+ ASSIGN(reminderQuantity, theReminderQuantity);
+}
- (NSString *) reminderQuantity
- {
- return reminderQuantity;
- }
+{
+ return reminderQuantity;
+}
- (NSString *) itemReminderText
{
diff --git a/UI/Templates/PreferencesUI/UIxPreferences.wox b/UI/Templates/PreferencesUI/UIxPreferences.wox
index ed4fa7e76..66f69b6a9 100644
--- a/UI/Templates/PreferencesUI/UIxPreferences.wox
+++ b/UI/Templates/PreferencesUI/UIxPreferences.wox
@@ -204,6 +204,13 @@
const:id="tasksClassification"
const:name="tasksClassification"
string="itemClassificationText" selection="tasksDefaultClassification"/>
+
+
diff --git a/UI/Templates/SchedulerUI/UIxComponentEditor.wox b/UI/Templates/SchedulerUI/UIxComponentEditor.wox
index 45af34b81..41c972fce 100644
--- a/UI/Templates/SchedulerUI/UIxComponentEditor.wox
+++ b/UI/Templates/SchedulerUI/UIxComponentEditor.wox
@@ -250,17 +250,6 @@
-->
-