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);
}