<%@ Page Language="VB" %>
<script runat="server">
Public ApAppRoot As String = "/ap/"
Public Browser As System.Web.HttpBrowserCapabilities
Public ComputerDiscoveryMethodTimeout As Integer
Public WebExtensionTimeoutInMilliSecs As Integer = 300
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If System.Configuration.ConfigurationManager.AppSettings("ApAppRoot") IsNot Nothing Then
ApAppRoot = System.Configuration.ConfigurationManager.AppSettings("ApAppRoot").ToString
End If
Browser = Request.Browser
ComputerDiscoveryMethodTimeout = AppPortal.Business.Common.StringExtensions.ToDbInt(SelfService.ESDConfig.getConfigValue("ComputerDiscoveryMethodTimeout"))
If ComputerDiscoveryMethodTimeout = 0 Then
ComputerDiscoveryMethodTimeout = 1
End If
ComputerDiscoveryMethodTimeout = ComputerDiscoveryMethodTimeout * 1000
WebExtensionTimeoutInMilliSecs = AppPortal.Business.Common.StringExtensions.ToDbInt(SelfService.ESDConfig.getConfigValue("WebExtensionTimeoutInMilliSecs"))
' If WebExtensionTimeoutInMilliSecs < ComputerDiscoveryMethodTimeout Then
' WebExtensionTimeoutInMilliSecs = ComputerDiscoveryMethodTimeout
End Sub
ReadOnly Property CompanyLogoURL() As String
Get
Dim logoUrl As String = AppPortal.Business.Common.StringExtensions.ToDbString(SelfService.ESDConfig.getConfigValue("CompanyLogoURL")).Trim()
If String.IsNullOrEmpty(logoUrl) Then
logoUrl = ApAppRoot & "Images/ap-logo.jpg"
End If
Return logoUrl
End Get
End Property
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Please wait...</title>
</head>
<body>
<input type="hidden" id="WebExtRequest" name="WebExtRequest" value="ComputerDiscovery" />
<script src="<% =ApAppRoot%>Scripts/jquery-3.6.4.min.js" type="text/javascript"></script>
<script src="<% =ApAppRoot%>Scripts/jquery-migrate-3.3.2.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
var appRoot = "<% =ApAppRoot%>";
var q = getURLParam("q");
var detectWebExtensionTimeout = "<% =WebExtensionTimeoutInMilliSecs%>";
console.log("detectWebExtensionTimeout: " + detectWebExtensionTimeout);
var compDiscMethodTimeout = "<% =ComputerDiscoveryMethodTimeout%>"
console.log("compDiscMethodTimeout: " + compDiscMethodTimeout);
$(window).on("load", function () { // !! Window onLoad cause : document_end -> DOM should be loaded here
if (q == "webext")
console.log('Starting the detectWebExtension function in ' + detectWebExtensionTimeout + ' milliseconds.');
else
console.log('Starting the detectWebExtension function in 1000 milliseconds.');
if (q === "webext")
setTimeout(detectWebExtension, detectWebExtensionTimeout); //.3 secs default
else
setTimeout(loader, 1000);
});
function detectWebExtension() {
try {
// Set
$body = $('body');
if (document.body.classList.contains("appportalclientinstalled")) {
console.log('addon is installed');
console.log('Starting the loader function in ' + compDiscMethodTimeout + ' milliseconds.');
setTimeout(loader, compDiscMethodTimeout);
} else {
console.log('determine browser compatability - <% =Browser.Type%> (<% =Browser.Version%>)');
var browser = "<% =Browser.Type.ToLower()%>".search("chrome") >= 0 && <% =Browser.Version%> >= 29
? "Chrome"
: "<% =Browser.Type.ToLower()%>".search("firefox") >= 0 && <% =Browser.Version%> >= 50
? "Firefox"
: "<% =Browser.Type.ToLower()%>".search("opera") >= 0 && <% =Browser.Version%> >= 16
? "Opera"
: "<% =Browser.Type.ToLower()%>".search("edge") >= 0 && <% =Browser.Version%> >= 15
? "Edge"
: "";
switch (browser) {
case 'Chrome':
case 'Firefox':
case 'Opera':
case 'Edge':
console.log('request install of webextension');
//parent.location.href = appRoot + 'Install' + browser + 'WebExtension.aspx';
q = getURLParam("f");
break;
default:
console.log('browser/version does not support WebExtensions.');
q = getURLParam("f");
break;
}
console.log('Starting the loader function in 1000 milliseconds.');
setTimeout(loader, 1000);
}
} catch (e) {
console.log('Starting the loader function in 1000 milliseconds.');
setTimeout(loader, 1000);
}
}
var lockLoader = false;
function loader(q1, data) {
console.log("lockLoader: " + lockLoader);
if (lockLoader) return;
lockLoader = true;
if (!q1)
console.log('Client to service failure. No detected extension method sent to service. (q1)');
else
console.log('Client to service success. Detected extension method sent to service. (q1)');
if (!data)
console.log('Client to service failure. No computer name data sent to service. (data)');
else
console.log('Client to service success. Computer name data sent to service. (data)');
var cid = undefined;
try {
var obj = JSON.parse(data);
cid = obj.ComputerName;
} catch (e) { }
if (!cid)
console.log('Client to service failure. No computer name in JSON. (cid)');
else
console.log('Client to service success. Computer name in JSON. (cid)');
var tzo = (new Date()).getTimezoneOffset().toString();
if (q === "webext" && !cid)
q = getURLParam("f");
if (q)
q = (q.split(","))[0];
switch (q) {
case 'webext':
parent.location.href = appRoot + 'Processor.aspx?d=webext&cid=' + cid + '&tzo=' + tzo;
break;
case 'activex':
try {
var name = new ActiveXObject("ESDComputerName.ESDGetComputerName");
var sSiteCode;
try {
sSiteCode = name.SiteCode;
}
catch (err) {
sSiteCode = '';
}
parent.location.href = appRoot + 'Processor.aspx?d=activex&cid=' + name.ComputerName + '&Site=' + sSiteCode + '&tzo=' + tzo;
}
catch (err) {
parent.location.href = appRoot + 'InstallActiveXControl.aspx';
}
break;
case 'dns':
parent.location.href = appRoot + 'Processor.aspx?d=dns&tzo=' + tzo;
break;
case 'sccm':
parent.location.href = appRoot + 'Processor.aspx?d=sccm&tzo=' + tzo;
break;
case 'ad':
parent.location.href = appRoot + 'Processor.aspx?d=ad&tzo=' + tzo;
break;
case 'imp':
var m = getURLParam("m");
parent.location.href = appRoot + 'Processor.aspx?d=imp&cid=' + m + '&Site=&tzo=' + tzo;
break;
case '':
var m = getURLParam("m");
parent.location.href = appRoot + 'Processor.aspx?d=&cid=' + m + '&Site=&tzo=' + tzo;
break;
}
}
function getURLParam(strParamName) {
var strReturn = "";
var strHref = window.location.href;
var startPos = strHref.indexOf("?");
if (startPos > -1) {
var endPos = strHref.indexOf("#");
var strQueryString = (endPos <= startPos)
? strHref.substring(startPos).toLowerCase()
: strHref.substring(startPos, endPos).toLowerCase();
var aQueryString = strQueryString.split("&");
for (var iParam = 0; iParam < aQueryString.length; iParam++) {
if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1) {
var aParam = aQueryString[iParam].split("=");
strReturn = aParam[1];
break;
}
}
}
strReturn = decodeURIComponent(strReturn);
return unescape(strReturn);
}
</script>
<form id="form1" runat="server">
<div style="width: 100%; text-align: center; padding: 120px 0px 120px 0px;">
<img src="<%=CompanyLogoURL%>" />
<br /><br/>
<img src="Images/37-1.gif" />
</div>
</form>
</body>
</html>