This simple example shows an html page that displays input boxes for User, Password, and Favorite, where the required values can be entered. Clicking the Create table button imports the data via the query interface and displays it as a table below the form.
Example
To follow the example for Internet Explorer, create the file test_JS.html in the directory <installation directory>\ppmmashzone\server\bin\work\data_ppm\
webappQueryApi
with the following content:<html>
<head/>
<body>
<script type="text/javascript" language="JavaScript">
var g_QueryBaseURL = "http://localhost:16350/API_umg_en";
function makeRequest(usr,pass,favorit,folder) {
var sfolder = (folder)?"FAVORITES_PRIVATE":"FAVORITES_SHARED";
var url = g_QueryBaseURL+"/urlquery/query.do?favoritename="
+encodeURIComponent(favorit)+"&favoritefolder="+sfolder;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
logout_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
logout_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
http_request = new ActiveXObject("Microsoft.XMLHTTP");
logout_request = new ActiveXObject("Microsoft.XMLHTTP");
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = renderResults;
http_request.open('POST', url, true,usr,pass); //GET can also be used here
http_request.send(null);
}
function renderResults()
{
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var srcTree = new ActiveXObject("Msxml2.DOMDocument.4.0");
srcTree.async=false;
srcTree.loadXML(http_request.responseXML.xml);
var dd = srcTree.selectSingleNode("//queryresult");
var x = dd.getElementsByTagName("column") ;
var newEl = document.createElement('TABLE');
newEl.setAttribute('cellPadding',5);
var tmp = document.createElement('TBODY');
newEl.appendChild(tmp);
var row = document.createElement('TR');
for (j=0;j<x.length;j++) {
var container = document.createElement('TH');
var theData = document.createTextNode(x[j].text);
container.appendChild(theData);
row.appendChild(container);
}
tmp.appendChild(row);
var z = dd.getElementsByTagName('row');
for (var i=0;i<z.length;i++) {
var row = document.createElement('TR');
for (var j=0;j<z[i].childNodes.length;j++) {
if (z[i].childNodes[j].nodeType != 1) continue;
var container = document.createElement('TD');
var theData = document.createTextNode(z[i].childNodes[j].firstChild.nodeValue);
container.appendChild(theData);
row.appendChild(container);
}
tmp.appendChild(row);
}
document.getElementById('writeroot').appendChild(newEl);
logout_request.open('POST', g_QueryBaseURL+"/urlquery/logout.do", true);
logout_request.send(null);
} else if(http_request.status == 401) {
alert('Login error! User/password combination does not exist!');
} else {
alert('There is a problem with the request. Status:'+http_request.status);
}
}
}
</script>
<form action="" method="post" name="myform">
<table>
<tr><td>User:</td><td><input type="text" name="user" size="20" value="system"></td></tr>
<tr><td>Password:</td><td><input type="password" name="password" size="20" value="manager"></td></tr>
<tr><td>Favorite:</td><td><input type="text" name="favorit" size="40" value="\MVs\Helpdesk\Favorite_Table"></td></tr>
<tr><td>Private favorite:</td><td><input type="checkbox" name="folder" value="1"></td></tr>
</table>
<input type="button" value="Create table" onclick="javascript:makeRequest(document.forms['myform'].elements['user'].value,document.forms['myform'].elements['password'].value,document.forms['myform'].elements['favorit'].value,document.forms['myform'].elements['folder'].checked);return true"/>
</form>
<div id="writeroot"></div>
</body>
</html>