diff --git a/ChangeLog b/ChangeLog index 557baaff5..66b4d1366 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-12-19 Wolfgang Sourdeau + + * UI/Common/UIxPageFrame.m ([UIxPageFrame -userSettings]): new + accessor method to avoid loading the user settings with an + additional json request. + ([UIxPageFrame -userDefaults]): same as above for user defaults. + 2008-12-17 Wolfgang Sourdeau * SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder diff --git a/UI/Common/UIxPageFrame.m b/UI/Common/UIxPageFrame.m index 11dd97d16..8eda4fcda 100644 --- a/UI/Common/UIxPageFrame.m +++ b/UI/Common/UIxPageFrame.m @@ -397,6 +397,34 @@ return language; } +- (NSString *) userSettings +{ + NSUserDefaults *userSettings; + NSString *jsonResult; + + userSettings = [[context activeUser] userSettings]; + if (userSettings) + jsonResult = [userSettings jsonRepresentation]; + else + jsonResult = @"{}"; + + return jsonResult; +} + +- (NSString *) userDefaults +{ + NSUserDefaults *userDefaults; + NSString *jsonResult; + + userDefaults = [[context activeUser] userDefaults]; + if (userDefaults) + jsonResult = [userDefaults jsonRepresentation]; + else + jsonResult = @"{}"; + + return jsonResult; +} + /* browser/os identification */ - (BOOL) isCompatibleBrowser diff --git a/UI/Templates/UIxPageFrame.wox b/UI/Templates/UIxPageFrame.wox index 7625fa6b6..afde244d1 100644 --- a/UI/Templates/UIxPageFrame.wox +++ b/UI/Templates/UIxPageFrame.wox @@ -108,9 +108,11 @@ var UserFolderURL = ''; - var UserLogin = ''; - var UserLanguage = ''; + >var UserFolderURL = ''; + var UserLogin = ''; + var UserLanguage = ''; + var UserSettings = ; + var UserDefaults = ; diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 4c48e2b92..d67214dcf 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -583,7 +583,7 @@ function messageListCallback(http) { var div = $('mailboxContent'); var table = $('messageList'); - var columnsOrder = userSettings["SOGoMailListViewColumnsOrder"]; + var columnsOrder = UserSettings["SOGoMailListViewColumnsOrder"]; if ( typeof(columnsOrder) == "undefined" ) { columnsOrder = defaultColumnsOrder; } @@ -1363,7 +1363,7 @@ function configureMessageListBodyEvents(table) { // 4 => Unread // 5 => Date // 6 => Priority - var columnsOrder = userSettings["SOGoMailListViewColumnsOrder"]; + var columnsOrder = UserSettings["SOGoMailListViewColumnsOrder"]; if ( typeof(columnsOrder) == "undefined" ) { columnsOrder = defaultColumnsOrder; } @@ -1474,7 +1474,7 @@ function initMailer(event) { } function initMessageCheckTimer() { - var messageCheck = userDefaults["MessageCheck"]; + var messageCheck = UserDefaults["MessageCheck"]; if (messageCheck && messageCheck != "manually") { var interval; if (messageCheck == "once_per_hour") diff --git a/UI/WebServerResources/UIxMailEditor.js b/UI/WebServerResources/UIxMailEditor.js index 8a4390f0c..a51376f93 100644 --- a/UI/WebServerResources/UIxMailEditor.js +++ b/UI/WebServerResources/UIxMailEditor.js @@ -312,7 +312,7 @@ function onTextIEUpdateCursorPos(event) { function onTextFirstFocus() { var content = this.getValue(); - var replyPlacement = userDefaults["ReplyPlacement"]; + var replyPlacement = UserDefaults["ReplyPlacement"]; if (replyPlacement == "above") { this.insertBefore(document.createTextNode("\r\r"), this.lastChild); @@ -547,7 +547,7 @@ function initMailEditor() { if (sigLimit > -1) MailEditor.signatureLength = (textContent.length - sigLimit); } - if (userDefaults["ReplyPlacement"] != "above") { + if (UserDefaults["ReplyPlacement"] != "above") { textarea.scrollTop = textarea.scrollHeight; } textarea.observe("focus", onTextFirstFocus); @@ -655,7 +655,7 @@ function lineBreakCount(str){ function hasSignature() { try { - return(userDefaults.MailAccounts[0].identities[0].signature.length > 0); + return(UserDefaults.MailAccounts[0].identities[0].signature.length > 0); } catch(e) { return false; } diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index ee845fc3b..3fc6d568e 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -38,9 +38,6 @@ var lastClickedRow = -1; // logArea = null; var allDocumentElements = null; -var userDefaults = null; -var userSettings = null; - // Ajax requests counts var activeAjaxRequests = 0; var removeFolderRequestCount = 0; @@ -1402,7 +1399,7 @@ function indexColor(number) { return color; } -function loadPreferences() { +function reloadPreferences() { var url = UserFolderURL + "jsonDefaults"; var http = createHTTPClient(); http.open("GET", url, false); @@ -1410,9 +1407,9 @@ function loadPreferences() { if (http.status == 200) { if (http.responseText.length > 0) - userDefaults = http.responseText.evalJSON(true); + UserDefaults = http.responseText.evalJSON(true); else - userDefaults = {}; + UserDefaults = {}; } url = UserFolderURL + "jsonSettings"; @@ -1420,16 +1417,13 @@ function loadPreferences() { http.send(""); if (http.status == 200) { if (http.responseText.length > 0) - userSettings = http.responseText.evalJSON(true); + UserSettings = http.responseText.evalJSON(true); else - userSettings = {}; + UserSettings = {}; } } function onLoadHandler(event) { - if (typeof UserLogin != "undefined" - && !(UserLogin == "" || UserLogin == "wrongusernamepassword")) - loadPreferences(); queryParameters = parseQueryParameters('' + window.location); if (!$(document.body).hasClassName("popup")) { initLogConsole();