diff --git a/mozilla/calendar/base/src/calCalendarManager.js b/mozilla/calendar/base/src/calCalendarManager.js
index 4cfc15afacc..ed6981028e5 100644
--- a/mozilla/calendar/base/src/calCalendarManager.js
+++ b/mozilla/calendar/base/src/calCalendarManager.js
@@ -73,21 +73,11 @@ calCalendarManager.prototype = {
return this;
},
- findDB: function() {
- var pathString = "c:\\builds\\mozilla\\objdir-sunbird\\dist\\bin\\calendar.db";
- var dbFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
- dbFile.initWithPath(pathString);
- var ioservice = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
- uri = ioservice.newFileURI(dbFile);
- return uri.QueryInterface(Components.interfaces.nsIFileURL);
- },
-
initDB: function() {
var calendarTable = "id INTEGER PRIMARY KEY, name STRING, type STRING, uri STRING";
var dbService = Components.classes[kStorageServiceContractID].getService(kStorageServiceIID);
this.mDB = dbService.getProfileStorage("profile");
-// this.mDB = dbService.openDatabase(this.findDB().file);
try {
this.mDB.createTable("cal_calendars", calendarTable);
} catch (e) {
@@ -138,6 +128,7 @@ calCalendarManager.prototype = {
*/
createCalendar: function(name, type, uri) {
var calendar = Components.classes["@mozilla.org/calendar/calendar;1?type=" + type].createInstance(Components.interfaces.calICalendar);
+ calendar.name = name;
calendar.uri = uri;
return calendar;
},
diff --git a/mozilla/calendar/resources/content/calendar.js b/mozilla/calendar/resources/content/calendar.js
index c2651b5ffbc..088e247ed54 100644
--- a/mozilla/calendar/resources/content/calendar.js
+++ b/mozilla/calendar/resources/content/calendar.js
@@ -196,8 +196,8 @@ function calendarInit()
update_date();
checkForMailNews();
-
- //updateColors();
+
+ //updateColors();
}
function updateColors()
@@ -333,6 +333,11 @@ function calendarFinish()
gICalLib.removeObserver( gEventSource.alarmObserver );
}
+function newCalendarDialog()
+{
+ openDialog("chrome://calendar/content/calendarCreation.xul", "caEditServer", "chrome,titlebar,modal" );
+}
+
function launchPreferences()
{
if (applicationName == "Mozilla" || applicationName == "Firebird")
@@ -723,6 +728,11 @@ function createAttachment()
return Components.classes["@mozilla.org/calendar/attachment;1"].createInstance(Components.interfaces.calIAttachment);
}
+function getCalendarManager()
+{
+ return Components.classes["@mozilla.org/calendar/manager;1"].getService(Components.interfaces.calICalendarManager);
+}
+
function makeURL(uriString)
{
var ioservice = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
@@ -1671,3 +1681,27 @@ function calendarDefaultTimezone() {
return gDefaultTimezone;
}
+
+function doCreateWizardFinish()
+{
+ var name = document.getElementById("calendar-name").value;
+ var uri = document.getElementById("calendar-uri").value;
+ var type = document.getElementById("initial-radiogroup").value;
+
+ dump(name + "\n");
+ dump(uri + "\n");
+ dump(type + "\n");
+
+ var calManager = getCalendarManager();
+ try {
+ var newCalendar = calManager.createCalendar(name, type, makeURL(uri));
+ } catch (ex) {
+ dump(ex);
+ return false;
+ }
+ calManager.registerCalendar(newCalendar);
+
+ addCalendarToUI(newCalendar);
+
+ return true;
+}
diff --git a/mozilla/calendar/resources/content/calendar.xul b/mozilla/calendar/resources/content/calendar.xul
index 3f396d6ace3..0f9a037a116 100644
--- a/mozilla/calendar/resources/content/calendar.xul
+++ b/mozilla/calendar/resources/content/calendar.xul
@@ -99,7 +99,7 @@
-
+
@@ -518,7 +518,7 @@
+ contextmenu="calendarlist-context-menu">
@@ -527,24 +527,6 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mozilla/calendar/resources/content/calendarCreation.xul b/mozilla/calendar/resources/content/calendarCreation.xul
new file mode 100755
index 00000000000..f65a491bd22
--- /dev/null
+++ b/mozilla/calendar/resources/content/calendarCreation.xul
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label="Find a File"/>
+
+ Calendar created! Way to go!
+
+
+
+
diff --git a/mozilla/calendar/resources/content/calendarWindow.js b/mozilla/calendar/resources/content/calendarWindow.js
index 07de8bcc2cd..d15c011ee16 100644
--- a/mozilla/calendar/resources/content/calendarWindow.js
+++ b/mozilla/calendar/resources/content/calendarWindow.js
@@ -154,6 +154,19 @@ function CalendarWindow( )
calendar.addObserver(calendarObserver, calendar.ITEM_FILTER_TYPE_ALL);
+
+
+
+ // fill in the calendars list
+ dump("\n\n\nlooking for calendars!!\n\n\n");
+ var calendars = getCalendarManager().getCalendars({});
+ for (var i = 0; i < calendars.length; i++) {
+ dump(calendars[i]);
+ addCalendarToUI(calendars[i]);
+ }
+
+
+
/*
this.calendarEventDataSourceObserver =
{
@@ -234,6 +247,19 @@ function CalendarWindow( )
}
+function addCalendarToUI(calendar)
+{
+ var listItem = document.createElement("listitem");
+ var listCell = document.createElement("listcell");
+ listCell.setAttribute("label", calendar.name);
+ listItem.appendChild(listCell);
+ listItem.calendar = calendar;
+ var calendarList = document.getElementById("list-calendars-listbox");
+ calendarList.appendChild(listItem);
+}
+
+
+
/** PUBLIC
*
* You must call this when you have finished with the CalendarWindow.
@@ -1045,3 +1071,44 @@ CalendarView.prototype.preferredDaysOff = function() {
}
return isDayOff;
}
+
+function deleteCalendar( )
+{
+ // Show a dialog with option to import events with or without dialogs
+ var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService();
+ promptService = promptService.QueryInterface(Components.interfaces.nsIPromptService);
+ var result = {value:0};
+
+ var buttonPressed =
+ promptService.confirmEx(window,
+ gCalendarBundle.getString( "deleteCalendarTitle" ), gCalendarBundle.getString( "deleteCalendarMessage" ),
+ (promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0) +
+ (promptService.BUTTON_TITLE_CANCEL * promptService.BUTTON_POS_1) +
+ (promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_2),
+ gCalendarBundle.getString( "deleteCalendarOnly" ),null,gCalendarBundle.getString( "deleteCalendarAndFile" ),null, result);
+
+
+
+ var calendarList = document.getElementById("list-calendars-listbox");
+ var selectedCalendar = calendarList.currentItem.calendar;
+
+ if (buttonPressed == 0) {
+ // Delete calendar
+ getCalendarManager().unregisterCalendar(selectedCalendar);
+ }
+ else if(buttonPressed == 2) //delete calendar and file
+ {
+ getCalendarManager().unregisterCalendar(selectedCalendar);
+ getCalendarManager().deleteCalendar(selectedCalendar);
+ }
+ else if(buttonPressed == 1) // CANCEL
+ {
+ return false;
+ }
+
+ calendarList.removeChild(calendarList.currentItem);
+
+ refreshView();
+
+ return true;
+}
diff --git a/mozilla/calendar/resources/jar.mn b/mozilla/calendar/resources/jar.mn
index efcd3ce3266..29de974fca2 100644
--- a/mozilla/calendar/resources/jar.mn
+++ b/mozilla/calendar/resources/jar.mn
@@ -20,6 +20,7 @@ calendar.jar:
content/calendar/calPrintEngine.js (content/calPrintEngine.js)
content/calendar/calPrintEngine.xul (content/calPrintEngine.xul)
content/calendar/calPrintEngine.css (content/calPrintEngine.css)
+ content/calendar/calendarCreation.xul (content/calendarCreation.xul)
content/calendar/clipboard.js (content/clipboard.js)
* content/calendar/contents.rdf (content/contents.rdf)
content/calendar/dateUtils.js (content/dateUtils.js)
diff --git a/mozilla/calendar/sunbird/base/content/calendar-sets.inc b/mozilla/calendar/sunbird/base/content/calendar-sets.inc
index 5d29277a06d..67c5923aab8 100644
--- a/mozilla/calendar/sunbird/base/content/calendar-sets.inc
+++ b/mozilla/calendar/sunbird/base/content/calendar-sets.inc
@@ -70,7 +70,7 @@
-
+