/*
- * Mine
+ * $Id$
** pz2.js - pazpar2's javascript client library.
*/
}
// else, auto init session or wait for a user init?
if (this.useSessions && paramArray.autoInit !== false) {
- this.init(this.sessionId, this.serviceId);
+ this.init(this.sessionID, this.serviceId);
}
// Version parameter
this.version = paramArray.version || null;
context.sessionID =
data.getElementsByTagName("session")[0]
.childNodes[0].nodeValue;
+ if (data.getElementsByTagName("keepAlive").length > 0) {
+ context.keepAlive = data.getElementsByTagName("keepAlive")[0].childNodes[0].nodeValue;
+ }
context.pingTimer =
setTimeout(
function () {
else
var start = 0;
- var searchParams = {
+ var searchParams = {
"command": "search",
"query": this.currQuery,
"session": this.sessionID,
"windowid" : window.name
};
+ if( sort !== undefined ) {
+ this.currentSort = sort;
+ searchParams["sort"] = sort;
+ }
if (filter !== undefined)
searchParams["filter"] = filter;
"sort": this.currentSort,
"block": 1,
"type": this.showResponseType,
- "windowid" : window.name,
+ "windowid" : window.name
};
if (query_state)
requestParameters["query-state"] = query_state;
context.throwError('Show failed. Malformed WS resonse.',
114);
};
+
var approxNode = data.getElementsByTagName("approximation");
- if (approxNode)
+ if (approxNode && approxNode[0] && approxNode[0].childNodes[0] && approxNode[0].childNodes[0].nodeValue)
show['approximation'] =
Number( approxNode[0].childNodes[0].nodeValue);
{
var parsed = {};
var hasChildElems = false;
+ var textContent = '';
if (node.hasChildNodes()) {
var children = node.childNodes;
for (var i = 0; i < children.length; i++) {
var child = children[i];
- if (child.nodeType == Node.ELEMENT_NODE) {
+ switch (child.nodeType) {
+ case Node.ELEMENT_NODE:
hasChildElems = true;
var nodeName = child.nodeName;
if (!(nodeName in parsed))
parsed[nodeName] = [];
parsed[nodeName].push(Element_parseChildNodes(child));
+ break;
+ case Node.TEXT_NODE:
+ textContent += child.nodeValue;
+ break;
+ case Node.CDATA_SECTION_NODE:
+ textContent += child.nodeValue;
+ break;
}
}
}
var attrs = node.attributes;
for (var i = 0; i < attrs.length; i++) {
+ hasChildElems = true;
var attrName = '@' + attrs[i].nodeName;
var attrValue = attrs[i].nodeValue;
parsed[attrName] = attrValue;
}
- // if no nested elements, get text content
- if (node.hasChildNodes() && !hasChildElems) {
- if (node.attributes.length)
- parsed['#text'] = node.firstChild.nodeValue;
- else
- parsed = node.firstChild.nodeValue;
- }
+ // if no nested elements/attrs set value to text
+ if (hasChildElems)
+ parsed['#text'] = textContent;
+ else
+ parsed = textContent;
return parsed;
}