X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=www%2Fiphone%2Fexample_client.js;h=9761e831996dcb6ebcedc53d1438c9d6941e5e9a;hb=09e752194178c47e62eb2cc45bdf58728a87ea54;hp=fd9c37ee8eded2de4dadbbff82324efe729656ad;hpb=d7f1c93a49111cc48e2c78c1796472509b8397fe;p=pazpar2-moved-to-github.git diff --git a/www/iphone/example_client.js b/www/iphone/example_client.js index fd9c37e..9761e83 100644 --- a/www/iphone/example_client.js +++ b/www/iphone/example_client.js @@ -7,21 +7,24 @@ var usesessions = true; var pazpar2path = '/pazpar2/search.pz2'; var showResponseType = ''; -if (document.location.hash == '#useproxy') { +var querys = {'su': '', 'au': '', 'xt': ''}; + +if (document.location.hash == '#useproxy' || document.location.search.match("useproxy=true")) { usesessions = false; pazpar2path = '/service-proxy/'; showResponseType = 'json'; } + my_paz = new pz2( { "onshow": my_onshow, "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way "pazpar2path": pazpar2path, "oninit": my_oninit, "onstat": my_onstat, - "onterm": my_onterm, + "onterm": my_onterm_iphone, "termlist": "xtargets,subject,author", "onbytarget": my_onbytarget, - "usesessions" : usesessions, + "usesessions" : usesessions, "showResponseType": showResponseType, "onrecord": my_onrecord } ); // some state vars @@ -31,14 +34,76 @@ var totalRec = 0; var curDetRecId = ''; var curDetRecData = null; var curSort = 'relevance'; -var curFilter = null; +var curFilter = 'ALL'; var submitted = false; var SourceMax = 16; var SubjectMax = 10; var AuthorMax = 10; +var tab = "recordview"; + +var triedPass = ""; +var triedUser = ""; + +function loginFormSubmit() { + triedUser = document.loginForm.username.value; + triedPass = document.loginForm.password.value; + auth.login( {"username": triedUser, + "password": triedPass}, + authCb, authCb); +} + +function authCb(authData) { + if (!authData.loginFailed) { + triedUser = ""; + triedPass = ""; + } + + if (authData.loggedIn == true) { + showhide("recordview"); + } +} + +function logOutClick() { + auth.logOut(authCb, authCb); +} + +function loggedOut() { + var login = document.getElementById("login"); + login.innerHTML = 'Login'; +} + +function loggingOutFailed() { + alert("Logging out failed"); +} + +function login() { + showhide("login"); +} + +function logout() { + auth.logOut(loggedOut, loggingOutFailed, true); +} + +function logInOrOut() { + var loginElement = document.getElementById("login"); + if (loginElement.innerHTML == 'Login') + login(); + else + logout(); +} +function loggedIn() { + var login = document.getElementById("login"); + login.innerHTML = 'Logout(' + auth.displayName + ')'; + document.getElementById("log").innerHTML = login.innerHTML; +} + +function auth_check() { + auth.check(loggedIn, login, true); + domReady(); +} // -// pz2.js event handlers: +// Pz2.js event handlers: // function my_oninit() { my_paz.stat(); @@ -55,25 +120,25 @@ function my_onshow(data) { ' 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)) +'. ' + html.push('
  • ' + /* +''+ (i + 1 + recPerPage * (curPage - 1)) +'. ' */ +'' - + hit["md-title"] +' '); - if (hit["md-title-remainder"] !== undefined) { - html.push('' + hit["md-title-remainder"] + ' '); - } + +'" onclick="showDetails(this.id);return false;">' + + hit["md-title"] +' '); if (hit["md-title-responsibility"] !== undefined) { - html.push(''+hit["md-title-responsibility"]+''); + html.push(''+hit["md-title-responsibility"]+' '); + if (hit["md-title-remainder"] !== undefined) { + html.push('' + hit["md-title-remainder"] + ' '); + } } if (hit.recid == curDetRecId) { - html.push(renderDetails(curDetRecData)); + html.push(renderDetails_iphone(curDetRecData)); } html.push('
  • '); } @@ -92,31 +157,129 @@ function my_onstat(data) { + '/' + data.hits + ' :.'; } +function showhide(newtab) { + var showtermlist = false; + if (newtab != null) + tab = newtab; + + if (tab == "recordview") { + document.getElementById("recordview").style.display = ''; + } + else + document.getElementById("recordview").style.display = 'none'; + + if (tab == "xtargets") { + document.getElementById("term_xtargets").style.display = ''; + showtermlist = true; + } + else + document.getElementById("term_xtargets").style.display = 'none'; + + if (tab == "subjects") { + document.getElementById("term_subjects").style.display = ''; + showtermlist = true; + } + else + document.getElementById("term_subjects").style.display = 'none'; + + if (tab == "authors") { + document.getElementById("term_authors").style.display = ''; + showtermlist = true; + } + else + document.getElementById("term_authors").style.display = 'none'; + + if (showtermlist == false) + document.getElementById("termlist").style.display = 'none'; + else + document.getElementById("termlist").style.display = ''; + + var tabDiv = document.getElementById("loginDiv"); + if (tab == "login") { + tabDiv.style.display = ''; + } + else { + tabDiv.style.display = 'none'; + } +} + function my_onterm(data) { var termlists = []; - termlists.push('
    TERMLISTS:
    .::Sources
    '); + + termlists.push('
    '); + termlists.push('

    Sources

    '); + termlists.push(''); + termlists.push('
    '); - termlists.push('
    .::Subjects
    '); + termlists.push('
    '); + termlists.push('

    Subjects

    '); + termlists.push(''); + termlists.push('
    '); + + termlists.push('
    '); + termlists.push('

    Authors

    '); + termlists.push(''); + termlists.push('
    '); var termlist = document.getElementById("termlist"); replaceHtml(termlist, termlists.join('')); + showhide(); +} + +var termlist = {}; +function my_onterm_iphone(data) { + my_onterm(data); + var targets = "reset_xt|All\n"; + + for (var i = 0; i < data.xtargets.length; i++ ) { + + targets = targets + data.xtargets[i].id + "|" + data.xtargets[i].name + "|" + data.xtargets[i].freq + "\n"; + } + termlist["xtargets"] = targets; + var subjects = "reset_su|All\n"; + for (var i = 0; i < data.subject.length; i++ ) { + subjects = subjects + "su" + "|" + data.subject[i].name + "|" + data.subject[i].freq + "\n"; + } + termlist["subjects"] = subjects; + var authors = "reset_au|All\n"; + for (var i = 0; i < data.author.length; i++ ) { + authors = authors + "au" + "|" + data.author[i].name + "|" + data.author[i].freq + "\n"; + } + termlist["authors"] = authors; + callback.send("termlist", "refresh"); +} + +function getTargets() { + return termlist['xtargets']; +} + +function getSubjects() { + return termlist['subjects']; +} + +function getAuthors() { + return termlist['authors']; } function my_onrecord(data) { @@ -127,10 +290,16 @@ function my_onrecord(data) { if (detRecordDiv) return; curDetRecData = data; var recordDiv = document.getElementById('recdiv_'+curDetRecData.recid); - var html = renderDetails(curDetRecData); + var html = renderDetails_iphone(curDetRecData); recordDiv.innerHTML += html; } +function my_onrecord_iphone(data) { + my_onrecord(data); + callback.send("record", data.recid, data, data.xtargets[i].freq); +} + + function my_onbytarget(data) { var targetDiv = document.getElementById("bytarget"); var table ='' @@ -158,16 +327,37 @@ function domReady () document.search.query.value = ''; document.select.sort.onchange = onSelectDdChange; document.select.perpage.onchange = onSelectDdChange; + if (document.location.search.match("inApp=true")) + applicationMode(true); + else + applicationMode(false); +} + +function applicationMode(newmode) +{ + var searchdiv = document.getElementById("searchForm"); + if (newmode) + inApp = newmode; + if (inApp) { + document.getElementById("heading").style.display="none"; + searchdiv.style.display = 'none'; + } + else { + document.getElementById("nav").style.display=""; + searchdiv.style.display = ''; + document.search.onsubmit = onFormSubmit; + } + callback.init(); } - // when search button pressed function onFormSubmitEventHandler() { resetPage(); + document.getElementById("logo").style.display = 'none'; loadSelect(); triggerSearch(); submitted = true; - return false; + return true; } function onSelectDdChange() @@ -197,38 +387,65 @@ function loadSelect () } // limit the query after clicking the facet -function limitQuery (field, value) +function limitQuery(field, value) { - document.search.query.value += ' and ' + field + '="' + value + '"'; + var newQuery = ' and ' + field + '="' + value + '"'; + querys[field] += newQuery; + document.search.query.value += newQuery; onFormSubmitEventHandler(); + showhide("recordview"); +} + +//limit the query after clicking the facet +function removeQuery (field, value) { + document.search.query.value.replace(' and ' + field + '="' + value + '"', ''); + onFormSubmitEventHandler(); + showhide("recordview"); +} + +//limit the query after clicking the facet +function limitOrResetQuery (field, value, selected) { + if (field == 'reset_su' || field == 'reset_au') { + var reset_field = field.substring(6); + document.search.query.value = document.search.query.value.replace(querys[reset_field], ''); + querys[reset_field] = ''; + onFormSubmitEventHandler(); + showhide("recordview"); + } + else + limitQuery(field, value); + //alert("limitOrResetQuerry: query after: " + document.search.query.value); } // limit by target functions function limitTarget (id, name) { - var navi = document.getElementById('navi'); - navi.innerHTML = - 'Source: ' - + name + ''; - navi.innerHTML += '
    '; curFilter = 'pz:id=' + id; resetPage(); loadSelect(); triggerSearch(); + showhide("recordview"); return false; } function delimitTarget () { - var navi = document.getElementById('navi'); - navi.innerHTML = ''; - curFilter = null; + curFilter = 'ALL'; resetPage(); loadSelect(); triggerSearch(); return false; } +function limitOrResetTarget(id, name) { + if (id == 'reset_xt') { + delimitTarget(); + } + else { + limitTarget(id,name); + } +} + function drawPager (pagerDiv) { //client indexes pages from 1 but pz2 from 0 @@ -271,7 +488,7 @@ function drawPager (pagerDiv) if (lastClkbl < pages) postdots = '...'; - pagerDiv.innerHTML += '
    ' + pagerDiv.innerHTML += '
    ' + prev + predots + middle + postdots + next + '

    '; } @@ -324,6 +541,7 @@ function showDetails (prefixRecId) { // remove current detailed view if any var detRecordDiv = document.getElementById('det_'+oldRecId); + //alert("oldRecId: " + oldRecId + " " + detRecordDiv != null); // lovin DOM! if (detRecordDiv) detRecordDiv.parentNode.removeChild(detRecordDiv); @@ -379,4 +597,62 @@ function renderDetails(data, marker) details += '
    Target IDHitsDiags
    '; return details; } - //EOF + +function renderLine(title, value) { + if (value != undefined) + return '
  • ' + title + '

    ' + value + '
  • '; + return ''; +} + +function renderLineURL(title, URL, display) { + if (URL != undefined) + return '
  • ' + title + '

    ' + display + '
  • '; + return ''; +} + +function renderLineEmail(dtitle, email, display) { + if (email != undefined) + return '
  • ' + title + '

    ' + display + '
  • '; + return ''; +} + +function renderDetails_iphone(data, marker) +{ + //return renderDetails(data,marker); + + if (!data) + return ""; + var details = '
    ' +/* + details = ''; +*/ + if (marker) + details += '

    '+ marker + '

    '; + details += '
    '; + return details; +} + +//EOF