Как создать пользовательские напоминания в молнии с помощью JavaScript? - PullRequest
0 голосов
/ 05 июля 2011

Я создаю расширение для импорта задач из CRM в Thunderbird / Lightning.Я использую интерфейс calITodo для создания моих задач:

var todo = Components.classes["@mozilla.org/calendar/todo;1"].createInstance(Components.interfaces.calITodo);

Но я не могу найти, как устанавливать напоминания или создавать собственные для моих задач.

1 Ответ

0 голосов
/ 06 июля 2011

Я собираюсь ответить на этот вопрос немного шире, чтобы показать вам альтернативы, возможно, вы уже делаете это.

Если вы хотите использовать CRM в качестве бэкэнда для календаря, вы можете написать расширение типа «Провайдер», аналогичное Провайдеру для Календаря Google. Вам просто нужно реализовать несколько методов для обычных операций (получить / добавить / изменить / удалить), чтобы начать. См. Исходный код для Календаря провайдера для Google в качестве отправной точки.

Если вы просто хотите выполнить однократный импорт, то, вероятно, вы движетесь в правильном направлении. Просто используйте метод addItem / acceptIte в рассматриваемом календаре. Если вам нужен диалог для выбора календарей, вы можете повторно использовать этот , он доступен через uri chrome: //calendar/content/chooseCalendarDialog.xul.

Теперь перейдем к вашему реальному вопросу. Чтобы добавить напоминание к событию или сделать следующий код помогает. Конечно, вы можете выбрать другое отношение тревоги.

Components.utils.import("resource://calendar/modules/calUtils.jsm");

let todo = cal.createToDo();
let alarm = cal.createAlarm();
let alarmDate = cal.createDateTime();

alarm.related = Components.interfaces.calIAlarm.ALARM_RELATED_ABSOLUTE;
alarm.alarmDate = alarmDate;

todo.addAlarm(alarm);
// ...

Сигнализация включает calIAlarm, описание интерфейса можно найти здесь . Затем он добавляется в задачу, которая реализует calITodo, а также calIItemBase. Для обзора методов тревоги для элемента, см. Здесь .

Если вас интересует, какие другие функции доступны, см. Здесь . Вы можете использовать функции из обоих файлов, просто импортировав calUtils. jsm . Просто поставьте перед каждой функцией префикс «cal.».

...