X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=www%2Fiphone%2Fexample_client.js;h=ea0de77734e73cad544c40f58c2910b02a597d4d;hb=47eccb020f44855ef54a68d424b2d56db8cb8ede;hp=44b2c5712f4234c7aed4722ccc838833115128a9;hpb=39dbd2f88a17311c8d7ea06363c8e766419c0731;p=pazpar2-moved-to-github.git diff --git a/www/iphone/example_client.js b/www/iphone/example_client.js index 44b2c57..ea0de77 100644 --- a/www/iphone/example_client.js +++ b/www/iphone/example_client.js @@ -14,13 +14,15 @@ var querys_server = {}; var useLimit = 1; // Fail to get JSON working stabil. var showResponseType = 'xml'; + +var imageHelper = new ImageHelper(); + if (document.location.hash == '#pazpar2' || document.location.search.match("useproxy=false")) { usesessions = true; pazpar2path = '/pazpar2/search.pz2'; showResponseType = 'xml'; } - my_paz = new pz2( { "onshow": my_onshow, // "showtime": 2000, //each timer (show, stat, term, bytarget) can be specified this way "pazpar2path": pazpar2path, @@ -31,10 +33,12 @@ my_paz = new pz2( { "onshow": my_onshow, "onbytarget": null, "usesessions" : usesessions, "showResponseType": showResponseType, - "onrecord": my_onrecord } ); + "onrecord": my_onrecord, + "errorhandler" : my_onerror} +); // some state vars var curPage = 1; -var recPerPage = 100; +var recPerPage = 10; var recToShowPageSize = 20; var recToShow = recToShowPageSize; var recIDs = {}; @@ -52,6 +56,33 @@ var tab = "recordview"; var triedPass = ""; var triedUser = ""; +// +// pz2.js event handlers: +// +function my_onerror(error) { + switch(error.code) { + // No targets! + case "8": alert("No resources were selected for the search"); break; + // target not configured, this is a pazpar2 bug + // but for now simply research + case "9": + triggerSearch(); + break; + + // Already blocked + case "13": + // ignore + break + // authentication + case "100" : + auth.check(loggedIn, login); + break; + default: + alert("Unhandled error: " + error.code); + throw error; // display error in JavaScript console + } +} + function loginFormSubmit() { triedUser = document.loginForm.username.value; triedPass = document.loginForm.password.value; @@ -121,7 +152,7 @@ function logInOrOut() { } function loggedIn() { var login = document.getElementById("login"); - login.innerHTML = 'Logout(' + auth.displayName + ')'; + login.innerHTML = 'Logout'; document.getElementById("log").innerHTML = login.innerHTML; } @@ -153,16 +184,45 @@ function showMoreRecords() { } } +function hideRecords() { + for ( var i = 0; i < recToShow; i++) { + var element = document.getElementById(recIDs[i]); + if (element && recIDs != curDetRecId) + element.style.display = 'none'; + } + var element = document.getElementById('recdiv_END'); + if (element) + element.style.display = 'none'; +} + +function showRecords() { + for (var i = 0 ; i < recToShow && i < recPerPage; i++) { + var element = document.getElementById(recIDs[i]); + if (element) + element.style.display = ''; + } + var element = document.getElementById('recdiv_END'); + if (element) { + if (i == recPerPage) + element.style.display = 'none'; + else + element.style.display = ''; + } +} + + + + function my_onshow(data) { totalRec = data.merged; // move it out var pager = document.getElementById("pager"); pager.innerHTML = ""; - pager.innerHTML +='
Displaying: ' + drawPager(pager); + pager.innerHTML +='
Displaying: ' + (data.start + 1) + ' to ' + (data.start + data.num) + ' of ' + data.merged + ' (found: ' + data.total + ')
'; - drawPager(pager); var results = document.getElementById("results"); @@ -172,33 +232,75 @@ function my_onshow(data) { var style = ''; for (var i = 0; i < data.hits.length; i++) { var hit = data.hits[i]; - var recID = "recdiv_" + hit.recid; - //var recID = "recdiv_" + i; - recIDs[i] = recID; + var recDivID = "recdiv_" + hit.recid; + recIDs[i] = recDivID; + var lines = 0; if (i == recToShow) style = ' style="display:none" '; - html.push('
  • ' - +'' - + hit["md-title"] +' '); - if (hit["md-title-responsibility"] !== undefined) { - html.push(''+hit["md-title-responsibility"]+' '); - if (hit["md-title-remainder"] !== undefined) { - html.push('' + hit["md-title-remainder"] + ' '); - } - } + html.push('
  • ' ); + html.push(''); + if (1) { + var useThumbnails = hit["md-use_thumbnails"]; + var thumburls = hit["md-thumburl"]; + if (thumburls && (useThumbnails == undefined || useThumbnails == "1")) { + var thumbnailtag = imageHelper.getImageTagByRecId(hit.recid,"md-thumburl", 60, "S"); + html.push(thumbnailtag); + } else { + if (hit["md-isbn"] != undefined) { + var coverimagetag = imageHelper.getImageTagByRecId(hit.recid, "md-isbn", 60, "S"); + if (coverimagetag.length>0) { + html.push(coverimagetag); + } else { + html.push(" "); + } + } + } + } + html.push(""); + html.push(''); + html.push(hit["md-title"]); + html.push(""); + + if (hit["md-title-remainder"] != undefined) { + html.push(''); + html.push(hit["md-title-remainder"]); + html.push(""); + lines++; + } + if (hit["md-author"] != undefined) { + html.push(''); + html.push(hit["md-author"]); + html.push(""); + lines++; + } + else if (hit["md-title-responsibility"] != undefined) { + html.push(''); + html.push(hit["md-title-responsibility"]); + html.push(""); + lines++; + } + for (var idx = lines ; idx < 2 ; idx++) { + html.push(''); + html.push(" "); + html.push(""); + } +/* if (hit.recid == curDetRecId) { html.push(renderDetails_iphone(curDetRecData)); } +*/ html.push('
  • '); } + if (data.activeclients == 0) + document.getElementById("loading").style.display = 'none'; +/* // set up "More..." if needed. style = 'display:none'; if (recToShow < recPerPage) { style = 'display:block'; } - html.push('
  • More...
  • '); - + html.push('
  • More...
  • '); +*/ replaceHtml(results, html.join('')); } @@ -214,13 +316,15 @@ function my_onstat(data) { + '/' + data.hits + ' :.'; } -function showhide(newtab) { +function showhide(newtab, hash) { var showtermlist = false; if (newtab != null) tab = newtab; if (tab == "recordview") { document.getElementById("recordview").style.display = ''; + if (hash != undefined) + document.location.hash = hash; } else document.getElementById("recordview").style.display = 'none'; @@ -246,6 +350,16 @@ function showhide(newtab) { else document.getElementById("term_authors").style.display = 'none'; + if (tab == "detailview") { + document.getElementById("detailview").style.display = ''; + } + else { + document.getElementById("detailview").style.display = 'none'; + var element = document.getElementById("rec_" + curDetRecId); + if (element != undefined) + element.scrollIntoView(); + + } if (showtermlist == false) document.getElementById("termlist").style.display = 'none'; else @@ -265,10 +379,10 @@ function my_onterm(data) { termlists.push('
    '); termlists.push('

    Sources

    '); - termlists.push('