From 7db526a5d968e0f0c7ad0782f8449220df722359 Mon Sep 17 00:00:00 2001 From: Alexandre Cloutier Date: Tue, 9 Sep 2014 13:50:42 -0400 Subject: [PATCH] bugfix for new user without userSettings.mail --- UI/MailerUI/UIxMailActions.m | 9 ++++----- UI/WebServerResources/MailerUI.js | 8 +++++--- 2 files changed, 9 insertions(+), 8 deletions(-) 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(); }