mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-26 02:17:34 +09:00
215 lines
8.2 KiB
JavaScript
215 lines
8.2 KiB
JavaScript
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||
|
|
* 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");
|
||
|
|
|
||
|
|
var gPrefsBundle;
|
||
|
|
|
||
|
|
function donePageInit() {
|
||
|
|
var pageData = parent.GetPageData();
|
||
|
|
var currentAccountData = gCurrentAccountData;
|
||
|
|
|
||
|
|
if ("testingIspServices" in this) {
|
||
|
|
if (testingIspServices()) {
|
||
|
|
if ("setOtherISPServices" in this) {
|
||
|
|
setOtherISPServices();
|
||
|
|
}
|
||
|
|
|
||
|
|
if (currentAccountData && currentAccountData.useOverlayPanels && currentAccountData.createNewAccount) {
|
||
|
|
var backButton = document.documentElement.getButton("back");
|
||
|
|
backButton.setAttribute("disabled", true);
|
||
|
|
|
||
|
|
var cancelButton = document.documentElement.getButton("cancel");
|
||
|
|
cancelButton.setAttribute("disabled", true);
|
||
|
|
|
||
|
|
setPageData(pageData, "identity", "email", gEmailAddress);
|
||
|
|
setPageData(pageData, "identity", "fullName", gUserFullName);
|
||
|
|
setPageData(pageData, "login", "username", gScreenName);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
gPrefsBundle = document.getElementById("bundle_prefs");
|
||
|
|
var showMailServerDetails = true;
|
||
|
|
|
||
|
|
if (currentAccountData) {
|
||
|
|
// find out if we need to hide server details
|
||
|
|
showMailServerDetails = currentAccountData.showServerDetailsOnWizardSummary;
|
||
|
|
// Change the username field description to email field label in aw-identity
|
||
|
|
if (currentAccountData.emailIDFieldTitle)
|
||
|
|
setUserNameDescField(currentAccountData.emailIDFieldTitle);
|
||
|
|
}
|
||
|
|
|
||
|
|
// Find out if we need to hide details for incoming servers
|
||
|
|
var hideIncoming = (gCurrentAccountData && gCurrentAccountData.wizardHideIncoming);
|
||
|
|
|
||
|
|
var email = "";
|
||
|
|
if (pageData.identity && pageData.identity.email) {
|
||
|
|
// fixup the email
|
||
|
|
email = pageData.identity.email.value;
|
||
|
|
if (email.split('@').length < 2 &&
|
||
|
|
currentAccountData &&
|
||
|
|
currentAccountData.domain)
|
||
|
|
email += "@" + currentAccountData.domain;
|
||
|
|
}
|
||
|
|
setDivTextFromForm("identity.email", email);
|
||
|
|
|
||
|
|
var userName="";
|
||
|
|
if (pageData.login && pageData.login.username)
|
||
|
|
userName = pageData.login.username.value;
|
||
|
|
if (!userName && email) {
|
||
|
|
if (currentAccountData && currentAccountData.incomingServerUserNameRequiresDomain == undefined)
|
||
|
|
currentAccountData.incomingServerUserNameRequiresDomain = false;
|
||
|
|
userName = getUsernameFromEmail(email, currentAccountData &&
|
||
|
|
currentAccountData.incomingServerUserNameRequiresDomain);
|
||
|
|
}
|
||
|
|
// Hide the "username" field if we don't want to show information
|
||
|
|
// on the incoming server.
|
||
|
|
setDivTextFromForm("server.username", hideIncoming ? null : userName);
|
||
|
|
|
||
|
|
var smtpUserName="";
|
||
|
|
if (pageData.login && pageData.login.smtpusername)
|
||
|
|
smtpUserName = pageData.login.smtpusername.value;
|
||
|
|
if (!smtpUserName && email)
|
||
|
|
smtpUserName = getUsernameFromEmail(email, currentAccountData &&
|
||
|
|
currentAccountData.smtpUserNameRequiresDomain);
|
||
|
|
setDivTextFromForm("smtpServer.username", smtpUserName);
|
||
|
|
|
||
|
|
if (pageData.accname && pageData.accname.prettyName) {
|
||
|
|
// If currentAccountData has a pretty name (e.g. news link or from
|
||
|
|
// isp data) only set the user name with the pretty name if the
|
||
|
|
// pretty name originally came from ispdata
|
||
|
|
if ((currentAccountData &&
|
||
|
|
currentAccountData.incomingServer.prettyName) &&
|
||
|
|
(pageData.ispdata &&
|
||
|
|
pageData.ispdata.supplied &&
|
||
|
|
pageData.ispdata.supplied.value))
|
||
|
|
{
|
||
|
|
// Get the polished account name - if the user has modified the
|
||
|
|
// account name then use that, otherwise use the userName.
|
||
|
|
pageData.accname.prettyName.value =
|
||
|
|
gPrefsBundle.getFormattedString("accountName",
|
||
|
|
[currentAccountData.incomingServer.prettyName,
|
||
|
|
(pageData.accname.userset && pageData.accname.userset.value) ? pageData.accname.prettyName.value : userName]);
|
||
|
|
}
|
||
|
|
// else just use the default supplied name
|
||
|
|
|
||
|
|
setDivTextFromForm("account.name", pageData.accname.prettyName.value);
|
||
|
|
} else {
|
||
|
|
setDivTextFromForm("account.name", "");
|
||
|
|
}
|
||
|
|
|
||
|
|
// Show mail servers (incoming&outgoing) details
|
||
|
|
// based on current account data. ISP can set
|
||
|
|
// rdf value of literal showServerDetailsOnWizardSummary
|
||
|
|
// to false to hide server details
|
||
|
|
if (showMailServerDetails && !serverIsNntp(pageData)) {
|
||
|
|
var incomingServerName="";
|
||
|
|
if (pageData.server && pageData.server.hostname) {
|
||
|
|
incomingServerName = pageData.server.hostname.value;
|
||
|
|
if (!incomingServerName &&
|
||
|
|
currentAccountData &&
|
||
|
|
currentAccountData.incomingServer.hostname)
|
||
|
|
incomingServerName = currentAccountData.incomingServer.hostName;
|
||
|
|
}
|
||
|
|
// Hide the incoming server name field if the user specified
|
||
|
|
// wizardHideIncoming in the ISP defaults file
|
||
|
|
setDivTextFromForm("server.name", hideIncoming ? null : incomingServerName);
|
||
|
|
setDivTextFromForm("server.port", pageData.server.port ? pageData.server.port.value : null);
|
||
|
|
var incomingServerType="";
|
||
|
|
if (pageData.server && pageData.server.servertype) {
|
||
|
|
incomingServerType = pageData.server.servertype.value;
|
||
|
|
if (!incomingServerType &&
|
||
|
|
currentAccountData &&
|
||
|
|
currentAccountData.incomingServer.type)
|
||
|
|
incomingServerType = currentAccountData.incomingServer.type;
|
||
|
|
}
|
||
|
|
setDivTextFromForm("server.type", incomingServerType.toUpperCase());
|
||
|
|
|
||
|
|
var smtpServerName="";
|
||
|
|
if (pageData.server && pageData.server.smtphostname) {
|
||
|
|
let smtpServer = MailServices.smtp.defaultServer;
|
||
|
|
smtpServerName = pageData.server.smtphostname.value;
|
||
|
|
if (!smtpServerName && smtpServer && smtpServer.hostname)
|
||
|
|
smtpServerName = smtpServer.hostname;
|
||
|
|
}
|
||
|
|
setDivTextFromForm("smtpServer.name", smtpServerName);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
setDivTextFromForm("server.name", null);
|
||
|
|
setDivTextFromForm("server.type", null);
|
||
|
|
setDivTextFromForm("server.port", null);
|
||
|
|
setDivTextFromForm("smtpServer.name", null);
|
||
|
|
}
|
||
|
|
|
||
|
|
if (serverIsNntp(pageData)) {
|
||
|
|
var newsServerName="";
|
||
|
|
if (pageData.newsserver && pageData.newsserver.hostname)
|
||
|
|
newsServerName = pageData.newsserver.hostname.value;
|
||
|
|
if (newsServerName) {
|
||
|
|
// No need to show username for news account
|
||
|
|
setDivTextFromForm("server.username", null);
|
||
|
|
}
|
||
|
|
setDivTextFromForm("newsServer.name", newsServerName);
|
||
|
|
setDivTextFromForm("server.port", null);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
setDivTextFromForm("newsServer.name", null);
|
||
|
|
}
|
||
|
|
|
||
|
|
var isPop = false;
|
||
|
|
if (pageData.server && pageData.server.servertype) {
|
||
|
|
isPop = (pageData.server.servertype.value == "pop3");
|
||
|
|
}
|
||
|
|
|
||
|
|
hideShowDownloadMsgsUI(isPop);
|
||
|
|
}
|
||
|
|
|
||
|
|
function hideShowDownloadMsgsUI(isPop)
|
||
|
|
{
|
||
|
|
// only show the "download messages now" UI
|
||
|
|
// if this is a pop account, we are online, and this was opened
|
||
|
|
// from the 3 pane
|
||
|
|
var downloadMsgs = document.getElementById("downloadMsgs");
|
||
|
|
if (isPop) {
|
||
|
|
if (!Services.io.offline) {
|
||
|
|
if (window.opener.location.href == "chrome://messenger/content/messenger.xul") {
|
||
|
|
downloadMsgs.hidden = false;
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// else hide it
|
||
|
|
downloadMsgs.hidden = true;
|
||
|
|
}
|
||
|
|
|
||
|
|
function setDivTextFromForm(divid, value) {
|
||
|
|
|
||
|
|
// collapse the row if the div has no value
|
||
|
|
var div = document.getElementById(divid);
|
||
|
|
if (!value) {
|
||
|
|
div.setAttribute("collapsed","true");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
div.removeAttribute("collapsed");
|
||
|
|
}
|
||
|
|
|
||
|
|
// otherwise fill in the .text element
|
||
|
|
div = document.getElementById(divid+".text");
|
||
|
|
if (!div) return;
|
||
|
|
|
||
|
|
// set the value
|
||
|
|
div.setAttribute("value", value);
|
||
|
|
}
|
||
|
|
|
||
|
|
function setUserNameDescField(name)
|
||
|
|
{
|
||
|
|
if (name) {
|
||
|
|
var userNameField = document.getElementById("server.username.label");
|
||
|
|
userNameField.setAttribute("value", name);
|
||
|
|
}
|
||
|
|
}
|