mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-26 02:17:34 +09:00
Issue #1258 - Part 1: Import mailnews, ldap, and mork from comm-esr52.9.1
This commit is contained in:
parent
23e0d82436
commit
e400f4130a
1564 changed files with 510348 additions and 0 deletions
157
mailnews/base/prefs/content/am-server-advanced.js
Normal file
157
mailnews/base/prefs/content/am-server-advanced.js
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
Components.utils.import("resource:///modules/mailServices.js");
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
// pull stuff out of window.arguments
|
||||
var gServerSettings = window.arguments[0];
|
||||
|
||||
var gFirstDeferredAccount;
|
||||
// initialize the controls with the "gServerSettings" argument
|
||||
|
||||
var gControls;
|
||||
function getControls()
|
||||
{
|
||||
if (!gControls)
|
||||
gControls = document.getElementsByAttribute("amsa_persist", "true");
|
||||
return gControls;
|
||||
}
|
||||
|
||||
function getLocalFoldersAccount()
|
||||
{
|
||||
return MailServices.accounts
|
||||
.FindAccountForServer(MailServices.accounts.localFoldersServer);
|
||||
}
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
var prettyName = gServerSettings.serverPrettyName;
|
||||
|
||||
if (prettyName)
|
||||
document.getElementById("serverPrettyName").value =
|
||||
document.getElementById("bundle_prefs")
|
||||
.getFormattedString("forAccount", [prettyName]);
|
||||
|
||||
if (gServerSettings.serverType == "imap")
|
||||
{
|
||||
document.getElementById("pop3Panel").hidden = true;
|
||||
}
|
||||
else if (gServerSettings.serverType == "pop3")
|
||||
{
|
||||
document.getElementById("imapPanel").hidden = true;
|
||||
let radioGroup = document.getElementById("folderStorage");
|
||||
|
||||
gFirstDeferredAccount = gServerSettings.deferredToAccount;
|
||||
let folderPopup = document.getElementById("deferredServerPopup");
|
||||
|
||||
// The current account should not be shown in the folder picker
|
||||
// of the "other account" option.
|
||||
folderPopup._teardown();
|
||||
folderPopup.setAttribute("excludeServers",
|
||||
gServerSettings.account.incomingServer.key);
|
||||
folderPopup._ensureInitialized();
|
||||
|
||||
if (gFirstDeferredAccount.length)
|
||||
{
|
||||
// The current account is deferred.
|
||||
let account = MailServices.accounts.getAccount(gFirstDeferredAccount);
|
||||
radioGroup.value = "otherAccount";
|
||||
folderPopup.selectFolder(account.incomingServer.rootFolder);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Current account is not deferred.
|
||||
radioGroup.value = "currentAccount";
|
||||
// If there are no suitable accounts to defer to, then the menulist is
|
||||
// disabled by the picker with an appropriate message.
|
||||
folderPopup.selectFolder();
|
||||
if (gServerSettings.account.incomingServer.isDeferredTo) {
|
||||
// Some other account already defers to this account
|
||||
// therefore this one can't be deferred further.
|
||||
radioGroup.disabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
let picker = document.getElementById("deferredServerFolderPicker");
|
||||
picker.disabled = radioGroup.selectedIndex != 1;
|
||||
}
|
||||
|
||||
var controls = getControls();
|
||||
|
||||
for (var i = 0; i < controls.length; i++)
|
||||
{
|
||||
var slot = controls[i].id;
|
||||
if (slot in gServerSettings)
|
||||
{
|
||||
if (controls[i].localName == "checkbox")
|
||||
controls[i].checked = gServerSettings[slot];
|
||||
else
|
||||
controls[i].value = gServerSettings[slot];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onOk()
|
||||
{
|
||||
// Handle account deferral settings for POP3 accounts.
|
||||
if (gServerSettings.serverType == "pop3")
|
||||
{
|
||||
var radioGroup = document.getElementById("folderStorage");
|
||||
var gPrefsBundle = document.getElementById("bundle_prefs");
|
||||
let picker = document.getElementById("deferredServerFolderPicker");
|
||||
|
||||
// This account wasn't previously deferred, but is now deferred.
|
||||
if (radioGroup.value != "currentAccount" && !gFirstDeferredAccount.length)
|
||||
{
|
||||
// If the user hasn't selected a folder, keep the default.
|
||||
if (!picker.selectedItem)
|
||||
return true;
|
||||
|
||||
var confirmDeferAccount =
|
||||
gPrefsBundle.getString("confirmDeferAccountWarning");
|
||||
|
||||
var confirmTitle = gPrefsBundle.getString("confirmDeferAccountTitle");
|
||||
|
||||
if (!Services.prompt.confirm(window, confirmTitle, confirmDeferAccount))
|
||||
return false;
|
||||
}
|
||||
switch (radioGroup.value)
|
||||
{
|
||||
case "currentAccount":
|
||||
gServerSettings['deferredToAccount'] = "";
|
||||
break;
|
||||
case "otherAccount":
|
||||
let server = picker.selectedItem._folder.server;
|
||||
let account = MailServices.accounts.FindAccountForServer(server);
|
||||
gServerSettings['deferredToAccount'] = account.key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Save the controls back to the "gServerSettings" array.
|
||||
var controls = getControls();
|
||||
for (var i = 0; i < controls.length; i++)
|
||||
{
|
||||
var slot = controls[i].id;
|
||||
if (slot in gServerSettings)
|
||||
{
|
||||
if (controls[i].localName == "checkbox")
|
||||
gServerSettings[slot] = controls[i].checked;
|
||||
else
|
||||
gServerSettings[slot] = controls[i].value;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Set radio element choices and picker states
|
||||
function updateInboxAccount(enablePicker)
|
||||
{
|
||||
document.getElementById("deferredServerFolderPicker").disabled = !enablePicker;
|
||||
document.getElementById("deferGetNewMail").disabled = !enablePicker;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue