mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-13 04:15:11 +00:00
See Changelog.
Monotone-Parent: f13b039579047763006c2956ddf349f1bff203a3 Monotone-Revision: f6c7d4502b60b66206223a822d4911218f4bbacf Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2010-08-26T14:14:10 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -318,13 +318,13 @@ function onUnload(event) {
|
||||
|
||||
function onDocumentKeydown(event) {
|
||||
var target = Event.element(event);
|
||||
if (target.tagName != "INPUT")
|
||||
if (event.keyCode == Event.KEY_DELETE ||
|
||||
if (target.tagName != "INPUT") {
|
||||
if (event.keyCode == Event.KEY_DELETE ||
|
||||
event.keyCode == Event.KEY_BACKSPACE && isMac()) {
|
||||
deleteSelectedMessages();
|
||||
Event.stop(event);
|
||||
}
|
||||
else if (event.keyCode == Event.KEY_DOWN ||
|
||||
else if (event.keyCode == Event.KEY_DOWN ||
|
||||
event.keyCode == Event.KEY_UP) {
|
||||
if (Mailer.currentMessages[Mailer.currentMailbox]) {
|
||||
var row = $("row_" + Mailer.currentMessages[Mailer.currentMailbox]);
|
||||
@@ -357,30 +357,44 @@ function onDocumentKeydown(event) {
|
||||
Event.stop(event);
|
||||
}
|
||||
}
|
||||
else if (event.ctrlKey == 1 && event.keyCode == 65) { // Ctrl-A
|
||||
$("messageListBody").down("TBODY").selectAll();
|
||||
Event.stop(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* bulk delete of messages */
|
||||
|
||||
function deleteSelectedMessages(sender) {
|
||||
var messageList = $("messageListBody").down("TBODY");
|
||||
var rows = messageList.getSelectedNodes();
|
||||
var rowIds = messageList.getSelectedNodesId();
|
||||
var uids = new Array(); // message IDs
|
||||
var paths = new Array(); // row IDs
|
||||
var unseenCount = 0;
|
||||
|
||||
if (rows.length > 0) {
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
var uid = rows[i].readAttribute("id").substr(4);
|
||||
var path = Mailer.currentMailbox + "/" + uid;
|
||||
if (rowIds.length > 0) {
|
||||
for (var i = 0; i < rowIds.length; i++) {
|
||||
if (unseenCount < 1) {
|
||||
var rows = messageList.select('#' + rowIds[i]);
|
||||
if (rows.length > 0) {
|
||||
var row = rows.first();
|
||||
row.hide();
|
||||
if (row.hasClassName("mailer_unreadmail"))
|
||||
unseenCount--;
|
||||
}
|
||||
else {
|
||||
unseenCount = 1;
|
||||
}
|
||||
}
|
||||
deleteMessageRequestCount++;
|
||||
rows[i].hide();
|
||||
var uid = rowIds[i].substr(4); // drop "row_"
|
||||
var path = Mailer.currentMailbox + "/" + uid;
|
||||
uids.push(uid);
|
||||
paths.push(path);
|
||||
if (rows[i].hasClassName("mailer_unreadmail"))
|
||||
unseenCount--;
|
||||
}
|
||||
messageList.deselectAll();
|
||||
updateMessageListCounter(0 - rows.length, true);
|
||||
updateMessageListCounter(0 - rowIds.length, true);
|
||||
if (unseenCount < 0) {
|
||||
var node = mailboxTree.getMailboxNode(Mailer.currentMailbox);
|
||||
if (node) {
|
||||
@@ -389,7 +403,7 @@ function deleteSelectedMessages(sender) {
|
||||
}
|
||||
var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/batchDelete";
|
||||
var parameters = "uid=" + uids.join(",");
|
||||
var data = { "id": uids, "mailbox": Mailer.currentMailbox, "path": paths };
|
||||
var data = { "id": uids, "mailbox": Mailer.currentMailbox, "path": paths, "refreshUnseenCount": (unseenCount > 0) };
|
||||
triggerAjaxRequest(url, deleteSelectedMessagesCallback, data, parameters,
|
||||
{ "Content-type": "application/x-www-form-urlencoded" });
|
||||
}
|
||||
@@ -436,6 +450,8 @@ function deleteSelectedMessagesCallback(http) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (data["refreshUnseenCount"])
|
||||
getUnseenCountForFolder(data["mailbox"]);
|
||||
}
|
||||
else {
|
||||
log ("deleteSelectedMessagesCallback: problem during ajax request " + http.status);
|
||||
@@ -470,11 +486,11 @@ function deleteMessageWithDelay(url, id, mailbox, messageId) {
|
||||
|
||||
function onPrintCurrentMessage(event) {
|
||||
var messageList = $("messageListBody").down("TBODY");
|
||||
var rowIds = messageList.getSelectedNodes();
|
||||
if (rowIds.length == 0) {
|
||||
var rows = messageList.getSelectedNodes();
|
||||
if (rows.length == 0) {
|
||||
showAlertDialog(_("Please select a message to print."));
|
||||
}
|
||||
else if (rowIds.length > 1) {
|
||||
else if (rows.length > 1) {
|
||||
showAlertDialog(_("Please select only one message to print."));
|
||||
}
|
||||
else
|
||||
@@ -531,7 +547,7 @@ function toggleAddressColumn(search, replace) {
|
||||
function onMailboxMenuMove(event) {
|
||||
var targetMailbox;
|
||||
var messageList = $("messageListBody").down("TBODY");
|
||||
var rows = messageList.getSelectedNodes();
|
||||
var rowIds = messageList.getSelectedNodesId();
|
||||
var uids = new Array(); // message IDs
|
||||
var paths = new Array(); // row IDs
|
||||
|
||||
@@ -543,10 +559,12 @@ function onMailboxMenuMove(event) {
|
||||
else // from DnD
|
||||
targetMailbox = this.readAttribute("dataname");
|
||||
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
var uid = rows[i].readAttribute("id").substr(4);
|
||||
for (var i = 0; i < rowIds.length; i++) {
|
||||
var uid = rowIds[i].substr(4);
|
||||
var path = Mailer.currentMailbox + "/" + uid;
|
||||
rows[i].hide();
|
||||
var rows = messageList.select('#' + rowIds[i]);
|
||||
if (rows.length > 0)
|
||||
rows.first().hide();
|
||||
uids.push(uid);
|
||||
paths.push(path);
|
||||
// Remove references to closed popups
|
||||
@@ -576,7 +594,7 @@ function onMailboxMenuMove(event) {
|
||||
|
||||
function onMailboxMenuCopy(event) {
|
||||
var messageList = $("messageListBody").down("TBODY");
|
||||
var rows = messageList.getSelectedNodes();
|
||||
var rowIds = messageList.getSelectedNodesId();
|
||||
var uids = new Array(); // message IDs
|
||||
var paths = new Array(); // row IDs
|
||||
|
||||
@@ -585,8 +603,8 @@ function onMailboxMenuCopy(event) {
|
||||
targetMailbox = this.mailbox.fullName();
|
||||
else // from DnD
|
||||
targetMailbox = this.readAttribute("dataname");
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
var uid = rows[i].readAttribute("id").substr(4);
|
||||
for (var i = 0; i < rowIds.length; i++) {
|
||||
var uid = rowIds[i].substr(4);
|
||||
var path = Mailer.currentMailbox + "/" + uid;
|
||||
uids.push(uid);
|
||||
paths.push(path);
|
||||
@@ -2099,9 +2117,7 @@ function onMenuEmptyTrash(event) {
|
||||
triggerAjaxRequest(urlstr, folderOperationCallback, errorLabel);
|
||||
|
||||
if (folderID == Mailer.currentMailbox) {
|
||||
var div = $('messageContent');
|
||||
for (var i = div.childNodes.length - 1; i > -1; i--)
|
||||
div.removeChild(div.childNodes[i]);
|
||||
$('messageContent').update();
|
||||
}
|
||||
var msgID = Mailer.currentMessages[folderID];
|
||||
if (msgID)
|
||||
@@ -2230,6 +2246,7 @@ function folderRefreshCallback(http) {
|
||||
var oldMailbox = http.callbackData.mailbox;
|
||||
if (http.callbackData.refresh
|
||||
&& oldMailbox == Mailer.currentMailbox) {
|
||||
getUnseenCountForFolder(oldMailbox);
|
||||
if (http.callbackData.id) {
|
||||
var s = http.callbackData.id + "";
|
||||
var uids = s.split(",");
|
||||
@@ -2248,7 +2265,8 @@ function folderRefreshCallback(http) {
|
||||
var uids = s.split(",");
|
||||
for (var i = 0; i < uids.length; i++) {
|
||||
var row = $("row_" + uids[i]);
|
||||
row.show();
|
||||
if (row)
|
||||
row.show();
|
||||
}
|
||||
}
|
||||
showAlertDialog(_("Operation failed"));
|
||||
@@ -2622,7 +2640,7 @@ function startDragging (itm, e) {
|
||||
var handle = $("dragDropVisual");
|
||||
var count = $("messageListBody").getSelectedRowsId().length;
|
||||
|
||||
handle.update (count);
|
||||
handle.update(count);
|
||||
if (Mailer.currentMailbox) {
|
||||
var parts = Mailer.currentMailbox.split("/");
|
||||
handle.addClassName("account" + parts[1]);
|
||||
|
||||
Reference in New Issue
Block a user