Monotone-Parent: d14cdc346d1ed672a7a9922c642a4eeb5cf499ca
Monotone-Revision: fad4af384953bf77b8c1da664d7deab40e8cfdc5 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-08-02T23:16:50 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
08203c6f40
commit
9963e8f831
4
NEWS
4
NEWS
|
@ -1,3 +1,7 @@
|
||||||
|
1.0-200808XX
|
||||||
|
------------
|
||||||
|
- fixed a bug that would prevent deleted event and tasks from being removed from the events and tasks list
|
||||||
|
|
||||||
0.9.0-20080729 (1.0 rc7)
|
0.9.0-20080729 (1.0 rc7)
|
||||||
------------------------
|
------------------------
|
||||||
- work around the situation where Courier IMAP would refuse to rename the current mailbox or move it into the trash
|
- work around the situation where Courier IMAP would refuse to rename the current mailbox or move it into the trash
|
||||||
|
|
|
@ -113,7 +113,8 @@ function _batchDeleteEvents() {
|
||||||
+ "/batchDelete?ids=" + events.join('/'));
|
+ "/batchDelete?ids=" + events.join('/'));
|
||||||
document.deleteEventAjaxRequest = triggerAjaxRequest(urlstr,
|
document.deleteEventAjaxRequest = triggerAjaxRequest(urlstr,
|
||||||
deleteEventCallback,
|
deleteEventCallback,
|
||||||
events);
|
{ calendar: calendar,
|
||||||
|
events: events });
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteEvent() {
|
function deleteEvent() {
|
||||||
|
@ -133,12 +134,12 @@ function deleteEvent() {
|
||||||
else {
|
else {
|
||||||
if (confirm(label)) {
|
if (confirm(label)) {
|
||||||
if (document.deleteEventAjaxRequest) {
|
if (document.deleteEventAjaxRequest) {
|
||||||
document.deleteEventAjaxRequest.aborted = true;
|
document.deleteEventAjaxRequest.aborted = true;
|
||||||
document.deleteEventAjaxRequest.abort();
|
document.deleteEventAjaxRequest.abort();
|
||||||
}
|
}
|
||||||
var sortedNodes = [];
|
var sortedNodes = [];
|
||||||
var calendars = [];
|
var calendars = [];
|
||||||
|
|
||||||
for (var i = 0; i < nodes.length; i++) {
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
var calendar = nodes[i].calendar;
|
var calendar = nodes[i].calendar;
|
||||||
if (!sortedNodes[calendar]) {
|
if (!sortedNodes[calendar]) {
|
||||||
|
@ -231,27 +232,59 @@ function modifyEventCallback(http) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _deleteCalendarEventBlocks(calendar, cname) {
|
||||||
|
var events = calendarEvents[calendar];
|
||||||
|
if (events) {
|
||||||
|
var occurences = events[cname];
|
||||||
|
if (occurences)
|
||||||
|
for (var i = 0; i < occurences.length; i++) {
|
||||||
|
var nodes = occurences[i].blocks;
|
||||||
|
for (var j = 0; j < nodes.length; j++) {
|
||||||
|
var node = nodes[j];
|
||||||
|
node.parentNode.removeChild(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _deleteEventFromTables(basename) {
|
||||||
|
var tables = [ $("eventsList"), $("tasksList") ];
|
||||||
|
for (var i = 0; i < 2; i++) {
|
||||||
|
var table = tables[i];
|
||||||
|
if (table.tBodies)
|
||||||
|
rows = table.tBodies[0].rows;
|
||||||
|
else
|
||||||
|
rows = $(table).childNodesWithTag("li");
|
||||||
|
for (var j = rows.length; j > 0; j--) {
|
||||||
|
var row = $(rows[j - 1]);
|
||||||
|
var id = row.getAttribute("id");
|
||||||
|
if (id.indexOf(basename) == 0)
|
||||||
|
row.parentNode.removeChild(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function deleteEventCallback(http) {
|
function deleteEventCallback(http) {
|
||||||
if (http.readyState == 4) {
|
if (http.readyState == 4) {
|
||||||
if (isHttpStatus204(http.status)) {
|
if (isHttpStatus204(http.status)) {
|
||||||
var isTask = false;
|
var isTask = false;
|
||||||
var nodes = http.callbackData;
|
var calendar = http.callbackData.calendar;
|
||||||
for (var i = 0; i < nodes.length; i++) {
|
var events = http.callbackData.events;
|
||||||
var node = $(nodes[i]);
|
|
||||||
if (node) {
|
// log("calendar: " + calendar + "\n");
|
||||||
isTask = isTask || (node.parentNode.id == 'tasksList');
|
// log("events: " + events.join(", " ) + "\n");
|
||||||
node.parentNode.removeChild(node);
|
for (var i = 0; i < events.length; i++) {
|
||||||
}
|
var cname = events[i];
|
||||||
|
_deleteCalendarEventBlocks(calendar, cname);
|
||||||
|
_deleteEventFromTables(calendar + "-" + cname);
|
||||||
|
delete calendarEvents[calendar][cname];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventsToDelete.length)
|
if (eventsToDelete.length)
|
||||||
_batchDeleteEvents();
|
_batchDeleteEvents();
|
||||||
else {
|
else {
|
||||||
document.deleteEventAjaxRequest = null;
|
document.deleteEventAjaxRequest = null;
|
||||||
}
|
}
|
||||||
if (isTask)
|
|
||||||
deleteTasksFromViews(nodes);
|
|
||||||
else
|
|
||||||
deleteEventsFromViews(nodes)
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
log ("deleteEventCallback Ajax error");
|
log ("deleteEventCallback Ajax error");
|
||||||
|
@ -272,31 +305,6 @@ function getEventById(cname, owner) {
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteTasksFromViews(tasks) {
|
|
||||||
}
|
|
||||||
|
|
||||||
function deleteEventsFromViews(events) {
|
|
||||||
if (calendarEvents) {
|
|
||||||
for (var i = 0; i < events.length; i++) {
|
|
||||||
// FIXME cname + !calendar + siblings
|
|
||||||
var cname = events[i];
|
|
||||||
var event = calendarEvents[cname];
|
|
||||||
if (event) {
|
|
||||||
if (event.siblings) {
|
|
||||||
for (var j = 0; j < event.siblings.length; j++) {
|
|
||||||
var eventDiv = event.siblings[j];
|
|
||||||
eventDiv.parentNode.removeChild(eventDiv);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
delete calendarEvents[cname]
|
|
||||||
}
|
|
||||||
var row = $(cname);
|
|
||||||
if (row)
|
|
||||||
row.parentNode.removeChild(row);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function _editRecurrenceDialog(eventDiv, method) {
|
function _editRecurrenceDialog(eventDiv, method) {
|
||||||
var targetname = "SOGo_edit_" + eventDiv.cname + eventDiv.recurrenceTime;
|
var targetname = "SOGo_edit_" + eventDiv.cname + eventDiv.recurrenceTime;
|
||||||
var urlstr = (ApplicationBaseURL + eventDiv.calendar + "/" + eventDiv.cname
|
var urlstr = (ApplicationBaseURL + eventDiv.calendar + "/" + eventDiv.cname
|
||||||
|
@ -351,13 +359,13 @@ function performDeleteEventCallback(http) {
|
||||||
var calendar = nodes[0].calendar;
|
var calendar = nodes[0].calendar;
|
||||||
for (var i = 0; i < nodes.length; i++) {
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
var node = nodes[i];
|
var node = nodes[i];
|
||||||
log("node: " + node);
|
// log("node: " + node);
|
||||||
node.parentNode.removeChild(node);
|
node.parentNode.removeChild(node);
|
||||||
}
|
}
|
||||||
var basename = calendar + "-" + cname;
|
var basename = calendar + "-" + cname;
|
||||||
if (occurenceTime) {
|
if (occurenceTime) {
|
||||||
var row = $(basename + "-" + occurenceTime);
|
var row = $(basename + "-" + occurenceTime);
|
||||||
log("rowID: " + basename + "-" + occurenceTime);
|
// log("rowID: " + basename + "-" + occurenceTime);
|
||||||
if (row)
|
if (row)
|
||||||
row.parentNode.removeChild(row);
|
row.parentNode.removeChild(row);
|
||||||
|
|
||||||
|
@ -371,21 +379,8 @@ function performDeleteEventCallback(http) {
|
||||||
calendarEvents[calendar][cname] = newOccurences;
|
calendarEvents[calendar][cname] = newOccurences;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
log("basename: " + basename);
|
// log("basename: " + basename);
|
||||||
var tables = [ "eventsList", "tasksList" ];
|
_deleteEventFromTables(basename);
|
||||||
for (var i = 0; i < 2; i++) {
|
|
||||||
var table = $(tables[i]);
|
|
||||||
if (table.tBodies)
|
|
||||||
rows = table.tBodies[0].rows;
|
|
||||||
else
|
|
||||||
rows = $(table).childNodesWithTag("li");
|
|
||||||
for (var j = rows.length; j > 0; j--) {
|
|
||||||
var row = $(rows[j - 1]);
|
|
||||||
var id = row.getAttribute("id");
|
|
||||||
if (id.indexOf(basename) == 0)
|
|
||||||
row.parentNode.removeChild(row);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
delete calendarEvents[calendar][cname];
|
delete calendarEvents[calendar][cname];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -566,12 +561,15 @@ function tasksListCallback(http) {
|
||||||
listItem.observe("mousedown", listRowMouseDownHandler);
|
listItem.observe("mousedown", listRowMouseDownHandler);
|
||||||
listItem.observe("click", onRowClick);
|
listItem.observe("click", onRowClick);
|
||||||
listItem.observe("dblclick", editDoubleClickedEvent);
|
listItem.observe("dblclick", editDoubleClickedEvent);
|
||||||
listItem.setAttribute("id", data[i][0]);
|
|
||||||
|
var calendar = escape(data[i][1]);
|
||||||
|
var cname = escape(data[i][0]);
|
||||||
|
listItem.setAttribute("id", calendar + "-" + cname);
|
||||||
listItem.addClassName(data[i][5]);
|
listItem.addClassName(data[i][5]);
|
||||||
listItem.addClassName(data[i][6]);
|
listItem.addClassName(data[i][6]);
|
||||||
listItem.calendar = data[i][1];
|
listItem.calendar = calendar;
|
||||||
listItem.addClassName("calendarFolder" + data[i][1]);
|
listItem.addClassName("calendarFolder" + calendar);
|
||||||
listItem.cname = escape(data[i][0]);
|
listItem.cname = cname;
|
||||||
var input = $(document.createElement("input"));
|
var input = $(document.createElement("input"));
|
||||||
input.setAttribute("type", "checkbox");
|
input.setAttribute("type", "checkbox");
|
||||||
listItem.appendChild(input);
|
listItem.appendChild(input);
|
||||||
|
|
Loading…
Reference in New Issue