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 @@ --> -