diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mail/base/content/compactFoldersDialog.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | comm/mail/base/content/compactFoldersDialog.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/comm/mail/base/content/compactFoldersDialog.js b/comm/mail/base/content/compactFoldersDialog.js new file mode 100644 index 0000000000..b0ac027266 --- /dev/null +++ b/comm/mail/base/content/compactFoldersDialog.js @@ -0,0 +1,54 @@ +/* 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/. */ + +var propBag, args; + +document.addEventListener("DOMContentLoaded", compactDialogOnDOMContentLoaded); +// Bug 1720540: Call sizeToContent only after the entire window has been loaded, +// including the shadow DOM and the updated fluent strings. +window.addEventListener("load", window.sizeToContent); + +function compactDialogOnDOMContentLoaded() { + propBag = window.arguments[0] + .QueryInterface(Ci.nsIWritablePropertyBag2) + .QueryInterface(Ci.nsIWritablePropertyBag); + + // Convert to a JS object. + args = {}; + for (let prop of propBag.enumerator) { + args[prop.name] = prop.value; + } + + // We're deliberately adding the data-l10n-args attribute synchronously to + // avoid race issues for window.sizeToContent later on. + document + .getElementById("compactFoldersText") + .setAttribute("data-l10n-args", JSON.stringify({ data: args.compactSize })); + + document.addEventListener("dialogaccept", function () { + args.buttonNumClicked = 0; + args.checked = document.getElementById("neverAskCheckbox").checked; + }); + + document.addEventListener("dialogcancel", function () { + args.buttonNumClicked = 1; + }); + + document.addEventListener("dialogextra1", function () { + // Open the support article URL and leave the dialog open. + let uri = Services.io.newURI( + "https://support.mozilla.org/kb/compacting-folders" + ); + Cc["@mozilla.org/uriloader/external-protocol-service;1"] + .getService(Ci.nsIExternalProtocolService) + .loadURI(uri); + }); +} + +function compactDialogOnUnload() { + // Convert args back into property bag. + for (let propName in args) { + propBag.setProperty(propName, args[propName]); + } +} |