mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-02-27 20:26:23 +00:00
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:
File diff suppressed because it is too large
Load Diff
@@ -145,14 +145,14 @@ Element.addMethods({
|
||||
visibility: "visible" } );
|
||||
|
||||
document.currentPopupMenu = popup;
|
||||
Event.observe(document.body, "click", onBodyClickMenuHandler);
|
||||
document.body.observe("click", onBodyClickMenuHandler);
|
||||
},
|
||||
|
||||
attachMenu: function(element, menuName) {
|
||||
element = $(element);
|
||||
element.sogoContextMenu = $(menuName);
|
||||
Event.observe(element, "contextmenu",
|
||||
element.onContextMenu.bindAsEventListener(element));
|
||||
element.observe("contextmenu",
|
||||
element.onContextMenu.bindAsEventListener(element));
|
||||
},
|
||||
|
||||
selectElement: function(element) {
|
||||
|
||||
@@ -11,7 +11,7 @@ Form.Element.Methods._replicate = function(element) {
|
||||
Form.Element.Methods.assignReplica = function(element, otherInput) {
|
||||
element = $(element);
|
||||
if (!element._onChangeBound) {
|
||||
Event.observe(element, "change", element._replicate, false);
|
||||
element.observe("change", element._replicate, false);
|
||||
element._onChangeBound = true;
|
||||
}
|
||||
element.replica = otherInput;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ var SOGoDragHandlesInterface = {
|
||||
moveBound: null,
|
||||
bind: function () {
|
||||
this.startHandleDraggingBound = this.startHandleDragging.bindAsEventListener(this);
|
||||
Event.observe(this, "mousedown", this.startHandleDraggingBound, false);
|
||||
this.observe("mousedown", this.startHandleDraggingBound, false);
|
||||
},
|
||||
_determineType: function () {
|
||||
if (this.leftBlock && this.rightBlock)
|
||||
@@ -47,9 +47,9 @@ var SOGoDragHandlesInterface = {
|
||||
document.body.setStyle({ cursor: "n-resize" });
|
||||
}
|
||||
this.stopHandleDraggingBound = this.stopHandleDragging.bindAsEventListener(this);
|
||||
Event.observe(document.body, "mouseup", this.stopHandleDraggingBound, true);
|
||||
document.body.observe("mouseup", this.stopHandleDraggingBound, true);
|
||||
this.moveBound = this.move.bindAsEventListener(this);
|
||||
Event.observe(document.body, "mousemove", this.moveBound, true);
|
||||
document.body.observe("mousemove", this.moveBound, true);
|
||||
this.move(event);
|
||||
event.cancelBubble = true;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ function initLogin() {
|
||||
document.cookie = ("0xHIGHFLYxSOGo-0.9=discard; path=/"
|
||||
+ "; expires=" + date.toGMTString());
|
||||
var submit = $("submit");
|
||||
Event.observe(submit, "click", onLoginClick);
|
||||
submit.observe("click", onLoginClick);
|
||||
|
||||
var userName = $("userName");
|
||||
userName.focus();
|
||||
|
||||
@@ -353,31 +353,31 @@ function eventsListCallback(http) {
|
||||
startDate.setTime(data[i][4] * 1000);
|
||||
row.day = startDate.getDayString();
|
||||
row.hour = startDate.getHourString();
|
||||
Event.observe(row, "mousedown", onRowClick);
|
||||
Event.observe(row, "selectstart", listRowMouseDownHandler);
|
||||
Event.observe(row, "dblclick",
|
||||
editDoubleClickedEvent.bindAsEventListener(row));
|
||||
Event.observe(row, "contextmenu",
|
||||
onEventContextMenu.bindAsEventListener(row));
|
||||
row.observe("mousedown", onRowClick);
|
||||
row.observe("selectstart", listRowMouseDownHandler);
|
||||
row.observe("dblclick",
|
||||
editDoubleClickedEvent.bindAsEventListener(row));
|
||||
row.observe("contextmenu",
|
||||
onEventContextMenu.bindAsEventListener(row));
|
||||
|
||||
var td = document.createElement("td");
|
||||
row.appendChild(td);
|
||||
Event.observe(td, "mousedown", listRowMouseDownHandler, true);
|
||||
td.observe("mousedown", listRowMouseDownHandler, true);
|
||||
td.appendChild(document.createTextNode(data[i][3]));
|
||||
|
||||
td = document.createElement("td");
|
||||
row.appendChild(td);
|
||||
Event.observe(td, "mousedown", listRowMouseDownHandler, true);
|
||||
td.observe("mousedown", listRowMouseDownHandler, true);
|
||||
td.appendChild(document.createTextNode(data[i][10]));
|
||||
|
||||
td = document.createElement("td");
|
||||
row.appendChild(td);
|
||||
Event.observe(td, "mousedown", listRowMouseDownHandler, true);
|
||||
td.observe("mousedown", listRowMouseDownHandler, true);
|
||||
td.appendChild(document.createTextNode(data[i][11]));
|
||||
|
||||
td = document.createElement("td");
|
||||
row.appendChild(td);
|
||||
Event.observe(td, "mousedown", listRowMouseDownHandler, true);
|
||||
td.observe("mousedown", listRowMouseDownHandler, true);
|
||||
td.appendChild(document.createTextNode(data[i][6]));
|
||||
}
|
||||
|
||||
@@ -418,10 +418,10 @@ function tasksListCallback(http) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var listItem = document.createElement("li");
|
||||
list.appendChild(listItem);
|
||||
// Event.observe(listItem, "mousedown", listRowMouseDownHandler);
|
||||
// Event.observe(listItem, "click", onRowClick);
|
||||
// Event.observe(listItem, "dblclick",
|
||||
// editDoubleClickedEvent.bindAsEventListener(listItem));
|
||||
// listItem.observe("mousedown", listRowMouseDownHandler);
|
||||
// listItem.observe("click", onRowClick);
|
||||
// listItem.observe("dblclick",
|
||||
// editDoubleClickedEvent.bindAsEventListener(listItem));
|
||||
listItem.setAttribute("id", data[i][0]);
|
||||
$(listItem).addClassName(data[i][5]);
|
||||
$(listItem).addClassName(data[i][6]);
|
||||
@@ -431,7 +431,7 @@ function tasksListCallback(http) {
|
||||
var input = document.createElement("input");
|
||||
input.setAttribute("type", "checkbox");
|
||||
listItem.appendChild(input);
|
||||
// Event.observe(input, "click", updateTaskStatus.bindAsEventListener(input), true);
|
||||
// input.observe("click", updateTaskStatus.bindAsEventListener(input), true);
|
||||
input.setAttribute("value", "1");
|
||||
if (data[i][2] == 1)
|
||||
input.setAttribute("checked", "checked");
|
||||
@@ -699,264 +699,264 @@ function refreshCalendarEvents(scrollEvent) {
|
||||
}
|
||||
|
||||
function refreshCalendarEventsCallback(http) {
|
||||
if (http.readyState == 4
|
||||
&& http.status == 200) {
|
||||
if (http.responseText.length > 0) {
|
||||
var data = http.responseText.evalJSON(true);
|
||||
// log("refresh calendar events: " + data.length);
|
||||
var dateTuples = new Array();
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var dates = drawCalendarEvent(data[i],
|
||||
http.callbackData["startDate"],
|
||||
http.callbackData["endDate"]);
|
||||
dates.each(function(tuple) {
|
||||
if (tuple[3] == 0) tuple[3] = 96;
|
||||
dateTuples.push(tuple);
|
||||
});
|
||||
}
|
||||
|
||||
var c = {
|
||||
div: 0,
|
||||
day: 1,
|
||||
start: 2,
|
||||
end: 3,
|
||||
siblingsCount: 4,
|
||||
siblingsPosition: 5,
|
||||
siblingsMaxCount: 6
|
||||
};
|
||||
for (var i = 0; i < dateTuples.length; i++) {
|
||||
if (dateTuples[i].length < 6) {
|
||||
dateTuples[i][c.siblingsCount] = 1;
|
||||
dateTuples[i][c.siblingsPosition] = 0;
|
||||
}
|
||||
for (var j = 0; j < dateTuples.length; j++) {
|
||||
if (j == i) continue;
|
||||
if (dateTuples[i][c.day] == dateTuples[j][c.day]) {
|
||||
// Same day
|
||||
if (dateTuples[j][c.start] > dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.start] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] == dateTuples[i][c.end] &&
|
||||
i < j) {
|
||||
// Same period
|
||||
if (dateTuples[j].length < 6) {
|
||||
dateTuples[j][c.siblingsCount] = 2;
|
||||
dateTuples[j][c.siblingsPosition] = dateTuples[i][c.siblingsPosition] + 1;
|
||||
}
|
||||
else {
|
||||
dateTuples[j][c.siblingsCount]++;
|
||||
dateTuples[j][c.siblingsPosition]++;
|
||||
}
|
||||
dateTuples[i][c.siblingsCount]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Second loop; adjust total number of siblings for each event
|
||||
for (var i = 0; i < dateTuples.length; i++) {
|
||||
//log (i + " " + dateTuples[i].inspect());
|
||||
var maxCount = 0;
|
||||
for (var j = 0; j < dateTuples.length; j++) {
|
||||
if (j == i) continue;
|
||||
if (dateTuples[i][c.day] == dateTuples[j][c.day]) {
|
||||
// Same day
|
||||
if (dateTuples[j][c.start] > dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.start] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] == dateTuples[i][c.end] &&
|
||||
i < j) {
|
||||
// Same period
|
||||
if (dateTuples[j][c.siblingsCount] > maxCount)
|
||||
maxCount = dateTuples[j][c.siblingsCount];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (maxCount > 0) {
|
||||
dateTuples[i][c.siblingsCount] = maxCount;
|
||||
dateTuples[i][c.siblingsMaxCount] = maxCount;
|
||||
}
|
||||
}
|
||||
|
||||
// Third loop; adjust position and total number of siblings for each event
|
||||
for (var i = 0; i < dateTuples.length; i++) {
|
||||
//log (i + " " + dateTuples[i].inspect());
|
||||
for (var j = 0; j < dateTuples.length; j++) {
|
||||
if (j == i) continue;
|
||||
if (dateTuples[i][c.day] == dateTuples[j][c.day]) {
|
||||
// Same day
|
||||
if (dateTuples[j][c.start] > dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.start] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] == dateTuples[i][c.end] &&
|
||||
i < j) {
|
||||
// Overlapping period
|
||||
if (dateTuples[j][c.siblingsPosition] == dateTuples[i][c.siblingsPosition]) {
|
||||
// Same position
|
||||
dateTuples[j][c.siblingsPosition]--; // not very clever
|
||||
}
|
||||
if (dateTuples[j].length < 7 ||
|
||||
dateTuples[j][c.siblingsMaxCount] < dateTuples[i][c.siblingsMaxCount])
|
||||
dateTuples[j][c.siblingsMaxCount] = dateTuples[i][c.siblingsMaxCount];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dateTuples[i].length < 7)
|
||||
dateTuples[i][c.siblingsMaxCount] = dateTuples[i][c.siblingsCount];
|
||||
}
|
||||
|
||||
// Final loop; draw the events
|
||||
//log ("[div, day, start index, end index, siblings count, siblings position, siblings max count]");
|
||||
for (var i = 0; i < dateTuples.length; i++) {
|
||||
//log (i + " " + dateTuples[i].inspect());
|
||||
|
||||
var base = dateTuples[i][c.siblingsCount] * dateTuples[i][c.siblingsMaxCount];
|
||||
var length = 1;
|
||||
var maxLength = 1 * dateTuples[i][c.siblingsMaxCount];
|
||||
|
||||
for (var j = dateTuples[i][c.siblingsCount];
|
||||
j < maxLength;
|
||||
j += dateTuples[i][c.siblingsCount]) { }
|
||||
|
||||
if (j > maxLength) {
|
||||
j -= dateTuples[i][c.siblingsCount];
|
||||
}
|
||||
|
||||
var width = 100 * j / base;
|
||||
var left = width * dateTuples[i][c.siblingsPosition];
|
||||
dateTuples[i][0].setStyle({ width: width + "%",
|
||||
left: left + "%" });
|
||||
}
|
||||
if (http.readyState == 4
|
||||
&& http.status == 200) {
|
||||
if (http.responseText.length > 0) {
|
||||
var data = http.responseText.evalJSON(true);
|
||||
// log("refresh calendar events: " + data.length);
|
||||
var dateTuples = new Array();
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var dates = drawCalendarEvent(data[i],
|
||||
http.callbackData["startDate"],
|
||||
http.callbackData["endDate"]);
|
||||
dates.each(function(tuple) {
|
||||
if (tuple[3] == 0) tuple[3] = 96;
|
||||
dateTuples.push(tuple);
|
||||
});
|
||||
}
|
||||
scrollDayView(http.callbackData["scrollEvent"]);
|
||||
}
|
||||
else
|
||||
log("AJAX error when refreshing calendar events");
|
||||
|
||||
var c = {
|
||||
div: 0,
|
||||
day: 1,
|
||||
start: 2,
|
||||
end: 3,
|
||||
siblingsCount: 4,
|
||||
siblingsPosition: 5,
|
||||
siblingsMaxCount: 6
|
||||
};
|
||||
for (var i = 0; i < dateTuples.length; i++) {
|
||||
if (dateTuples[i].length < 6) {
|
||||
dateTuples[i][c.siblingsCount] = 1;
|
||||
dateTuples[i][c.siblingsPosition] = 0;
|
||||
}
|
||||
for (var j = 0; j < dateTuples.length; j++) {
|
||||
if (j == i) continue;
|
||||
if (dateTuples[i][c.day] == dateTuples[j][c.day]) {
|
||||
// Same day
|
||||
if (dateTuples[j][c.start] > dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.start] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] == dateTuples[i][c.end] &&
|
||||
i < j) {
|
||||
// Same period
|
||||
if (dateTuples[j].length < 6) {
|
||||
dateTuples[j][c.siblingsCount] = 2;
|
||||
dateTuples[j][c.siblingsPosition] = dateTuples[i][c.siblingsPosition] + 1;
|
||||
}
|
||||
else {
|
||||
dateTuples[j][c.siblingsCount]++;
|
||||
dateTuples[j][c.siblingsPosition]++;
|
||||
}
|
||||
dateTuples[i][c.siblingsCount]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Second loop; adjust total number of siblings for each event
|
||||
for (var i = 0; i < dateTuples.length; i++) {
|
||||
//log (i + " " + dateTuples[i].inspect());
|
||||
var maxCount = 0;
|
||||
for (var j = 0; j < dateTuples.length; j++) {
|
||||
if (j == i) continue;
|
||||
if (dateTuples[i][c.day] == dateTuples[j][c.day]) {
|
||||
// Same day
|
||||
if (dateTuples[j][c.start] > dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.start] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] == dateTuples[i][c.end] &&
|
||||
i < j) {
|
||||
// Same period
|
||||
if (dateTuples[j][c.siblingsCount] > maxCount)
|
||||
maxCount = dateTuples[j][c.siblingsCount];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (maxCount > 0) {
|
||||
dateTuples[i][c.siblingsCount] = maxCount;
|
||||
dateTuples[i][c.siblingsMaxCount] = maxCount;
|
||||
}
|
||||
}
|
||||
|
||||
// Third loop; adjust position and total number of siblings for each event
|
||||
for (var i = 0; i < dateTuples.length; i++) {
|
||||
//log (i + " " + dateTuples[i].inspect());
|
||||
for (var j = 0; j < dateTuples.length; j++) {
|
||||
if (j == i) continue;
|
||||
if (dateTuples[i][c.day] == dateTuples[j][c.day]) {
|
||||
// Same day
|
||||
if (dateTuples[j][c.start] > dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.start] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] < dateTuples[i][c.end] ||
|
||||
|
||||
dateTuples[j][c.start] == dateTuples[i][c.start] &&
|
||||
dateTuples[j][c.end] == dateTuples[i][c.end] &&
|
||||
i < j) {
|
||||
// Overlapping period
|
||||
if (dateTuples[j][c.siblingsPosition] == dateTuples[i][c.siblingsPosition]) {
|
||||
// Same position
|
||||
dateTuples[j][c.siblingsPosition]--; // not very clever
|
||||
}
|
||||
if (dateTuples[j].length < 7 ||
|
||||
dateTuples[j][c.siblingsMaxCount] < dateTuples[i][c.siblingsMaxCount])
|
||||
dateTuples[j][c.siblingsMaxCount] = dateTuples[i][c.siblingsMaxCount];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dateTuples[i].length < 7)
|
||||
dateTuples[i][c.siblingsMaxCount] = dateTuples[i][c.siblingsCount];
|
||||
}
|
||||
|
||||
// Final loop; draw the events
|
||||
//log ("[div, day, start index, end index, siblings count, siblings position, siblings max count]");
|
||||
for (var i = 0; i < dateTuples.length; i++) {
|
||||
//log (i + " " + dateTuples[i].inspect());
|
||||
|
||||
var base = dateTuples[i][c.siblingsCount] * dateTuples[i][c.siblingsMaxCount];
|
||||
var length = 1;
|
||||
var maxLength = 1 * dateTuples[i][c.siblingsMaxCount];
|
||||
|
||||
for (var j = dateTuples[i][c.siblingsCount];
|
||||
j < maxLength;
|
||||
j += dateTuples[i][c.siblingsCount]) { }
|
||||
|
||||
if (j > maxLength) {
|
||||
j -= dateTuples[i][c.siblingsCount];
|
||||
}
|
||||
|
||||
var width = 100 * j / base;
|
||||
var left = width * dateTuples[i][c.siblingsPosition];
|
||||
dateTuples[i][0].setStyle({ width: width + "%",
|
||||
left: left + "%" });
|
||||
}
|
||||
}
|
||||
scrollDayView(http.callbackData["scrollEvent"]);
|
||||
}
|
||||
else
|
||||
log("AJAX error when refreshing calendar events");
|
||||
}
|
||||
|
||||
function drawCalendarEvent(eventData, sd, ed) {
|
||||
var dateTuples = new Array();
|
||||
var dateTuples = new Array();
|
||||
|
||||
var viewStartDate = sd.asDate();
|
||||
var viewEndDate = ed.asDate();
|
||||
var viewStartDate = sd.asDate();
|
||||
var viewEndDate = ed.asDate();
|
||||
|
||||
var startDate = new Date();
|
||||
startDate.setTime(eventData[4] * 1000);
|
||||
var endDate = new Date();
|
||||
endDate.setTime(eventData[5] * 1000);
|
||||
var startDate = new Date();
|
||||
startDate.setTime(eventData[4] * 1000);
|
||||
var endDate = new Date();
|
||||
endDate.setTime(eventData[5] * 1000);
|
||||
|
||||
//log ("s: " + startDate + "; e: " + endDate);
|
||||
//log ("s: " + startDate + "; e: " + endDate);
|
||||
|
||||
var days = startDate.daysUpTo(endDate);
|
||||
var days = startDate.daysUpTo(endDate);
|
||||
|
||||
var title;
|
||||
if (currentView == "monthview"
|
||||
&& (eventData[7] == 0))
|
||||
title = startDate.getDisplayHoursString() + " " + eventData[3];
|
||||
else
|
||||
title = eventData[3];
|
||||
var title;
|
||||
if (currentView == "monthview"
|
||||
&& (eventData[7] == 0))
|
||||
title = startDate.getDisplayHoursString() + " " + eventData[3];
|
||||
else
|
||||
title = eventData[3];
|
||||
|
||||
// log("title: " + title);
|
||||
// log("viewS: " + viewStartDate);
|
||||
var startHour = null;
|
||||
var endHour = null;
|
||||
// log("title: " + title);
|
||||
// log("viewS: " + viewStartDate);
|
||||
var startHour = null;
|
||||
var endHour = null;
|
||||
|
||||
var siblings = new Array();
|
||||
for (var i = 0; i < days.length; i++)
|
||||
if (days[i].earlierDate(viewStartDate) == viewStartDate
|
||||
&& days[i].laterDate(viewEndDate) == viewEndDate) {
|
||||
var starts;
|
||||
var siblings = new Array();
|
||||
for (var i = 0; i < days.length; i++)
|
||||
if (days[i].earlierDate(viewStartDate) == viewStartDate
|
||||
&& days[i].laterDate(viewEndDate) == viewEndDate) {
|
||||
var starts;
|
||||
|
||||
// log("day: " + days[i]);
|
||||
if (i == 0) {
|
||||
var quarters = (startDate.getUTCHours() * 4
|
||||
+ Math.floor(startDate.getUTCMinutes() / 15));
|
||||
starts = quarters;
|
||||
startHour = startDate.getDisplayHoursString();
|
||||
endHour = endDate.getDisplayHoursString();
|
||||
}
|
||||
else
|
||||
starts = 0;
|
||||
|
||||
var ends;
|
||||
var lasts;
|
||||
if (i == days.length - 1) {
|
||||
var quarters = (endDate.getUTCHours() * 4
|
||||
+ Math.ceil(endDate.getUTCMinutes() / 15));
|
||||
ends = quarters;
|
||||
}
|
||||
else
|
||||
ends = 96;
|
||||
lasts = ends - starts;
|
||||
if (!lasts)
|
||||
lasts = 1;
|
||||
|
||||
var eventDiv = newEventDIV(eventData[0], eventData[1], starts, lasts,
|
||||
null, null, title);
|
||||
siblings.push(eventDiv);
|
||||
eventDiv.siblings = siblings;
|
||||
if (eventData[9].length > 0)
|
||||
eventDiv.addClassName(eventData[9]); // event owner status
|
||||
//eventDiv.setStyle({ width: '50%' });
|
||||
if (currentView != "monthview" &&
|
||||
eventData[7] == 0) // not "all day"
|
||||
dateTuples.push(new Array(eventDiv, days[i].getDayString(), starts, ends));
|
||||
var dayString = days[i].getDayString();
|
||||
// log("day: " + dayString);
|
||||
var parentDiv = null;
|
||||
if (currentView == "monthview") {
|
||||
var dayDivs = $("monthDaysView").childNodesWithTag("div");
|
||||
var j = 0;
|
||||
while (!parentDiv && j < dayDivs.length) {
|
||||
if (dayDivs[j].getAttribute("day") == dayString)
|
||||
parentDiv = dayDivs[j];
|
||||
else
|
||||
j++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (eventData[7] == 0) {
|
||||
var daysView = $("daysView");
|
||||
var eventsDiv = $(daysView).childNodesWithTag("div")[1];
|
||||
var dayDivs = $(eventsDiv).childNodesWithTag("div");
|
||||
var j = 0;
|
||||
while (!parentDiv && j < dayDivs.length) {
|
||||
if (dayDivs[j].getAttribute("day") == dayString)
|
||||
parentDiv = dayDivs[j].childNodesWithTag("div")[0];
|
||||
else
|
||||
j++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var header = $("calendarHeader");
|
||||
var daysDiv = $(header).childNodesWithTag("div")[1];
|
||||
var dayDivs = $(daysDiv).childNodesWithTag("div");
|
||||
var j = 0;
|
||||
while (!parentDiv && j < dayDivs.length) {
|
||||
if (dayDivs[j].getAttribute("day") == dayString)
|
||||
parentDiv = dayDivs[j];
|
||||
else
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (parentDiv)
|
||||
parentDiv.appendChild(eventDiv);
|
||||
// log("day: " + days[i]);
|
||||
if (i == 0) {
|
||||
var quarters = (startDate.getUTCHours() * 4
|
||||
+ Math.floor(startDate.getUTCMinutes() / 15));
|
||||
starts = quarters;
|
||||
startHour = startDate.getDisplayHoursString();
|
||||
endHour = endDate.getDisplayHoursString();
|
||||
}
|
||||
else
|
||||
starts = 0;
|
||||
|
||||
var ends;
|
||||
var lasts;
|
||||
if (i == days.length - 1) {
|
||||
var quarters = (endDate.getUTCHours() * 4
|
||||
+ Math.ceil(endDate.getUTCMinutes() / 15));
|
||||
ends = quarters;
|
||||
}
|
||||
else
|
||||
ends = 96;
|
||||
lasts = ends - starts;
|
||||
if (!lasts)
|
||||
lasts = 1;
|
||||
|
||||
return dateTuples;
|
||||
var eventDiv = newEventDIV(eventData[0], eventData[1], starts, lasts,
|
||||
null, null, title);
|
||||
siblings.push(eventDiv);
|
||||
eventDiv.siblings = siblings;
|
||||
if (eventData[9].length > 0)
|
||||
eventDiv.addClassName(eventData[9]); // event owner status
|
||||
//eventDiv.setStyle({ width: '50%' });
|
||||
if (currentView != "monthview" &&
|
||||
eventData[7] == 0) // not "all day"
|
||||
dateTuples.push(new Array(eventDiv, days[i].getDayString(), starts, ends));
|
||||
var dayString = days[i].getDayString();
|
||||
// log("day: " + dayString);
|
||||
var parentDiv = null;
|
||||
if (currentView == "monthview") {
|
||||
var dayDivs = $("monthDaysView").childNodesWithTag("div");
|
||||
var j = 0;
|
||||
while (!parentDiv && j < dayDivs.length) {
|
||||
if (dayDivs[j].getAttribute("day") == dayString)
|
||||
parentDiv = dayDivs[j];
|
||||
else
|
||||
j++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (eventData[7] == 0) {
|
||||
var daysView = $("daysView");
|
||||
var eventsDiv = $(daysView).childNodesWithTag("div")[1];
|
||||
var dayDivs = $(eventsDiv).childNodesWithTag("div");
|
||||
var j = 0;
|
||||
while (!parentDiv && j < dayDivs.length) {
|
||||
if (dayDivs[j].getAttribute("day") == dayString)
|
||||
parentDiv = dayDivs[j].childNodesWithTag("div")[0];
|
||||
else
|
||||
j++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var header = $("calendarHeader");
|
||||
var daysDiv = $(header).childNodesWithTag("div")[1];
|
||||
var dayDivs = $(daysDiv).childNodesWithTag("div");
|
||||
var j = 0;
|
||||
while (!parentDiv && j < dayDivs.length) {
|
||||
if (dayDivs[j].getAttribute("day") == dayString)
|
||||
parentDiv = dayDivs[j];
|
||||
else
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (parentDiv)
|
||||
parentDiv.appendChild(eventDiv);
|
||||
}
|
||||
|
||||
return dateTuples;
|
||||
}
|
||||
|
||||
function eventClass(cname) {
|
||||
@@ -1004,11 +1004,11 @@ function newEventDIV(cname, calendar, starts, lasts,
|
||||
}
|
||||
textDiv.appendChild(document.createTextNode(title));
|
||||
|
||||
Event.observe(eventDiv, "mousedown", listRowMouseDownHandler);
|
||||
Event.observe(eventDiv, "click",
|
||||
onCalendarSelectEvent.bindAsEventListener(eventDiv));
|
||||
Event.observe(eventDiv, "dblclick",
|
||||
editDoubleClickedEvent.bindAsEventListener(eventDiv));
|
||||
eventDiv.observe("mousedown", listRowMouseDownHandler);
|
||||
eventDiv.observe("click",
|
||||
onCalendarSelectEvent.bindAsEventListener(eventDiv));
|
||||
eventDiv.observe("dblclick",
|
||||
editDoubleClickedEvent.bindAsEventListener(eventDiv));
|
||||
|
||||
return eventDiv;
|
||||
}
|
||||
@@ -1036,10 +1036,10 @@ function calendarDisplayCallback(http) {
|
||||
var days = document.getElementsByClassName("day", contentView);
|
||||
if (currentView == "monthview")
|
||||
for (var i = 0; i < days.length; i++) {
|
||||
Event.observe(days[i], "click",
|
||||
onCalendarSelectDay.bindAsEventListener(days[i]));
|
||||
Event.observe(days[i], "dblclick",
|
||||
onClickableCellsDblClick.bindAsEventListener(days[i]));
|
||||
days[i].observe("click",
|
||||
onCalendarSelectDay.bindAsEventListener(days[i]));
|
||||
days[i].observe("dblclick",
|
||||
onClickableCellsDblClick.bindAsEventListener(days[i]));
|
||||
}
|
||||
else {
|
||||
var headerDivs = $("calendarHeader").childNodesWithTag("div");
|
||||
@@ -1047,18 +1047,18 @@ function calendarDisplayCallback(http) {
|
||||
var headerDays = document.getElementsByClassName("day", headerDivs[1]);
|
||||
for (var i = 0; i < days.length; i++) {
|
||||
headerDays[i].hour = "allday";
|
||||
Event.observe(headerDaysLabels[i], "mousedown", listRowMouseDownHandler);
|
||||
Event.observe(headerDays[i], "click",
|
||||
onCalendarSelectDay.bindAsEventListener(days[i]));
|
||||
Event.observe(headerDays[i], "dblclick",
|
||||
onClickableCellsDblClick.bindAsEventListener(headerDays[i]));
|
||||
Event.observe(days[i], "click",
|
||||
onCalendarSelectDay.bindAsEventListener(days[i]));
|
||||
headerDaysLabels[i].observe("mousedown", listRowMouseDownHandler);
|
||||
headerDays[i].observe("click",
|
||||
onCalendarSelectDay.bindAsEventListener(days[i]));
|
||||
headerDays[i].observe("dblclick",
|
||||
onClickableCellsDblClick.bindAsEventListener(headerDays[i]));
|
||||
days[i].observe("click",
|
||||
onCalendarSelectDay.bindAsEventListener(days[i]));
|
||||
var clickableCells = document.getElementsByClassName("clickableHourCell",
|
||||
days[i]);
|
||||
for (var j = 0; j < clickableCells.length; j++)
|
||||
Event.observe(clickableCells[j], "dblclick",
|
||||
onClickableCellsDblClick.bindAsEventListener(clickableCells[j]));
|
||||
clickableCells[j].observe("dblclick",
|
||||
onClickableCellsDblClick.bindAsEventListener(clickableCells[j]));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1079,18 +1079,18 @@ function assignCalendar(name) {
|
||||
}
|
||||
|
||||
function popupCalendar(node) {
|
||||
var nodeId = $(node).readAttribute("inputId");
|
||||
var input = $(nodeId);
|
||||
input.calendar.popup();
|
||||
var nodeId = $(node).readAttribute("inputId");
|
||||
var input = $(nodeId);
|
||||
input.calendar.popup();
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
function onEventContextMenu(event) {
|
||||
var topNode = $("eventsList");
|
||||
var menu = $("eventsListMenu");
|
||||
|
||||
Event.observe(menu, "hideMenu", onEventContextMenuHide);
|
||||
menu.observe("hideMenu", onEventContextMenuHide);
|
||||
popupMenu(event, "eventsListMenu", this);
|
||||
}
|
||||
|
||||
@@ -1609,17 +1609,17 @@ function initCalendarSelector() {
|
||||
var items = list.childNodesWithTag("li");
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var input = items[i].childNodesWithTag("input")[0];
|
||||
Event.observe(input, "click", updateCalendarStatus.bindAsEventListener(input));
|
||||
Event.observe(items[i], "mousedown", listRowMouseDownHandler);
|
||||
Event.observe(items[i], "selectstart", listRowMouseDownHandler);
|
||||
Event.observe(items[i], "click", onRowClick);
|
||||
input.observe("click", updateCalendarStatus.bindAsEventListener(input));
|
||||
items[i].observe("mousedown", listRowMouseDownHandler);
|
||||
items[i].observe("selectstart", listRowMouseDownHandler);
|
||||
items[i].observe("click", onRowClick);
|
||||
items[i].observe("dblclick", onCalendarModify);
|
||||
}
|
||||
|
||||
var links = $("calendarSelectorButtons").childNodesWithTag("a");
|
||||
Event.observe(links[0], "click", onCalendarNew);
|
||||
Event.observe(links[1], "click", onCalendarAdd);
|
||||
Event.observe(links[2], "click", onCalendarRemove);
|
||||
links[0].observe("click", onCalendarNew);
|
||||
links[1].observe("click", onCalendarAdd);
|
||||
links[2].observe("click", onCalendarRemove);
|
||||
}
|
||||
|
||||
function onCalendarModify(event) {
|
||||
@@ -1848,50 +1848,50 @@ function deletePersonalCalendarCallback(http) {
|
||||
function configureLists() {
|
||||
var list = $("tasksList");
|
||||
list.multiselect = true;
|
||||
Event.observe(list, "mousedown",
|
||||
onTasksSelectionChange.bindAsEventListener(list));
|
||||
list.observe("mousedown",
|
||||
onTasksSelectionChange.bindAsEventListener(list));
|
||||
|
||||
var input = $("showHideCompletedTasks");
|
||||
Event.observe(input, "click",
|
||||
input.observe("click",
|
||||
onShowCompletedTasks.bindAsEventListener(input));
|
||||
|
||||
list = $("eventsList");
|
||||
list.multiselect = true;
|
||||
configureSortableTableHeaders(list);
|
||||
TableKit.Resizable.init(list, {'trueResize' : true, 'keepWidth' : true});
|
||||
Event.observe(list, "mousedown",
|
||||
onEventsSelectionChange.bindAsEventListener(list));
|
||||
list.observe("mousedown",
|
||||
onEventsSelectionChange.bindAsEventListener(list));
|
||||
}
|
||||
|
||||
function initDateSelectorEvents() {
|
||||
var arrow = $("rightArrow");
|
||||
Event.observe(arrow, "click",
|
||||
arrow.observe("click",
|
||||
onDateSelectorGotoMonth.bindAsEventListener(arrow));
|
||||
arrow = $("leftArrow");
|
||||
Event.observe(arrow, "click",
|
||||
arrow.observe("click",
|
||||
onDateSelectorGotoMonth.bindAsEventListener(arrow));
|
||||
|
||||
var menuButton = $("monthLabel");
|
||||
Event.observe(menuButton, "click",
|
||||
popupMonthMenu.bindAsEventListener(menuButton));
|
||||
menuButton.observe("click",
|
||||
popupMonthMenu.bindAsEventListener(menuButton));
|
||||
menuButton = $("yearLabel");
|
||||
Event.observe(menuButton, "click",
|
||||
popupMonthMenu.bindAsEventListener(menuButton));
|
||||
menuButton.observe("click",
|
||||
popupMonthMenu.bindAsEventListener(menuButton));
|
||||
}
|
||||
|
||||
function initCalendars() {
|
||||
sorting["attribute"] = "start";
|
||||
sorting["ascending"] = true;
|
||||
sorting["attribute"] = "start";
|
||||
sorting["ascending"] = true;
|
||||
|
||||
if (!document.body.hasClassName("popup")) {
|
||||
initDateSelectorEvents();
|
||||
initCalendarSelector();
|
||||
configureSearchField();
|
||||
configureLists();
|
||||
var selector = $("calendarSelector");
|
||||
if (selector)
|
||||
selector.attachMenu("calendarsMenu");
|
||||
}
|
||||
if (!document.body.hasClassName("popup")) {
|
||||
initDateSelectorEvents();
|
||||
initCalendarSelector();
|
||||
configureSearchField();
|
||||
configureLists();
|
||||
var selector = $("calendarSelector");
|
||||
if (selector)
|
||||
selector.attachMenu("calendarsMenu");
|
||||
}
|
||||
}
|
||||
|
||||
FastInit.addOnLoad(initCalendars);
|
||||
|
||||
@@ -26,10 +26,10 @@ function addUserCallback(http) {
|
||||
}
|
||||
|
||||
function setEventsOnUserNode(node) {
|
||||
Event.observe(node, "mousedown", listRowMouseDownHandler);
|
||||
Event.observe(node, "selectstart", listRowMouseDownHandler);
|
||||
Event.observe(node, "dblclick", onOpenUserRights);
|
||||
Event.observe(node, "click", onRowClick);
|
||||
node.observe("mousedown", listRowMouseDownHandler);
|
||||
node.observe("selectstart", listRowMouseDownHandler);
|
||||
node.observe("dblclick", onOpenUserRights);
|
||||
node.observe("click", onRowClick);
|
||||
}
|
||||
|
||||
function nodeForUser(userName, userId) {
|
||||
@@ -135,7 +135,7 @@ function onAclLoadHandler() {
|
||||
defaultUserID = $("defaultUserID").value;
|
||||
var defaultRolesBtn = $("defaultRolesBtn");
|
||||
if (defaultRolesBtn)
|
||||
Event.observe(defaultRolesBtn, "click", openRightsForDefaultUser);
|
||||
defaultRolesBtn.observe("click", openRightsForDefaultUser);
|
||||
var ul = $("userList");
|
||||
var lis = ul.childNodesWithTag("li");
|
||||
for (var i = 0; i < lis.length; i++)
|
||||
@@ -144,8 +144,8 @@ function onAclLoadHandler() {
|
||||
var buttonArea = $("userSelectorButtons");
|
||||
if (buttonArea) {
|
||||
var buttons = buttonArea.childNodesWithTag("a");
|
||||
Event.observe(buttons[0], "click", onUserAdd);
|
||||
Event.observe(buttons[1], "click", onUserRemove);
|
||||
buttons[0].observe("click", onUserAdd);
|
||||
buttons[1].observe("click", onUserRemove);
|
||||
}
|
||||
|
||||
AclEditor['userRightsHeight'] = window.opener.getUsersRightsWindowHeight();
|
||||
|
||||
@@ -305,23 +305,17 @@ function onAllDayChanged(event) {
|
||||
function initTimeWidgets(widgets) {
|
||||
this.timeWidgets = widgets;
|
||||
|
||||
Event.observe(widgets['start']['date'], "change",
|
||||
this.onAdjustTime, false);
|
||||
Event.observe(widgets['start']['hour'], "change",
|
||||
this.onAdjustTime, false);
|
||||
Event.observe(widgets['start']['minute'], "change",
|
||||
this.onAdjustTime, false);
|
||||
widgets['start']['date'].observe("change", this.onAdjustTime, false);
|
||||
widgets['start']['hour'].observe("change", this.onAdjustTime, false);
|
||||
widgets['start']['minute'].observe("change", this.onAdjustTime, false);
|
||||
|
||||
Event.observe(widgets['end']['date'], "change",
|
||||
this.onAdjustTime, false);
|
||||
Event.observe(widgets['end']['hour'], "change",
|
||||
this.onAdjustTime, false);
|
||||
Event.observe(widgets['end']['minute'], "change",
|
||||
this.onAdjustTime, false);
|
||||
widgets['end']['date'].observe("change", this.onAdjustTime, false);
|
||||
widgets['end']['hour'].observe("change", this.onAdjustTime, false);
|
||||
widgets['end']['minute'].observe("change", this.onAdjustTime, false);
|
||||
|
||||
var allDayLabel = $("allDay");
|
||||
var input = $(allDayLabel).childNodesWithTag("input")[0];
|
||||
Event.observe(input, "change", onAllDayChanged.bindAsEventListener(input));
|
||||
input.observe("change", onAllDayChanged.bindAsEventListener(input));
|
||||
if (input.checked) {
|
||||
for (var type in widgets) {
|
||||
widgets[type]['hour'].disabled = true;
|
||||
@@ -376,7 +370,7 @@ function initializeAttendeesHref() {
|
||||
var attendeesLabel = $("attendeesLabel");
|
||||
var attendeesNames = $("attendeesNames");
|
||||
|
||||
Event.observe(attendeesHref, "click", onAttendeesHrefClick, false);
|
||||
attendeesHref.observe("click", onAttendeesHrefClick, false);
|
||||
refreshAttendees();
|
||||
}
|
||||
|
||||
|
||||
@@ -395,18 +395,18 @@ function initializeWindowButtons() {
|
||||
var okButton = $("okButton");
|
||||
var cancelButton = $("cancelButton");
|
||||
|
||||
Event.observe(okButton, "click", onEditorOkClick, false);
|
||||
Event.observe(cancelButton, "click", onEditorCancelClick, false);
|
||||
okButton.observe("click", onEditorOkClick, false);
|
||||
cancelButton.observe("click", onEditorCancelClick, false);
|
||||
|
||||
var buttons = $("freeBusyViewButtons").childNodesWithTag("a");
|
||||
for (var i = 0; i < buttons.length; i++)
|
||||
Event.observe(buttons[i], "click", listRowMouseDownHandler, false);
|
||||
buttons[i].observe("click", listRowMouseDownHandler, false);
|
||||
buttons = $("freeBusyZoomButtons").childNodesWithTag("a");
|
||||
for (var i = 0; i < buttons.length; i++)
|
||||
Event.observe(buttons[i], "click", listRowMouseDownHandler, false);
|
||||
buttons[i].observe("click", listRowMouseDownHandler, false);
|
||||
buttons = $("freeBusyButtons").childNodesWithTag("a");
|
||||
for (var i = 0; i < buttons.length; i++)
|
||||
Event.observe(buttons[i], "click", listRowMouseDownHandler, false);
|
||||
buttons[i].observe("click", listRowMouseDownHandler, false);
|
||||
}
|
||||
|
||||
function onEditorOkClick(event) {
|
||||
@@ -624,7 +624,7 @@ function prepareAttendees() {
|
||||
|
||||
var inputs = tableAttendees.getElementsByTagName("input");
|
||||
inputs[inputs.length - 2].setAttribute("autocomplete", "off");
|
||||
Event.observe(inputs[inputs.length - 2], "click", newAttendee);
|
||||
inputs[inputs.length - 2].observe("click", newAttendee);
|
||||
}
|
||||
|
||||
function onWindowResize(event) {
|
||||
@@ -670,7 +670,7 @@ function onFreeBusyLoadHandler() {
|
||||
prepareAttendees();
|
||||
onWindowResize(null);
|
||||
Event.observe(window, "resize", onWindowResize);
|
||||
Event.observe($$('TABLE#freeBusy TD.freeBusyData DIV').first(), "scroll", onScroll);
|
||||
$$('TABLE#freeBusy TD.freeBusyData DIV').first().observe("scroll", onScroll);
|
||||
}
|
||||
|
||||
FastInit.addOnLoad(onFreeBusyLoadHandler);
|
||||
@@ -683,24 +683,24 @@ function initTimeWidgets(widgets) {
|
||||
assignCalendar('startTime_date');
|
||||
assignCalendar('endTime_date');
|
||||
|
||||
Event.observe(widgets['start']['date'], "change",
|
||||
widgets['start']['date'].observe("change",
|
||||
this.onAdjustTime, false);
|
||||
Event.observe(widgets['start']['hour'], "change",
|
||||
widgets['start']['hour'].observe("change",
|
||||
this.onAdjustTime, false);
|
||||
Event.observe(widgets['start']['minute'], "change",
|
||||
widgets['start']['minute'].observe("change",
|
||||
this.onAdjustTime, false);
|
||||
|
||||
Event.observe(widgets['end']['date'], "change",
|
||||
widgets['end']['date'].observe("change",
|
||||
this.onAdjustTime, false);
|
||||
Event.observe(widgets['end']['hour'], "change",
|
||||
widgets['end']['hour'].observe("change",
|
||||
this.onAdjustTime, false);
|
||||
Event.observe(widgets['end']['minute'], "change",
|
||||
widgets['end']['minute'].observe("change",
|
||||
this.onAdjustTime, false);
|
||||
|
||||
var allDayLabel = $("allDay");
|
||||
if (allDayLabel) {
|
||||
var input = $(allDayLabel).childNodesWithTag("input")[0];
|
||||
Event.observe(input, "change", onAllDayChanged.bindAsEventListener(input));
|
||||
input.observe("change", onAllDayChanged.bindAsEventListener(input));
|
||||
if (input.checked) {
|
||||
for (var type in widgets) {
|
||||
widgets[type]['hour'].disabled = true;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
function onCancelClick(event) {
|
||||
window.close();
|
||||
window.close();
|
||||
}
|
||||
|
||||
function initACLButtons() {
|
||||
Event.observe($("cancelButton"), "click", onCancelClick);
|
||||
$("cancelButton").observe("click", onCancelClick);
|
||||
}
|
||||
|
||||
FastInit.addOnLoad(initACLButtons);
|
||||
|
||||
@@ -82,7 +82,7 @@ function initializeDocumentHref() {
|
||||
var documentLabel = $("documentLabel");
|
||||
var documentUrl = $("url");
|
||||
|
||||
Event.observe(documentHref, "click", onPopupDocumentWindow, false);
|
||||
documentHref.observe("click", onPopupDocumentWindow, false);
|
||||
documentHref.setStyle({ textDecoration: "underline", color: "#00f" });
|
||||
if (documentUrl.value.length > 0) {
|
||||
documentHref.appendChild(document.createTextNode(documentUrl.value));
|
||||
@@ -90,7 +90,7 @@ function initializeDocumentHref() {
|
||||
}
|
||||
|
||||
var changeUrlButton = $("changeUrlButton");
|
||||
Event.observe(changeUrlButton, "click", onPopupUrlWindow, false);
|
||||
changeUrlButton.observe("click", onPopupUrlWindow, false);
|
||||
}
|
||||
|
||||
function initializePrivacyMenu() {
|
||||
@@ -114,16 +114,16 @@ function onComponentEditorLoad(event) {
|
||||
initializeDocumentHref();
|
||||
initializePrivacyMenu();
|
||||
var list = $("calendarList");
|
||||
Event.observe(list, "mousedown",
|
||||
list.observe("mousedown",
|
||||
onChangeCalendar.bindAsEventListener(list),
|
||||
false);
|
||||
list.fire("mousedown");
|
||||
|
||||
var menuItems = $("itemPrivacyList").childNodesWithTag("li");
|
||||
for (var i = 0; i < menuItems.length; i++)
|
||||
Event.observe(menuItems[i], "mousedown",
|
||||
onMenuSetClassification.bindAsEventListener(menuItems[i]),
|
||||
false);
|
||||
menuItems[i].observe("mousedown",
|
||||
onMenuSetClassification.bindAsEventListener(menuItems[i]),
|
||||
false);
|
||||
|
||||
$("repeatHref").observe("click", onPopupRecurrenceWindow);
|
||||
$("repeatList").observe("change", onPopupRecurrenceWindow);
|
||||
|
||||
@@ -4,7 +4,7 @@ function onCancelClick(event) {
|
||||
|
||||
function initACLButtons() {
|
||||
var button = $("cancelButton");
|
||||
Event.observe(button, "click", onCancelClick);
|
||||
button.observe("click", onCancelClick);
|
||||
}
|
||||
|
||||
FastInit.addOnLoad(initACLButtons);
|
||||
|
||||
@@ -198,7 +198,7 @@ function clickedEditorAttach(sender) {
|
||||
name: attachmentName },
|
||||
area);
|
||||
attachmentCount++;
|
||||
Event.observe(newAttachment, "change",
|
||||
newAttachment.observe("change",
|
||||
onAttachmentChange.bindAsEventListener(newAttachment));
|
||||
}
|
||||
|
||||
@@ -225,7 +225,7 @@ function createAttachment(node, list) {
|
||||
var attachment = createElement("li", null, null, { node: node }, null, list);
|
||||
createElement("img", null, null, { src: ResourcesURL + "/attachment.gif" },
|
||||
null, attachment);
|
||||
Event.observe(attachment, "click", onRowClick);
|
||||
attachment.observe("click", onRowClick);
|
||||
|
||||
var filename = node.value;
|
||||
var separator;
|
||||
|
||||
@@ -69,8 +69,8 @@ function initializeWindowButtons() {
|
||||
var okButton = $("okButton");
|
||||
var cancelButton = $("cancelButton");
|
||||
|
||||
Event.observe(okButton, "click", onEditorOkClick, false);
|
||||
Event.observe(cancelButton, "click", onEditorCancelClick, false);
|
||||
okButton.observe("click", onEditorOkClick, false);
|
||||
cancelButton.observe("click", onEditorCancelClick, false);
|
||||
|
||||
var repeatType = $("repeatType");
|
||||
setRepeatType(parseInt(repeatType.value));
|
||||
|
||||
@@ -251,9 +251,9 @@ this.onAdjustDueTime = function(event) {
|
||||
this.initTimeWidgets = function (widgets) {
|
||||
this.timeWidgets = widgets;
|
||||
|
||||
Event.observe(widgets['start']['date'], "change", this.onAdjustDueTime, false);
|
||||
Event.observe(widgets['start']['hour'], "change", this.onAdjustDueTime, false);
|
||||
Event.observe(widgets['start']['minute'], "change", this.onAdjustDueTime, false);
|
||||
widgets['start']['date'].observe("change", this.onAdjustDueTime, false);
|
||||
widgets['start']['hour'].observe("change", this.onAdjustDueTime, false);
|
||||
widgets['start']['minute'].observe("change", this.onAdjustDueTime, false);
|
||||
};
|
||||
|
||||
function onStatusListChange(event) {
|
||||
@@ -290,7 +290,7 @@ function onStatusListChange(event) {
|
||||
|
||||
function initializeStatusLine() {
|
||||
var statusList = $("statusList");
|
||||
Event.observe(statusList, "mouseup", onStatusListChange, false);
|
||||
statusList.observe("mouseup", onStatusListChange, false);
|
||||
}
|
||||
|
||||
function onTaskEditorLoad() {
|
||||
|
||||
Reference in New Issue
Block a user