Review and sign document(s) | Docusign
(function () {
window.cdnURL = 'https://docucdn-a.akamaihd.net/production/1ds/widgets/@ds/signing/24.11.38-8/';
window.primaryCdnUrl = window.cdnURL;
window.cdnUrlsAttempted = [window.cdnURL];
window.cdnDidFallback = false;
window.disableCDNFallbackDueToOverride = false;
window.fallbackCdnUrl = 'https://apps.docusign.com/cdn/production/1ds/widgets/@ds/signing/24.11.38-8/';
// Set a new CDN Url
window.setCdnUrl = function(url) {
window.cdnUrlsAttempted && window.cdnUrlsAttempted.push(url);
window.cdnURL = url;
window.cdnDidFallback = true;
}
// Set the next available cdn URL, return false if there are no more options
window.setNextCdnUrl = function() {
if (window.cdnURL === window.primaryCdnUrl && window.fallbackCdnUrl)
{
window.setCdnUrl(window.fallbackCdnUrl);
return true;
}
else
{
window.setCdnUrl('/Signing/SigningApp/latest/');
return false;
}
}
window.getCDNMonitoringProps = function() {
return {
CdnUrl: window.cdnURL,
PrimaryCdnUrl: window.primaryCdnUrl,
FallbackCdnUrl: window.fallbackCdnUrl,
CdnDidFallback: window.cdnDidFallback,
CdnUrlsAttempted: JSON.stringify(window.cdnUrlsAttempted), // monitoringProperties cannot be objects/arrays
DisableCDNFallbackDueToOverride: window.disableCDNFallbackDueToOverride
}
}
function createScript(src, onError, onLoad) {
var scriptEl = document.createElement("script");
scriptEl.src = src;
scriptEl.onerror=onError;
scriptEl.onload=onLoad;
scriptEl.crossorigin = true;
document.head.appendChild(scriptEl);
}
function createStylesheet(href, onError, onLoad) {
var styleEl = document.createElement("link");
styleEl.href = href;
styleEl.rel = 'stylesheet';
styleEl.type = "text/css";
styleEl.onerror=onError;
styleEl.onload=onLoad;
styleEl.crossorigin = true;
document.head.appendChild(styleEl);
}
window.tryFallbackToNextCDN = function tryFallbackToNextCDN(bundleName, onFail, onLoad, previousCDNUrl) {
if (window.disableCDNFallbackDueToOverride) {
onFail();
return;
}
// if previousCDN URL doesn't match current cdnURL, try to load again without setting setNextCdnUrl to the next value
var hasAnotherFallback = window.cdnUrl !== previousCDNUrl ? true : window.setNextCdnUrl();
createScript(window.cdnURL + bundleName, hasAnotherFallback ? tryFallbackToNextCDN.bind(this, bundleName, onFail, onLoad, window.cdnUrl) : onFail, onLoad);
}
window.tryFallbackToNextCDNStylesheet = function tryFallbackToNextCDNStylesheet(stylesheetName, onFail, onLoad, previousCDNUrl) {
if (window.disableCDNFallbackDueToOverride) {
onFail();
return;
}
// if previousCDN URL doesn't match current cdnURL, try to load again without setting setNextCdnUrl to the next value
var hasAnotherFallback = window.cdnUrl !== previousCDNUrl ? true : window.setNextCdnUrl();
createStylesheet(window.cdnURL + stylesheetName, hasAnotherFallback ? tryFallbackToNextCDNStylesheet.bind(this, stylesheetName, onFail, onLoad, window.cdnUrl) : onFail, onLoad);
}
})();
All Comments