X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=e4d339a2ca6ca5b7837c309dec9ef9944f078c59;hb=09f6c769270efae3320d298e2a4420bfa7a400cd;hp=98ac5ee2cf7988fae0df5d208223e5b0c6610ea3;hpb=5892f41b7ff37f6017d0e2baf7ce8db5d9266bd3;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index 98ac5ee..e4d339a 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -3,6 +3,7 @@ "use strict"; // HTML5: disable for debug >= 2 + /* * global config object: mkws_config * @@ -26,6 +27,7 @@ var pazpar2path = mkws_config.use_service_proxy ? service_proxy_url : pazpar2_ur var usesessions = mkws_config.use_service_proxy ? false : true; +(function ($) { var mkws_locale_lang = { "de": { "Authors": "Autoren", @@ -198,15 +200,13 @@ function my_onterm(data) { var termlist = document.getElementById("mkwsTermlists"); replaceHtml(termlist, acc.join('')); - - if (mkws_config.responsive_design) - mkws_mobile_resize(); } function add_single_facet(acc, caption, data, max, cclIndex) { - acc.push('
'); + acc.push('
'); acc.push('
' + M(caption) + '
'); for (var i = 0; i < data.length && i < max; i++ ) { + acc.push('
'); acc.push('' + data[i].name + '' - + ' (' + data[i].freq + ')
'); + + ' ' + data[i].freq + ''); + acc.push('
'); } acc.push('
'); } @@ -413,7 +414,7 @@ function switchView(view) { var results = document.getElementById('mkwsResults') || document.getElementById('mkwsRecords'); var blanket = document.getElementById('mkwsBlanket'); - var motd = document.getElementById('mkwsEmbeddedMOTD'); + var motd = document.getElementById('mkwsMOTD'); switch(view) { case 'targets': @@ -531,7 +532,7 @@ function mkws_html_all(config) { perpage_menu: true, /* show/hide perpage menu */ lang_display: [], /* display languages links for given languages, [] for all */ facets: ["sources", "subjects", "authors"], /* display facets, in this order, [] for none */ - responsive_design_width: 980, /* a page with less pixel width considered as mobile */ + responsive_design_width: 980, /* a page with less pixel width considered as narrow */ debug: 1, /* debug level for development: 0..2 */ dummy: "dummy" @@ -582,15 +583,19 @@ function mkws_html_all(config) { $("#mkwsResults").html('\ \ \ - \ - \ + \ + \ + \ \
\ + \
\
\ + \
\
\
\
\ -
\ +
\ +
\
'); @@ -615,39 +620,29 @@ function mkws_html_all(config) { if (mkws_config.use_service_proxy) mkws_service_proxy_auth(config.service_proxy_auth); - if (mkws_config.responsive_design) - mkws_responsive_design(); + if (mkws_config.responsive_design) { + // 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 elem = document.getElementById("mkwsMOTD"); - if (elem) { - // Move the MOTD from the provided element down into the embedded one - document.getElementById("mkwsEmbeddedMOTD").innerHTML = elem.innerHTML; - elem.style.display = "none"; + 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); } } -/* Responsive web design - change layout on the fly depending on - * the current screen size width/height. Required for mobile devices. - */ -function mkws_responsive_design () { - var timeout = null; - - $(window).resize( function(e) { - if (timeout) - clearTimeout(timeout); - timeout = setTimeout(function () { mkws_mobile_resize() }, 50); - }); - - // initial check after page load - $(document).ready(function() { mkws_mobile_resize() }); -} - function mkws_set_lang(mkws_config) { - var lang = jQuery.parseQuerystring().lang || mkws_config.lang || ""; + var lang = $.parseQuerystring().lang || mkws_config.lang || ""; if (!lang || !mkws_locale_lang[lang]) { mkws_config.lang = "" } else { @@ -736,7 +731,7 @@ function mkws_service_proxy_auth(auth_url) { var request = new pzHttpRequest(auth_url); request.get(null, function(data) { - if (!jQuery.isXMLDoc(data)) { + if (!$.isXMLDoc(data)) { alert("service proxy auth response document is not valid XML document, give up!"); return; } @@ -790,28 +785,30 @@ function mkws_html_lang(mkws_config) { $("#mkwsLang").html(data); } -function mkws_mobile_resize () { - debug("resize width: " + $(window).height() + ", width: " + $(window).width()); +function mkws_resize_page () { var list = ["mkwsSwitch"]; - var obj; - // alert($(window).width()); var width = mkws_config.responsive_design_width || 980; - - if ($(window).width() <= width) { + var parentId = $("#mkwsTermlists").parent().attr('id'); + + if ($(window).width() <= width && + parentId === "mkwsTermlistContainer1") { + debug("changing from wide to narrow: " + $(window).width()); + $("#mkwsTermlists").appendTo($("#mkwsTermlistContainer2")); + $("#mkwsTermlistContainer1").hide(); + $("#mkwsTermlistContainer2").show(); for(var i = 0; i < list.length; i++) { $("#" + list[i]).hide(); } - - $("#mkwsTermlists").hide(); - obj = $("#mkwsTermlists").html(); - $("#mkwsShiftedTermlists").html(obj); - } else { + } else if ($(window).width() > width && + parentId === "mkwsTermlistContainer2") { + debug("changing from narrow to wide: " + $(window).width()); + $("#mkwsTermlists").appendTo($("#mkwsTermlistContainer1")); + $("#mkwsTermlistContainer1").show(); + $("#mkwsTermlistContainer2").hide(); for(var i = 0; i < list.length; i++) { $("#" + list[i]).show(); } - $("#mkwsTermlists").show(); - $("#mkwsShiftedTermlists").html(""); } }; @@ -825,33 +822,138 @@ function M(word) { return mkws_locale_lang[lang][word] ? mkws_locale_lang[lang][word] : word; } -/* implement jQuery.parseQuerystring() for parsing URL parameters */ -jQuery.extend({ - parseQuerystring: function() { - 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; - }, - pazpar2: function(data) { - document.write('
\ -
\ -
\ -
\ -
\ -
\ -
\ - Powered by MKWS © 2013 Index Data\ -
'); - - mkws_html_all(mkws_config); - } +/* + * implement jQuery plugins + */ +$.extend({ + // implement $.parseQuerystring() for parsing URL parameters + parseQuerystring: function() { + 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; + }, + + debug2: function(string) { // delayed debug, internal variables are set after dom ready + setTimeout(function() { debug(string); }, 500); + }, + + // service-proxy or pazpar2 + pazpar2: function(config) { + // simple layout + var div = '
\ +
\ +
\ +
\ +
\ +
'; + + // new table layout + var table = '\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
'; + + var popup = '\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
' + + if (config && config.layout == 'div') { + this.debug2("jquery plugin layout: div"); + document.write(div); + } else if (config && config.layout == 'popup') { + this.debug2("jquery plugin layout: popup"); + document.write(popup); + $(document).ready( function() { init_popup(config); } ); + } else { + this.debug2("jquery plugin layout: table"); + document.write(table); + } + } }); +function init_popup(obj) { + var config = obj ? obj : {}; + + var height = config.height || 760; + var width = config.width || 880; + var id_button = config.button || "input#mkwsButton"; + var id_popup = config.popup || "#mkwsPopup"; + + debug("popup height: " + height + ", width: " + width); + + $(id_popup).dialog({ + closeOnEscape: true, + autoOpen: false, + height: height, + width: width, + modal: true, + resizable: true, + buttons: { + Cancel: function() { + $(this).dialog("close"); + } + }, + close: function() { } + }); + + $(id_button) + .button() + .click(function() { + $(id_popup).dialog("open"); + }); +}; + function debug(string) { if (!mkws_debug) return; @@ -869,5 +971,8 @@ function debug(string) { console.log(string); } + /* magic */ $(document).ready(function() { mkws_html_all(mkws_config) }); + +})(jQuery);