X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;ds=sidebyside;f=www%2Fiphone%2Fexample_client.js;h=3dcd63d9a3158080f700303d72b00a69a97026d0;hb=0a7ece495a8e02054cd0fd39199915578ee0d165;hp=6eacd1ba59efe0a971ff3b6c2c265cf20eb90035;hpb=f9037b738337578db567694c646c7ea642c052f1;p=pazpar2-moved-to-github.git diff --git a/www/iphone/example_client.js b/www/iphone/example_client.js index 6eacd1b..3dcd63d 100644 --- a/www/iphone/example_client.js +++ b/www/iphone/example_client.js @@ -4,31 +4,44 @@ // 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 usesessions = true; -var pazpar2path = '/pazpar2/search.pz2'; +var usesessions = false; +var pazpar2path = '/service-proxy/'; var showResponseType = ''; +// Facet configuration var querys = {'su': '', 'au': '', 'xt': ''}; +var query_client_server = {'su': 'subject', 'au': 'author', 'xt': 'xtargets'}; +var querys_server = {}; +var useLimit = 1; +// Fail to get JSON working stabil. +var showResponseType = 'xml'; -if (document.location.hash == '#useproxy' || document.location.search.match("useproxy=true")) { - usesessions = false; - pazpar2path = '/service-proxy/'; +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": 500, //each timer (show, stat, term, bytarget) can be specified this way +// "showtime": 2000, //each timer (show, stat, term, bytarget) can be specified this way "pazpar2path": pazpar2path, "oninit": my_oninit, - "onstat": my_onstat, + "onstat": null, "onterm": my_onterm_iphone, "termlist": "xtargets,subject,author", - "onbytarget": my_onbytarget, + "onbytarget": null, "usesessions" : usesessions, "showResponseType": showResponseType, - "onrecord": my_onrecord } ); + "onrecord": my_onrecord, + "errorhandler" : my_onerror} +); // some state vars var curPage = 1; -var recPerPage = 20; +var recPerPage = 10; +var recToShowPageSize = 20; +var recToShow = recToShowPageSize; +var recIDs = {}; var totalRec = 0; var curDetRecId = ''; var curDetRecData = null; @@ -43,6 +56,29 @@ 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; + // authentication + case "100" : + loginFormSubmit(); + //window.location = "login.html"; + 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; @@ -51,6 +87,26 @@ function loginFormSubmit() { authCb, authCb); } +function handleKeyPress(e) +{ + var key; + if(window.event) + key = window.event.keyCode; + else + key = e.which; + + if(key == 13 || key == 10) + { + button = document.getElementById('button'); + button.focus(); + button.click(); + + return false; + } + else + return true; +} + function authCb(authData) { if (!authData.loginFailed) { triedUser = ""; @@ -86,19 +142,19 @@ function logout() { function logInOrOut() { var loginElement = document.getElementById("login"); if (loginElement.innerHTML == 'Login') - login(); + login(); else - logout(); + logout(); } function loggedIn() { var login = document.getElementById("login"); login.innerHTML = 'Logout'; - // login.onclick = 'logout();'; - domReady(); + document.getElementById("log").innerHTML = login.innerHTML; } function auth_check() { - auth.check(loggedIn, login, true); + auth.check(loggedIn, login); + domReady(); } // @@ -109,38 +165,138 @@ function my_oninit() { my_paz.bytarget(); } +function showMoreRecords() { + var i = recToShow; + recToShow += recToShowPageSize; + for ( ; i < recToShow && i < recPerPage; i++) { + var element = document.getElementById(recIDs[i]); + if (element) + element.style.display = ''; + } + if (i == recPerPage) { + var element = document.getElementById('recdiv_END'); + if (element) + element.style.display = 'none'; + } +} + +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 +='