]> 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 4c28bcea7afce86d00840397ee401267f731d69d..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 */