mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-28 03:17:31 +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
405
mailnews/base/prefs/content/am-identity-edit.js
Normal file
405
mailnews/base/prefs/content/am-identity-edit.js
Normal file
|
|
@ -0,0 +1,405 @@
|
|||
/* -*- 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");
|
||||
|
||||
var gIdentity = null; // the identity we are editing (may be null for a new identity)
|
||||
var gAccount = null; // the account the identity is (or will be) associated with
|
||||
|
||||
function onLoadIdentityProperties()
|
||||
{
|
||||
// extract the account
|
||||
gIdentity = window.arguments[0].identity;
|
||||
gAccount = window.arguments[0].account;
|
||||
let prefBundle = document.getElementById("bundle_prefs");
|
||||
|
||||
// Make the dialog the same height and 90% of the width of the main Account
|
||||
// manager page when the Account manager is not maximized.
|
||||
let accountDialog = Services.wm.getMostRecentWindow("mailnews:accountmanager")
|
||||
.document;
|
||||
if (accountDialog.documentElement.getAttribute("sizemode") != "maximized") {
|
||||
document.getElementById("identityDialog").style.width =
|
||||
accountDialog.getElementById("accountManager").clientWidth * 0.9 + "px";
|
||||
document.getElementById("identityDialog").style.height =
|
||||
accountDialog.getElementById("accountManager").clientHeight + "px";
|
||||
}
|
||||
|
||||
if (gIdentity) {
|
||||
let listName = gIdentity.identityName;
|
||||
document.title = prefBundle
|
||||
.getFormattedString("identityDialogTitleEdit", [listName]);
|
||||
} else {
|
||||
document.title = prefBundle.getString("identityDialogTitleAdd");
|
||||
}
|
||||
|
||||
loadSMTPServerList();
|
||||
|
||||
initIdentityValues(gIdentity);
|
||||
initCopiesAndFolder(gIdentity);
|
||||
initCompositionAndAddressing(gIdentity);
|
||||
}
|
||||
|
||||
// based on the values of gIdentity, initialize the identity fields we expose to the user
|
||||
function initIdentityValues(identity)
|
||||
{
|
||||
function initSmtpServer(aServerKey) {
|
||||
// Select a server in the SMTP server menulist by its key.
|
||||
// The value of the identity.smtpServerKey is null when the
|
||||
// "use default server" option is used so, if we get that passed in, select
|
||||
// the useDefaultItem representing this option by using the value of "".
|
||||
document.getElementById("identity.smtpServerKey").value = aServerKey || "";
|
||||
}
|
||||
|
||||
if (identity)
|
||||
{
|
||||
document.getElementById('identity.fullName').value = identity.fullName;
|
||||
document.getElementById('identity.email').value = identity.email;
|
||||
document.getElementById('identity.replyTo').value = identity.replyTo;
|
||||
document.getElementById('identity.organization').value = identity.organization;
|
||||
document.getElementById('identity.attachSignature').checked = identity.attachSignature;
|
||||
document.getElementById('identity.htmlSigText').value = identity.htmlSigText;
|
||||
document.getElementById('identity.htmlSigFormat').checked = identity.htmlSigFormat;
|
||||
|
||||
if (identity.signature)
|
||||
document.getElementById('identity.signature').value = identity.signature.path;
|
||||
|
||||
document.getElementById('identity.attachVCard').checked = identity.attachVCard;
|
||||
document.getElementById('identity.escapedVCard').value = identity.escapedVCard;
|
||||
initSmtpServer(identity.smtpServerKey);
|
||||
|
||||
// This field does not exist for the default identity shown in the am-main.xul pane.
|
||||
let idLabel = document.getElementById("identity.label");
|
||||
if (idLabel)
|
||||
idLabel.value = identity.label;
|
||||
}
|
||||
else
|
||||
{
|
||||
// We're adding an identity, use the best default we have.
|
||||
initSmtpServer(gAccount.defaultIdentity.smtpServerKey);
|
||||
}
|
||||
|
||||
setupSignatureItems();
|
||||
}
|
||||
|
||||
function initCopiesAndFolder(identity)
|
||||
{
|
||||
// if we are editing an existing identity, use it...otherwise copy our values from the default identity
|
||||
var copiesAndFoldersIdentity = identity ? identity : gAccount.defaultIdentity;
|
||||
|
||||
document.getElementById('identity.fccFolder').value = copiesAndFoldersIdentity.fccFolder;
|
||||
document.getElementById('identity.draftFolder').value = copiesAndFoldersIdentity.draftFolder;
|
||||
document.getElementById('identity.archiveFolder').value = copiesAndFoldersIdentity.archiveFolder;
|
||||
document.getElementById('identity.stationeryFolder').value = copiesAndFoldersIdentity.stationeryFolder;
|
||||
|
||||
document.getElementById('identity.fccFolderPickerMode').value = copiesAndFoldersIdentity.fccFolderPickerMode ? copiesAndFoldersIdentity.fccFolderPickerMode : 0;
|
||||
document.getElementById('identity.draftsFolderPickerMode').value = copiesAndFoldersIdentity.draftsFolderPickerMode ? copiesAndFoldersIdentity.draftsFolderPickerMode : 0;
|
||||
document.getElementById('identity.archivesFolderPickerMode').value = copiesAndFoldersIdentity.archivesFolderPickerMode ? copiesAndFoldersIdentity.archivesFolderPickerMode : 0;
|
||||
document.getElementById('identity.tmplFolderPickerMode').value = copiesAndFoldersIdentity.tmplFolderPickerMode ? copiesAndFoldersIdentity.tmplFolderPickerMode : 0;
|
||||
|
||||
document.getElementById('identity.doCc').checked = copiesAndFoldersIdentity.doCc;
|
||||
document.getElementById('identity.doCcList').value = copiesAndFoldersIdentity.doCcList;
|
||||
document.getElementById('identity.doBcc').checked = copiesAndFoldersIdentity.doBcc;
|
||||
document.getElementById('identity.doBccList').value = copiesAndFoldersIdentity.doBccList;
|
||||
document.getElementById('identity.doFcc').checked = copiesAndFoldersIdentity.doFcc;
|
||||
document.getElementById('identity.fccReplyFollowsParent').checked = copiesAndFoldersIdentity.fccReplyFollowsParent;
|
||||
document.getElementById('identity.showSaveMsgDlg').checked = copiesAndFoldersIdentity.showSaveMsgDlg;
|
||||
document.getElementById('identity.archiveEnabled').checked = copiesAndFoldersIdentity.archiveEnabled;
|
||||
|
||||
onInitCopiesAndFolders(); // am-copies.js method
|
||||
}
|
||||
|
||||
function initCompositionAndAddressing(identity)
|
||||
{
|
||||
// if we are editing an existing identity, use it...otherwise copy our values from the default identity
|
||||
var addressingIdentity = identity ? identity : gAccount.defaultIdentity;
|
||||
|
||||
document.getElementById('identity.directoryServer').value = addressingIdentity.directoryServer;
|
||||
document.getElementById('identity.overrideGlobal_Pref').value = addressingIdentity.overrideGlobalPref;
|
||||
let autoCompleteElement = document.getElementById('identity.autocompleteToMyDomain');
|
||||
if (autoCompleteElement) // Thunderbird does not have this element.
|
||||
autoCompleteElement.checked = addressingIdentity.autocompleteToMyDomain;
|
||||
|
||||
document.getElementById('identity.composeHtml').checked = addressingIdentity.composeHtml;
|
||||
document.getElementById('identity.autoQuote').checked = addressingIdentity.autoQuote;
|
||||
document.getElementById('identity.replyOnTop').value = addressingIdentity.replyOnTop;
|
||||
document.getElementById('identity.sig_bottom').value = addressingIdentity.sigBottom;
|
||||
document.getElementById('identity.sig_on_reply').checked = addressingIdentity.sigOnReply;
|
||||
document.getElementById('identity.sig_on_fwd').checked = addressingIdentity.sigOnForward;
|
||||
|
||||
onInitCompositionAndAddressing(); // am-addressing.js method
|
||||
}
|
||||
|
||||
function onOk()
|
||||
{
|
||||
if (!validEmailAddress())
|
||||
return false;
|
||||
|
||||
// if we are adding a new identity, create an identity, set the fields and add it to the
|
||||
// account.
|
||||
if (!gIdentity)
|
||||
{
|
||||
// ask the account manager to create a new identity for us
|
||||
gIdentity = MailServices.accounts.createIdentity();
|
||||
|
||||
// copy in the default identity settings so we inherit lots of stuff like the defaul drafts folder, etc.
|
||||
gIdentity.copy(gAccount.defaultIdentity);
|
||||
|
||||
// assume the identity is valid by default?
|
||||
gIdentity.valid = true;
|
||||
|
||||
// add the identity to the account
|
||||
gAccount.addIdentity(gIdentity);
|
||||
|
||||
// now fall through to saveFields which will save our new values
|
||||
}
|
||||
|
||||
// if we are modifying an existing identity, save the fields
|
||||
saveIdentitySettings(gIdentity);
|
||||
saveCopiesAndFolderSettings(gIdentity);
|
||||
saveAddressingAndCompositionSettings(gIdentity);
|
||||
|
||||
window.arguments[0].result = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// returns false and prompts the user if
|
||||
// the identity does not have an email address
|
||||
function validEmailAddress()
|
||||
{
|
||||
var emailAddress = document.getElementById('identity.email').value;
|
||||
|
||||
// quickly test for an @ sign to test for an email address. We don't have
|
||||
// to be anymore precise than that.
|
||||
if (!emailAddress.includes("@"))
|
||||
{
|
||||
// alert user about an invalid email address
|
||||
|
||||
var prefBundle = document.getElementById("bundle_prefs");
|
||||
|
||||
Services.prompt.alert(window, prefBundle.getString("identity-edit-req-title"),
|
||||
prefBundle.getString("identity-edit-req"));
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function saveIdentitySettings(identity)
|
||||
{
|
||||
if (identity)
|
||||
{
|
||||
let idLabel = document.getElementById('identity.label');
|
||||
if (idLabel)
|
||||
identity.label = idLabel.value;
|
||||
identity.fullName = document.getElementById('identity.fullName').value;
|
||||
identity.email = document.getElementById('identity.email').value;
|
||||
identity.replyTo = document.getElementById('identity.replyTo').value;
|
||||
identity.organization = document.getElementById('identity.organization').value;
|
||||
identity.attachSignature = document.getElementById('identity.attachSignature').checked;
|
||||
identity.htmlSigText = document.getElementById('identity.htmlSigText').value;
|
||||
identity.htmlSigFormat = document.getElementById('identity.htmlSigFormat').checked;
|
||||
|
||||
identity.attachVCard = document.getElementById('identity.attachVCard').checked;
|
||||
identity.escapedVCard = document.getElementById('identity.escapedVCard').value;
|
||||
identity.smtpServerKey = document.getElementById('identity.smtpServerKey').value;
|
||||
|
||||
var attachSignaturePath = document.getElementById('identity.signature').value;
|
||||
identity.signature = null; // this is important so we don't accidentally inherit the default
|
||||
|
||||
if (attachSignaturePath)
|
||||
{
|
||||
// convert signature path back into a nsIFile
|
||||
var sfile = Components.classes["@mozilla.org/file/local;1"]
|
||||
.createInstance(Components.interfaces.nsIFile);
|
||||
sfile.initWithPath(attachSignaturePath);
|
||||
if (sfile.exists())
|
||||
identity.signature = sfile;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function saveCopiesAndFolderSettings(identity)
|
||||
{
|
||||
onSaveCopiesAndFolders(); // am-copies.js routine
|
||||
|
||||
identity.fccFolder = document.getElementById('identity.fccFolder').value;
|
||||
identity.draftFolder = document.getElementById('identity.draftFolder').value;
|
||||
identity.archiveFolder = document.getElementById('identity.archiveFolder').value;
|
||||
identity.stationeryFolder = document.getElementById('identity.stationeryFolder').value;
|
||||
identity.fccFolderPickerMode = document.getElementById('identity.fccFolderPickerMode').value;
|
||||
identity.draftsFolderPickerMode = document.getElementById('identity.draftsFolderPickerMode').value;
|
||||
identity.archivesFolderPickerMode = document.getElementById('identity.archivesFolderPickerMode').value;
|
||||
identity.tmplFolderPickerMode = document.getElementById('identity.tmplFolderPickerMode').value;
|
||||
identity.doCc = document.getElementById('identity.doCc').checked;
|
||||
identity.doCcList = document.getElementById('identity.doCcList').value;
|
||||
identity.doBcc = document.getElementById('identity.doBcc').checked;
|
||||
identity.doBccList = document.getElementById('identity.doBccList').value;
|
||||
identity.doFcc = document.getElementById('identity.doFcc').checked;
|
||||
identity.fccReplyFollowsParent = document.getElementById('identity.fccReplyFollowsParent').checked;
|
||||
identity.showSaveMsgDlg = document.getElementById('identity.showSaveMsgDlg').checked;
|
||||
identity.archiveEnabled = document.getElementById('identity.archiveEnabled').checked;
|
||||
}
|
||||
|
||||
function saveAddressingAndCompositionSettings(identity)
|
||||
{
|
||||
identity.directoryServer = document.getElementById('identity.directoryServer').value;
|
||||
identity.overrideGlobalPref = document.getElementById('identity.overrideGlobal_Pref').value == "true";
|
||||
let autoCompleteElement = document.getElementById('identity.autocompleteToMyDomain');
|
||||
if (autoCompleteElement) // Thunderbird does not have this element.
|
||||
identity.autocompleteToMyDomain = autoCompleteElement.checked;
|
||||
identity.composeHtml = document.getElementById('identity.composeHtml').checked;
|
||||
identity.autoQuote = document.getElementById('identity.autoQuote').checked;
|
||||
identity.replyOnTop = document.getElementById('identity.replyOnTop').value;
|
||||
identity.sigBottom = document.getElementById('identity.sig_bottom').value == 'true';
|
||||
identity.sigOnReply = document.getElementById('identity.sig_on_reply').checked;
|
||||
identity.sigOnForward = document.getElementById('identity.sig_on_fwd').checked;
|
||||
}
|
||||
|
||||
function selectFile()
|
||||
{
|
||||
const nsIFilePicker = Components.interfaces.nsIFilePicker;
|
||||
|
||||
var fp = Components.classes["@mozilla.org/filepicker;1"]
|
||||
.createInstance(nsIFilePicker);
|
||||
|
||||
var prefBundle = document.getElementById("bundle_prefs");
|
||||
var title = prefBundle.getString("choosefile");
|
||||
fp.init(window, title, nsIFilePicker.modeOpen);
|
||||
fp.appendFilters(nsIFilePicker.filterAll);
|
||||
|
||||
// Get current signature folder, if there is one.
|
||||
// We can set that to be the initial folder so that users
|
||||
// can maintain their signatures better.
|
||||
var sigFolder = GetSigFolder();
|
||||
if (sigFolder)
|
||||
fp.displayDirectory = sigFolder;
|
||||
|
||||
var ret = fp.show();
|
||||
if (ret == nsIFilePicker.returnOK) {
|
||||
var folderField = document.getElementById("identity.signature");
|
||||
folderField.value = fp.file.path;
|
||||
}
|
||||
}
|
||||
|
||||
function GetSigFolder()
|
||||
{
|
||||
var sigFolder = null;
|
||||
try
|
||||
{
|
||||
var account = parent.getCurrentAccount();
|
||||
var identity = account.defaultIdentity;
|
||||
var signatureFile = identity.signature;
|
||||
|
||||
if (signatureFile)
|
||||
{
|
||||
signatureFile = signatureFile.QueryInterface(Components.interfaces.nsIFile);
|
||||
sigFolder = signatureFile.parent;
|
||||
|
||||
if (!sigFolder.exists())
|
||||
sigFolder = null;
|
||||
}
|
||||
}
|
||||
catch (ex) {
|
||||
dump("failed to get signature folder..\n");
|
||||
}
|
||||
return sigFolder;
|
||||
}
|
||||
|
||||
// Signature textbox is active unless option to select from file is checked.
|
||||
// If a signature is need to be attached, the associated items which
|
||||
// displays the absolute path to the signature (in a textbox) and the way
|
||||
// to select a new signature file (a button) are enabled. Otherwise, they
|
||||
// are disabled. Check to see if the attachSignature is locked to block
|
||||
// broadcasting events.
|
||||
function setupSignatureItems()
|
||||
{
|
||||
var signature = document.getElementById("identity.signature");
|
||||
var browse = document.getElementById("identity.sigbrowsebutton");
|
||||
var htmlSigText = document.getElementById("identity.htmlSigText");
|
||||
var htmlSigFormat = document.getElementById("identity.htmlSigFormat");
|
||||
var attachSignature = document.getElementById("identity.attachSignature");
|
||||
var checked = attachSignature.checked;
|
||||
|
||||
if (checked)
|
||||
{
|
||||
htmlSigText.setAttribute("disabled", "true");
|
||||
htmlSigFormat.setAttribute("disabled", "true");
|
||||
}
|
||||
else
|
||||
{
|
||||
htmlSigText.removeAttribute("disabled");
|
||||
htmlSigFormat.removeAttribute("disabled");
|
||||
}
|
||||
|
||||
if (checked && !getAccountValueIsLocked(signature))
|
||||
signature.removeAttribute("disabled");
|
||||
else
|
||||
signature.setAttribute("disabled", "true");
|
||||
|
||||
if (checked && !getAccountValueIsLocked(browse))
|
||||
browse.removeAttribute("disabled");
|
||||
else
|
||||
browse.setAttribute("disabled", "true");
|
||||
}
|
||||
|
||||
function editVCardCallback(escapedVCardStr)
|
||||
{
|
||||
var escapedVCard = document.getElementById("identity.escapedVCard");
|
||||
escapedVCard.value = escapedVCardStr;
|
||||
}
|
||||
|
||||
function editVCard()
|
||||
{
|
||||
var escapedVCard = document.getElementById("identity.escapedVCard");
|
||||
|
||||
// read vCard hidden value from UI
|
||||
window.openDialog("chrome://messenger/content/addressbook/abNewCardDialog.xul",
|
||||
"",
|
||||
"chrome,modal,resizable=no,centerscreen",
|
||||
{escapedVCardStr:escapedVCard.value, okCallback:editVCardCallback,
|
||||
titleProperty:"editVCardTitle", hideABPicker:true});
|
||||
}
|
||||
|
||||
function getAccountForFolderPickerState()
|
||||
{
|
||||
return gAccount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the SMTP server list for display.
|
||||
*/
|
||||
function loadSMTPServerList()
|
||||
{
|
||||
var smtpServerList = document.getElementById("identity.smtpServerKey");
|
||||
let servers = MailServices.smtp.servers;
|
||||
let defaultServer = MailServices.smtp.defaultServer;
|
||||
|
||||
var smtpPopup = smtpServerList.menupopup;
|
||||
while (smtpPopup.lastChild.nodeName != "menuseparator")
|
||||
smtpPopup.lastChild.remove();
|
||||
|
||||
while (servers.hasMoreElements())
|
||||
{
|
||||
var server = servers.getNext();
|
||||
|
||||
if (server instanceof Components.interfaces.nsISmtpServer)
|
||||
{
|
||||
var serverName = "";
|
||||
if (server.description)
|
||||
serverName = server.description + ' - ';
|
||||
else if (server.username)
|
||||
serverName = server.username + ' - ';
|
||||
serverName += server.hostname;
|
||||
|
||||
if (defaultServer.key == server.key)
|
||||
serverName += " " + document.getElementById("bundle_messenger")
|
||||
.getString("defaultServerTag");
|
||||
|
||||
smtpServerList.appendItem(serverName, server.key);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue