Bug 994200 - Changing calendar in event dialog may cause an inappropriate organizer/attendee set. r+a=philipp
CLOSED TREE
--- a/calendar/base/content/dialogs/calendar-event-dialog.js
+++ b/calendar/base/content/dialogs/calendar-event-dialog.js
@@ -28,16 +28,17 @@ var gPrivacy = null;
var gAttachMap = {};
var gPriority = 0;
var gStatus = "NONE";
var gConfirmCancel = true;
var gLastRepeatSelection = 0;
var gIgnoreUpdate = false;
var gShowTimeAs = null;
var gWarning = false;
+var gPreviousCalendarId = null;
var eventDialogQuitObserver = {
observe: function(aSubject, aTopic, aData) {
// Check whether or not we want to veto the quit request (unless another
// observer already did.
if (aTopic == "quit-application-requested" &&
(aSubject instanceof Components.interfaces.nsISupportsPRBool) &&
!aSubject.data)
@@ -2143,22 +2144,27 @@ function attachmentLinkClicked(event) {
* Update the dialog controls related related to the item's calendar.
*/
function updateCalendar() {
let item = window.calendarItem;
let calendar = getCurrentCalendar();
gIsReadOnly = calendar.readOnly;
+ if (!gPreviousCalendarId) {
+ gPreviousCalendarId = item.calendar.id;
+ }
+
// We might have to change the organizer, let's see
let calendarOrgId = calendar.getProperty("organizerId");
- if (window.organizer && calendar.aclEntry && calendarOrgId &&
- calendar.id != item.calendar.id) {
+ if (window.organizer && calendarOrgId &&
+ calendar.id != gPreviousCalendarId) {
window.organizer.id = calendarOrgId;
window.organizer.commonName = calendar.getProperty("organizerCN");
+ gPreviousCalendarId = calendar.id;
}
if (!canNotifyAttendees(calendar, item) && calendar.getProperty("imip.identity")) {
enableElement("notify-attendees-checkbox");
} else {
disableElement("notify-attendees-checkbox");
}