Remove extraneous comment.
[mkws-moved-to-github.git] / tools / htdocs / mkws.js
index 6867e31..7436ae9 100644 (file)
@@ -246,13 +246,14 @@ function team($, teamName) {
            pager.html(drawPager(data))
        }
 
-       // navi
        var results = $(".mkwsRecords.mkwsTeam_" + m_teamName);
+       if (!results.length)
+           return;
 
        var html = [];
        for (var i = 0; i < data.hits.length; i++) {
             var hit = data.hits[i];
-           html.push('<div class="record" id="mkwsRecdiv_' + hit.recid + '" >',
+           html.push('<div class="record" id="mkwsRecdiv_' + teamName + '_' + hit.recid + '" >',
                      renderSummary(hit),
                      '</div>');
            if (hit.recid == m_curDetRecId) {
@@ -328,11 +329,13 @@ function team($, teamName) {
        for (var i = 0; i < data.length && i < max; i++) {
            acc.push('<div class="term">');
             acc.push('<a href="#" ');
-           var action;
+           var action = '';
            if (!pzIndex) {
                // Special case: target selection
                acc.push('target_id='+data[i].id+' ');
-               action = 'mkws.limitTarget(\'' + m_teamName + '\', this.getAttribute(\'target_id\'),this.firstChild.nodeValue)';
+               if (!target_filtered(data[i].id)) {
+                   action = 'mkws.limitTarget(\'' + m_teamName + '\', this.getAttribute(\'target_id\'),this.firstChild.nodeValue)';
+               }
            } else {
                action = 'mkws.limitQuery(\'' + m_teamName + '\', \'' + pzIndex + '\', this.firstChild.nodeValue)';
            }
@@ -344,15 +347,27 @@ function team($, teamName) {
     }
 
 
+    function target_filtered(id) {
+       debug("target_filtered(" + id + ")");
+       for (var i = 0; i < m_filters.length; i++) {
+           if (m_filters[i].id === id ||
+               m_filters[i].id === 'pz:id=' + id) {
+               return true;
+           }
+       }
+       return false;
+    }
+
+
     function my_onrecord(data, args, teamName) {
-       debug("record");
+       debug("record: teamName=" + teamName + ", m_teamName=" + m_teamName);
        // FIXME: record is async!!
        clearTimeout(m_paz.recordTimer);
        // in case on_show was faster to redraw element
-       var detRecordDiv = document.getElementById('mkwsDet_'+data.recid);
+       var detRecordDiv = document.getElementById('mkwsDet_' + teamName + '_' + data.recid);
        if (detRecordDiv) return;
        m_curDetRecData = data;
-       var recordDiv = document.getElementById('mkwsRecdiv_'+m_curDetRecData.recid);
+       var recordDiv = document.getElementById('mkwsRecdiv_' + teamName + '_' + m_curDetRecData.recid);
        var html = renderDetails(m_curDetRecData);
        recordDiv.innerHTML += html;
     }
@@ -618,9 +633,9 @@ function team($, teamName) {
             ? firstClkbl + 2*onsides
             : pages;
 
-       var prev = '<span id="mkwsPrev">&#60;&#60; ' + M('Prev') + '</span><b> | </b>';
+       var prev = '<span class="mkwsPrev">&#60;&#60; ' + M('Prev') + '</span><b> | </b>';
        if (m_curPage > 1)
-            prev = '<a href="#" id="mkwsPrev" onclick="mkws.pagerPrev(\'' + m_teamName + '\');">'
+            prev = '<a href="#" class="mkwsPrev" onclick="mkws.pagerPrev(\'' + m_teamName + '\');">'
             +'&#60;&#60; ' + M('Prev') + '</a><b> | </b>';
 
        var middle = '';
@@ -633,9 +648,9 @@ function team($, teamName) {
                + numLabel + ' </a>';
        }
 
-       var next = '<b> | </b><span id="mkwsNext">' + M('Next') + ' &#62;&#62;</span>';
+       var next = '<b> | </b><span class="mkwsNext">' + M('Next') + ' &#62;&#62;</span>';
        if (pages - m_curPage > 0)
-            next = '<b> | </b><a href="#" id="mkwsNext" onclick="mkws.pagerNext(\'' + m_teamName + '\')">'
+            next = '<b> | </b><a href="#" class="mkwsNext" onclick="mkws.pagerNext(\'' + m_teamName + '\')">'
             + M('Next') + ' &#62;&#62;</a>';
 
        var predots = '';
@@ -715,7 +730,7 @@ function team($, teamName) {
        m_curDetRecId = recId;
 
        // remove current detailed view if any
-       var detRecordDiv = document.getElementById('mkwsDet_'+oldRecId);
+       var detRecordDiv = document.getElementById('mkwsDet_' + m_teamName + '_' + oldRecId);
        // lovin DOM!
        if (detRecordDiv)
            detRecordDiv.parentNode.removeChild(detRecordDiv);
@@ -736,7 +751,7 @@ function team($, teamName) {
     {
        var template = loadTemplate("Record");
        var details = template(data);
-       return '<div class="details" id="mkwsDet_' + data.recid + '">' + details + '</div>';
+       return '<div class="details" id="mkwsDet_' + m_teamName + '_' + data.recid + '">' + details + '</div>';
     }
 
 
@@ -848,8 +863,6 @@ function team($, teamName) {
        if (mkws_config.show_lang)
            mkws_html_lang();
 
-       // For some reason, doing this programmatically results in
-       // document.mkwsSearchForm.mkwsQuery being undefined, hence the raw HTML.
        debug("HTML search form");
        // ### There is only one match here by design: fix not to bother looping
        $('.mkwsSearch.mkwsTeam_' + m_teamName).each(function (i, obj) {
@@ -912,6 +925,7 @@ function team($, teamName) {
 
        mkws_html_switch();
 
+       // ### Should not be in the team code, since window size is global
        if (mkws_config.responsive_design_width) {
            // Responsive web design - change layout on the fly based on
            // current screen width. Required for mobile devices.
@@ -1104,141 +1118,6 @@ function team($, teamName) {
 };
 
 
-/*
- * implement jQuery plugin $.pazpar2({})
- */
-function _mkws_jquery_plugin ($) {
-    function debug (string) {
-       mkws.debug("jquery.pazpar2: " + string);
-    }
-
-    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.:
-       // <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
-       if (!$.ui) {
-           debug("Error: jquery-ui.js is missing, did you include 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");
-           });
-    };
-
-    $.extend({
-
-       // service-proxy or pazpar2
-       pazpar2: function(config) {
-           var id_popup = config.id_popup || "#mkwsPopup";
-           id_popup = id_popup.replace(/^#/, "");
-
-           // simple layout
-           var div = '\
-<div id="mkwsSwitch"></div>\
-<div id="mkwsLang"></div>\
-<div id="mkwsSearch"></div>\
-<div id="mkwsResults"></div>\
-<div id="mkwsTargets"></div>\
-<div id="mkwsStat"></div>';
-
-           // new table layout
-           var table = '\
-<style type="text/css">\
-  #mkwsTermlists div.facet {\
-  float:left;\
-  width: 30%;\
-  margin: 0.3em;\
-  }\
-  #mkwsStat {\
-  text-align: right;\
-  }\
-</style>\
-    \
-<table width="100%" border="0">\
-  <tr>\
-    <td>\
-      <div id="mkwsSwitch"></div>\
-      <div id="mkwsLang"></div>\
-      <div id="mkwsSearch"></div>\
-    </td>\
-  </tr>\
-  <tr>\
-    <td>\
-      <div style="height:500px; overflow: auto">\
-       <div id="mkwsPager"></div>\
-       <div id="mkwsNavi"></div>\
-       <div id="mkwsRecords"></div>\
-       <div id="mkwsTargets"></div>\
-       <div id="mkwsRanking"></div>\
-      </div>\
-    </td>\
-  </tr>\
-  <tr>\
-    <td>\
-      <div style="height:300px; overflow: hidden">\
-       <div id="mkwsTermlists"></div>\
-      </div>\
-    </td>\
-  </tr>\
-  <tr>\
-    <td>\
-      <div id="mkwsStat"></div>\
-    </td>\
-  </tr>\
-</table>';
-
-           var popup = '\
-<div id="mkwsSearch"></div>\
-<div id="' + id_popup + '">\
-  <div id="mkwsSwitch"></div>\
-  <div id="mkwsLang"></div>\
-  <div id="mkwsResults"></div>\
-  <div id="mkwsTargets"></div>\
-  <div id="mkwsStat"></div>\
-</div>'
-
-           if (config && config.layout == 'div') {
-               debug("jquery plugin layout: div");
-               document.write(div);
-           } else if (config && config.layout == 'popup') {
-               debug("jquery plugin layout: popup with id: " + id_popup);
-               document.write(popup);
-               $(document).ready(function() { init_popup(config); });
-           } else {
-               debug("jquery plugin layout: table");
-               document.write(table);
-           }
-       }
-    });
-};
-
-
 // wrapper to call team() after page load
 (function (j) {
     mkws.debug = function (string) {
@@ -1260,10 +1139,6 @@ function _mkws_jquery_plugin ($) {
     var debug = mkws.debug;
 
 
-    // enable before page load, so we could call it before mkws() runs
-    _mkws_jquery_plugin(j);
-
-
     mkws.handle_node_with_team = function(node, callback) {
        var classes = node.className;
        var list = classes.split(/\s+/)