X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=1f114f85c26a626a123525fa2a1b7e5278761a57;hb=2ffcbeb3a1a3e8a4ac8c03c81973a182ca03e173;hp=da6a0f61b1122e1af0dfeabeaee986baf5fd7b7e;hpb=40c8fafacdd08d9e73ad258db00c784e2826e745;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index da6a0f6..1f114f8 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -2,92 +2,170 @@ "use strict"; // HTML5: disable for debug_level >= 2 -// Set up global mkws object. Contains a hash of session objects, + +// Handlebars helpers +Handlebars.registerHelper('json', function(obj) { + return $.toJSON(obj); +}); + + +Handlebars.registerHelper('translate', function(s) { + debug("translating '" + s + "'"); + return mkws.M(s); +}); + + +// We need {{attr '@name'}} because Handlebars can't parse {{@name}} +Handlebars.registerHelper('attr', function(attrName) { + return this[attrName]; +}); + + +/* + * Use as follows: {{#if-any NAME1 having="NAME2"}} + * Applicable when NAME1 is the name of an array + * The guarded code runs only if at least one element of the NAME1 + * array has a subelement called NAME2. + */ +Handlebars.registerHelper('if-any', function(items, options) { + var having = options.hash.having; + for (var i in items) { + var item = items[i] + if (!having || item[having]) { + return options.fn(this); + } + } + return ""; +}); + + +Handlebars.registerHelper('first', function(items, options) { + var having = options.hash.having; + for (var i in items) { + var item = items[i] + if (!having || item[having]) { + return options.fn(item); + } + } + return ""; +}); + + +Handlebars.registerHelper('commaList', function(items, options) { + var out = ""; + + for (var i in items) { + if (i > 0) out += ", "; + out += options.fn(items[i]) + } + + return out; +}); + + + +// Some functions are visible to be called from outside code, namely +// generated HTML: mkws.switchView(), showDetails(), limitTarget(), +// limitQuery(), delimitTarget(), delimitQuery(), pagerPrev(), +// pagerNext(), showPage(). Also mkws.M() is made available for the +// Handlebars helper 'translate' + + +// Set up global mkws object. Contains a hash of team objects, // indexed by windowid. var mkws = { authenticated: false, - sessions: {} -}; - -mkws.locale_lang = { - "de": { - "Authors": "Autoren", - "Subjects": "Schlagwörter", - "Sources": "Daten und Quellen", - "Termlists": "Termlisten", - "Next": "Weiter", - "Prev": "Zurück", - "Search": "Suche", - "Sort by": "Sortieren nach", - "and show": "und zeige", - "per page": "pro Seite", - "Displaying": "Zeige", - "to": "von", - "of": "aus", - "found": "gefunden", - "Title": "Titel", - "Author": "Autor", - "Date": "Datum", - "Subject": "Schlagwort", - "Location": "Ort", - "Records": "Datensätze", - "Targets": "Datenbanken", - - "dummy": "dummy" - }, - - "da": { - "Authors": "Forfattere", - "Subjects": "Emner", - "Sources": "Kilder", - "Termlists": "Termlists", - "Next": "Næste", - "Prev": "Forrige", - "Search": "Søg", - "Sort by": "Sorter efter", - "and show": "og vis", - "per page": "per side", - "Displaying": "Viser", - "to": "til", - "of": "ud af", - "found": "fandt", - "Title": "Title", - "Author": "Forfatter", - "Date": "Dato", - "Subject": "Emneord", - "Location": "Lokation", - "Records": "Poster", - "Targets": "Baser", - - "dummy": "dummy" + debug_function: undefined, // will be set during initialisation + debug_level: undefined, // will be initialised from mkws_config + paz: undefined, // will be set up during initialisation + teams: {}, + locale_lang: { + "de": { + "Authors": "Autoren", + "Subjects": "Schlagwörter", + "Sources": "Daten und Quellen", + "Termlists": "Termlisten", + "Next": "Weiter", + "Prev": "Zurück", + "Search": "Suche", + "Sort by": "Sortieren nach", + "and show": "und zeige", + "per page": "pro Seite", + "Displaying": "Zeige", + "to": "von", + "of": "aus", + "found": "gefunden", + "Title": "Titel", + "Author": "Autor", + "Date": "Datum", + "Subject": "Schlagwort", + "Location": "Ort", + "Records": "Datensätze", + "Targets": "Datenbanken", + + "dummy": "dummy" + }, + + "da": { + "Authors": "Forfattere", + "Subjects": "Emner", + "Sources": "Kilder", + "Termlists": "Termlists", + "Next": "Næste", + "Prev": "Forrige", + "Search": "Søg", + "Sort by": "Sorter efter", + "and show": "og vis", + "per page": "per side", + "Displaying": "Viser", + "to": "til", + "of": "ud af", + "found": "fandt", + "Title": "Title", + "Author": "Forfatter", + "Date": "Dato", + "Subject": "Emneord", + "Location": "Lokation", + "Records": "Poster", + "Targets": "Baser", + + "dummy": "dummy" + } } }; + // 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 lib function _make_mkws_team($, teamName) { - if (console && console.log) - console.log("run _make_mkws_team(" + (teamName ? teamName : "") + ")"); - - // call this function only once - if (mkws.init) { - alert("_make_mkws_team() called twice: how did that happen?!"); - return; - } - + var that = {}; + var m_termName = teamName; + var m_submitted = false; + var m_query; // initially undefined var m_sort = 'relevance'; var m_filters = []; - - // keep time state for debugging + var m_totalRec = 0; + var m_recPerPage = 20; + var m_curPage = 1; + var m_curDetRecId = ''; + var m_curDetRecData = null; var m_debug_time = { + // Timestamps for logging "start": $.now(), "last": $.now() }; + + // if (console && console.log) // disabled, will fail in IE8 + // console.log("run _make_mkws_team(" + (teamName ? teamName : "") + ")"); + + + // Needs to be defined inside _make_mkws_team() so it can see m_debug_time mkws.debug_function = function (string) { if (!mkws.debug_level) return; @@ -112,65 +190,6 @@ function _make_mkws_team($, teamName) { debug("start running MKWS"); - Handlebars.registerHelper('json', function(obj) { - return $.toJSON(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]; - }); - - - /* - * Use as follows: {{#if-any NAME1 having="NAME2"}} - * Applicable when NAME1 is the name of an array - * The guarded code runs only if at least one element of the NAME1 - * array has a subelement called NAME2. - */ - Handlebars.registerHelper('if-any', function(items, options) { - var having = options.hash.having; - for (var i in items) { - var item = items[i] - if (!having || item[having]) { - return options.fn(this); - } - } - return ""; - }); - - - Handlebars.registerHelper('first', function(items, options) { - var having = options.hash.having; - for (var i in items) { - var item = items[i] - if (!having || item[having]) { - return options.fn(item); - } - } - return ""; - }); - - - Handlebars.registerHelper('commaList', function(items, options) { - var out = ""; - - for (var i in items) { - if (i > 0) out += ", "; - out += options.fn(items[i]) - } - - return out; - }); - - { /* default mkws config */ @@ -195,7 +214,7 @@ function _make_mkws_team($, teamName) { dummy: "dummy" }; - /* set global debug_level flag early */ + /* Set global debug_level flag early so that debug() works */ if (typeof mkws_config.debug_level !== 'undefined') { mkws.debug_level = mkws_config.debug_level; } else if (typeof config_default.debug_level !== 'undefined') { @@ -212,7 +231,7 @@ function _make_mkws_team($, teamName) { for (var k in config_default) { if (typeof mkws_config[k] === 'undefined') mkws_config[k] = config_default[k]; - debug("Set config: " + k + ' => ' + mkws_config[k]); + //debug("Set config: " + k + ' => ' + mkws_config[k]); } } @@ -236,53 +255,49 @@ function _make_mkws_team($, teamName) { } } - // protocol independend link for pazpar2: "//mkws/sp" -> "https://mkws/sp" + // protocol independent link for pazpar2: "//mkws/sp" -> "https://mkws/sp" if (mkws_config.pazpar2_url.match(/^\/\//)) { mkws_config.pazpar2_url = document.location.protocol + mkws_config.pazpar2_url; - debug("adjust protocol independend links: " + mkws_config.pazpar2_url); + debug("adjust protocol independent links: " + mkws_config.pazpar2_url); } 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 - var m_paz = new pz2( { "onshow": my_onshow, - "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way - "pazpar2path": mkws_config.pazpar2_url, - "oninit": my_oninit, - "onstat": my_onstat, - "onterm": my_onterm, - "termlist": "xtargets,subject,author", - "onbytarget": my_onbytarget, - "usesessions" : mkws_config.use_service_proxy ? false : true, - "showResponseType": '', // or "json" (for debugging?) - "onrecord": my_onrecord } ); - - // some state vars - var curPage = 1; - var recPerPage = 20; - var totalRec = 0; - var curDetRecId = ''; - var curDetRecData = null; - var submitted = false; - var SourceMax = 16; - var SubjectMax = 10; - var AuthorMax = 10; + if (!mkws.paz) { + mkws.paz = new pz2({ "onshow": my_onshow, + "windowid": teamName, + "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way + "pazpar2path": mkws_config.pazpar2_url, + "oninit": my_oninit, + "onstat": my_onstat, + "onterm": my_onterm, + "termlist": "xtargets,subject,author", + "onbytarget": my_onbytarget, + "usesessions" : mkws_config.use_service_proxy ? false : true, + "showResponseType": '', // or "json" (for debugging?) + "onrecord": my_onrecord }); + } if (!isNaN(parseInt(mkws_config.perpage_default))) { - recPerPage = parseInt(mkws_config.perpage_default); + m_recPerPage = parseInt(mkws_config.perpage_default); } + // // pz2.js event handlers: // - function my_oninit() { - m_paz.stat(); - m_paz.bytarget(); + function my_oninit(teamName) { + debug("init for " + teamName); + mkws.paz.stat(); + mkws.paz.bytarget(); } - function my_onshow(data) { - totalRec = data.merged; + + function my_onshow(data, teamName) { + debug("show for " + teamName); + m_totalRec = data.merged; // move it out var pager = document.getElementById("mkwsPager"); if (pager) { @@ -303,8 +318,8 @@ function _make_mkws_team($, teamName) { html.push('
', renderSummary(hit), '
'); - if (hit.recid == curDetRecId) { - html.push(renderDetails(curDetRecData)); + if (hit.recid == m_curDetRecId) { + html.push(renderDetails(m_curDetRecData)); } } replaceHtml(results, html.join('')); @@ -320,7 +335,8 @@ function _make_mkws_team($, teamName) { } - function my_onstat(data) { + function my_onstat(data, teamName) { + debug("stat for " + teamName); var stat = document.getElementById("mkwsStat"); if (stat == null) return; @@ -332,7 +348,9 @@ function _make_mkws_team($, teamName) { '' + M('Retrieved records') + ': ' + data.records + '/' + data.hits + ''; } - function my_onterm(data) { + + function my_onterm(data, teamName) { + debug("term for " + teamName); // no facets if (!mkws_config.facets || mkws_config.facets.length == 0) { $("#mkwsTermlists").hide(); @@ -348,11 +366,11 @@ function _make_mkws_team($, teamName) { for(var i = 0; i < facets.length; i++) { if (facets[i] == "sources") { - add_single_facet(acc, "Sources", data.xtargets, SourceMax, null); + add_single_facet(acc, "Sources", data.xtargets, 16, null); } else if (facets[i] == "subjects") { - add_single_facet(acc, "Subjects", data.subject, SubjectMax, "subject"); + add_single_facet(acc, "Subjects", data.subject, 10, "subject"); } else if (facets[i] == "authors") { - add_single_facet(acc, "Authors", data.author, AuthorMax, "author"); + add_single_facet(acc, "Authors", data.author, 10, "author"); } else { alert("bad facet configuration: '" + facets[i] + "'"); } @@ -363,10 +381,11 @@ function _make_mkws_team($, teamName) { replaceHtml(termlist, acc.join('')); } + function add_single_facet(acc, caption, data, max, pzIndex) { acc.push('
'); acc.push('
' + M(caption) + '
'); - for (var i = 0; i < data.length && i < max; i++ ) { + for (var i = 0; i < data.length && i < max; i++) { acc.push('
'); acc.push(''); } - function my_onrecord(data) { + + function my_onrecord(data, teamName) { + debug("record for " + teamName); // FIXME: record is async!! - clearTimeout(m_paz.recordTimer); + clearTimeout(mkws.paz.recordTimer); // in case on_show was faster to redraw element var detRecordDiv = document.getElementById('mkwsDet_'+data.recid); if (detRecordDiv) return; - curDetRecData = data; - var recordDiv = document.getElementById('mkwsRecdiv_'+curDetRecData.recid); - var html = renderDetails(curDetRecData); + m_curDetRecData = data; + var recordDiv = document.getElementById('mkwsRecdiv_'+m_curDetRecData.recid); + var html = renderDetails(m_curDetRecData); recordDiv.innerHTML += html; } - function my_onbytarget(data) { + + function my_onbytarget(data, teamName) { + debug("target for " + teamName); var targetDiv = document.getElementById("mkwsBytarget"); if (!targetDiv) { // No mkwsTargets div. @@ -411,7 +434,7 @@ function _make_mkws_team($, teamName) { '' + M('State') + '' + ''; - for (var i = 0; i < data.length; i++ ) { + for (var i = 0; i < data.length; i++) { table += "" + data[i].id + "" + data[i].hits + "" + data[i].diagnostic + @@ -426,6 +449,7 @@ function _make_mkws_team($, teamName) { //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// + // wait until the DOM is ready function domReady () { @@ -439,6 +463,7 @@ function _make_mkws_team($, teamName) { } } + // when search button pressed function onFormSubmitEventHandler() { @@ -446,6 +471,7 @@ function _make_mkws_team($, teamName) { return false; } + function newSearch(query, sort, targets, windowid) { debug("newSearch: " + query); @@ -461,24 +487,27 @@ function _make_mkws_team($, teamName) { loadSelect(); // ### should use windowid triggerSearch(query, sort, targets, windowid); mkws.switchView('records'); // In case it's configured to start off as hidden - submitted = true; + m_submitted = true; } + function onSelectDdChange() { - if (!submitted) return false; + if (!m_submitted) return false; resetPage(); loadSelect(); - m_paz.show(0, recPerPage, m_sort); + mkws.paz.show(0, m_recPerPage, m_sort); return false; } + function resetPage() { - curPage = 1; - totalRec = 0; + m_curPage = 1; + m_totalRec = 0; } + function triggerSearch (query, sort, targets, windowid) { var pp2filter = ""; @@ -486,7 +515,7 @@ function _make_mkws_team($, teamName) { // Re-use previous query/sort if new ones are not specified if (query) { - mkws.query = query; + m_query = query; } if (sort) { m_sort = sort; @@ -521,21 +550,23 @@ function _make_mkws_team($, teamName) { if (windowid) { params.windowid = windowid; } - debug("triggerSearch(" + mkws.query + "): filters = " + $.toJSON(m_filters) + ", pp2filter = " + pp2filter + ", params = " + $.toJSON(params)); + debug("triggerSearch(" + m_query + "): filters = " + $.toJSON(m_filters) + ", pp2filter = " + pp2filter + ", params = " + $.toJSON(params)); - m_paz.search(mkws.query, recPerPage, m_sort, pp2filter, undefined, params); + mkws.paz.search(m_query, m_recPerPage, m_sort, pp2filter, undefined, params); } + function loadSelect () { if (document.mkwsSelect) { if (document.mkwsSelect.mkwsSort) m_sort = document.mkwsSelect.mkwsSort.value; if (document.mkwsSelect.mkwsPerpage) - recPerPage = document.mkwsSelect.mkwsPerpage.value; + m_recPerPage = document.mkwsSelect.mkwsPerpage.value; } } + // limit the query after clicking the facet mkws.limitQuery = function (field, value) { @@ -548,6 +579,7 @@ function _make_mkws_team($, teamName) { return false; } + // limit by target functions mkws.limitTarget = function (id, name) { @@ -560,6 +592,7 @@ function _make_mkws_team($, teamName) { return false; } + mkws.delimitQuery = function (field, value) { debug("delimitQuery(field=" + field + ", value=" + value + ")"); @@ -637,10 +670,10 @@ function _make_mkws_team($, teamName) { { //client indexes pages from 1 but pz2 from 0 var onsides = 6; - var pages = Math.ceil(totalRec / recPerPage); + var pages = Math.ceil(m_totalRec / m_recPerPage); - var firstClkbl = ( curPage - onsides > 0 ) - ? curPage - onsides + var firstClkbl = (m_curPage - onsides > 0) + ? m_curPage - onsides : 1; var lastClkbl = firstClkbl + 2*onsides < pages @@ -648,14 +681,14 @@ function _make_mkws_team($, teamName) { : pages; var prev = '<< ' + M('Prev') + ' | '; - if (curPage > 1) + if (m_curPage > 1) prev = '' +'<< ' + M('Prev') + ' | '; var middle = ''; for(var i = firstClkbl; i <= lastClkbl; i++) { var numLabel = i; - if(i == curPage) + if(i == m_curPage) numLabel = '' + i + ''; middle += ' ' @@ -663,7 +696,7 @@ function _make_mkws_team($, teamName) { } var next = ' | ' + M('Next') + ' >>'; - if (pages - curPage > 0) + if (pages - m_curPage > 0) next = ' | ' + M('Next') + ' >>'; @@ -679,28 +712,30 @@ function _make_mkws_team($, teamName) { + prev + predots + middle + postdots + next + '
'; } + mkws.showPage = function (pageNum) { - curPage = pageNum; - m_paz.showPage( curPage - 1 ); + m_curPage = pageNum; + mkws.paz.showPage(m_curPage - 1); } - // simple paging functions + // simple paging functions mkws.pagerNext = function () { - if ( totalRec - recPerPage*curPage > 0) { - m_paz.showNext(); - curPage++; + if (m_totalRec - m_recPerPage*m_curPage > 0) { + mkws.paz.showNext(); + m_curPage++; } } + mkws.pagerPrev = function () { - if ( m_paz.showPrev() != false ) - curPage--; + if (mkws.paz.showPrev() != false) + m_curPage--; } - // switching view between targets and records + // switching view between targets and records mkws.switchView = function(view) { debug("switchView: " + view); @@ -734,11 +769,12 @@ function _make_mkws_team($, teamName) { } } + // detailed record drawing mkws.showDetails = function (prefixRecId) { var recId = prefixRecId.replace('mkwsRec_', ''); - var oldRecId = curDetRecId; - curDetRecId = recId; + var oldRecId = m_curDetRecId; + m_curDetRecId = recId; // remove current detailed view if any var detRecordDiv = document.getElementById('mkwsDet_'+oldRecId); @@ -748,14 +784,15 @@ function _make_mkws_team($, teamName) { // if the same clicked, just hide if (recId == oldRecId) { - curDetRecId = ''; - curDetRecData = null; + m_curDetRecId = ''; + m_curDetRecData = null; return; } // request the record - m_paz.record(recId); + mkws.paz.record(recId); } + function replaceHtml(el, html) { var oldEl = typeof el === "string" ? document.getElementById(el) : el; /*@cc_on // Pure innerHTML is slightly faster in IE @@ -770,6 +807,7 @@ function _make_mkws_team($, teamName) { return newEl; }; + function renderDetails(data, marker) { var template = loadTemplate("Record"); @@ -942,19 +980,10 @@ function _make_mkws_team($, teamName) { 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() }); + $(window).resize(function(e) { mkws_resize_page() }); // initial check after page load $(document).ready(function() { mkws_resize_page() }); } @@ -962,7 +991,7 @@ function _make_mkws_team($, teamName) { domReady(); // on first page, hide the termlist - $(document).ready(function() { $("#mkwsTermlists").hide(); } ); + $(document).ready(function() { $("#mkwsTermlists").hide(); }); var motd = document.getElementById("mkwsMOTD"); var container = document.getElementById("mkwsMOTDContainer"); if (motd && container) { @@ -1012,6 +1041,7 @@ function _make_mkws_team($, teamName) { return nvpair; } + function mkws_set_lang() { var lang = parseQuerystring().lang || mkws_config.lang; if (!lang || !mkws.locale_lang[lang]) { @@ -1024,6 +1054,7 @@ function _make_mkws_team($, teamName) { return mkws_config.lang; } + function mkws_html_switch() { debug("HTML switch"); @@ -1039,6 +1070,7 @@ function _make_mkws_team($, teamName) { $("#mkwsTargets").css("display", "none"); } + function mkws_html_sort() { debug("HTML sort, m_sort = '" + m_sort + "'"); var sort_html = ''; @@ -1077,12 +1110,13 @@ function _make_mkws_team($, teamName) { return perpage_html; } + /* * Run service-proxy authentication in background (after page load). * The username/password is configured in the apache config file * for the site. */ - function mkws_service_proxy_auth(auth_url, auth_domain, pp2_url) { + mkws.service_proxy_auth = function(auth_url, auth_domain, pp2_url) { debug("Run service proxy auth URL: " + auth_url); if (!auth_domain) { @@ -1112,6 +1146,7 @@ function _make_mkws_team($, teamName) { }); } + /* create locale language menu */ function mkws_html_lang() { var lang_default = "en"; @@ -1154,6 +1189,7 @@ function _make_mkws_team($, teamName) { $("#mkwsLang").html(data); } + function mkws_resize_page () { var list = ["mkwsSwitch"]; @@ -1181,6 +1217,7 @@ function _make_mkws_team($, teamName) { } }; + /* locale */ function M(word) { var lang = mkws_config.lang; @@ -1190,6 +1227,8 @@ function _make_mkws_team($, teamName) { return mkws.locale_lang[lang][word] || word; } + mkws.M = M; // so the Handlebars helper can use it + // main (function() { @@ -1203,8 +1242,9 @@ function _make_mkws_team($, teamName) { } })(); - // done - mkws.init = true; + // Bizarrely, 'that' is just an empty hash. All its state is in + // the closure variables defined earlier in this function. + return that; }; @@ -1341,7 +1381,7 @@ function _mkws_jquery_plugin ($) { } else if (config && config.layout == 'popup') { debug("jquery plugin layout: popup with id: " + id_popup); document.write(popup); - $(document).ready( function() { init_popup(config); } ); + $(document).ready(function() { init_popup(config); }); } else { debug("jquery plugin layout: table"); document.write(table); @@ -1353,11 +1393,72 @@ function _mkws_jquery_plugin ($) { // wrapper to call _make_mkws_team() after page load (function (j) { + function log(s) { + if (typeof console === "undefined" || typeof console.log === "undefined") { /* ARGH!!! old IE */ + return; + } + console.log(s); + } + // enable before page load, so we could call it before mkws() runs _mkws_jquery_plugin(j); $(document).ready(function() { - // if (console && console.log) console.log("on load ready"); - _make_mkws_team(j, null); + log("on load ready"); + + // Backwards compatibility: set new magic class names on any + // elements that have the old magic IDs. + var ids = [ "Switch", "Lang", "Search", "Pager", "Navi", + "Results", "Records", "Targets", "Ranking", + "Termlists", "Stat" ]; + for (var i = 0; i < ids.length; i++) { + var id = 'mkws' + ids[i]; + var node = $('#' + id); + if (node.attr('id')) { + node.addClass(id + " mkwsTeam_AUTO"); + log("added magic classes to '" + node.attr('id') + "'"); + } + } + + // Backwards compatibility: the special-case undefined team + // ### Will not be necessary when non-default teams are working + mkws.teams[''] = _make_mkws_team(j, undefined); + log("Made the unnamed MKWS team"); + + // Find all nodes with class (NOT id) mkwsRecords, and + // determine their team from the mkwsTeam_* class. So: + //
+ $('.mkwsResults, .mkwsRecords, .mkwsTermlists').each(function () { + var node = this; + var classes = this.className; + var list = classes.split(/\s+/) + var tname; + for (var i = 0; i < list.length; i++) { + var cname = list[i]; + if (cname.match(/^mkwsTeam_/)) { + tname = cname.replace(/^mkwsTeam_/, ''); + } + } + if (!tname) { + alert("No MKWS team specified for mkwsRecords element with classes '" + classes + "'"); + } else if (mkws.teams[tname]) { + log("MKWS team '" + tname + "' already exists, skipping"); + } else if (tname === "AUTO") { + // ### For now: later, this will be how the backwards-compatibility is done + log("Skipping MKWS team '" + tname + "'"); + } else { + mkws.teams[tname] = _make_mkws_team(j, tname); + log("Made MKWS team '" + tname + "'"); + } + }); + + 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(); + } }); })(jQuery);