summaryrefslogtreecommitdiffstats
path: root/comm/mail/components/preferences/syncDialog.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/components/preferences/syncDialog.js')
-rw-r--r--comm/mail/components/preferences/syncDialog.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/comm/mail/components/preferences/syncDialog.js b/comm/mail/components/preferences/syncDialog.js
new file mode 100644
index 0000000000..6920a8aa59
--- /dev/null
+++ b/comm/mail/components/preferences/syncDialog.js
@@ -0,0 +1,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/. */
+
+const engineItems = {
+ configSyncAccount: "services.sync.engine.accounts",
+ configSyncAddress: "services.sync.engine.addressbooks",
+ configSyncCalendar: "services.sync.engine.calendars",
+ configSyncIdentity: "services.sync.engine.identities",
+ configSyncPasswords: "services.sync.engine.passwords",
+};
+
+window.addEventListener("load", function () {
+ for (let [id, prefName] of Object.entries(engineItems)) {
+ let element = document.getElementById(id);
+ element.checked = Services.prefs.getBoolPref(prefName, false);
+ }
+
+ let options = window.arguments[0];
+ if (options.disconnectFun) {
+ window.addEventListener("dialogextra2", function () {
+ options.disconnectFun().then(disconnected => {
+ if (disconnected) {
+ window.close();
+ }
+ });
+ });
+ } else {
+ document.querySelector("dialog").getButton("extra2").hidden = true;
+ }
+});
+
+window.addEventListener("dialogaccept", function () {
+ for (let [id, prefName] of Object.entries(engineItems)) {
+ let element = document.getElementById(id);
+ Services.prefs.setBoolPref(prefName, element.checked);
+ }
+});