Monotone-Parent: 54c85a5614fa048abcccf4fa8fca5d26070fe53f

Monotone-Revision: aff338d65b5e579727f2177355e636b8689e074d

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-10-18T21:53:47
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2006-10-18 21:53:47 +00:00
parent df35bb01fd
commit b21593277d
7 changed files with 88 additions and 48 deletions

View File

@@ -15,6 +15,9 @@ var cachedDateSelectors = new Array();
var contactSelectorAction = 'calendars-contacts';
var eventsToDelete = new Array();
var ownersOfEventsToDelete = new Array();
function newEvent(sender, type) {
var day = sender.getAttribute("day");
if (!day)
@@ -61,19 +64,14 @@ function editEvent() {
return false; /* stop following the link */
}
function _batchDeleteEvents(events, owner) {
function _batchDeleteEvents() {
var events = eventsToDelete.shift();
var owner = ownersOfEventsToDelete.shift();
var urlstr = (UserFolderURL + "../" + owner + "/Calendar/batchDelete?ids="
+ events.join('/'));
if (document.deleteEventAjaxRequest) {
document.deleteEventAjaxRequest.nextUrls.push(urlstr);
document.deleteEventAjaxRequest.callbackData.push(events);
} else {
document.deleteEventAjaxRequest = triggerAjaxRequest(urlstr,
deleteEventCallback,
events);
document.deleteEventAjaxRequest.nextUrls = new Array();
document.deleteEventAjaxRequest.callbackData = new Array();
}
document.deleteEventAjaxRequest = triggerAjaxRequest(urlstr,
deleteEventCallback,
events);
}
function deleteEvent()
@@ -83,20 +81,26 @@ function deleteEvent()
if (nodes.length > 0) {
if (confirm(labels["appointmentDeleteConfirmation"].decodeEntities())) {
if (document.deleteEventAjaxRequest) {
document.deleteEventAjaxRequest.aborted = true;
document.deleteEventAjaxRequest.abort();
}
var sortedNodes = new Array();
var owners = new Array();
for (var i = 0; i < nodes.length; i++) {
var owner = nodes[i].getAttribute("owner");
if (!sortedNodes[owner])
{
if (!sortedNodes[owner]) {
sortedNodes[owner] = new Array();
owners.push(owner);
}
}
sortedNodes[owner].push(nodes[i].getAttribute("id"));
}
for (var i = 0; i < owners.length; i++)
_batchDeleteEvents(sortedNodes[owners[i]], owners[i]);
for (var i = 0; i < owners.length; i++) {
ownersOfEventsToDelete.push(owners[i]);
eventsToDelete.push(sortedNodes[owners[i]]);
}
_batchDeleteEvents();
}
}
}
@@ -104,32 +108,23 @@ function deleteEvent()
return false;
}
/* ugly piece of non-working code.
If you want to implement chained ajax events, implement it correctly!! */
function deleteEventCallback(http)
{
if (http.readyState == 4
&& http.status == 200) {
var nodes = null;
if (document.deleteEventAjaxRequest.nextUrls.length) {
var nextUrls = document.deleteEventAjaxRequest.nextUrls;
var nextCBd = document.deleteEventAjaxRequest.callbackData;
nodes = $(nextCBd.shift());
document.deleteEventAjaxRequest
= triggerAjaxRequest(nextUrls.shift(),
deleteEventCallback,
nextCBd);
document.deleteEventAjaxRequest.nextUrls = nextUrls;
document.deleteEventAjaxRequest.callbackData = nextCBd;
} else {
document.deleteEventAjaxRequest = null;
nodes = $(http.callbackData);
}
var nodes = $(http.callbackData);
for (var i = 0; i < nodes.length; i++) {
var node = $(nodes[i]);
node.parentNode.removeChild(node);
}
if (eventsToDelete.length)
_batchDeleteEvents();
else {
document.deleteEventAjaxRequest = null;
refreshAppointments();
refreshTasks();
changeCalendarDisplay();
}
}
else
log ("ajax fuckage");
@@ -428,7 +423,7 @@ function calendarDisplayCallback(http)
currentDay = http.callbackData["day"];
var hour = null;
if (http.callbackData["hour"])
hour = http.callbackData["hour"]
hour = http.callbackData["hour"];
scrollDayView(hour);
}
else
@@ -549,6 +544,12 @@ function refreshTasks() {
return _loadTasksHref("taskslist?hide-completed=" + hideCompletedTasks);
}
function refreshAppointmentsAndDisplay()
{
refreshAppointments();
changeCalendarDisplay();
}
function onListFilterChange() {
var node = $("filterpopup");