currentMailboxType: "",
currentMessages: {},
maxCachedMessages: 20,
- cachedMessages: new Array()
+ cachedMessages: new Array(),
+ foldersStateTimer: false
};
var usersRightsWindowHeight = 320;
Mailer.currentMailbox = mailbox;
var url = ApplicationBaseURL + encodeURI(mailbox) + "/view?noframe=1";
- if (!reload) {
+ if (!reload || idx) {
var messageContent = $("messageContent");
messageContent.update();
lastClickedRow = -1; // from generic.js
}
var currentMessage;
- if (!idx && !reload) {
+
+ if (!idx) {
currentMessage = Mailer.currentMessages[mailbox];
if (currentMessage) {
- loadMessage(currentMessage);
url += '&pageforuid=' + currentMessage;
+ if (!reload)
+ loadMessage(currentMessage);
}
}
initMailboxTree();
initMessageCheckTimer();
}
-
+
// Default sort options
sorting["attribute"] = "date";
sorting["ascending"] = false;
updateMailboxTreeInPage();
updateMailboxMenus();
checkAjaxRequestsState();
+ getFoldersState();
}
}
}
return account;
}
+function getFoldersState() {
+ if (mailAccounts.length > 0) {
+ var urlstr = ApplicationBaseURL + "foldersState";
+ triggerAjaxRequest(urlstr, getFoldersStateCallback);
+ }
+}
+
+function getFoldersStateCallback(http) {
+ if (http.readyState == 4
+ && http.status == 200) {
+ if (http.responseText.length > 0) {
+ // The response text is a JSOn representation
+ // of the folders that were left opened.
+ var data = http.responseText.evalJSON(true);
+ for (var i = 1; i < mailboxTree.aNodes.length; i++) {
+ if ($(data).indexOf(mailboxTree.aNodes[i].dataname) > 0)
+ // If the folder is found, open it
+ mailboxTree.o(i);
+ }
+ }
+ }
+ mailboxTree.autoSync();
+}
+
+function saveFoldersState() {
+ if (mailAccounts.length > 0) {
+ var foldersState = mailboxTree.getFoldersState();
+ var urlstr = ApplicationBaseURL + "saveFoldersState" + "?expandedFolders=" + foldersState;
+ triggerAjaxRequest(urlstr, saveFoldersStateCallback);
+ }
+}
+
+function saveFoldersStateCallback(http) {
+ if (http.readyState == 4
+ && isHttpStatus204(http.status)) {
+ log ("folders state saved");
+ }
+}
+
function onMenuCreateFolder(event) {
var name = window.prompt(labels["Name :"], "");
if (name && name.length > 0) {