gecko-dev/suite/common/pref/pref-proxies.js
jerry.tan%sun.com 6b54d1176f copy http proxy settings to ftp,ssl,gopher proxies
see bugzilla bug 50380, patch by jerry.tan@sun.com
r=neil sr=bryner
2006-05-17 02:36:20 +00:00

98 lines
3.7 KiB
JavaScript

function Startup()
{
DoEnabling();
}
function DoEnabling()
{
var i;
var ftp = document.getElementById("networkProxyFTP");
var ftpPort = document.getElementById("networkProxyFTP_Port");
var gopher = document.getElementById("networkProxyGopher");
var gopherPort = document.getElementById("networkProxyGopher_Port");
var http = document.getElementById("networkProxyHTTP");
var httpPort = document.getElementById("networkProxyHTTP_Port");
var socks = document.getElementById("networkProxySOCKS");
var socksPort = document.getElementById("networkProxySOCKS_Port");
var socksVersion = document.getElementById("networkProxySOCKSVersion");
var socksVersion4 = document.getElementById("networkProxySOCKSVersion4");
var socksVersion5 = document.getElementById("networkProxySOCKSVersion5");
var ssl = document.getElementById("networkProxySSL");
var sslPort = document.getElementById("networkProxySSL_Port");
var noProxy = document.getElementById("networkProxyNone");
var autoURL = document.getElementById("networkProxyAutoconfigURL");
var autoReload = document.getElementById("autoReload");
var copyButton = document.getElementById("reuseProxy");
// convenience arrays
var manual = [ftp, ftpPort, gopher, gopherPort, http, httpPort, socks, socksPort, socksVersion, socksVersion4, socksVersion5, ssl, sslPort, noProxy, copyButton];
var auto = [autoURL, autoReload];
// radio buttons
var radiogroup = document.getElementById("networkProxyType");
var prefstring;
switch ( radiogroup.value ) {
case "0":
for (i = 0; i < manual.length; i++)
manual[i].setAttribute( "disabled", "true" );
for (i = 0; i < auto.length; i++)
auto[i].setAttribute( "disabled", "true" );
break;
case "1":
for (i = 0; i < auto.length; i++)
auto[i].setAttribute( "disabled", "true" );
if (!radiogroup.disabled)
for (i = 0; i < manual.length; i++) {
prefstring = manual[i].getAttribute( "prefstring" );
if (!parent.hPrefWindow.getPrefIsLocked(prefstring))
manual[i].removeAttribute( "disabled" );
}
break;
case "2":
default:
for (i = 0; i < manual.length; i++)
manual[i].setAttribute( "disabled", "true" );
if (!radiogroup.disabled)
for (i = 0; i < auto.length; i++) {
prefstring = manual[i].getAttribute( "prefstring" );
if (!parent.hPrefWindow.getPrefIsLocked(prefstring))
auto[i].removeAttribute( "disabled" );
}
break;
}
}
const nsIProtocolProxyService = Components.interfaces.nsIProtocolProxyService;
const kPROTPROX_CID = '{e9b301c0-e0e4-11D3-a1a8-0050041caf44}';
function ReloadPAC() {
var autoURL = document.getElementById("networkProxyAutoconfigURL");
var pps = Components.classesByID[kPROTPROX_CID]
.getService(nsIProtocolProxyService);
pps.configureFromPAC(autoURL.value);
}
function DoProxyCopy()
{
var http = document.getElementById("networkProxyHTTP");
var httpPort = document.getElementById("networkProxyHTTP_Port");
var httpValue = http.value;
var httpPortValue = httpPort.value;
if (httpValue && httpPortValue && parseInt(httpPortValue) > 0) {
var ftp = document.getElementById("networkProxyFTP");
var gopher = document.getElementById("networkProxyGopher");
var ssl = document.getElementById("networkProxySSL");
var ftpPort = document.getElementById("networkProxyFTP_Port");
var gopherPort = document.getElementById("networkProxyGopher_Port");
var sslPort = document.getElementById("networkProxySSL_Port");
ftp.value = httpValue;
gopher.value = httpValue;
ssl.value = httpValue;
ftpPort.value = httpPortValue;
gopherPort.value = httpPortValue;
sslPort.value = httpPortValue;
}
}