X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=experiments%2Fspclient%2Fmkws.js;h=4a6eb6dadaad3db3e64746b755f7fc1eeddf916f;hb=71aa8121e550f16068eddc1365881e2ab652f8ee;hp=7b8066778c11113570c146b6c1e0af83eff848d2;hpb=779b9ad232b76b0e14ac66e1d6e3db6550cb2c30;p=mkws-moved-to-github.git diff --git a/experiments/spclient/mkws.js b/experiments/spclient/mkws.js index 7b80667..4a6eb6d 100644 --- a/experiments/spclient/mkws.js +++ b/experiments/spclient/mkws.js @@ -1,18 +1,26 @@ /* A very simple client that shows a basic usage of the pz2.js */ -"use strict"; // HTML5 +"use strict"; // HTML5: disable for debug >= 2 + +/* + * global config object: mkws_config + * + * needs to be defined in the HTML header before + * including this JS file + */ if (!mkws_config) var mkws_config = {}; // for the guys who forgot to define mkws_config... +var mkws_debug = 1; + 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; -var mkws_debug = 1; var mkws_locale_lang = { "de": { @@ -30,6 +38,11 @@ var mkws_locale_lang = { "to": "von", "of": "aus", "found": "gefunden", + "Title": "Titel", + "Author": "Autor", + "Date": "Datum", + "Subject": "Schlagwort", + "Location": "Ort", "dummy": "dummy" }, @@ -49,6 +62,11 @@ var mkws_locale_lang = { "to": "til", "of": "ud af", "found": "fandt", + "Title": "Title", + "Author": "Forfatter", + "Date": "Dato", + "Subject": "Emneord", + "Location": "Lokation", "dummy": "dummy" } @@ -137,6 +155,9 @@ function my_onstat(data) { } function my_onterm(data) { + if (!mkws_config.termlist_menu) + return; + var termlists = []; termlists.push('
' + M('TERMLISTS') + ':
' + M('Sources') + '
'); for (var i = 0; i < data.xtargets.length && i < SourceMax; i++ ) { @@ -401,7 +422,7 @@ function renderDetails(data, marker) var details = '
'; if (marker) details += ''; if (data["md-title"] != undefined) { - details += ''; } if (data["md-date"] != undefined) - details += ''; + details += ''; if (data["md-author"] != undefined) - details += ''; + details += ''; if (data["md-electronic-url"] != undefined) details += ''; if (data["location"][0]["md-subject"] != undefined) - details += ''; + details += ''; if (data["location"][0]["@name"] != undefined) - details += ''; + details += ''; details += '
'+ marker + '
Title: '+data["md-title"]; + details += '
' + M('Title') + ': '+data["md-title"]; if (data["md-title-remainder"] !== undefined) { details += ' : ' + data["md-title-remainder"] + ' '; } @@ -411,15 +432,15 @@ function renderDetails(data, marker) details += '
Date: ' + data["md-date"] + '
' + M('Date') + ': ' + data["md-date"] + '
Author: ' + data["md-author"] + '
' + M('Author') + ': ' + data["md-author"] + '
URL: ' + data["md-electronic-url"] + '' + '
Subject: ' + data["location"][0]["md-subject"] + '
' + M('Subject') + ': ' + data["location"][0]["md-subject"] + '
Location: ' + data["location"][0]["@name"] + " (" +data["location"][0]["@id"] + ")" + '
' + M('Location') + ': ' + data["location"][0]["@name"] + " (" +data["location"][0]["@id"] + ")" + '
'; return details; } @@ -437,7 +458,10 @@ function mkws_html_all(data) { sort_default: "relevance", perpage_default: 20, query_width: 50, - switch_menu: true, /* show/hide Records|Targets menu */ + switch_menu: true, /* show/hide Records|Targets menu */ + lang_menu: true, /* show/hide language menu */ + lang_display: [], /* display languages links for given languages, [] for all */ + termlist_menu: true, /* show/hide termlist */ debug: 0, /* debug level for development: 0..2 */ dummy: "dummy" @@ -451,20 +475,25 @@ function mkws_html_all(data) { } /* override standard config values by function parameters */ - for (var k in data) { - config[k] = data[k]; - debug("Set config: " + k + ' => ' + data[k]); + for (var k in config) { + mkws_config[k] = config[k]; + debug("Set config: " + k + ' => ' + config[k]); + } + if (mkws_config.query_width < 5 || mkws_config.query_width > 150) { + debug("Reset query width: " + mkws_config.query_width); + mkws_config.query_width = 50; } mkws_set_lang(mkws_config); - mkws_html_lang(mkws_config); + if (mkws_config.lang_menu) + mkws_html_lang(mkws_config); // For some reason, doing this programmatically results in // document.search.query being undefined, hence the raw HTML. debug("HTML search form"); $("#mkwsSearch").html('\
\ - \ + \ \
'); @@ -488,8 +517,7 @@ function mkws_html_all(data) {
\ \ \ - \ - '); + '); mkws_html_switch(config); if (mkws_config.use_service_proxy) @@ -607,13 +635,25 @@ function mkws_service_proxy_auth(auth_url) { function mkws_html_lang(mkws_config) { var lang_default = "en"; var lang = mkws_config.lang || lang_default; - var list = [lang_default]; + var list = []; + + /* display a list of configured languages, or all */ + var lang_display = mkws_config.lang_display || []; + var hash = {}; + for (var i = 0; i < lang_display.length; i++) { + hash[lang_display[i]] = 1; + } + if (hash[lang_default] == 1) + list.push(lang_default); + for (var k in mkws_locale_lang) { - list.push(k); + if (hash[k] == 1 || lang_display.length == 0) + list.push(k); } debug("Language menu for: " + list.join(", ")); + /* the HTML part */ var data = ""; for(var i = 0; i < list.length; i++) { var l = list[i]; @@ -624,7 +664,7 @@ function mkws_html_lang(mkws_config) { if (lang == l) { data += l; } else { - data += ' ' + l + ' ' + data += ' ' + l + ' ' } } @@ -657,9 +697,8 @@ jQuery.extend({ function debug(string) { if (!mkws_debug) return; - - var console; // IE8 quirks - if (!console) { /* ARGH!!! */ + + if (typeof console === "undefined" || typeof console.log === "undefined") { /* ARGH!!! */ return; }