From 0089cb7214d6c478c0425c049e9101672b5b807f Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 22 Dec 2006 22:13:53 +0000 Subject: [PATCH] Monotone-Parent: fe41830eaa82e69f64379323ab62164ca28f558d Monotone-Revision: cb7329802a0fcbc3602f6725512da279d8c4f67f Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2006-12-22T22:13:53 Monotone-Branch: ca.inverse.sogo --- UI/WebServerResources/MailerUI.js | 146 +++++++++++++++++------------- UI/WebServerResources/dtree.css | 10 +- UI/WebServerResources/dtree.js | 12 ++- 3 files changed, 93 insertions(+), 75 deletions(-) diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 4271db8ab..3c150cfbb 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -40,16 +40,19 @@ var currentMailbox = ''; /* mail list */ function openMessageWindow(msguid, url) { - log ("message window at url: " + url); var wId = ''; - if (msguid) + if (msguid) { wId += "SOGo_msg_" + msguid; + markMailReadInWindow(window, msguid); + } var msgWin = window.open(url, wId, "width=680,height=520,resizable=1,scrollbars=1,toolbar=0," + "location=0,directories=0,status=0,menubar=0,copyhistory=0"); - + if (msguid) { + msgWin.messageId = msguid; + msgWin.messageURL = ApplicationBaseURL + currentMailbox + "/" + msguid; + } msgWin.focus(); - markMailReadInWindow(window, msguid); return false; } @@ -220,15 +223,19 @@ function reopenToRemoveLocationBar() { function openMessageWindowsForSelection(action) { + if (document.body.hasClassName("popup")) + win = openMessageWindow(window.messageId, + window.messageURL + "/" + action /* url */); + else { var messageList = $("messageList"); var rows = messageList.getSelectedRowsId(); var idset = ""; - for (var i = 0; i < rows.length; i++) win = openMessageWindow(rows[i].substr(4) /* msguid */, ApplicationBaseURL + currentMailbox + "/" + rows[i].substr(4) + "/" + action /* url */); + } return false; } @@ -415,7 +422,7 @@ function openMailbox(mailbox, reload) currentMailbox = mailbox; var url = ApplicationBaseURL + mailbox + "/view?noframe=1&desc=1"; var mailboxContent = $("mailboxContent"); - var mailboxDragHandle = $("mailboxDragHandle"); + var rightDragHandle = $("rightDragHandle"); var messageContent = $("messageContent"); messageContent.innerHTML = ''; if (mailbox.lastIndexOf("/") == 0) { @@ -429,7 +436,7 @@ function openMailbox(mailbox, reload) = triggerAjaxRequest(url, messageCallback); mailboxContent.innerHTML = ''; mailboxContent.style.visibility = "hidden;"; - mailboxDragHandle.style.visibility = "hidden;"; + rightDragHandle.style.visibility = "hidden;"; messageContent.style.top = "0px;"; } else { if (document.messageListAjaxRequest) { @@ -445,9 +452,9 @@ function openMailbox(mailbox, reload) currentMessages[mailbox]); if (mailboxContent.style.visibility == "hidden") { mailboxContent.style.visibility = "visible;"; - mailboxDragHandle.style.visibility = "visible;"; - messageContent.style.top = (mailboxDragHandle.offsetTop - + mailboxDragHandle.offsetHeight + rightDragHandle.style.visibility = "visible;"; + messageContent.style.top = (rightDragHandle.offsetTop + + rightDragHandle.offsetHeight + 'px;'); } } @@ -520,16 +527,23 @@ function onMessageContextMenuHide(event) } } -function onFolderMenuClick(event, menutype) +function onFolderMenuClick(event) { var onhide, menuName; - - if (menutype == "inbox") { - menuName = "inboxIconMenu"; - } else if (menutype == "account") { - menuName = "accountIconMenu"; - } else if (menutype == "trash") { - menuName = "trashIconMenu"; + + var menutype = this.parentNode.getAttribute("datatype"); + log("parentNode: " + this.parentNode.tagName); + log("menutype: " + menutype); + if (menutype) { + if (menutype == "inbox") { + menuName = "inboxIconMenu"; + } else if (menutype == "account") { + menuName = "accountIconMenu"; + } else if (menutype == "trash") { + menuName = "trashIconMenu"; + } else { + menuName = "mailboxIconMenu"; + } } else { menuName = "mailboxIconMenu"; } @@ -925,48 +939,34 @@ function configureMessageListEvents() { onMessageSelectionChange, false); var rows = messageList.tBodies[0].rows; var start = 0; - while (rows[start].cells[0].hasClassName("tbtv_headercell") - || rows[start].cells[0].hasClassName("tbtv_navcell")) - start++; - for (var i = start; i < rows.length; i++) { - rows[i].addEventListener("mousedown", onRowClick, false); - rows[i].addEventListener("contextmenu", onMessageContextMenu, false); - - rows[i].dndTypes = function() { return new Array("mailRow"); }; - rows[i].dndGhost = messageListGhost; - rows[i].dndDataForType = messageListData; - document.DNDManager.registerSource(rows[i]); - - for (var j = 0; j < rows[i].cells.length; j++) { - var cell = rows[i].cells[j]; - cell.addEventListener("mousedown", listRowMouseDownHandler, false); - if (j == 2 || j == 3 || j == 5) - cell.addEventListener("dblclick", onMessageDoubleClick, false); - else if (j == 4) { - var img = cell.childNodesWithTag("img")[0]; - img.addEventListener("click", mailListMarkMessage, false); + if (rows.length > 1) { + while (rows[start].cells[0].hasClassName("tbtv_headercell") + || rows[start].cells[0].hasClassName("tbtv_navcell")) + start++; + for (var i = start; i < rows.length; i++) { + rows[i].addEventListener("mousedown", onRowClick, false); + rows[i].addEventListener("contextmenu", onMessageContextMenu, false); + + rows[i].dndTypes = function() { return new Array("mailRow"); }; + rows[i].dndGhost = messageListGhost; + rows[i].dndDataForType = messageListData; + document.DNDManager.registerSource(rows[i]); + + for (var j = 0; j < rows[i].cells.length; j++) { + var cell = rows[i].cells[j]; + cell.addEventListener("mousedown", listRowMouseDownHandler, false); + if (j == 2 || j == 3 || j == 5) + cell.addEventListener("dblclick", onMessageDoubleClick, false); + else if (j == 4) { + var img = cell.childNodesWithTag("img")[0]; + img.addEventListener("click", mailListMarkMessage, false); + } } } } } } -function configureDragHandles() { - var handle = $("dragHandle"); - if (handle) { - handle.addInterface(SOGoDragHandlesInterface); - handle.leftBlock=$("mailerFolderTree"); - handle.rightBlock=$("mailerPageContent"); - } - - handle = $("mailboxDragHandle"); - if (handle) { - handle.addInterface(SOGoDragHandlesInterface); - handle.upperBlock=$("mailboxContent"); - handle.lowerBlock=$("messageContent"); - } -} - function configureDragHandles() { var handle = $("verticalDragHandle"); if (handle) { @@ -1014,16 +1014,38 @@ function initDnd() { function refreshContacts() { } +function openInbox(node) { + var done = false; + openMailbox(node.parentNode.getAttribute("dataname")); + node.select(); + var currentNode = node.parentNode.parentNode; + while (!done) { + var number = currentNode.getAttribute("id").substr(2); + d.o(number); + if (number == "1") + done = true; + else + currentNode = currentNode.parentNode; + } +} + var initMailer = { handleEvent: function (event) { - configureMessageListEvents(); - initDnd(); - var tree = $("d"); - var nodes = document.getElementsByClassName("node", tree); - nodes = nodes.concat(document.getElementsByClassName("nodeSel", tree)); - for (i = 0; i < nodes.length; i++) { - nodes[i].addEventListener("click", onMailboxTreeItemClick, false); - nodes[i].addEventListener("contextmenu", onFolderMenuClick, false); + if (!document.body.hasClassName("popup")) { + var inboxFound = false; + configureMessageListEvents(); + initDnd(); + var tree = $("d"); + var nodes = document.getElementsByClassName("node", tree); + for (i = 0; i < nodes.length; i++) { + nodes[i].addEventListener("click", onMailboxTreeItemClick, false); + nodes[i].addEventListener("contextmenu", onFolderMenuClick, false); + if (!inboxFound + && nodes[i].parentNode.getAttribute("datatype") == "inbox") { + openInbox(nodes[i]); + inboxFound = true; + } + } } /* diff --git a/UI/WebServerResources/dtree.css b/UI/WebServerResources/dtree.css index 1a53c5803..0d95403bf 100644 --- a/UI/WebServerResources/dtree.css +++ b/UI/WebServerResources/dtree.css @@ -25,23 +25,17 @@ text-decoration: none; } -.dtree a.node, .dtree a.nodeSel +.dtree a.node { white-space: nowrap; padding: 1px 2px; } -.dtree a.node:hover, .dtree a.nodeSel:hover +.dtree a.node:hover { text-decoration: none; } -.dtree a.nodeSel -{ - color: #fff; - background-color: #4b6983; -} - .dtree .clip { overflow: hidden; diff --git a/UI/WebServerResources/dtree.js b/UI/WebServerResources/dtree.js index e0b0e7e33..169e990a2 100644 --- a/UI/WebServerResources/dtree.js +++ b/UI/WebServerResources/dtree.js @@ -38,7 +38,7 @@ function dTree(objName) { hideRoot : false, folderLinks : true, useSelection : true, - useCookies : true, + useCookies : false, useLines : true, useIcons : true, useStatusText : false, @@ -136,7 +136,7 @@ dTree.prototype.node = function(node, nodeId) { if (node.dataname) str += ' dataname="' + node.dataname + '"'; str += '>' + this.indent(node, nodeId); if (node.url) { - str += ''; @@ -216,10 +216,10 @@ dTree.prototype.s = function(id) { if (this.selectedNode != id) { if (this.selectedNode || this.selectedNode==0) { eOld = document.getElementById("s" + this.obj + this.selectedNode); - eOld.className = "node"; + eOld.deselect(); } eNew = document.getElementById("s" + this.obj + id); - eNew.className = "nodeSel"; + eNew.select(); this.selectedNode = id; if (this.config.useCookies) this.setCookie('cs' + this.obj, cn.id); } @@ -232,6 +232,8 @@ dTree.prototype.o = function(id) { cn._io = !cn._io; if (this.config.closeSameLevel) this.closeLevel(cn); if (this.config.useCookies) this.updateCookie(); + + return false; }; // Open or close all nodes