Revision control

Copy as Markdown

Other Tools

/* 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-globals-from ../../../../base/content/globalOverlay.js */
/**
* Unified toolbar button that deletes the selected message or folder.
*/
class DeleteButton extends MailTabButton {
onCommandContextChange() {
const tabmail = document.getElementById("tabmail");
try {
const controller = getEnabledControllerForCommand("cmd_deleteMessage");
const tab = tabmail.currentTabInfo;
const message = tab.message;
this.disabled = !controller || !message;
if (!this.disabled && message.flags & Ci.nsMsgMessageFlags.IMAPDeleted) {
this.setAttribute("label-id", "toolbar-undelete-label");
document.l10n.setAttributes(this, "toolbar-undelete");
} else {
this.setAttribute("label-id", "toolbar-delete-label");
document.l10n.setAttributes(this, "toolbar-delete-title");
}
} catch {
this.disabled = true;
}
}
handleClick(event) {
goDoCommand(
event.shiftKey ? "cmd_shiftDeleteMessage" : "cmd_deleteMessage"
);
event.preventDefault();
event.stopPropagation();
}
}
customElements.define("delete-button", DeleteButton, {
extends: "button",
});