X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=cacc8d0825eb4b4c0a69b439d4c8b7736107903e;hb=eefc46271d6bb1c57317f657be87eaa6b5b08857;hp=8ddb1b1b86572e0a72edbbbc55fd311ac376ee85;hpb=c0e349d3bbbc858513b19267e30e3c03bb25aa32;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index 8ddb1b1..cacc8d0 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -10,8 +10,9 @@ var mkws = { }; // Define empty mkws_config for simple applications that don't define it. -if (!mkws_config) +if (mkws_config == null || typeof mkws_config != 'object') { var mkws_config = {}; +} // wrapper for jQuery lib function _mkws($) { @@ -107,6 +108,12 @@ Handlebars.registerHelper('json', function(obj) { }); +Handlebars.registerHelper('translate', function(s) { + debug("translating '" + s + "'"); + return M(s); +}); + + // We need {{attr '@name'}} because Handlebars can't parse {{@name}} Handlebars.registerHelper('attr', function(attrName) { return this[attrName]; @@ -156,6 +163,7 @@ Handlebars.registerHelper('commaList', function(items, options) { { + /* default mkws config */ var config_default = { use_service_proxy: true, @@ -185,6 +193,12 @@ Handlebars.registerHelper('commaList', function(items, options) { mkws.debug_level = config_default.debug_level; } + // make sure the mkws_config is a valid hash + if (!$.isPlainObject(mkws_config)) { + debug("ERROR: mkws_config is not an JS object, ignore it...."); + mkws_config = {}; + } + /* override standard config values by function parameters */ for (var k in config_default) { if (typeof mkws_config[k] === 'undefined') @@ -419,7 +433,7 @@ function onFormSubmitEventHandler() return false; } -function newSearch(query, sort, targets) +function newSearch(query, sort, targets, windowid) { debug("newSearch: " + query); @@ -429,10 +443,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; } @@ -452,7 +466,7 @@ function resetPage() totalRec = 0; } -function triggerSearch (query, sort, targets) +function triggerSearch (query, sort, targets, windowid) { var pp2filter = ""; var pp2limit = ""; @@ -487,8 +501,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 () @@ -766,7 +788,7 @@ function defaultTemplate(name) return '\ \ \ - \ + \ \ {{#if md-date}}\ \ - \ + \ \ \ {{/if}}\ {{#if md-author}}\ \ - \ + \ \ \ {{/if}}\ {{#if md-electronic-url}}\ \ - \ + \ \ - \ + \ \ {{/if-any}}\ \ - \ + \
Title{{translate "Title"}}\ {{md-title}}\ {{#if md-title-remainder}}\ @@ -779,19 +801,19 @@ function defaultTemplate(name)
Date{{translate "Date"}}{{md-date}}
Author{{translate "Author"}}{{md-author}}
URL{{translate "URL"}}\ {{#each md-electronic-url}}\ {{this}}
\ @@ -801,7 +823,7 @@ function defaultTemplate(name) {{/if}}\ {{#if-any location having="md-subject"}}\
Subject{{translate "Subject"}}\ {{#first location having="md-subject"}}\ {{#if md-subject}}\ @@ -812,7 +834,7 @@ function defaultTemplate(name)
Locations{{translate "Locations"}}\ {{#commaList location}}\ {{attr "@name"}}{{/commaList}}\ @@ -937,19 +959,29 @@ 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); + } + }); } @@ -1165,8 +1197,9 @@ function M(word) { * implement jQuery plugin $.pazpar2({}) */ function _mkws_jquery_plugin ($) { - function debug (string) { // delayed debug, internal variables are set after dom ready - setTimeout(function() { mkws.debug(string); }, 500); + // delayed debug, internal variables are set after dom ready + function debug (string) { + setTimeout(function() { mkws.debug_function(string); }, 500); } function init_popup(obj) {