/* A very simple client that shows a basic usage of the pz2.js
*/
+"use strict"; // HTML5
+
+if (!mkws_config)
+ var mkws_config = {}; // for the guys who forgot to define mkws_config...
+
+var pazpar2_url = mkws_config.pazpar2_url ? mkws_config.pazpar2_url : "/pazpar2/search.pz2";
+var service_proxy_url = mkws_config.service_proxy_url ? mkws_config.service_proxy_url : "/service-proxy/";
+
+var pazpar2path = mkws_config.use_service_proxy ? service_proxy_url : pazpar2_url;
+var usesessions = mkws_config.use_service_proxy ? false : true;
+
// create a parameters array and pass it to the pz2's constructor
// then register the form submit event with the pz2.search function
// autoInit is set to true on default
var my_paz = new pz2( { "onshow": my_onshow,
"showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way
- "pazpar2path": '/service-proxy/',
+ "pazpar2path": pazpar2path,
"oninit": my_oninit,
"onstat": my_onstat,
"onterm": my_onterm,
"termlist": "xtargets,subject,author",
"onbytarget": my_onbytarget,
- "usesessions" : false,
+ "usesessions" : usesessions,
"showResponseType": '', // or "json" (for debugging?)
"onrecord": my_onrecord } );
// some state vars
sort_default: "relevance",
perpage_default: 20,
query_width: 50,
- mkws_switch: true, /* show/hide Records|Targets menu */
+ switch: true, /* show/hide Records|Targets menu */
dummy: "dummy"
};
config[k] = data[k];
}
+ // For some reason, doing this programmatically results in
+ // document.search.query being undefined, hence the raw HTML.
+ $("#mkwsSearch").html('\
+ <form id="searchForm" name="search">\
+ <input id="query" type="text" size="50" />\
+ <input id="button" type="submit" value="Search" />\
+ </form>');
+ $("#mkwsRecords").html('\
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">\
+ <tr>\
+ <td width="250" valign="top">\
+ <div id="termlist"></div>\
+ </td>\
+ <td valign="top">\
+ <div id="ranking">\
+ <form name="select" id="select">\
+ Sort by' + mkws_html_sort(config) + '\
+ and show ' + mkws_html_perpage(config) + '\
+ per page.\
+ </form>\
+ </div>\
+ <div id="pager"></div>\
+ <div id="navi"></div>\
+ <div id="results"></div>\
+ </td>\
+ </tr>\
+ </table>\
+ </div>');
+
+ mkws_html_switch(config);
+ if (mkws_config.use_service_proxy)
+ mkws_service_proxy_auth(config.service_proxy_auth);
+
+ domReady();
+}
+
+function mkws_html_switch(config) {
$("#mkwsSwitch").html($("<a/>", {
href: '#',
onclick: "switchView(\'records\')",
text: "Targets"
}));
- if (!config.mkws_switch) {
+ $("#mkwsTargets").html('\
+ <div id="bytarget">\
+ No information available yet.\
+ </div>');
+ $("#mkwsTargets").css("display", "none");
+
+ if (!config.switch) {
$("#mkwsSwitch").css("display", "none");
}
+}
+function mkws_html_sort(config) {
var sort_html = '<select name="sort" id="sort">';
+
for(var i = 0; i < config.sort.length; i++) {
var key = config.sort[i][0];
var val = config.sort[i].length == 1 ? config.sort[i][0] : config.sort[i][1];
}
sort_html += '</select>';
+ return sort_html;
+}
+
+function mkws_html_perpage(config) {
var perpage_html = '<select name="perpage" id="perpage">';
+
for(var i = 0; i < config.perpage.length; i++) {
var key = config.perpage[i];
}
perpage_html += '</select>';
- // For some reason, doing this programmatically results in
- // document.search.query being undefined, hence the raw HTML.
- $("#mkwsSearch").html('\
- <form id="searchForm" name="search">\
- <input id="query" type="text" size="50" />\
- <input id="button" type="submit" value="Search" />\
- </form>');
-
- $("#mkwsRecords").html('\
- <table width="100%" border="0" cellpadding="6" cellspacing="0">\
- <tr>\
- <td width="250" valign="top">\
- <div id="termlist"></div>\
- </td>\
- <td valign="top">\
- <div id="ranking">\
- <form name="select" id="select">\
- Sort by' + sort_html + '\
- and show ' + perpage_html + '\
- per page.\
- </form>\
- </div>\
- <div id="pager"></div>\
- <div id="navi"></div>\
- <div id="results"></div>\
- </td>\
- </tr>\
- </table>\
- </div>');
-
- $("#mkwsTargets").html('\
- <div id="bytarget">\
- No information available yet.\
- </div>');
- $("#mkwsTargets").css("display", "none");
-
- domReady();
+ return perpage_html;
}
/*
* The username/password is configured in the apache config file
* for the site.
*/
-function mkws_service_proxy_auth() {
- var jqxhr = jQuery.get("/service-proxy-auth")
+function mkws_service_proxy_auth(auth_url) {
+ if (!auth_url)
+ auth_url = "/service-proxy-auth";
+
+ var jqxhr = jQuery.get(auth_url)
.fail(function() {
alert("service proxy authentication failed, give up!");
})
});
}
+/* magic */
$(document).ready(function() { mkws_html_all(mkws_config) });
-$(document).ready(function() { mkws_service_proxy_auth(); });