X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=experiments%2Fspclient%2Fmkws.js;h=30bf3b21d93fe2c6904b6cb07fda0602c8ae8f1a;hb=cc0a141ede859ae7729f682c6c547829628f85ad;hp=eacaec5fb5ad73de061a8549a1420b96001eccfb;hpb=15b1e6a3b136b4110e676455a2c504ee4c6d9315;p=mkws-moved-to-github.git diff --git a/experiments/spclient/mkws.js b/experiments/spclient/mkws.js index eacaec5..30bf3b2 100644 --- a/experiments/spclient/mkws.js +++ b/experiments/spclient/mkws.js @@ -1,18 +1,29 @@ /* 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 @@ -41,22 +52,22 @@ function my_onshow(data) { // move it out var pager = document.getElementById("pager"); pager.innerHTML = ""; - pager.innerHTML +='
Displaying: ' + pager.innerHTML +='
Displaying: ' + (data.start + 1) + ' to ' + (data.start + data.num) + - ' of ' + data.merged + ' (found: ' + ' of ' + data.merged + ' (found: ' + data.total + ')
'; drawPager(pager); // navi var results = document.getElementById("results"); - + var html = []; for (var i = 0; i < data.hits.length; i++) { var hit = data.hits[i]; html.push('
' +''+ (i + 1 + recPerPage * (curPage - 1)) +'. ' +'' - + hit["md-title"] +' '); + +'" onclick="showDetails(this.id);return false;">' + + hit["md-title"] +' '); if (hit["md-title-remainder"] !== undefined) { html.push('' + hit["md-title-remainder"] + ' '); } @@ -72,10 +83,10 @@ function my_onshow(data) { } function my_onstat(data) { - var stat = document.getElementById("stat"); + var stat = document.getElementById("mkwsStat"); if (stat == null) return; - + stat.innerHTML = 'STATUS INFO -- Active clients: ' + data.activeclients + '/' + data.clients + ' -- ' @@ -88,22 +99,22 @@ function my_onterm(data) { termlists.push('
TERMLISTS:
Sources
'); for (var i = 0; i < data.xtargets.length && i < SourceMax; i++ ) { termlists.push('' + data.xtargets[i].name + + ' onclick="limitTarget(this.getAttribute(\'target_id\'), this.firstChild.nodeValue);return false;">' + data.xtargets[i].name + ' (' + data.xtargets[i].freq + ')
'); } - + termlists.push('
Subjects
'); for (var i = 0; i < data.subject.length && i < SubjectMax; i++ ) { - termlists.push('' + data.subject[i].name + ' (' + termlists.push('' + data.subject[i].name + ' (' + data.subject[i].freq + ')
'); } - + termlists.push('
Authors
'); for (var i = 0; i < data.author.length && i < AuthorMax; i++ ) { - termlists.push('' - + data.author[i].name - + ' (' - + data.author[i].freq + termlists.push('' + + data.author[i].name + + ' (' + + data.author[i].freq + ')
'); } var termlist = document.getElementById("termlist"); @@ -126,7 +137,7 @@ function my_onbytarget(data) { var targetDiv = document.getElementById("bytarget"); var table ='' +''; - + for (var i = 0; i < data.length; i++ ) { table += "
Target IDHitsDiagsRecordsState
" + data[i].id + "" + data[i].hits + @@ -143,8 +154,8 @@ function my_onbytarget(data) { //////////////////////////////////////////////////////////////////////////////// // wait until the DOM is ready -function domReady () -{ +function domReady () +{ document.search.onsubmit = onFormSubmitEventHandler; document.search.query.value = ''; document.select.sort.onchange = onSelectDdChange; @@ -152,7 +163,7 @@ function domReady () } // when search button pressed -function onFormSubmitEventHandler() +function onFormSubmitEventHandler() { resetPage(); loadSelect(); @@ -198,7 +209,7 @@ function limitQuery (field, value) function limitTarget (id, name) { var navi = document.getElementById('navi'); - navi.innerHTML = + navi.innerHTML = 'Source: ' + name + ''; navi.innerHTML += '
'; @@ -213,7 +224,7 @@ function delimitTarget () { var navi = document.getElementById('navi'); navi.innerHTML = ''; - curFilter = null; + curFilter = null; resetPage(); loadSelect(); triggerSearch(); @@ -225,8 +236,8 @@ function drawPager (pagerDiv) //client indexes pages from 1 but pz2 from 0 var onsides = 6; var pages = Math.ceil(totalRec / recPerPage); - - var firstClkbl = ( curPage - onsides > 0 ) + + var firstClkbl = ( curPage - onsides > 0 ) ? curPage - onsides : 1; @@ -248,7 +259,7 @@ function drawPager (pagerDiv) middle += ' ' + numLabel + ' '; } - + var next = ' | Next >>'; if (pages - curPage > 0) next = ' | ", { href: '#', - onclick: "switchView(\'recordview\')", - text: "Record Browser", - })); +function mkws_html_switch(config) { + $("#mkwsSwitch").html($("", { + href: '#', + onclick: "switchView(\'records\')", + text: "Records" + })); $("#mkwsSwitch").append($("", { text: " | " })); - $("#mkwsSwitch").append($("", { href: '#', - onclick: "switchView(\'targetview\')", - text: "Target Info", - })); -}); + $("#mkwsSwitch").append($("", { + href: '#', + onclick: "switchView(\'targets\')", + text: "Targets" + })); + + $("#mkwsTargets").html('\ +
\ + No information available yet.\ +
'); + $("#mkwsTargets").css("display", "none"); + + if (!config.switch) { + $("#mkwsSwitch").css("display", "none"); + } +} + +function mkws_html_sort(config) { + var sort_html = ''; + + return sort_html; +} + +function mkws_html_perpage(config) { + var perpage_html = ''; + + return perpage_html; +} + +/* + * Run service-proxy authentication in background (after page load). + * The username/password is configured in the apache config file + * for the site. + */ +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!"); + }) + .success(function(data) { + if (!jQuery.isXMLDoc(data)) { + alert("service proxy auth response document is not valid XML document, give up!"); + return; + } + var status = $(data).find("status"); + if (status.text() != "OK") { + alert("service proxy auth repsonse status: " + status.text() + ", give up!"); + return; + } + }); +} + +/* magic */ +$(document).ready(function() { mkws_html_all(mkws_config) });