From 0b3877d3ca56b6f36ee3572e3ec40a896e02276e Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 26 Nov 2007 21:16:00 +0000 Subject: [PATCH] Monotone-Parent: 47696beae1f727f105c84083c575020ef044e2b6 Monotone-Revision: d16063f8ea6ebe88ac444340d819404443d826dd Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2007-11-26T21:16:00 Monotone-Branch: ca.inverse.sogo --- UI/MailerUI/UIxMailEditor.m | 2 +- UI/Templates/MailerUI/UIxMailMainFrame.wox | 6 ++++ UI/Templates/UIxPageFrame.wox | 2 +- UI/WebServerResources/MailerUI.js | 40 +++++++++++++++++----- UI/WebServerResources/UIxMailEditor.js | 4 +-- 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/UI/MailerUI/UIxMailEditor.m b/UI/MailerUI/UIxMailEditor.m index 2950bd39d..31e33f02a 100644 --- a/UI/MailerUI/UIxMailEditor.m +++ b/UI/MailerUI/UIxMailEditor.m @@ -443,7 +443,7 @@ static NSArray *infoKeys = nil; { result = [[self clientObject] sendMail]; if (!result) - result = [self jsCloseWithRefreshMethod: @"refreshFolderByType(\"sent\")"]; + result = [self jsCloseWithRefreshMethod: @"refreshCurrentFolder()"]; } else result = [self failedToSaveFormResponse]; diff --git a/UI/Templates/MailerUI/UIxMailMainFrame.wox b/UI/Templates/MailerUI/UIxMailMainFrame.wox index b23d47426..2e555aed1 100644 --- a/UI/Templates/MailerUI/UIxMailMainFrame.wox +++ b/UI/Templates/MailerUI/UIxMailMainFrame.wox @@ -171,6 +171,12 @@ + +
diff --git a/UI/Templates/UIxPageFrame.wox b/UI/Templates/UIxPageFrame.wox index 4daf412ee..d942676ed 100644 --- a/UI/Templates/UIxPageFrame.wox +++ b/UI/Templates/UIxPageFrame.wox @@ -117,7 +117,7 @@ - +
diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index bdd28f087..657ea7557 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -10,11 +10,11 @@ if (typeof textMailAccounts != 'undefined') { } var Mailer = { + currentMailbox: null, + currentMailboxType: "", currentMessages: {}, maxCachedMessages: 20, - cachedMessages: new Array(), - currentMailbox: null, - currentMailboxType: "" + cachedMessages: new Array() }; var usersRightsWindowHeight = 320; @@ -238,6 +238,7 @@ function deleteSelectedMessagesCallback(http) { if (isHttpStatus204(http.status)) { var data = http.callbackData; deleteCachedMessage(data["messageId"]); + deleteMessageRequestCount--; if (Mailer.currentMailbox == data["mailbox"]) { var div = $('messageContent'); @@ -247,13 +248,17 @@ function deleteSelectedMessagesCallback(http) { } var row = $("row_" + data["id"]); + var nextRow = row.next("tr"); + if (!nextRow) + nextRow = row.previous("tr"); row.parentNode.removeChild(row); // row.addClassName("deleted"); // when we'll offer "mark as deleted" - - deleteMessageRequestCount--; - if (deleteMessageRequestCount == 0) + if (deleteMessageRequestCount == 0) { + if (nextRow) + Mailer.currentMessages[Mailer.currentMailbox] = nextRow.getAttribute("id").substr(4); openMailbox(data["mailbox"], true); + } } } } @@ -488,7 +493,7 @@ function messageListCallback(http) { if (http.readyState == 4 && http.status == 200) { - document.messageListAjaxRequest = null; + document.messageListAjaxRequest = null; if (table) { // Update table @@ -748,6 +753,7 @@ function configureLinksInMessage() { messageDiv)[0]; if (!document.body.hasClassName("popup")) mailContentDiv.observe("contextmenu", onMessageContentMenu); + var anchors = messageDiv.getElementsByTagName('a'); for (var i = 0; i < anchors.length; i++) if (anchors[i].href.substring(0,7) == "mailto:") { @@ -757,6 +763,10 @@ function configureLinksInMessage() { else $(anchors[i]).observe("click", onMessageAnchorClick); + var images = messageDiv.getElementsByTagName('img'); + for (var i = 0; i < images.length; i++) + $(images[i]).observe("contextmenu", onImageClick); + var editDraftButton = $("editDraftButton"); if (editDraftButton) Event.observe(editDraftButton, "click", @@ -820,7 +830,8 @@ function resizeMailContent() { function onMessageContentMenu(event) { var element = getTarget(event); - if (element.tagName == 'A' && element.href.substring(0,7) == "mailto:") + if ((element.tagName == 'A' && element.href.substring(0,7) == "mailto:") + || element.tagName == 'IMG') // Don't show the default contextual menu; let the click propagate to // other observers return true; @@ -842,6 +853,12 @@ function onMessageAnchorClick(event) { preventDefault(event); } +function onImageClick(event) { + popupMenu(event, 'imageMenu', this); + preventDefault(event); + return false; +} + function messageCallback(http) { var div = $('messageContent'); @@ -947,6 +964,11 @@ function onMenuViewMessageSource(event) { preventDefault(event); } +function viewImage(event) { + var img = document.menuTarget; + window.open(img.getAttribute("src"),'_blank','resizable=1'); +} + /* contacts */ function newContactFromEmail(event) { var mailto = document.menuTarget.innerHTML; @@ -1277,6 +1299,7 @@ function updateMailboxTreeInPage() { onFolderMenuClick.bindAsEventListener(nodes[i])); if (!inboxFound && nodes[i].parentNode.getAttribute("datatype") == "inbox") { + Mailer.currentMailboxType = "inbox"; openInbox(nodes[i]); inboxFound = true; } @@ -1698,6 +1721,7 @@ function getMenus() { "mark-menu", "-", null, null, onMenuDeleteMessage); + menus["imageMenu"] = new Array(viewImage); menus["messageContentMenu"] = new Array(onMenuReplyToSender, onMenuReplyToAll, onMenuForwardMessage, diff --git a/UI/WebServerResources/UIxMailEditor.js b/UI/WebServerResources/UIxMailEditor.js index c5a6f602b..ba470c44c 100644 --- a/UI/WebServerResources/UIxMailEditor.js +++ b/UI/WebServerResources/UIxMailEditor.js @@ -161,7 +161,7 @@ function clickedEditorSend(sender) { window.shouldPreserve = true; document.pageform.action = "send"; document.pageform.submit(); - + return false; } @@ -256,7 +256,7 @@ function onTextFocus() { } if (signatureLength > 0) { var length = this.getValue().length - signatureLength - 1; - this.setSelectionRange(length, length); + this.selectText(length, length); } Event.stopObserving(this, "focus", onTextFocus); }