summaryrefslogtreecommitdiffstats
path: root/comm/mail/base/content/compactFoldersDialog.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/base/content/compactFoldersDialog.js')
-rw-r--r--comm/mail/base/content/compactFoldersDialog.js54
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]);
+ }
+}