diff options
author | 2017-02-07 11:47:55 -0500 | |
---|---|---|
committer | 2017-02-07 12:51:32 -0500 | |
commit | 1faf201e8608dfa4d7af3460fd3d1fc7ebec398b (patch) | |
tree | 2208f76271cc6b1a81dbfb9143cd7118b071a909 /ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/ajax.js | |
parent | ca23569858b8cc9f60010e193b7041feb2d3227b (diff) |
Initial OpenECOMP Portal SDK commit
Change-Id: I66a3491600a4b9ea241128dc29267eed6a78ed76
Signed-off-by: talasila <talasila@research.att.com>
Diffstat (limited to 'ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/ajax.js')
-rw-r--r-- | ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/ajax.js | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/ajax.js b/ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/ajax.js new file mode 100644 index 00000000..c24c2688 --- /dev/null +++ b/ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/ajax.js @@ -0,0 +1,214 @@ +/* Simple AJAX Code-Kit (SACK) v1.6.1 */ +/* ©2005 Gregory Wild-Smith */ +/* www.twilightuniverse.com */ +/* Software licenced under a modified X11 licence, + see documentation or authors website for more details */ + +function sack(file) { + this.xmlhttp = null; + + this.resetData = function() { + this.method = "POST"; + this.queryStringSeparator = "?"; + this.argumentSeparator = "&"; + this.URLString = ""; + this.encodeURIString = true; + this.execute = false; + this.element = null; + this.elementObj = null; + this.requestFile = file; + this.vars = new Object(); + this.responseStatus = new Array(2); + }; + + this.resetFunctions = function() { + this.onLoading = function() { }; + this.onLoaded = function() { }; + this.onInteractive = function() { }; + this.onCompletion = function() { }; + this.onError = function() { }; + this.onFail = function() { }; + }; + + this.reset = function() { + this.resetFunctions(); + this.resetData(); + }; + + this.createAJAX = function() { + try { + this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e1) { + try { + this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (e2) { + this.xmlhttp = null; + } + } + + if (! this.xmlhttp) { + if (typeof XMLHttpRequest != "undefined") { + this.xmlhttp = new XMLHttpRequest(); + } else { + this.failed = true; + } + } + }; + + /*Modified by Sundar: to accept POST request*/ + this.setVar = function(name, value, index){ + if(index) + this.vars[name+'~'+index] = Array(value, false); + else + this.vars[name+'~'+0] = Array(value, false); + }; + + this.encVar = function(name, value, returnvars) { + if (true == returnvars) { + return Array(encodeURIComponent(name), encodeURIComponent(value)); + } else { + this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true); + } + } + + this.processURLString = function(string, encode) { + encoded = encodeURIComponent(this.argumentSeparator); + regexp = new RegExp(this.argumentSeparator + "|" + encoded); + varArray = string.split(regexp); + for (i = 0; i < varArray.length; i++){ + urlVars = varArray[i].split("="); + if (true == encode){ + this.encVar(urlVars[0], urlVars[1]); + } else { + this.setVar(urlVars[0], urlVars[1]); + } + } + } + + this.createURLString = function(urlstring) { + if (this.encodeURIString && this.URLString.length) { + this.processURLString(this.URLString, true); + } + + if (urlstring) { + if (this.URLString.length) { + this.URLString += this.argumentSeparator + urlstring; + } else { + this.URLString = urlstring; + } + } + + // prevents caching of URLString + this.setVar("rndval", new Date().getTime()); + + urlstringtemp = new Array(); + /*Modified by Sundar: to accept POST request*/ + var key1 = ""; + for (key in this.vars) { + if (false == this.vars[key][1] && true == this.encodeURIString) { + encoded = this.encVar(key, this.vars[key][0], true); + delete this.vars[key]; + this.vars[encoded[0]] = Array(encoded[1], true); + key = encoded[0]; + } + key1 = key.substr(0,key.indexOf('~')); + //alert("Key " + key1); + urlstringtemp[urlstringtemp.length] = key1 + "=" + this.vars[key][0]; + } + if (urlstring){ + this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator); + } else { + this.URLString += urlstringtemp.join(this.argumentSeparator); + } + //alert("URLString " + this.URLString); + + } + + this.runResponse = function() { + eval(this.response); + } + + + this.runAJAX = function(urlstring,noWaitForResponse,timeOut) { + + if(noWaitForResponse == null){ + noWaitForResponse = true; + } + + if (this.failed) { + this.onFail(); + } else { + this.createURLString(urlstring); + if (this.element) { + this.elementObj = document.getElementById(this.element); + } + if (this.xmlhttp) { + var self = this; + //SUNDAR: Added timeout for synchronous AJAX + if(!noWaitForResponse && timeOut != null && !isNaN(timeOut)){ + window.setTimeout("dummyFunction()",timeOut); + } + if (this.method == "GET") { + totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString; + this.xmlhttp.open(this.method, totalurlstring, noWaitForResponse); + } else { + + this.xmlhttp.open(this.method, this.requestFile, noWaitForResponse); + try { + this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") + } catch (e) { } + } + + this.xmlhttp.onreadystatechange = function() { + //alert("AJAX READY " + self.xmlhttp.readyState); + switch (self.xmlhttp.readyState) { + case 1: + self.onLoading(); + break; + case 2: + self.onLoaded(); + break; + case 3: + self.onInteractive(); + break; + case 4: + self.response = self.xmlhttp.responseText; + self.responseXML = self.xmlhttp.responseXML; + self.responseStatus[0] = self.xmlhttp.status; + self.responseStatus[1] = self.xmlhttp.statusText; + + if (self.execute) { + self.runResponse(); + } + + if (self.elementObj) { + elemNodeName = self.elementObj.nodeName; + elemNodeName.toLowerCase(); + if (elemNodeName == "input" + || elemNodeName == "select" + || elemNodeName == "option" + || elemNodeName == "textarea") { + self.elementObj.value = self.response; + } else { + self.elementObj.innerHTML = self.response; + } + } + if (self.responseStatus[0] == "200") { + self.onCompletion(); + } else { + self.onError(); + } + + self.URLString = ""; + break; + } + }; + + this.xmlhttp.send(this.URLString); + } + } + }; + + this.reset(); + this.createAJAX(); +} |