Monotone-Parent: ac86bf6af212996c20d42a2d5075ed984200b34c

Monotone-Revision: 74220fe29f9fafe1f0463c9877d6a9f47436e728

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2008-04-15T20:12:51
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2008-04-15 20:12:51 +00:00
parent 20e2fea98b
commit 7c2e82cef8
16 changed files with 1147 additions and 1153 deletions

View File

@@ -220,24 +220,24 @@ function ml_lowlight(sender) {
/* bulk delete of messages */
function deleteSelectedMessages(sender) {
var messageList = $("messageList");
var rowIds = messageList.getSelectedRowsId();
var messageList = $("messageList");
var rowIds = messageList.getSelectedRowsId();
if (rowIds.length > 0) {
for (var i = 0; i < rowIds.length; i++) {
var url;
var rowId = rowIds[i].substr(4);
var messageId = Mailer.currentMailbox + "/" + rowId;
url = ApplicationBaseURL + messageId + "/trash";
deleteMessageRequestCount++;
var data = { "id": rowId, "mailbox": Mailer.currentMailbox, "messageId": messageId };
triggerAjaxRequest(url, deleteSelectedMessagesCallback, data);
}
}
else
window.alert(labels["Please select a message."]);
if (rowIds.length > 0) {
for (var i = 0; i < rowIds.length; i++) {
var url;
var rowId = rowIds[i].substr(4);
var messageId = Mailer.currentMailbox + "/" + rowId;
url = ApplicationBaseURL + messageId + "/trash";
deleteMessageRequestCount++;
var data = { "id": rowId, "mailbox": Mailer.currentMailbox, "messageId": messageId };
triggerAjaxRequest(url, deleteSelectedMessagesCallback, data);
}
}
else
window.alert(labels["Please select a message."]);
return false;
return false;
}
function deleteSelectedMessagesCallback(http) {
@@ -257,7 +257,7 @@ function deleteSelectedMessagesCallback(http) {
if (!nextRow)
nextRow = row.previous("tr");
row.parentNode.removeChild(row);
// row.addClassName("deleted"); // when we'll offer "mark as deleted"
// row.addClassName("deleted"); // when we'll offer "mark as deleted"
if (deleteMessageRequestCount == 0) {
if (nextRow) {
@@ -311,8 +311,8 @@ function moveMessages(rowIds, folder) {
}
function onMenuDeleteMessage(event) {
deleteSelectedMessages();
preventDefault(event);
deleteSelectedMessages();
preventDefault(event);
}
function deleteMessage(url, id, mailbox, messageId) {
@@ -614,7 +614,7 @@ function onMessageContextMenu(event) {
var topNode = $('messageList');
var selectedNodes = topNode.getSelectedRows();
Event.observe(menu, "hideMenu", onMessageContextMenuHide);
menu.observe("hideMenu", onMessageContextMenuHide);
if (selectedNodes.length > 1)
popupMenu(event, "messagesListMenu", selectedNodes);
@@ -656,7 +656,7 @@ function onFolderMenuClick(event) {
}
var menu = $(menuName);
Event.observe(menu, "hideMenu", onFolderMenuHide);
menu.observe("hideMenu", onFolderMenuHide);
popupMenu(event, menuName, this.parentNode);
var topNode = $("mailboxTree");
@@ -795,8 +795,8 @@ function configureLinksInMessage() {
var editDraftButton = $("editDraftButton");
if (editDraftButton)
Event.observe(editDraftButton, "click",
onMessageEditDraft.bindAsEventListener(editDraftButton));
editDraftButton.observe("click",
onMessageEditDraft.bindAsEventListener(editDraftButton));
configureiCalLinksInMessage();
}
@@ -813,8 +813,8 @@ function configureiCalLinksInMessage() {
var button = $(key);
if (button) {
button.action = buttons[key];
Event.observe(button, "click",
onICalendarButtonClick.bindAsEventListener(button));
button.observe("click",
onICalendarButtonClick.bindAsEventListener(button));
}
}
}
@@ -854,34 +854,34 @@ function resizeMailContent() {
// Show expand buttons if necessary
var spans = $$("TABLE TR.mailer_fieldrow TD.mailer_fieldvalue SPAN");
spans.each(function(span) {
var row = span.up("TR");
if (span.getWidth() > row.getWidth()) {
var cell = row.select("TD.mailer_fieldname").first();
var link = cell.down("img");
link.show();
link.observe("click", toggleDisplayHeader);
}
});
var row = span.up("TR");
if (span.getWidth() > row.getWidth()) {
var cell = row.select("TD.mailer_fieldname").first();
var link = cell.down("img");
link.show();
link.observe("click", toggleDisplayHeader);
}
});
}
function toggleDisplayHeader(event) {
var row = this.up("TR");
var span = row.down("SPAN");
var row = this.up("TR");
var span = row.down("SPAN");
if (this.hasClassName("collapse")) {
this.writeAttribute("src", ResourcesURL + '/minus.png');
this.writeAttribute("class", "expand");
span.writeAttribute("class", "expand");
}
else {
this.writeAttribute("src", ResourcesURL + '/plus.png');
this.writeAttribute("class", "collapse");
span.writeAttribute("class", "collapse");
}
resizeMailContent();
if (this.hasClassName("collapse")) {
this.writeAttribute("src", ResourcesURL + '/minus.png');
this.writeAttribute("class", "expand");
span.writeAttribute("class", "expand");
}
else {
this.writeAttribute("src", ResourcesURL + '/plus.png');
this.writeAttribute("class", "collapse");
span.writeAttribute("class", "collapse");
}
resizeMailContent();
preventDefault(event);
return false;
preventDefault(event);
return false;
}
function onMessageContentMenu(event) {
@@ -1062,8 +1062,8 @@ function expandUpperTree(node) {
var id = currentNode.getAttribute("id");
var number = parseInt(id.substr(2));
if (number > 0) {
var cn = mailboxTree.aNodes[number];
mailboxTree.nodeStatus(1, number, cn._ls);
var cn = mailboxTree.aNodes[number];
mailboxTree.nodeStatus(1, number, cn._ls);
}
}
currentNode = currentNode.parentNode;
@@ -1109,46 +1109,46 @@ var mailboxSpanAcceptType = function(type) {
return (type == "mailRow");
}
var mailboxSpanEnter = function() {
this.addClassName("_dragOver");
}
var mailboxSpanExit = function() {
this.removeClassName("_dragOver");
}
var mailboxSpanDrop = function(data) {
var success = false;
if (data) {
var folder = this.parentNode.parentNode.getAttribute("dataname");
if (folder != Mailer.currentMailbox)
success = (moveMessages(data, folder) == 0);
var mailboxSpanEnter = function() {
this.addClassName("_dragOver");
}
else
success = false;
return success;
}
var mailboxSpanExit = function() {
this.removeClassName("_dragOver");
}
var plusSignEnter = function() {
var nodeNr = parseInt(this.id.substr(2));
if (!mailboxTree.aNodes[nodeNr]._io)
this.plusSignTimer = setTimeout("openPlusSign('" + nodeNr + "');", 1000);
}
var mailboxSpanDrop = function(data) {
var success = false;
var plusSignExit = function() {
if (this.plusSignTimer) {
clearTimeout(this.plusSignTimer);
this.plusSignTimer = null;
}
}
if (data) {
var folder = this.parentNode.parentNode.getAttribute("dataname");
if (folder != Mailer.currentMailbox)
success = (moveMessages(data, folder) == 0);
}
else
success = false;
return success;
}
var plusSignEnter = function() {
var nodeNr = parseInt(this.id.substr(2));
if (!mailboxTree.aNodes[nodeNr]._io)
this.plusSignTimer = setTimeout("openPlusSign('" + nodeNr + "');", 1000);
}
var plusSignExit = function() {
if (this.plusSignTimer) {
clearTimeout(this.plusSignTimer);
this.plusSignTimer = null;
}
}
function openPlusSign(nodeNr) {
mailboxTree.nodeStatus(1, nodeNr, mailboxTree.aNodes[nodeNr]._ls);
mailboxTree.aNodes[nodeNr]._io = 1;
this.plusSignTimer = null;
}
function openPlusSign(nodeNr) {
mailboxTree.nodeStatus(1, nodeNr, mailboxTree.aNodes[nodeNr]._ls);
mailboxTree.aNodes[nodeNr]._io = 1;
this.plusSignTimer = null;
}
var messageListGhost = function () {
var newDiv = document.createElement("div");
@@ -1172,26 +1172,26 @@ var messageListGhost = function () {
return newDiv;
}
var messageListData = function(type) {
var rows = this.parentNode.parentNode.getSelectedRowsId();
var msgIds = new Array();
for (var i = 0; i < rows.length; i++)
msgIds.push(rows[i].substr(4));
var messageListData = function(type) {
var rows = this.parentNode.parentNode.getSelectedRowsId();
var msgIds = new Array();
for (var i = 0; i < rows.length; i++)
msgIds.push(rows[i].substr(4));
return msgIds;
}
/* a model for a futur refactoring of the sortable table headers mechanism */
function configureMessageListEvents(table) {
if (table) {
table.multiselect = true;
// Each body row can load a message
Event.observe(table, "mousedown",
onMessageSelectionChange.bindAsEventListener(table));
// Sortable columns
configureSortableTableHeaders(table);
return msgIds;
}
}
/* a model for a futur refactoring of the sortable table headers mechanism */
function configureMessageListEvents(table) {
if (table) {
table.multiselect = true;
// Each body row can load a message
table.observe("mousedown",
onMessageSelectionChange.bindAsEventListener(table));
// Sortable columns
configureSortableTableHeaders(table);
}
}
function configureMessageListBodyEvents(table) {
if (table) {
@@ -1200,29 +1200,29 @@ function configureMessageListBodyEvents(table) {
if ($(cell).hasClassName("tbtv_navcell")) {
var anchors = $(cell).childNodesWithTag("a");
for (var i = 0; i < anchors.length; i++)
Event.observe(anchors[i], "click",
openMailboxAtIndex.bindAsEventListener(anchors[i]));
anchors[i].observe("click",
openMailboxAtIndex.bindAsEventListener(anchors[i]));
}
rows = table.tBodies[0].rows;
for (var i = 0; i < rows.length; i++) {
Event.observe(rows[i], "mousedown", onRowClick);
Event.observe(rows[i], "selectstart", listRowMouseDownHandler);
Event.observe(rows[i], "contextmenu", onMessageContextMenu.bindAsEventListener(rows[i]));
rows[i].observe("mousedown", onRowClick);
rows[i].observe("selectstart", listRowMouseDownHandler);
rows[i].observe("contextmenu", onMessageContextMenu.bindAsEventListener(rows[i]));
rows[i].dndTypes = function() { return new Array("mailRow"); };
rows[i].dndGhost = messageListGhost;
rows[i].dndDataForType = messageListData;
// document.DNDManager.registerSource(rows[i]);
// document.DNDManager.registerSource(rows[i]);
for (var j = 0; j < rows[i].cells.length; j++) {
var cell = rows[i].cells[j];
Event.observe(cell, "mousedown", listRowMouseDownHandler);
cell.observe("mousedown", listRowMouseDownHandler);
if (j == 2 || j == 3 || j == 5)
Event.observe(cell, "dblclick", onMessageDoubleClick.bindAsEventListener(cell));
cell.observe("dblclick", onMessageDoubleClick.bindAsEventListener(cell));
else if (j == 4) {
var img = cell.childNodesWithTag("img")[0];
Event.observe(img, "click", mailListMarkMessage.bindAsEventListener(img));
img.observe("click", mailListMarkMessage.bindAsEventListener(img));
}
}
}
@@ -1288,7 +1288,7 @@ function openInbox(node) {
function initMailer(event) {
if (!$(document.body).hasClassName("popup")) {
// initDnd();
// initDnd();
initMailboxTree();
initMessageCheckTimer();
}
@@ -1355,10 +1355,10 @@ function updateMailboxTreeInPage() {
var tree = $("mailboxTree");
var nodes = document.getElementsByClassName("node", tree);
for (i = 0; i < nodes.length; i++) {
Event.observe(nodes[i], "click",
onMailboxTreeItemClick.bindAsEventListener(nodes[i]));
Event.observe(nodes[i], "contextmenu",
onFolderMenuClick.bindAsEventListener(nodes[i]));
nodes[i].observe("click",
onMailboxTreeItemClick.bindAsEventListener(nodes[i]));
nodes[i].observe("contextmenu",
onFolderMenuClick.bindAsEventListener(nodes[i]));
if (!inboxFound
&& nodes[i].parentNode.getAttribute("datatype") == "inbox") {
Mailer.currentMailboxType = "inbox";
@@ -1767,13 +1767,13 @@ function onLabelMenuPrepareVisibility() {
var rows = messageList.getSelectedRows();
for (var i = 0; i < rows.length; i++) {
$w(rows[i].getAttribute("labels")).each(function(flag) {
flags[flag] = true;
flags[flag] = true;
});
}
}
var lis = this.childNodesWithTag("ul")[0].childNodesWithTag("li")
var isFlagged = false;
var isFlagged = false;
for (var i = 1; i < 6; i++) {
if (flags["label" + i]) {
isFlagged = true;
@@ -1820,8 +1820,8 @@ function getMenus() {
null, onMenuDeleteMessage);
menus["messagesListMenu"] = new Array(onMenuForwardMessage,
"-", "moveMailboxMenu",
"copyMailboxMenu", "label-menu",
"mark-menu", "-",
"copyMailboxMenu", "label-menu",
"mark-menu", "-",
null, null,
onMenuDeleteMessage);
menus["imageMenu"] = new Array(saveImage);
@@ -1864,41 +1864,41 @@ function Mailbox(type, name) {
return this;
}
Mailbox.prototype.dump = function(indent) {
if (!indent)
indent = 0;
log(" ".repeat(indent) + this.name);
for (var i = 0; i < this.children.length; i++) {
this.children[i].dump(indent + 2);
}
}
Mailbox.prototype = {
dump: function(indent) {
if (!indent)
indent = 0;
log(" ".repeat(indent) + this.name);
for (var i = 0; i < this.children.length; i++) {
this.children[i].dump(indent + 2);
}
},
fullName: function() {
var fullName = "";
Mailbox.prototype.fullName = function() {
var fullName = "";
var currentFolder = this;
while (currentFolder.parentFolder) {
fullName = "/folder" + currentFolder.name + fullName;
currentFolder = currentFolder.parentFolder;
}
var currentFolder = this;
while (currentFolder.parentFolder) {
fullName = "/folder" + currentFolder.name + fullName;
currentFolder = currentFolder.parentFolder;
}
return "/" + currentFolder.name + fullName;
},
findMailboxByName: function(name) {
var mailbox = null;
return "/" + currentFolder.name + fullName;
}
var i = 0;
while (!mailbox && i < this.children.length)
if (this.children[i].name == name)
mailbox = this.children[i];
else
i++;
Mailbox.prototype.findMailboxByName = function(name) {
var mailbox = null;
return mailbox;
},
addMailbox: function(mailbox) {
mailbox.parentFolder = this;
this.children.push(mailbox);
}
};
var i = 0;
while (!mailbox && i < this.children.length)
if (this.children[i].name == name)
mailbox = this.children[i];
else
i++;
return mailbox;
}
Mailbox.prototype.addMailbox = function(mailbox) {
mailbox.parentFolder = this;
this.children.push(mailbox);
}