- /*
- * All the HTML stuff to render the search forms and
- * result pages.
- */
- function mkws_html_all() {
- mkws_set_lang();
- if (mkws_config.show_lang)
- mkws_html_lang();
-
- // For some reason, doing this programmatically results in
- // document.mkwsSearchForm.mkwsQuery being undefined, hence the raw HTML.
- debug("HTML search form");
- $("#mkwsSearch").html('\
-<form name="mkwsSearchForm" action="" >\
- <input id="mkwsQuery" type="text" size="' + mkws_config.query_width + '" />\
- <input id="mkwsButton" type="submit" value="' + M('Search') + '" />\
-</form>');
-
- debug("HTML records");
- // If the application has an #mkwsResults, populate it in the
- // usual way. If not, assume that it's a smarter application that
- // defines its own subcomponents:
- // #mkwsTermlists
- // #mkwsRanking
- // #mkwsPager
- // #mkwsNavi
- // #mkwsRecords
- if ($("#mkwsResults").length) {
- $("#mkwsResults").html('\
-<table width="100%" border="0" cellpadding="6" cellspacing="0">\
- <tr>\
- <td id="mkwsTermlistContainer1" width="250" valign="top">\
- <div id="mkwsTermlists"></div>\
- </td>\
- <td id="mkwsMOTDContainer" valign="top">\
- <div id="mkwsRanking"></div>\
- <div id="mkwsPager"></div>\
- <div id="mkwsNavi"></div>\
- <div id="mkwsRecords"></div>\
- </td>\
- </tr>\
- <tr>\
- <td colspan="2">\
- <div id="mkwsTermlistContainer2"></div>\
- </td>\
- </tr>\
-</table>');
- }
-
- if ($("#mkwsRanking").length) {
- var ranking_data = '';
- ranking_data += '<form name="mkwsSelect" id="mkwsSelect" action="" >';
- if (mkws_config.show_sort) {
- ranking_data += M('Sort by') + ' ' + mkws_html_sort() + ' ';
- }
- if (mkws_config.show_perpage) {
- ranking_data += M('and show') + ' ' + mkws_html_perpage() + ' ' + M('per page') + '.';
- }
- ranking_data += '</form>';
-
- $("#mkwsRanking").html(ranking_data);
- }
-
- mkws_html_switch();
-
- if (mkws_config.use_service_proxy) {
- mkws_service_proxy_auth(mkws_config.service_proxy_auth,
- mkws_config.service_proxy_auth_domain,
- mkws_config.pazpar2_url);
- } else {
- // raw pp2
- run_auto_searches();
- }
-
- if (mkws_config.responsive_design_width) {
- // Responsive web design - change layout on the fly based on
- // current screen width. Required for mobile devices.
- $(window).resize( function(e) { mkws_resize_page() });
- // initial check after page load
- $(document).ready(function() { mkws_resize_page() });
- }
-
- domReady();
-
- // on first page, hide the termlist
- $(document).ready(function() { $("#mkwsTermlists").hide(); } );
- var motd = document.getElementById("mkwsMOTD");
- var container = document.getElementById("mkwsMOTDContainer");
- if (motd && container) {
- // Move the MOTD from the provided element down into the container
- motd.parentNode.removeChild(motd);
- container.appendChild(motd);
- }
- }
-
-
- function run_auto_searches() {
- debug("running auto searches");
-
- $('[id^="mkwsRecords"]').each(function () {
- var node = $(this);
- var query = node.attr('autosearch');
-
- if (query) {
- var windowid = undefined;
- var id = node.attr('id');
- if (id.match(/^mkwsRecords_/, '')) {
- windowid = id.replace(/^mkwsRecords_/, '');
- }
-
- var sort = node.attr('sort');
- var targets = node.attr('targets');
- var s = "running auto search: '" + query + "'";
- if (windowid) s += " [windowid '" + windowid + "']";
- if (sort) s += " sorted by '" + sort + "'";
- if (targets) s += " in targets '" + targets + "'";
- debug(s);
- newSearch(query, sort, targets, windowid);
- }
- });
- }
-
-
- // implement $.parseQuerystring() for parsing URL parameters
- function parseQuerystring() {
- var nvpair = {};
- var qs = window.location.search.replace('?', '');
- var pairs = qs.split('&');
- $.each(pairs, function(i, v){
- var pair = v.split('=');
- nvpair[pair[0]] = pair[1];
- });
- return nvpair;
- }
+ function defaultMkwsConfig() {
+ /* default mkws config */
+ var config_default = {
+ use_service_proxy: true,
+ pazpar2_url: "//mkws.indexdata.com/service-proxy/",
+ service_proxy_auth: "//mkws.indexdata.com/service-proxy-auth",
+ lang: "",
+ sort_options: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]],
+ perpage_options: [10, 20, 30, 50],
+ sort_default: "relevance",
+ perpage_default: 20,
+ query_width: 50,
+ show_lang: true, /* show/hide language menu */
+ show_sort: true, /* show/hide sort menu */
+ show_perpage: true, /* show/hide perpage menu */
+ lang_options: [], /* display languages links for given languages, [] for all */
+ facets: ["xtargets", "subject", "author"], /* display facets, in this order, [] for none */
+ responsive_design_width: undefined, /* a page with less pixel width considered as narrow */
+ debug_level: 1, /* debug level for development: 0..2 */