diff --git a/ChangeLog b/ChangeLog index 35a2b3add..8684e5f6f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2007-10-26 Wolfgang Sourdeau + * UI/PreferencesUI/UIxPreferences.m ([UIxPreferences -messageCheckList]) + ([UIxPreferences -itemMessageCheckText]) + ([UIxPreferences -userMessageCheck]) + ([UIxPreferences -setUserMessageCheck:newMessageCheck]): new + methods for handling the retrieval of new messages automatically. + + * SoObjects/SOGo/SOGoUser.m ([SOGoUser -messageCheck]): new method + that returns the interval of time between automatic message + retrievals. + * UI/MailerUI/UIxMailListView.m ([UIxMailListView -defaultAction]): now expunges the last folder marked for expunge. diff --git a/SoObjects/SOGo/SOGoUser.h b/SoObjects/SOGo/SOGoUser.h index 203f1c220..bea3b7242 100644 --- a/SoObjects/SOGo/SOGoUser.h +++ b/SoObjects/SOGo/SOGoUser.h @@ -112,6 +112,7 @@ extern NSString *SOGoWeekStartFirstFullWeek; - (NSArray *) allIdentities; - (NSDictionary *) primaryIdentity; - (NSString *) messageForwarding; +- (NSString *) messageCheck; /* folders */ diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index 5ea1146c6..f3a0633ac 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -499,6 +499,18 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek"; return messageForwarding; } +- (NSString *) messageCheck +{ + NSString *messageCheck; + + messageCheck + = [[self userDefaults] stringForKey: @"MessageCheck"]; + if (![messageCheck length]) + messageCheck = @"manually"; + + return messageCheck; +} + /* folders */ // TODO: those methods should check whether the traversal stack in the context diff --git a/UI/PreferencesUI/English.lproj/Localizable.strings b/UI/PreferencesUI/English.lproj/Localizable.strings index 64aa487e7..d216c0fe6 100644 --- a/UI/PreferencesUI/English.lproj/Localizable.strings +++ b/UI/PreferencesUI/English.lproj/Localizable.strings @@ -68,6 +68,16 @@ "reminderTime_4800" = "2 days"; /* Mailer */ +"Check for new mail:" = "Check for new mail:"; +"messagecheck_manually" = "Manually"; +"messagecheck_every_minute" = "Every minute"; +"messagecheck_every_2_minutes" = "Every 2 minutes"; +"messagecheck_every_5_minutes" = "Every 5 minutes"; +"messagecheck_every_10_minutes" = "Every 10 minutes"; +"messagecheck_every_20_minutes" = "Every 20 minutes"; +"messagecheck_every_30_minutes" = "Every 30 minutes"; +"messagecheck_once_per_hour" = "Once per hour"; + "Forward messages:" = "Forward messages:"; "messageforward_inline" = "Inline"; "messageforward_attached" = "As Attachment"; diff --git a/UI/PreferencesUI/French.lproj/Localizable.strings b/UI/PreferencesUI/French.lproj/Localizable.strings index a3e625db7..99d333873 100644 --- a/UI/PreferencesUI/French.lproj/Localizable.strings +++ b/UI/PreferencesUI/French.lproj/Localizable.strings @@ -65,6 +65,16 @@ "reminderTime_4800" = "2 journées"; /* Mailer */ +"Check for new mail:" = "Vérifier l'arrivée de messages:"; +"messagecheck_manually" = "Manuellement"; +"messagecheck_every_minute" = "Chaque minute"; +"messagecheck_every_2_minutes" = "Toutes les 2 minutes"; +"messagecheck_every_5_minutes" = "Toutes les 5 minutes"; +"messagecheck_every_10_minutes" = "Toutes les 10 minutes"; +"messagecheck_every_20_minutes" = "Toutes les 20 minutes"; +"messagecheck_every_30_minutes" = "Toutes les 30 minutes"; +"messagecheck_once_per_hour" = "Une fois par heure"; + "Forward messages:" = "Transérer les messages :"; "messageforward_inline" = "intégrés"; "messageforward_attached" = "en pièces jointes"; diff --git a/UI/PreferencesUI/German.lproj/Localizable.strings b/UI/PreferencesUI/German.lproj/Localizable.strings index 34ac16981..e25c85fb0 100644 --- a/UI/PreferencesUI/German.lproj/Localizable.strings +++ b/UI/PreferencesUI/German.lproj/Localizable.strings @@ -65,6 +65,16 @@ "reminderTime_4800" = "2 Tage"; /* Mailer */ +"Check for new mail:" = "Check for new mail:"; +"messagecheck_manually" = "Manually"; +"messagecheck_every_minute" = "Every minute"; +"messagecheck_every_2_minutes" = "Every 2 minutes"; +"messagecheck_every_5_minutes" = "Every 5 minutes"; +"messagecheck_every_10_minutes" = "Every 10 minutes"; +"messagecheck_every_20_minutes" = "Every 20 minutes"; +"messagecheck_every_30_minutes" = "Every 30 minutes"; +"messagecheck_once_per_hour" = "Once per hour"; + "Forward messages:" = "Nachrichten weiterleiten:"; "messageforward_inline" = "Eingebunden"; "messageforward_attached" = "Als Anhang"; diff --git a/UI/PreferencesUI/UIxPreferences.m b/UI/PreferencesUI/UIxPreferences.m index 7259f60d2..0a6c33ef1 100644 --- a/UI/PreferencesUI/UIxPreferences.m +++ b/UI/PreferencesUI/UIxPreferences.m @@ -421,6 +421,30 @@ static BOOL shouldDisplayPasswordChange = NO; } /* Mailer */ +- (NSArray *) messageCheckList +{ + return [NSArray arrayWithObjects: @"manually", @"every_minute", + @"every_2_minutes", @"every_5_minutes", @"every_10_minutes", + @"every_20_minutes", @"every_30_minutes", @"once_per_hour", + nil]; +} + +- (NSString *) itemMessageCheckText +{ + return [self labelForKey: + [NSString stringWithFormat: @"messagecheck_%@", item]]; +} + +- (NSString *) userMessageCheck +{ + return [user messageCheck]; +} + +- (void) setUserMessageCheck: (NSString *) newMessageCheck +{ + [userDefaults setObject: newMessageCheck forKey: @"MessageCheck"]; +} + - (NSArray *) messageForwardingList { return [NSArray arrayWithObjects: @"inline", @"attached", nil]; diff --git a/UI/Templates/PreferencesUI/UIxPreferences.wox b/UI/Templates/PreferencesUI/UIxPreferences.wox index 8a890c582..dd0ca1af2 100644 --- a/UI/Templates/PreferencesUI/UIxPreferences.wox +++ b/UI/Templates/PreferencesUI/UIxPreferences.wox @@ -25,8 +25,8 @@

+




+

+
diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 85cbeb013..85e0bfbdf 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -18,6 +18,8 @@ var pageContent; var deleteMessageRequestCount = 0; +var messageCheckTimer; + /* mail list */ function openMessageWindow(msguid, url) { @@ -1106,9 +1108,30 @@ function initMailer(event) { if (!document.body.hasClassName("popup")) { // initDnd(); initMailboxTree(); + initMessageCheckTimer(); } } +function initMessageCheckTimer() { + var messageCheck = userDefaults["MessageCheck"]; + if (messageCheck && messageCheck != "manually") { + var interval; + if (messageCheck == "once_per_hour") + interval = 3600; + else if (messageCheck == "every_minute") + interval = 60; + else { + interval = parseInt(messageCheck.substr(6)) * 60; + } + messageCheckTimer = window.setInterval(onMessageCheckCallback, + interval * 1000); + } +} + +function onMessageCheckCallback(event) { + refreshMailbox(); +} + function initMailboxTree() { mailboxTree = new dTree("mailboxTree"); mailboxTree.config.folderLinks = true;