]> err.no Git - scalable-opengroupware.org/blobdiff - UI/WebServerResources/MailerUI.js
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1066 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / WebServerResources / MailerUI.js
index 831cef806119addce5a4570c3c74847ef0e250d4..d2861de977c168ee616f5a37188ad6272974726d 100644 (file)
@@ -193,14 +193,14 @@ function openMessageWindowsForSelection(action) {
     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 */);
+     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;
@@ -372,14 +372,21 @@ function onMailboxTreeItemClick(event) {
   this.select();
   topNode.selectedEntry = this;
 
-  openMailbox(mailbox);
+  if (this.parentNode.getAttribute("datatype") != "account")
+     openMailbox(mailbox);
   event.preventDefault();
 }
 
-function refreshMailbox() {
-  openMailbox(currentMailbox, true);
+function _refreshWindowMailbox() {
+   openMailbox(currentMailbox, true);
+}
 
-  return false;
+function refreshMailbox() {
+   var topWindow = getTopWindow();
+   if (topWindow)
+      topWindow._refreshWindowMailbox();
+   
+   return false;
 }
 
 function openMailbox(mailbox, reload) {
@@ -600,13 +607,13 @@ function onMessageSelectionChange() {
 }
 
 function loadMessage(idx) {
-  var cachedMessage = getCachedMessage(idx);
-
   if (document.messageAjaxRequest) {
     document.messageAjaxRequest.aborted = true;
     document.messageAjaxRequest.abort();
   }
 
+  var cachedMessage = getCachedMessage(idx);
+
   if (cachedMessage == null) {
     var url = (ApplicationBaseURL + currentMailbox + "/"
                + idx + "/view?noframe=1");
@@ -618,9 +625,21 @@ function loadMessage(idx) {
     div.innerHTML = cachedMessage['text'];
     cachedMessage['time'] = (new Date()).getTime();
     document.messageAjaxRequest = null;
+    configureLinksInMessageDIV(div);
   }
 }
 
+function configureLinksInMessageDIV(div) {
+   var anchors = div.getElementsByTagName('a');
+   for (var i = 0; i < anchors.length; i++)
+      anchors[i].addEventListener("click", onMessageAnchorClick, false);
+}
+
+function onMessageAnchorClick (event) {
+   window.open(this.href);
+   event.preventDefault();
+}
+
 function messageCallback(http) {
   var div = $('messageContent');
 
@@ -628,7 +647,8 @@ function messageCallback(http) {
       && http.status == 200) {
     document.messageAjaxRequest = null;
     div.innerHTML = http.responseText;
-    
+    configureLinksInMessageDIV(div);
+
     if (http.callbackData) {
       var cachedMessage = new Array();
       cachedMessage['idx'] = currentMailbox + '/' + http.callbackData;
@@ -699,12 +719,19 @@ function deleteSelectedMails() {
 
 /* message menu entries */
 function onMenuOpenMessage(event) {
-  var node = getParentMenu(event.target).menuTarget.parentNode;
-  var msgId = node.getAttribute('id').substr(4);
+   return openMessageWindowsForSelection('popupview');
+}
+
+function onMenuReplyToSender(event) {
+   return openMessageWindowsForSelection('reply');
+}
+
+function onMenuReplyToAll(event) {
+   return openMessageWindowsForSelection('replyall');
+}
 
-  return openMessageWindow(msgId,
-                           ApplicationBaseURL + currentMailbox
-                           + "/" + msgId + "/view");
+function onMenuForwardMessage(event) {
+   return openMessageWindowsForSelection('forward');
 }
 
 /* contacts */
@@ -760,7 +787,7 @@ function expandUpperTree(node) {
 
 function initMailboxSelection(mailboxName) {
   currentMailbox = mailboxName;
-  log("initMailboxSelection: " + mailboxName);
+//   log("initMailboxSelection: " + mailboxName);
   var tree = $("d");
   var treeNodes = document.getElementsByClassName("dTreeNode", tree);
   var i = 0;
@@ -768,7 +795,7 @@ function initMailboxSelection(mailboxName) {
          && treeNodes[i].getAttribute("dataname") != currentMailbox)
     i++;
   if (i < treeNodes.length) {
-    log ("found mailbox");
+//     log ("found mailbox");
     var links = document.getElementsByClassName("node", treeNodes[i]);
     if (tree.selectedEntry)
       tree.selectedEntry.deselect();
@@ -944,7 +971,7 @@ function initDnd() {
         document.DNDManager.registerDestination(images[i]);
       }
     }
-    var nodes = document.getElementsByClassName("leaf", tree);
+    var nodes = document.getElementsByClassName("nodeName", tree);
     for (var i = 0; i < nodes.length; i++) {
       nodes[i].dndAcceptType = mailboxSpanAcceptType;
       nodes[i].dndEnter = mailboxSpanEnter;