X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=ef156877506af8d158a5712f1e4f1eb2ba0a085d;hb=44f9694f200809e6c5cd7811988aa8e97c5917ac;hp=5ea0ce940b8bd352f8e7142a923280d12fba3495;hpb=31f9b5677ed8f67be53ac8121e170b2f87ff3576;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index 5ea0ce9..ef15687 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -9,18 +9,17 @@ var mkws = { filters: [] }; -/* - * global config object: mkws_config - * - * Needs to be defined in the HTML header before including this JS file. - * Define empty mkws_config for simple applications that don't define it. - */ +// Define empty mkws_config for simple applications that don't define it. if (mkws_config == null || typeof mkws_config != 'object') { var mkws_config = {}; } -// Wrapper for jQuery -(function ($) { +// wrapper for jQuery lib +function _mkws($) { + // if (console && console.log) console.log("run _mkws()"); + + // call this function only once + if (mkws.init) return; mkws.locale_lang = { "de": { @@ -101,6 +100,7 @@ mkws.debug_function = function (string) { console.log(timestamp + string); } var debug = mkws.debug_function; // local alias +debug("start running MKWS"); Handlebars.registerHelper('json', function(obj) { @@ -222,7 +222,7 @@ for (var key in mkws_config) { } } - +debug("Create main pz2 object"); // 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 @@ -427,7 +427,7 @@ function onFormSubmitEventHandler() return false; } -function newSearch(query, sort, targets) +function newSearch(query, sort, targets, windowid) { debug("newSearch: " + query); @@ -437,10 +437,10 @@ function newSearch(query, sort, targets) } mkws.filters = [] - redraw_navi(); - resetPage(); - loadSelect(); - triggerSearch(query, sort, targets); + redraw_navi(); // ### should use windowid + resetPage(); // ### the globals it resents should be indexed by windowid + loadSelect(); // ### should use windowid + triggerSearch(query, sort, targets, windowid); mkws.switchView('records'); // In case it's configured to start off as hidden submitted = true; } @@ -460,7 +460,7 @@ function resetPage() totalRec = 0; } -function triggerSearch (query, sort, targets) +function triggerSearch (query, sort, targets, windowid) { var pp2filter = ""; var pp2limit = ""; @@ -495,8 +495,16 @@ function triggerSearch (query, sort, targets) } } - debug("triggerSearch(" + mkws.query + "): filters = " + $.toJSON(mkws.filters) + ", pp2filter = " + pp2filter + ", pp2limit = " + pp2limit); - my_paz.search(mkws.query, recPerPage, mkws.sort, pp2filter, undefined, { limit: pp2limit }); + var params = {}; + if (pp2limit) { + params.limit = pp2limit; + } + if (windowid) { + params.windowid = windowid; + } + debug("triggerSearch(" + mkws.query + "): filters = " + $.toJSON(mkws.filters) + ", pp2filter = " + pp2filter + ", params = " + $.toJSON(params)); + + my_paz.search(mkws.query, recPerPage, mkws.sort, pp2filter, undefined, params); } function loadSelect () @@ -945,24 +953,46 @@ function mkws_html_all() { function run_auto_searches() { - debug("run auto searches"); + debug("running auto searches"); - var node = $('#mkwsRecords'); - if (node.attr('autosearch')) { + $('[id^="mkwsRecords"]').each(function () { + var node = $(this); var query = node.attr('autosearch'); - var sort = node.attr('sort'); - var targets = node.attr('targets'); - var s = "running auto search: '" + query + "'"; - if (sort) s += " sorted by '" + sort + "'"; - if (targets) s += " in targets '" + targets + "'"; - debug(s); - newSearch(query, sort, targets); - } + + 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 mkws_set_lang() { - var lang = $.parseQuerystring().lang || mkws_config.lang; + var lang = parseQuerystring().lang || mkws_config.lang; if (!lang || !mkws.locale_lang[lang]) { mkws_config.lang = "" } else { @@ -1140,25 +1170,72 @@ function M(word) { return mkws.locale_lang[lang][word] || word; } +// main +(function() { + try { + mkws_html_all() + } + + catch (e) { + mkws_config.error = e.message; + // alert(e.message); + } +})(); + + // done + mkws.init = true; +}; + + /* - * implement jQuery plugins + * implement jQuery plugin $.pazpar2({}) */ -$.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]; +function _mkws_jquery_plugin ($) { + // delayed debug, internal variables are set after dom ready + function debug (string) { + setTimeout(function() { mkws.debug_function(string); }, 500); + } + + function init_popup(obj) { + var config = obj ? obj : {}; + + var height = config.height || 760; + var width = config.width || 880; + var id_button = config.id_button || "input#mkwsButton"; + var id_popup = config.id_popup || "#mkwsPopup"; + + debug("popup height: " + height + ", width: " + width); + + // make sure that jquery-ui was loaded afte jQuery core lib, e.g.: + // + if (!$.ui) { + debug("Error: jquery-ui.js is missing, did you included it after jquery core in the HTML file?"); + return; + } + + $(id_popup).dialog({ + closeOnEscape: true, + autoOpen: false, + height: height, + width: width, + modal: true, + resizable: true, + buttons: { + Cancel: function() { + $(this).dialog("close"); + } + }, + close: function() { } }); - return nvpair; - }, - debug2: function(string) { // delayed debug, internal variables are set after dom ready - setTimeout(function() { debug(string); }, 500); - }, + $(id_button) + .button() + .click(function() { + $(id_popup).dialog("open"); + }); + }; + + $.extend({ // service-proxy or pazpar2 pazpar2: function(config) { @@ -1230,71 +1307,27 @@ $.extend({ ' if (config && config.layout == 'div') { - this.debug2("jquery plugin layout: div"); + debug("jquery plugin layout: div"); document.write(div); } else if (config && config.layout == 'popup') { - this.debug2("jquery plugin layout: popup with id: " + id_popup); + debug("jquery plugin layout: popup with id: " + id_popup); document.write(popup); $(document).ready( function() { init_popup(config); } ); } else { - this.debug2("jquery plugin layout: table"); + debug("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.id_button || "input#mkwsButton"; - var id_popup = config.id_popup || "#mkwsPopup"; - - debug("popup height: " + height + ", width: " + width); - - // make sure that jquery-ui was loaded afte jQuery core lib, e.g.: - // - if (!$.ui) { - debug("Error: jquery-ui.js is missing, did you included it after jquery core in the HTML file?"); - return; - } - - $(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"); - }); }; +// wrapper to call _mkws after page load +(function (j) { + // enable before page load, so we could call it before mkws() runs + _mkws_jquery_plugin(j); - - -/* magic */ -$(document).ready(function() { - try { - mkws_html_all() - } - - catch (e) { - mkws_config.error = e.message; - // alert(e.message); - } -}); - + $(document).ready(function() { + // if (console && console.log) console.log("on load ready"); + _mkws(j); + }); })(jQuery);