Bug 307230 Honor default alarm preferences for new events/tasks. Fix eventDialog handling of task alarms. r=mvl

This commit is contained in:
jminta%gmail.com 2005-09-08 16:04:58 +00:00
Родитель 61bb44ed0b
Коммит 2f700ce9e5
2 изменённых файлов: 40 добавлений и 7 удалений

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

@ -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();

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

@ -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 {