From 2f700ce9e591a5b6d46e2a72e67fd1d5d1b3aea0 Mon Sep 17 00:00:00 2001 From: "jminta%gmail.com" Date: Thu, 8 Sep 2005 16:04:58 +0000 Subject: [PATCH] Bug 307230 Honor default alarm preferences for new events/tasks. Fix eventDialog handling of task alarms. r=mvl --- calendar/resources/content/calendar.js | 35 +++++++++++++++++++++-- calendar/resources/content/eventDialog.js | 12 ++++---- 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/calendar/resources/content/calendar.js b/calendar/resources/content/calendar.js index ee2f75278bf1..cbc97296b885 100644 --- a/calendar/resources/content/calendar.js +++ b/calendar/resources/content/calendar.js @@ -668,6 +668,19 @@ function newEvent(startDate, endDate, allDay) calendarEvent.endDate.jsDate = endDate + var prefService = Components.classes["@mozilla.org/preferences-service;1"] + .getService(Components.interfaces.nsIPrefService); + var alarmsBranch = prefService.getBranch("calendar.alarms."); + + if (alarmsBranch.getIntPref("onforevents") == 1) { + // alarmTime doesn't matter, it just can't be null + calendarEvent.alarmTime = createDateTime(); + + calendarEvent.setProperty("alarmUnits", alarmsBranch.getCharPref("eventalarmunit")); + calendarEvent.setProperty("alarmLength", alarmsBranch.getIntPref("eventalarmlen")); + calendarEvent.setProperty("alarmRelation", "START"); + } + if (allDay) calendarEvent.startDate.isDate = true; @@ -687,10 +700,28 @@ function newToDo ( startDate, dueDate ) // created todo has no start or due date unless user wants one if (startDate) - calendarToDo.entryTime.jsDate = startDate; + calendarToDo.entryDate = jsDateToDateTime(startDate); if (dueDate) - calendarToDo.dueDate.jsDate = dueDate; + calendarToDo.dueDate = jsDateToDateTime(startDate); + + var prefService = Components.classes["@mozilla.org/preferences-service;1"] + .getService(Components.interfaces.nsIPrefService); + var alarmsBranch = prefService.getBranch("calendar.alarms."); + + if (alarmsBranch.getIntPref("onfortodos") == 1) { + // alarmTime doesn't matter, it just can't be null + calendarToDo.alarmTime = createDateTime(); + + // You can't have an alarm if the entryDate doesn't exist. + if (!calendarToDo.entryDate) + calendarToDo.entryDate = jsDateToDateTime( + gCalendarWindow.currentView.getNewEventDate()); + + calendarToDo.setProperty("alarmUnits", alarmsBranch.getCharPref("todoalarmunit")); + calendarToDo.setProperty("alarmLength", alarmsBranch.getIntPref("todoalarmlen")); + calendarToDo.setProperty("alarmRelation", "START"); + } var calendar = getSelectedCalendarOrNull(); diff --git a/calendar/resources/content/eventDialog.js b/calendar/resources/content/eventDialog.js index 76d91474081c..022211836df2 100644 --- a/calendar/resources/content/eventDialog.js +++ b/calendar/resources/content/eventDialog.js @@ -233,8 +233,10 @@ function loadCalendarEventDialog() } else { setElementValue("alarm-length-field", event.getProperty("alarmLength")); setElementValue("alarm-length-units", event.getProperty("alarmUnits")); + var startPickerDisabled = getElementValue("start-datetime", "disabled"); + var duePickerDisabled = getElementValue("start-datetime", "disabled"); if (componentType == "event" || - (componentType == "todo" && !(startPicker.disabled && duePicker.disabled) ) ) { + (componentType == "todo" && !(startPickerDisabled && duePickerDisabled) ) ) { // If the event has an alarm email address, assume email alarm type var alarmEmailAddress = event.getProperty("alarmEmailAddress"); if (alarmEmailAddress && alarmEmailAddress != "") { @@ -250,11 +252,11 @@ function loadCalendarEventDialog() // if only one picker is enabled, check that the appropriate related // parameter is chosen if ( (componentType == "event") || - (componentType == "todo" && !startPicker.disabled && - duePicker.disabled && alarmRelated == "START") || + (componentType == "todo" && !startPickerDisabled && + duePickerDisabled && alarmRelated == "START") || (componentType == "todo" && startPicker.disabled && - !duePicker.disabled && alarmRelated == "END") || - (componentType == "todo" && !startPicker.disabled && !duePicker.disabled) ) + !duePickerDisabled && alarmRelated == "END") || + (componentType == "todo" && !startPickerDisabled && !duePicker.disabled) ) { setElementValue("alarm-trigger-relation", alarmRelated); } else {