Added support for remote iCal calendars.

Monotone-Parent: a1fe20acf2d2d8408bcf2e8c36a38204f8d1bfad
Monotone-Revision: bb2513b08d345dfc89b0cd702a39ac0eeb276c3d

Monotone-Author: crobert@inverse.ca
Monotone-Date: 2009-09-10T17:26:57
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
C Robert
2009-09-10 17:26:57 +00:00
parent cec888b0c0
commit 9d46c890d1
30 changed files with 579 additions and 36 deletions
+38 -4
View File
@@ -872,11 +872,23 @@ function onMonthOverview() {
}
function onCalendarReload() {
changeCalendarDisplay(null, currentView);
reloadWebCalendars ();
return false;
}
function reloadWebCalendars () {
var url = ApplicationBaseURL + "reloadWebCalendars";
if (document.reloadWebCalAjaxRequest) {
document.reloadWebCalAjaxRequest.aborted = true;
document.reloadWebCalAjaxRequest.abort();
}
document.reloadWebCalAjaxRequest
= triggerAjaxRequest(url, reloadWebCalendarsCallback);
}
function reloadWebCalendarsCallback (http) {
changeCalendarDisplay(null, currentView);
}
function scrollDayView(scrollEvent) {
if (!preventAutoScroll) {
if (scrollEvent) {
@@ -1830,8 +1842,9 @@ function initCalendarSelector() {
var links = $("calendarSelectorButtons").childNodesWithTag("a");
$(links[0]).observe("click", onCalendarNew);
$(links[1]).observe("click", onCalendarAdd);
$(links[2]).observe("click", onCalendarRemove);
$(links[1]).observe("click", onCalendarWebAdd);
$(links[2]).observe("click", onCalendarAdd);
$(links[3]).observe("click", onCalendarRemove);
}
function onCalendarModify(event) {
@@ -1877,6 +1890,27 @@ function onCalendarAdd(event) {
openUserFolderSelector(onFolderSubscribeCB, "calendar");
preventDefault(event);
}
function onCalendarWebAdd(event) {
var calendarUrl = window.prompt(labels["URL of the Calendar"], "");
if (calendarUrl) {
if (document.addWebCalendarRequest) {
document.addWebCalendarRequest.aborted = true;
document.addWebCalendarRequest.abort ();
}
var url = ApplicationBaseURL + "/addWebCalendar?url=" + escape (calendarUrl);
document.addWebCalendarRequest =
triggerAjaxRequest (url, addWebCalendarCallback);
}
}
function addWebCalendarCallback (http) {
var data = http.responseText.evalJSON(true);
appendCalendar(data.displayname, "/" + data.name);
refreshEvents();
refreshTasks();
changeCalendarDisplay();
}
function onCalendarExport(event) {
var node = $("calendarList").getSelectedNodes().first();
var owner = node.getAttribute("owner");