diff --git a/UI/MailerUI/UIxMailActions.m b/UI/MailerUI/UIxMailActions.m index 3da8b7540..6d1439176 100644 --- a/UI/MailerUI/UIxMailActions.m +++ b/UI/MailerUI/UIxMailActions.m @@ -156,12 +156,13 @@ co = [self clientObject]; us = [[context activeUser] userSettings]; - moduleSettings = [us objectForKey: @"Mail"]; + if (!(moduleSettings = [us objectForKey: @"Mail"])) + [us setObject:[NSMutableDictionary dictionnary] forKey: @"Mail"]; msguid = [co nameInContainer]; currentMailbox = [[co container] nameInContainer]; currentAccount = [[[co container] container] nameInContainer]; keyForMsgUIDs = [NSString stringWithFormat:@"/%@/%@", currentAccount, currentMailbox]; - + if (isCollapsing) { // Check if the module threadsCollapsed is created in the userSettings @@ -196,14 +197,12 @@ if ((mailboxThreadsCollapsed = [threadsCollapsed objectForKey:keyForMsgUIDs])) { [mailboxThreadsCollapsed removeObject:msguid]; - if ([mailboxThreadsCollapsed count] == 0) [threadsCollapsed removeObjectForKey:keyForMsgUIDs]; } } - // TODO : Manage errors + // TODO : Manage errors } - [us synchronize]; } diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 64f864a3d..b30926591 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -35,7 +35,7 @@ var messageCheckTimer; // Variables for feature threadsCollapsing var displayThreadElement = false; -var cachedThreadsCollapsed = UserSettings.Mail.threadsCollapsed; +var cachedThreadsCollapsed = (UserSettings.Mail ? UserSettings.Mail.threadsCollapsed: []); /* We need to override this method since it is adapted to GCS-based folder references, which we do not use here */ @@ -2608,8 +2608,10 @@ function onMenuToggleMessageFlag(event) { function refreshUserSettingsCallback(http) { var allUserSettings = http.response.evalJSON(); - UserSettings.Mail = allUserSettings.Mail; - cachedThreadsCollapsed = UserSettings.Mail.threadsCollapsed; + if (UserSettings.Mail) { + UserSettings.Mail = allUserSettings.Mail; + cachedThreadsCollapsed = UserSettings.Mail.threadsCollapsed; + } refreshMailbox(); }