blob: 9fe0aef11d3aa1a8ba4947ef2509fb4e9bf7e658 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, you can obtain one at http://mozilla.org/MPL/2.0/. */
import { MailTabButton } from "chrome://messenger/content/unifiedtoolbar/mail-tab-button.mjs";
/* import-globals-from ../../../../../calendar/base/content/calendar-extract.js */
/**
* Unified toolbar button to add the selected message to a calendar as event or
* task.
* Attributes:
* - type: "event" or "task", specifying the target type to create.
*/
class AddToCalendarButton extends MailTabButton {
onCommandContextChange() {
const about3Pane = document.getElementById("tabmail").currentAbout3Pane;
this.disabled =
(about3Pane && !about3Pane.gDBView) ||
(about3Pane?.gDBView?.numSelected ?? -1) === 0;
}
handleClick = event => {
const tabmail = document.getElementById("tabmail");
const about3Pane = tabmail.currentAbout3Pane;
const type = this.getAttribute("type");
calendarExtract.extractFromEmail(
tabmail.currentAboutMessage?.gMessage ||
about3Pane.gDBView.hdrForFirstSelectedMessage,
type !== "task"
);
event.preventDefault();
event.stopPropagation();
};
}
customElements.define("add-to-calendar-button", AddToCalendarButton, {
extends: "button",
});
|