X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=45564dd92b5cc3fffc3078a56df221906fba0bf9;hb=1d4322387693b6562f999d533e5176d987eba1e7;hp=98fc11c585e30739df018c568bb635cf06bafa0b;hpb=5c8af699d6eb45391f7d2aa9b344f710e8dd4db5;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index 98fc11c..45564dd 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -141,7 +141,7 @@ if (mkws_config == null || typeof mkws_config != 'object') { // wrapper for jQuery lib -function _make_mkws_team($, teamName) { +function team($, teamName) { var that = {}; var m_teamName = teamName; var m_submitted = false; @@ -162,10 +162,11 @@ function _make_mkws_team($, teamName) { // if (console && console.log) // disabled, will fail in IE8 - // console.log("run _make_mkws_team(" + (teamName ? teamName : "") + ")"); + // console.log("run team(" + (teamName ? teamName : "") + ")"); - // Needs to be defined inside _make_mkws_team() so it can see m_debug_time + // Needs to be defined inside team() so it can see m_debug_time + // ### member access won't work: there is only one instance of this function mkws.debug_function = function (string) { if (!mkws.debug_level) return; @@ -230,7 +231,6 @@ function _make_mkws_team($, teamName) { "usesessions" : mkws_config.use_service_proxy ? false : true, "showResponseType": '', // or "json" (for debugging?) "onrecord": my_onrecord }); - that.m_paz = m_paz; // For access from non-member functions like mkws.showDetails if (!isNaN(parseInt(mkws_config.perpage_default))) { m_recPerPage = parseInt(mkws_config.perpage_default); @@ -271,7 +271,8 @@ function _make_mkws_team($, teamName) { renderSummary(hit), ''); if (hit.recid == m_curDetRecId) { - html.push(renderDetails(m_curDetRecData)); + if (m_curDetRecData) + html.push(renderDetails(m_curDetRecData)); } } results.html(html.join('')); @@ -356,7 +357,7 @@ function _make_mkws_team($, teamName) { } - function my_onrecord(data, teamName) { + function my_onrecord(data, args, teamName) { debug("record for " + teamName); // FIXME: record is async!! clearTimeout(m_paz.recordTimer); @@ -372,7 +373,7 @@ function _make_mkws_team($, teamName) { function my_onbytarget(data, teamName) { debug("target for " + teamName); - var targetDiv = document.getElementById("mkwsBytarget"); + var targetDiv = $('.mkwsBytarget.mkwsTeam_' + teamName); if (!targetDiv) { // No mkwsTargets div. return; @@ -395,7 +396,7 @@ function _make_mkws_team($, teamName) { } table += ''; - targetDiv.innerHTML = table; + targetDiv.html(table); } //////////////////////////////////////////////////////////////////////////////// @@ -405,10 +406,11 @@ function _make_mkws_team($, teamName) { // wait until the DOM is ready function domReady () { - $('.mkwsSearchForm').each(function (i, obj) { + $('.mkwsSearchForm.mkwsTeam_' + m_teamName).each(function (i, obj) { + debug("adding search-forms for team '" + m_teamName + "'"); var node = this; - debug("adding class 'foo' to node " + node); mkws.handle_node_with_team(node, function(tname) { + debug("adding search-form '" + tname + "' for team '" + m_teamName + "'"); $(node).submit(onFormSubmitEventHandler); }); }); @@ -426,7 +428,11 @@ function _make_mkws_team($, teamName) { // when search button pressed function onFormSubmitEventHandler() { - that.newSearch(document.mkwsSearchForm.mkwsQuery.value); + mkws.handle_node_with_team(this, function (tname) { + var val = $('.mkwsQuery.mkwsTeam_' + tname).val(); + mkws.teams[tname].newSearch(val); + }); + return false; } @@ -445,7 +451,7 @@ function _make_mkws_team($, teamName) { 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 + mkws.switchView(m_teamName, 'records'); // In case it's configured to start off as hidden m_submitted = true; } @@ -695,33 +701,34 @@ function _make_mkws_team($, teamName) { // switching view between targets and records - mkws.switchView = function(view) { - debug("switchView: " + view); + mkws.switchView = function(tname, view) { + debug("switchView(" + tname + ", " + view + ")"); - var targets = document.getElementById('mkwsTargets'); - var results = document.getElementById('mkwsResults') || - document.getElementById('mkwsRecords'); - var blanket = document.getElementById('mkwsBlanket'); - var motd = document.getElementById('mkwsMOTD'); + //var targets = document.getElementById('mkwsTargets'); + var targets = $('.mkwsTargets.mkwsTeam_' + tname); + var results = $('.mkwsResults.mkwsTeam_' + tname + ',.mkwsRecords.mkwsTeam_' + tname); + var blanket = $('#mkwsBlanket'); + var motd = $('#mkwsMOTD'); switch(view) { case 'targets': - if (targets) targets.style.display = "block"; - if (results) results.style.display = "none"; - if (blanket) blanket.style.display = "none"; - if (motd) motd.style.display = "none"; + if (targets) targets.css('display', 'block'); + if (results) results.css('display', 'none'); + if (blanket) blanket.css('display', 'none'); + if (motd) motd.css('display', 'none'); break; case 'records': - if (targets) targets.style.display = "none"; - if (results) results.style.display = "block"; - if (blanket) blanket.style.display = "block"; - if (motd) motd.style.display = "none"; + if (targets) targets.css('display', 'none'); + if (results) results.css('display', 'block'); + if (blanket) blanket.css('display', 'block'); + if (motd) motd.css('display', 'none'); break; case 'none': - if (targets) targets.style.display = "none"; - if (results) results.style.display = "none"; - if (blanket) blanket.style.display = "none"; - if (motd) motd.style.display = "none"; + alert("mkws.switchView(" + tname + ", 'none') shouldn't happen"); + if (targets) targets.css('display', 'none'); + if (results) results.css('display', 'none'); + if (blanket) blanket.css('display', 'none'); + if (motd) motd.css('display', 'none'); break; default: alert("Unknown view '" + view + "'"); @@ -730,7 +737,7 @@ function _make_mkws_team($, teamName) { // detailed record drawing - mkws.showDetails = function (prefixRecId, tname) { + that.showDetails = function (prefixRecId) { var recId = prefixRecId.replace('mkwsRec_', ''); var oldRecId = m_curDetRecId; m_curDetRecId = recId; @@ -748,9 +755,7 @@ function _make_mkws_team($, teamName) { return; } // request the record - var team = mkws.teams[tname]; - if (!team) alert("no team '" + tname + "'"); - team.m_paz.record(recId); + m_paz.record(recId); } @@ -873,7 +878,8 @@ function _make_mkws_team($, teamName) { // For some reason, doing this programmatically results in // document.mkwsSearchForm.mkwsQuery being undefined, hence the raw HTML. debug("HTML search form"); - $('.mkwsSearch').each(function (i, obj) { + // ### There is only one match here by design: fix not to bother looping + $('.mkwsSearch.mkwsTeam_' + m_teamName).each(function (i, obj) { var node = this; mkws.handle_node_with_team(node, function(tname) { $(node).html('\ @@ -885,16 +891,17 @@ function _make_mkws_team($, teamName) { }); 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('\ + // If the team has a .mkwsResults, populate it in the usual + // way. If not, assume that it's a smarter application that + // defines its own subcomponents, some or all of the + // following: + // .mkwsTermlists + // .mkwsRanking + // .mkwsPager + // .mkwsNavi + // .mkwsRecords + if ($(".mkwsResults.mkwsTeam_" + m_teamName).length) { + $(".mkwsResults.mkwsTeam_" + m_teamName).html('\ \ \
\ @@ -980,18 +987,20 @@ function _make_mkws_team($, teamName) { function mkws_html_switch() { - debug("HTML switch"); + debug("HTML switch for team " + m_teamName); - $("#mkwsSwitch").append($('' + M('Records') + '')); - $("#mkwsSwitch").append($("", { text: " | " })); - $("#mkwsSwitch").append($('' + M('Targets') + '')); + var node = $(".mkwsSwitch.mkwsTeam_" + m_teamName); + node.append($('' + M('Records') + '')); + node.append($("", { text: " | " })); + node.append($('' + M('Targets') + '')); debug("HTML targets"); - $("#mkwsTargets").html('\ -
\ + var node = $(".mkwsTargets.mkwsTeam_" + m_teamName); + node.html('\ +
\ No information available yet.\
'); - $("#mkwsTargets").css("display", "none"); + node.css("display", "none"); } @@ -1091,7 +1100,7 @@ function _make_mkws_team($, teamName) { $("#mkwsTermlistContainer1").hide(); $("#mkwsTermlistContainer2").show(); for(var i = 0; i < list.length; i++) { - $("#" + list[i]).hide(); + $("#" + list[i]).hide(); // ### make team-aware } } else if ($(window).width() > width && parentId === "mkwsTermlistContainer2") { @@ -1100,7 +1109,7 @@ function _make_mkws_team($, teamName) { $("#mkwsTermlistContainer1").show(); $("#mkwsTermlistContainer2").hide(); for(var i = 0; i < list.length; i++) { - $("#" + list[i]).show(); + $("#" + list[i]).show(); // ### make team-aware } } }; @@ -1279,7 +1288,7 @@ function _mkws_jquery_plugin ($) { }; -// wrapper to call _make_mkws_team() after page load +// wrapper to call team() after page load (function (j) { function log(s) { if (typeof console === "undefined" || typeof console.log === "undefined") { /* ARGH!!! old IE */ @@ -1304,11 +1313,20 @@ function _mkws_jquery_plugin ($) { 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') + "'"); + node.addClass(id); + log("added magic class to '" + node.attr('id') + "'"); } } + // For all MKWS-classed nodes that don't have a team + // specified, set the team to AUTO. + $('div[class^="mkws"],div[class*=" mkws"]').each(function () { + if (!this.className.match(/mkwsTeam_/)) { + log("adding AUTO team to node with class '" + this.className + "'"); + $(this).addClass('mkwsTeam_AUTO'); + } + }); + // Find all nodes with class (NOT id) mkwsRecords, and // determine their team from the mkwsTeam_* class. So: //
@@ -1318,7 +1336,7 @@ function _mkws_jquery_plugin ($) { if (mkws.teams[tname]) { log("MKWS team '" + tname + "' already exists, skipping"); } else { - mkws.teams[tname] = _make_mkws_team(j, tname); + mkws.teams[tname] = team(j, tname); log("Made MKWS team '" + tname + "'"); } }); @@ -1345,12 +1363,15 @@ function _mkws_jquery_plugin ($) { tname = cname.replace(/^mkwsTeam_/, ''); } } - if (!tname) - tname = "AUTO"; callback(tname); } + mkws.showDetails = function (prefixRecId, tname) { + mkws.teams[tname].showDetails(prefixRecId); + } + + function default_mkws_config() { /* default mkws config */ var config_default = {