Bug 295990: fix creation of multiple storage calendars, by finding an unused

id via brute force and ignorance. r=vlad,r2=pavlov.
This commit is contained in:
shaver%mozilla.org 2005-06-21 19:45:13 +00:00
Родитель 6bc188f15a
Коммит 5866a5e7dd
1 изменённых файлов: 16 добавлений и 2 удалений

Просмотреть файл

@ -65,7 +65,7 @@ function doCreateCalendar()
var uri;
if (type == 'local') {
provider = 'storage';
uri = 'moz-profile-calendar://';
uri = 'moz-profile-calendar://?id=2';
} else {
uri = document.getElementById("calendar-uri").value;
var format = document.getElementById('calendar-format').selectedItem.value;
@ -75,12 +75,26 @@ function doCreateCalendar()
provider = 'caldav';
}
var calManager = getCalendarManager();
var cals = calManager.getCalendars({});
do {
var already = cals.filter(function (c) { return c.uri.spec == uri; })
if (already.length) {
if (type != 'local') {
// signalError("Already have calendar at this URI.");
Components.reportError("Already have calendar with URI " + uri);
return false;
}
uri = uri.replace(/id=(\d+)/,
function (s, id) { return "id=" + (Number(id) + 1); });
}
} while (already.length);
dump(cal_name + "\n");
dump(cal_color + "\n");
dump(uri + "\n");
dump(provider + "\n");
var calManager = getCalendarManager();
try {
var newCalendar = calManager.createCalendar(provider, makeURL(uri));
} catch (ex) {